MCP Monorepo框架

一个全面的Monorepo框架,用于构建可重用的模型上下文协议(MCP)服务器,支持本地和远程两种传输模式,适用于AI助手和LLM集成。

  • by rapidcoderx
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 rapidcoderx/mcp-monorepo

使用说明

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以及:

  1. 连接到MCP服务器(默认:http://localhost:3000)
  2. 浏览可用的工具和资源
  3. 使用自定义参数执行工具
  4. 查看格式化的响应
  5. 直接使用JSON-RPC请求测试端点

发展

项目结构

  • 包/核心:基本MCP服务器类和共享实用程序
  • 软件包/服务器/:单个MCP服务器实现
  • 软件包/仪表板:用于测试服务器的基于React的UI

创建新服务器

  1. 在中创建新目录 packages/servers/
  2. 扩展 BaseMCPServer 从 @mcp/core
  3. 实施 setupHandlers() 方法
  4. 注册工具和资源
  5. 测试两种运输模式

例子:

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生态系统