FeathersJS MCP 服务器
使用说明(中文简要版,含关键点)
-
项目简介
- 本仓库实现一个基于 MCP 的服务器,核心职责包括托管并管理资源(Resources)、注册与执行工具(Tools)、定义并渲染提示模板(Prompts),并通过 JSON-RPC 与 LLM 客户端通信。它支持通过本地 stdio 传输以及 UI 桥接等方式与客户端对接,提供会话管理、能力声明以及网络工具开关等功能。
-
主要功能点
- MCP 协议处理:接收 MCP 客户端的 JSON-RPC 请求,返回标准化 JSON-RPC 响应。
- 资源与知识库集成:内置知识库加载、分块、向量嵌入等,便于基于文档的检索和上下文提供。
- 工具注册与执行:提供 search_docs、submit_documentation、update_documentation、remove_documentation 等工具,支持离线使用和网络提交(需开启 ALLOW_NETWORK_TOOLS)。
- Prompts/模板渲染:提供对提示模板及文档的渲染能力,方便 LLM 的对话上下文生成。
- 多传输与界面:支持 JSON-RPC 通过标准输入输出、HTTP UI 桥接等,便于与 Claude Desktop、VS Code Copilot 等客户端对接。
- 安全与治理:实现 G1/G1.5 级别的网络工具开关、参数校验、错误处理、超时控制以及本地回退机制。
-
安装步骤
- 克隆仓库并安装依赖。
- 运行构建流程,将 TypeScript 编译为可执行的 dist/index.js。
- 启动 MCP 服务器(dist/index.js),服务器会在后台打开并对外提供 MCP 服务。
- 如需启用网络相关工具,请设置环境变量 ALLOW_NETWORK_TOOLS=true,并按需配置 GITHUB_TOKEN、GITHUB_OWNER、GITHUB_REPO 等。
-
服务器配置(MCP 客户端对接示例)
- 下面是一个示例配置,描述客户端如何启动并连接到 MCP 服务器(为客户端提供所需信息,以便建立连接;不属于代码,仅为配置描述): { "server": { "name": "feathers-mcp-server", "command": "node", "args": ["/absolute/path/to/cspc319_feathersJS_C/dist/index.js"], "env": { "ALLOW_NETWORK_TOOLS": "true", "GITHUB_TOKEN": "ghp_yourtoken", "GITHUB_OWNER": "your-org", "GITHUB_REPO": "cspc319_feathersJS_C" } } }
-
基本使用方法
- 启动与连接:在服务器所在环境中执行启动命令,确保 dist/index.js 可执行并已经编译成功;客户端通过 JSON-RPC 方式向 MCP 服务器发送请求,例如请求工具列表或调用指定工具。
- 调用工具:通过 MCP 请求 tools/list 获取工具清单,使用 tools/call 调用具体工具并获取结果。
- 网络工具开关:如要提交或修改文档等网络行为,请确保环境变量 ALLOW_NETWORK_TOOLS 设置为 true。
- 资源与知识库:服务器提供对知识库的加载、检索及嵌入等能力,配合向量检索或替代实现以提供更丰富的上下文。
- 健康与诊断:通过健康检查接口判断 MCP 服务状态,以及在 UI 桥接中对接可用性。
-
注意事项
- 客户端在首次连接时需确保 MCP 服务器已经准备就绪。
- 若开启网络工具,请注意令牌与权限的安全性,避免在错误日志中泄露。
- 本实现包含大量测试用例,覆盖协议、路由、工具执行及集成流程,帮助确保稳定性。
关键词: 编码助手, 知识检索, GitHub 集成, 容错与路由, 流量控制