使用说明

  • 项目简介 该仓库提供若干 MCP 服务器实现与相关示例,用以帮助开发者学习如何搭建基于 MCP 的后端服务,从而向 LLM 客户端提供资源管理、工具执行与提示模板渲染等能力。包含多种传输协议的服务器实现(如 stdio 与 HTTP/Streamable),以及与 LangChain.js 的 MCP 适配器的集成示例,便于快速上手与扩展。

  • 主要功能点

    • 实现 MCP 协议核心能力:处理 MCP 的请求与响应(包括 ListTools、CallTool 等 JSON-RPC 请求),并返回合规的 JSON-RPC 响应。
    • 提供服务器端实现:包含完整的 MCP 服务器代码及若干示例服务器,支持通过 stdio 和 HTTP 等传输通道与客户端对接。
    • 多服务器与多工具场景:示例覆盖单服务器、多服务器、以及与外部资源(如文档、向量存储、检索服务等)的整合,演示多源工具的统一接入与自动化调度。
    • 与 LangChain.js 的整合:使用 LangChain.js 的 MCP 适配器和工具机制,实现工具注册、绑定和执行流程,便于将 LLM 生成的 tool_calls 转为真实的服务调用。
    • Prompts、Templates 与 Tools 的协同:展示如何通过 Prompts/模板渲染、工具调用与结果回传,支持强大且可定制的 LLM 交互模式。
  • 安装与运行步骤

    • 依赖与环境
      • 需要 Node.js 环境与 npm/yarn,按仓库中的各示例依赖安装即可。
    • 快速上手步骤
      1. 克隆仓库或下载所需子目录中的示例代码。
      2. 根据示例需要安装依赖(如 LangChain.js、@modelcontextprotocol/sdk 等)。
      3. 在命令行运行示例 MCP 服务器,例如通过 Node/NPM 脚本或直接使用 tsx/ts-node 执行对应的服务器文件。
      4. 启动对应的 MCP 客户端,指定服务器启动命令与参数,以建立连接并调用 ListTools、CallTool 等接口。
    • MCP 服务器配置说明(客户端需要) 下面给出两种常见 MCP 服务器的配置示例,作为 JSON 形式的“服务器配置”字段描述。注意:实际 MCP 客户端不会直接用到注释,只需知道服务器名称、启动命令及参数即可连接到 MCP 服务器。
      • 示例 1:本地 stdio MCPS(Calculator 服务) { "serverName": "stdio-calculator", "command": "npx", "args": ["tsx", "06-mcp/samples/stdio-calculator-server.ts"], "description": "本地通过 STDIO 传输暴露的 MCP 计算服务,提供 calculate 工具" }
      • 示例 2:HTTP 流传 MCP(基础示例服务器,暴露多工具) { "serverName": "basic-mcp-http", "command": "npx", "args": ["tsx", "06-mcp/samples/basic-mcp-server.ts"], "description": "通过 HTTP 流传暴露的 MCP 服务,提供 searchDocuments、addDocument 等工具" }
    • 基本使用方法
      • 客户端连接 MCP 服务器:通过客户端配置指向相应服务器启动命令与参数,在运行时自动创建子进程并通过对应传输通道进行通信。
      • 常用操作:
        1. 调用 ListTools 获取服务器暴露的工具清单。
        2. 发送 CallTool 请求,携带工具名与参数,获取工具执行结果。
        3. 根据需要,使用不同传输(stdio/HTTP/SSE/WebSocket)与多服务器场景,构建更复杂的后端服务架构。
      • 与 LangChain.js 的协同:通过 LangChain 的 MCP 相关工具,将 LLM 生成的 tool_calls 转换为实际工具执行并将结果回传给 LLM,支持多服务器与多工具的组合。
  • 运行与扩展

    • 仓库内包含多种 MCP 服务器实现与示例(包括 stdio、HTTP、流式传输等),可按需组合使用,或作为学习样例自行扩展。
    • 如需在生产环境搭建,建议结合鉴权、速率限制、持久化向量存储等安全与稳定性改进,且可将 MCP 服务器部署为独立服务或容器。
  • 说明与注意

    • MCP 服务器实现采用 JSON-RPC 风格的请求/响应处理,结合 LangChain.js 的 MCP 适配器进行工具注册、调用与结果回传。
    • 本仓库的 MCP 服务器示例覆盖多传输模式、工具接入、以及与外部知识库(向量存储、检索服务等)的集成,具备完整可运行性与明确的功能边界。

信息

分类

AI与计算