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、配置、以及工具实现均在仓内实现,便于二次扩展和自部署。