Minds AI MCP 服务器实现
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个基于 MCP 的服务器端框架,能够注册资源、工具以及提示模板,提供会话管理、鉴权、速率限制、日志审计、以及对外传输的多种方式(HTTP/STDIO 等),以向 LLM 客户端提供上下文数据和外部功能调用能力。
-
主要功能点
- MCP 核心能力:注册并暴露资源、工具和提示模板,支持通过 JSON-RPC 风格请求与客户端交互。
- 会话与传输:提供基于 HTTP 的会话传输入口,以及 STDIO 传输入口,便于云部署和桌面端等场景。
- 用户鉴权与令牌:内置 OAuth/API Key 验证、用户发现令牌生成与校验,确保对用户数据的访问控制。
- 资源与工具管理:实现统一的资源注册、工具注册、以及基于 API 的外部数据与计算能力接入。
- 风险控制与观测:实现速率限制、中断保护、审计日志、指标统计等中后台能力。
- 兼容性:设计考虑了与 Claude、Cursor、ChatGPT Apps 等 MCP 客户端的对接。
-
安装与运行
- 依赖环境:Node.js 运行环境,TypeScript 源码通过 tsx/ts-node 等执行工具运行。
- 启动入口(HTTP 传输)
- 使用 HTTP 传输的核心入口为 server/mcp/main.ts,启动后提供 /health、/.well-known/oauth-protected-resource、/mcp 等接口。
- 启动入口(STDIO 传输)
- 使用 STDIO 传输的核心入口为 server/mcp/stdio.ts,通常用于 Claude Desktop、Cursor 等客户端,通过命令行启动并传递 API Key 等参数。
- 启动示例(命令需结合实际环境执行工具,例如 tsx/ts-node)
- HTTP 传输启动示例(通过 tsx 运行 TypeScript 文件):
- npx tsx server/mcp/main.ts
- STDIO 传输启动示例(通过 tsx 运行 TypeScript 文件,需提供 Minds AI API Key):
- MINDSAI_API_KEY=your_api_key npx tsx server/mcp/stdio.ts
- HTTP 传输启动示例(通过 tsx 运行 TypeScript 文件):
-
服务器配置(给 MCP 客户端使用的启动配置,JSON 格式)
- 说明:下面给出两种常见入口的配置示例,包含服务器名称、启动命令与参数说明。MCP 客户端使用这些信息来连接服务器,实际运行时无需通过 MCP 客户端执行这些配置,但此处提供便于对接的描述信息。
- HTTP 传输入口配置示例 { "serverName": "mindsai-mcp-http", "command": "npx", "args": ["tsx", "server/mcp/main.ts"], "description": "HTTP 传输入口,提供 MCP 的 JSON-RPC 通信接口,适用于云端部署和镜像服务。" }
- STDIO 传输入口配置示例(需提供 Minds AI API Key) { "serverName": "mindsai-mcp-stdio", "command": "MINDSAI_API_KEY=your_api_key npx", "args": ["tsx", "server/mcp/stdio.ts"], "description": "STDIO 传输入口,适用于 Claude Desktop、Cursor 等客户端,使用 API Key 进行鉴权。" }
-
基本使用方法
- 启动后:客户端可通过 MCP 服务器的 /mcp 端点进行请求(HTTP 传输)或通过 STDIO 的通信流进行交互。
- 常用路径与行为:
- /health:健康检查,返回服务器状态。
- /.well-known/oauth-protected-resource:OAuth 保护资源的元信息。
- /mcp:MCP 请求入口,支持 POST/GET/DELETE,POST 用于新会话或请求,DELETE 用于会话终止,GET 返回服务器信息。
- 安全与鉴权:
- 客户端在需要鉴权的请求中需通过 Authorization: Bearer <token> 提供访问令牌。
- 针对公开方法,服务器对无认证状态也可执行部分操作(具体请参阅 PUBLIC_METHODS 与 PUBLIC_TOOLS 设定)。
- 具体操作步骤(简化):
- 通过 HTTP 传输启动 MCP 服务。
- 使用新的会话进行 MCP 请求,或在现有会话中继续请求。
- 如需关闭会话,发送 DELETE 请求带会话标识。