使用说明
MCP Monorepo框架
一个全面的单仓库框架,用于构建具有双传输支持的可重用模型上下文协议(MCP)服务器。
概述
该框架为创建可以在这两种环境中运行的MCP服务器提供了坚实的基础 地方的 (stdio)和 远程 (HTTP)模式,为AI助手和LLM集成提供灵活的部署选项。
主要特点
- 🚀 双重运输支持:通过stdio(本地)或HTTP(远程)运行服务器
- 📦 Monorepo架构:具有独立服务器实现的共享核心框架
- 🔧 易于开发:用于创建新MCP服务器的简单API
- 🎯 类型安全:JSDoc注释,以获得更好的IDE支持
- 🧪 内置测试:测试实用程序和模式
- 📊 展示仪表板:用于探索和测试服务器的可视化界面
建筑
mcp-monorepo/
├── packages/
│ ├── core/ # Shared framework & utilities
│ ├── servers/ # MCP server implementations
│ │ ├── api-server/ # OpenAPI-based API server
│ │ ├── docs-server/ # Document search & query server
│ │ ├── c4-generator/ # C4 diagram generator
│ │ └── mermaid-generator/ # Mermaid diagram generator
│ └── dashboard/ # Interactive showcase dashboard
└── docs/ # Documentation
运输方式
stdio运输(本地)
- 用于本地开发和测试
- 与Claude Desktop直接集成
- 基于流程的沟通
- 无需网络配置
HTTP传输(远程)
- 用于生产部署
- 基于Web的客户端和仪表板
- RESTful端点
- 基于HTTP的可流式MCP协议
入门指南
先决条件
- Node.js>=18.0.0
- npm>=9.0.0
安装
# Clone the repository
git clone https://github.com/your-org/mcp-monorepo.git
cd mcp-monorepo
# Install all dependencies
npm install
快速入门演示
同时启动echo服务器和交互式仪表板:
npm run start:demo
这将开始:
- 回声服务器 在http://localhost:3000
- 仪表盘 在http://localhost:5173
打开http://localhost:5173在浏览器中:
- ✅ 交互式测试MCP工具
- ✅ 验证服务器端点
- ✅ 检查资源
- ✅ 执行JSON-RPC请求
正在运行的服务器
每台服务器都可以在以下任一传输模式下启动:
# stdio mode (local)
npm run start:stdio -w @mcp/echo-server
# HTTP mode (remote)
npm run start:http -w @mcp/echo-server
MCP服务器端点
在HTTP模式下运行时,服务器会公开以下端点:
- GET/健康 -健康检查(退货
{"status": "healthy", "name": "server-name"}) - 获取/信息 -服务器信息(名称、版本、工具、资源、功能)
- POST/mcp -MCP协议端点(基于HTTP的JSON-RPC 2.0)
可用服务器
- 回声服务器:使用文本操作工具(echo、reverse、大写)的示例实现
- 仪表盘:用于测试和验证MCP服务器的交互式web UI
马上就来:
- API服务器:来自OpenAPI规范的动态API客户端
- 文档服务器:搜索和查询文档和标记文件
- C4发电机:生成C4架构图
- 美人鱼发电机:创建各种美人鱼图
仪表板功能
集成仪表板(软件包/仪表板/)提供:
- 🔌 服务器连接:通过HTTP连接到任何MCP服务器
- 🛠️ 工具检查员:交互式浏览、测试和验证MCP工具
- 📦 资源查看器:查看和检查服务器资源
- 🧪 端点测试仪:使用自定义JSON-RPC请求测试HTTP端点
- 📊 实时验证:工具执行的即时反馈
- 📝 协议遵从:验证MCP协议的实施
使用仪表板
# Start server and dashboard together
npm run start:demo
# Or start dashboard only (connects to localhost:3000 by default)
npm run dev:dashboard
打开http://localhost:5173以及:
- 连接到MCP服务器(默认:http://localhost:3000)
- 浏览可用的工具和资源
- 使用自定义参数执行工具
- 查看格式化的响应
- 直接使用JSON-RPC请求测试端点
发展
项目结构
- 包/核心:基本MCP服务器类和共享实用程序
- 软件包/服务器/:单个MCP服务器实现
- 软件包/仪表板:用于测试服务器的基于React的UI
创建新服务器
- 在中创建新目录
packages/servers/ - 扩展
BaseMCPServer从@mcp/core - 实施
setupHandlers()方法 - 注册工具和资源
- 测试两种运输模式
例子:
import { BaseMCPServer } from '@mcp/core';
export class MyServer extends BaseMCPServer {
constructor(config) {
super({
name: 'my-server',
version: '1.0.0',
...config,
});echo server (HTTP mode)
npm run dev:echo
# Start dashboard
npm run dev:dashboard
# Start both server and dashboard
npm run dev:all
# or
npm run start:demo
setupHandlers() {
this.registerTool({
name: 'my-tool',
description: 'Tool description',
inputSchema: { /* JSON Schema */ },
handler: async (params) => {
// Implementation
return { content: [{ type: 'text', text: 'Result' }] };
},
});
}
}
开发命令
# Lint all code
npm run lint
# Format all code
npm run format
# Run tests
npm run test
# Clean all build artifacts
npm run clean
# Start dashboard
npm run dev:dashboard
文档
技术栈
- 运行时:Node.js(LTS)
- 语言:JavaScript(ESM)
- MCP-SDK:@modelcontextprotocol/sdk
- 前端:Vite+React
- 单体仓库:npm工作区
- 掉毛:埃斯林特
- 格式化:更漂亮
会话跟踪
本项目使用结构化会话跟踪进行开发:
- prompt.md:会话连续性跟踪器
- 代理商.md:代理活动日志
- HANDOFF.md:团队交接文件
许可证
麻省理工学院
贡献
欢迎投稿!请阅读我们的 贡献指南 有关我们的行为准则和提交pull请求流程的详细信息。
支持
如有疑问和支持,请在GitHub上发布问题。
建于❤️ 对于MCP生态系统
