Cred MCP Server

使用说明

  • 项目简介
    • 该仓库实现了一个基于 MCP 的后端服务器(Cred MCP 服务器),用途是在 AI 代理/LLM 客户端(如 Claude Desktop)与 Cred 令牌委托系统之间提供标准化的上下文信息与能力。服务器核心职责包括:托管和管理 Resources(资源/数据),注册和执行 Tools(工具),以及定义/渲染 Prompt 模板等;服务器通过 JSON-RPC 与客户端通信,支持多种传输方式(如 Stdio、SSE、WebSocket 等)。本实现支持云模式(对接 Cred 云端 API)和本地模式(使用本地 Vault 存储令牌)。
  • 主要功能点
    • MCP 服务端实现:接收 ListTools、CallTool 等 MCP 请求,返回工具定义、执行工具调用,并提供错误/结果信息。
    • 工具集合:cred_delegate、cred_use、cred_status、cred_revoke 等工具,用于委托令牌、发起受控 API 调用、查询连接状态、撤销连接等功能。
    • 本地与云模式:本地模式通过本地 Vault 存储并自动刷新令牌;云模式通过 Cred API 代理委托。
    • 安全性与保护:在内存中缓存 Delegation Token,避免原始 access_token 外泄;实现 SSRF 防护(isAllowedUrl),对目标 URL 进行严格校验,防止提示注入窃取令牌。
    • 传输与启动:提供 stdio(命令行输入输出)传输,方便 Claude Desktop 等 MCP 客户端集成。
  • 安装与运行
    • 环境要求:Node.js 版本 18 及以上。
    • 安装与构建:在包含 packages/mcp 的工作区中安装依赖并构建(仓库提供完整的 TypeScript 实现,可直接通过 npm/yarn 安装工作区依赖)。
    • 启动方式(CLI 入口)
      • 直接通过 CLI 启动:npx @credninja/mcp
      • 本地/云模式切换:
        • 云模式(默认):通过环境变量提供对 Cred 云端的聚合授权信息。
        • 本地模式:通过 --local 或 CRED_MODE=local 启用本地 Vault 模式。
  • 服务器配置(给 MCP 客户端的配置示例) 注:MCP 客户端本身不需要配置文件,以下配置用于 Claude Desktop(或其他接入 MCP 的运行时)来描述服务器启动方式与入口。请勿在配置中放置明文凭证,请依据需求选择云模式或本地模式的参数。
    • 云模式示例配置(启动 Cred MCP 服务器的命令及参数说明) { "serverName": "cred-mcp", "command": "npx", "args": ["-y", "@credninja/mcp"], "notes": "这是用于 Claude Desktop 等 MCP 客户端的服务器启动指令。云模式下需要以下环境变量:CRED_AGENT_TOKEN、CRED_APP_CLIENT_ID、CRED_BASE_URL(可选,默认 https://api.cred.ninja)。" }
    • 云模式参数说明(注释性):
      • serverName:服务器实例名称,便于在集成环境中区分
      • command:启动命令
      • args:启动参数
      • 运行时所需环境变量(示例)
        • CRED_AGENT_TOKEN:Cred 云端代理所需的代理令牌
        • CRED_APP_CLIENT_ID:Cred 应用客户端 ID
        • CRED_BASE_URL:Cred API 的基准 URL(默认 https://api.cred.ninja)
    • 本地模式示例配置(本地 Vault 模式) { "serverName": "cred-mcp-local", "command": "npx", "args": ["-y", "@credninja/mcp"], "notes": "本地模式通过本地 Vault 存储令牌,需提供 Vault 相关参数:CRED_VAULT_PASSPHRASE、CRED_VAULT_PATH、CRED_VAULT_STORAGE、CRED_PROVIDERS。" }
    • 本地模式参数说明(注释性):
      • CRED_VAULT_PASSPHRASE:本地 Vault 的加密密钥口令
      • CRED_VAULT_PATH:Vault 数据文件路径
      • CRED_VAULT_STORAGE:存储后端,sqlite 或 file
      • CRED_PROVIDERS:提供者凭证配置,格式如 "google:clientId:clientSecret,github:clientId:clientSecret"(用于自动集成的本地模式)
  • 基本使用方法
    • 启动服务器后,客户端(Claude Desktop 等)即可通过 MCP 的标准请求向服务器请求 delegated tokens 或执行相关工具。
    • 本地模式下,需事先在 Vault 中存储提供者的 userToken,服务器启动后会对到期 token 自动刷新(需要提供适配器信息)。
    • 安全性要点:Token 仅在服务器端使用,LLM 不直接暴露原始 access_token;SSRF 保护通过 isAllowedUrl 实现,避免将令牌发送到任意外部地址。
  • 备注
    • 项目中包含完整的服务器端实现、token 缓存、工具定义及对应处理逻辑,且包含单元测试验证核心行为。
    • Clause/CLI、配置、以及工具实现均在仓内实现,便于二次扩展和自部署。

服务器信息