Helpmaton MCP 服务端实现

使用说明

  • 项目简介

    • 该项目实现了一个 MCP 服务端框架,用于向 LLM 客户端暴露资源、工具和提示(Prompts),通过标准的 JSON-RPC 协议进行远程调用与数据交互,支持会话管理与能力声明,并可通过多种传输协议进行通信。
  • 主要功能点

    • 资源管理:托管并提供对工作区、文档、知识库等资源的读取和查询能力。
    • 工具注册与执行:注册外部工具,允许 LLM 调用外部函数/服务,并把结果回传给对端。
    • 提示模板与渲染:定义可自定义的系统提示和对话模板,支持灵活渲染以驱动对话模式。
    • JSON-RPC 通信:前后端通过 JSON-RPC 请求/响应互通,支持查询、执行、通知等方法。
    • 会话与能力声明:服务器端负责会话状态与能力集的声明与查询。
    • 多传输协议支持:支持 Stdio、SSE、WebSocket 等传输形式,提升对不同应用的接入友好度。
    • MCP OAuth 集成(可选):通过 OAuth 授权的 MCP 服务器对接外部服务(如 Google, Slack, GitHub 等),实现安全的跨服务能力。
  • 安装步骤

    • 克隆仓库并安装依赖
      • 读取 README/文档中的后端部分,确保 Node.js/TypeScript 环境就绪,执行相应的包管理命令进行依赖安装。
    • 配置环境
      • 根据需要设置后端所需的环境变量(如 AUTH_SECRET、数据库连接、外部服务的密钥等),可参考测试与集成用例中对 MCP 服务的配置。
    • 启动 MCP 服务器
      • 将 MCP 服务部署到你的运行环境中(本地、容器或云端),根据实际部署方式启动后端服务端点,确保 MCP 的端点对外可访问。
    • 运行测试(可选)
      • 参考仓库中提供的 E2E 测试用例进行集成测试,验证资源、工具、Prompts 的功能和与客户端的交互。
  • 服务器配置(MCP 服务器对 MCP 客户端的 JSON 配置示例) { "serverName": "GitHub MCP Server", "serviceType": "github", "authType": "oauth", "config": { "clientId": "<OAuth 客户端ID>", "clientSecret": "<OAuth 客户端密钥>", "scopes": ["repo", "user"], "redirectUri": "https://your-callback.example.com/mcp-oauth/github/callback" }, "command": "node", "args": ["path/to/mcp-server/github/index.js", "--config", "/path/to/mcp/github/config.json"] }

    说明:

    • serverName: MCP 服务器的名称,便于在管理界面或日志中识别。
    • serviceType: 针对该 MCP 服务器所连接的外部服务类型(例如 github、gmail、shopify 等),用于工具匹配与权限配置。
    • authType: 授权类型,若为 oauth,需配置对应的凭证、回调及作用域。
    • config: 与外部服务的认证与连接相关的配置信息,示例提供了常见字段及用途。
    • command/args: 客户端在部署时启动 MCP 服务器的命令与参数。实际命令和路径需结合你的部署环境填写,以上给出格式示例,具体路径请将 index.js 替换为你构建后的服务器入口。
  • 基本使用方法

    • 客户端 connects MCP 服务端后,可通过 JSON-RPC 调用读取资源、执行工具、获取并渲染 Prompt;服务端负责执行并返回结果或错误信息。
    • 开发者在接入时,需确保 MCP 服务端对接的外部服务已经完成授权,并在策略中声明所需的权限范围。
    • 如需扩展,请在 MCP 服务端实现更多 Tools,使 LLM 客户端可以通过统一的接口访问外部系统。
  • 运行要点

    • MCP 服务端需要稳定的身份验证、日志、错误处理与并发控制,确保多并发请求下的原子性和一致性。
    • 对外暴露的 API 应遵循标准的 JSON-RPC 响应格式,确保客户端能够统一处理成功与错误场景。

服务器信息