MCP服务器代理工具

一个自动发现、健康检查并代理所有MCP服务器的元服务,提供跨项目的统一工具网关。

  • by mattyray
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mattyray/mcp-doc

使用说明

mcp医生

一个元MCP服务器,可以自动发现、健康检查和代理所有其他MCP服务器。添加一次——为每个项目中的每个工具提供一个通用的网关。

它的作用

mcp医生 扫描您的计算机,查找所有项目和IDE中配置的每个MCP服务器。它可以检查他们是否健康,搜索他们所有的工具,并从任何项目上下文调用任何服务器上的任何工具。

工具

工具 说明
list_servers 发现所有项目中的所有MCP服务器。扫描 ~/.claude.json, .mcp.json、游标和VS代码配置。
check_health 生成每台服务器,执行MCP握手,验证其是否响应。将结果保存到历史记录中。
server_history 显示特定服务器的过去健康检查结果和正常运行时间统计数据。
server_detail 对单个服务器进行深入检查:配置、实时健康检查、完整工具列表、跨项目重复。
list_all_tools 从所有服务器获取完整的工具目录——名称、描述和参数模式。
search_tools 在所有服务器上按关键字搜索工具。匹配工具名称和描述。
call_tool 调用任何发现的服务器上的任何工具。生成目标,通过MCP连接,调用工具,返回结果。

例子

问克劳德: “我的MCP服务器都正常吗?”

Health check complete (9 servers, 9.7s):

✓ totetaxi/langsmith              OK   1.2s  16 tools
✓ totetaxi/sentry                 OK   1.4s  22 tools
✓ store/sentry                    OK   1.2s  22 tools
✓ store/postgres-local            OK   0.9s   1 tools
✓ store/postgres-prod             OK   0.9s   1 tools
✓ store/redis                     OK   0.9s  45 tools
✓ store/netlify                   OK   1.3s   9 tools
✓ store/railway                   OK   1.1s  14 tools
✓ matt-website/google-analytics   OK   0.7s   6 tools

9 healthy, 0 failing

问克劳德: “在我的工具中搜索与问题相关的任何内容”

Found 14 tools matching "issue" across 2 servers:

totetaxi/sentry (7 tools):
  - list_issues(organization_slug: string, project_slug: string, ...) — List issues in a project
  - get_issue_details(issue_id: string) — Get details for a specific issue
  ...

store/sentry (7 tools):
  - list_issues(organization_slug: string, project_slug: string, ...) — List issues in a project
  ...

问克劳德: “检查我的谷歌分析流量” (来自任何项目)

[Proxied: matthew_raynor_website/google-analytics → run_report in 1.0s]

{ rows: [{ country: "United States", city: "New York", activeUsers: 6 }, ...] }

安装

添加到您的Claude代码配置中(~/.claude.json 全球,或 .mcp.json 每个项目):

{
  "mcpServers": {
    "doctor": {
      "command": "npx",
      "args": ["@mnraynor90/mcp-doc"]
    }
  }
}

重新启动IDE。就这样

运作原理

  1. 发现 --扫描Claude Code、Cursor和VS Code中的配置文件,以查找所有项目中的所有MCP服务器
  2. 健康检查 --将每个服务器生成为临时子进程,执行MCP握手,测量响应时间,然后清理
  3. 工具目录 --连接到服务器以获取具有参数类型的完整工具模式
  4. 代理 --按需生成目标服务器,验证工具是否存在,调用它,并返回结果
  5. 历史 --将结果保存到本地JSON文件 ~/.mcp-doc/history.json

它扫描什么

源 路径
克劳德代码(全球) ~/.claude.json → projects.*.mcpServers
克劳德代码(项目) <project>/.mcp.json
光标(全局) ~/.cursor/mcp.json
VS代码(项目) <project>/.vscode/mcp.json

设计决策

  • 零本地依赖。 原生Node.js插件(如 better-sqlite3)ABI不匹配导致IDE运行时崩溃。mcp-doc只使用纯JavaScript依赖项。
  • 无状态代理。 每 call_tool 调用会生成一个新的服务器进程——没有持久连接,没有泄漏状态。
  • 30秒超时。 所有操作都包含在 Promise.race() 以终止挂起的进程。
  • 凭证编辑。 list_servers 在输出中屏蔽令牌、API密钥和URL密码。
  • 审计日志记录。 每个代理 call_tool 调用被记录到历史文件中。
  • 自检防护装置。 mcp-doc不会自行生成,从而防止无限递归。

如何比较

mcp中心 MetaMCP mcp文档
设置 编写单独的配置 创建帐户+API密钥 零配置-自动查找
架构 代理 云代理+GUI 本地扫描仪+代理
跨项目 否 是(工作区) 是(自动扫描)
工具发现 否 是 是(搜索+目录)
健康历史记录 仅当前 仅当前 JSON历史记录,包含正常运行时间统计数据
隐私 本地 云 本地

发展

git clone https://github.com/mattyray/mcp-doc.git
cd mcp-doc
npm install
npm run build

技术栈

许可证

麻省理工学院