Vincent MCP 服务器
使用说明
-
项目简介
- Vincent 项目中包含一个 MCP 服务器端实现,允许 LLM 客户端通过 JSON-RPC 请求向服务器查询工具、调用工具执行外部功能、读取资源、获取提示模板等。服务器负责会话管理、能力声明与多端传输能力的扩展点(当前实现以 HTTP JSON-RPC 路径提供服务并通过 Bearer API Key 进行鉴权)。
-
主要功能点
- MCP 服务器核心:实现 MCP 的标准请求/响应格式,支持 initialize、tools/list、tools/call 等方法,返回规范化的 JSON-RPC 响应。
- 身份鉴权与会话管理:通过 Authorization: Bearer ssk_... 风格的 API Key 进行鉴权,结合 Secret 与 ToolContext 提供上下文给工具处理。
- 工具与权限:工具集合按 Secret 的类型进行过滤,只有具备相应权限的 Secret 才能调用对应工具。
- 资源、提示、工具的扩展能力:框架设计允许后续扩展 Tool、Prompt 的渲染与资源管理。
- 与数据库的协作:使用 Prisma 进行数据访问与变更记录,确保工具调用、会话、审计等操作可追溯。
-
安装步骤
-
- 安装依赖
- 需要 Node.js 环境(推荐版本与仓库自述一致)。
- 运行 npm install 以安装依赖。
-
- 配置数据库
- 配置 PostgreSQL 数据库,执行 Prisma 数据库客户端的设置与迁移(docs 里通常有 prisma: migrate 的相关步骤)。
-
- 启动服务端
- 运行开发环境:npm run dev 或 npm start(生产环境通常使用 npm start),端口默认 3000(或通过环境变量 PORT 指定)。
-
- 配置环境变量
- 参考仓库的 env 配置,确保数据库连接、Secret、API Key、Sentry、OpenRouter、ZeroDev、Stripe 等依赖服务的相关密钥和凭证正确填入环境变量。
-
-
服务器配置 (MCP 客户端需要的最小信息) 为方便将 MCP 服务器接入到客户端运行时,以下是客户端所需的最小配置示例(JSON 格式,非代码块,便于阅读): { "serverName": "Vincent MCP Server", "command": "node", "args": ["dist/index.js"], "notes": "用于启动 Vincent 的 MCP 服务端,需在运行前完成依赖安装与数据库配置。端口默认为 3000,可通过 PORT 环境变量覆盖。" } 说明:
- serverName:服务器名称,标识 MCP 服务端实例。
- command:启动 MCP 服务端的命令。
- args:在命令后面追加的参数(此处指向打包输出的入口,例如 dist/index.js)。
- 备注中可以添加端口、环境变量等说明,便于 MCP 客户端在连接时理解启动信息。 该 MCP 服务器对接的客户端将通过 Bearer Token(API Key)进行鉴权,示例中服务端实现的鉴权路径为 Authorization: Bearer <ssk_...>。
-
基本使用方法
- 第一步:在客户端配置好云端 API Key,并获取要访问的服务器端资源(如工具、Prompts 的元数据)。
- 第二步:向 /mcp 的 JSON-RPC 接口发送请求,示例请求包括 initialize、tools/list、tools/call 等,服务端将按 MCP 协议返回标准的 JSON-RPC 响应或通知。
- 第三步:根据返回的 tool 列表选择需要的工具并通过工具调用接口执行具体操作,服务器将对调用进行策略校验、审计日志记录,并返回执行结果。
- 第四步:如需扩展,可在服务器端实现更多工具、资源类型及提示模板,以满足更复杂的 LLM 交互场景。
-
运行与调试
- 本仓库提供了完整后端服务与数据库支持,建议本地在 Docker/本地 PostgreSQL 环境中按 README 指示配置数据库、执行 Prisma 迁移后启动服务器。
- 结合 Sentry、Telegram 审批等中间件,开发阶段可通过日志与断点调试各个 MCP 路由与工具调用。
-
重要注意事项
- MCP 服务端的安全性依赖 Bearer API Key 的保护,请妥善管理 API Key,确保秘钥不被未授权的客户端获取。
- MCP 服务端的权限设计严格,根据 Secret 的 type 进行工具暴露控制,确保不同客户端只能访问授权范围内的工具。
-
进一步信息
- MCP 路由实现位置:src/mcp/router.ts
- MCP 工具实现与上下文定义:src/mcp/tools.ts
- 服务入口与 Express 应用:src/app.ts、src/index.ts