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
  • 服务器配置(给 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 请求带会话标识。

服务器信息