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 进行数据访问与变更记录,确保工具调用、会话、审计等操作可追溯。
  • 安装步骤

      1. 安装依赖
      • 需要 Node.js 环境(推荐版本与仓库自述一致)。
      • 运行 npm install 以安装依赖。
      1. 配置数据库
      • 配置 PostgreSQL 数据库,执行 Prisma 数据库客户端的设置与迁移(docs 里通常有 prisma: migrate 的相关步骤)。
      1. 启动服务端
      • 运行开发环境:npm run dev 或 npm start(生产环境通常使用 npm start),端口默认 3000(或通过环境变量 PORT 指定)。
      1. 配置环境变量
      • 参考仓库的 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

服务器信息