MCP诊断工具

MCP Toolbox是一款诊断MCP服务器的工具,用于验证MCP连接、检查请求头和令牌、确认路由行为,并在将代理指向真实后端之前测试网络或认证假设。

  • by AiGhostMod
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 AiGhostMod/mcpToolkit

使用说明

MCP工具箱

MCP Toolbox是一个诊断MCP服务器,用于查看客户端或代理通过线路发送的内容。当您需要在将代理指向真实后端之前验证MCP连接、检查标头和令牌、确认路由行为以及测试网络或身份验证假设时,它非常有用。

默认情况下,该服务会关闭有风险的HTTP诊断:使用 /mcp 对于MCP流量和 /healthz 对于探测器,可以选择仪表板端点。

[!警告] 仅用于测试/故障排除。使用风险自负。 此服务可以捕获请求标头、Cookie、身份验证值、正文、环境数据和最近的调用历史。如果你将真实的流量指向它,你可能会暴露真实的令牌、秘密或敏感的有效载荷。将其保存在受信任的环境中,并假设发送到它的任何内容都可能被检查。

使用Docker在本地运行

cd /path/to/MCP-Toolbox
docker build -t mcp-toolbox:local .
docker run --rm -p 8080:8080 mcp-toolbox:local

本地MCP URL:

  • http://127.0.0.1:8080/mcp

快速入门:使用二头肌部署到Azure容器应用程序

使用自动二头肌流将其部署到Azure:

  1. 登录Azure CLI:

    az login
    
  2. 复制 .env.example 到 .env 并设置你关心的值。至少,大多数用户只会触摸:

    • APP_NAME
    • RESOURCE_GROUP
    • LOCATION

    您还可以设置 ACR_NAME, CONTAINERAPPS_ENVIRONMENT, LOG_ANALYTICS_WORKSPACE_NAME, USER_ASSIGNED_IDENTITY_NAME, IMAGE_REPOSITORY,以及 IMAGE_TAG 如果你想要明确的控制。如果 ACR_NAME 如果留空,脚本将为您生成一个。

  3. 运行部署脚本:

    ./scripts/deploy_bicep.sh
    

该脚本创建了由二头肌支持的Azure资源,构建并推送容器映像,部署容器应用程序,运行冒烟测试,并打印最终的MCP URL。完成后,它使基础设施保持运行。

有关手动二头肌流、地形部署、清理、现有资源重用、额外配置旋钮和完整的操作指南,请参阅 README_advanced.md.

可用工具

工具 目的
debug_request_context 完整的请求/MCP快照,包括标头、身份验证材料、查询参数和正文。
inspect_request_auth 对标头、Cookie、查询参数和解码的JWT声明进行集中身份验证检查。
inspect_request_headers 显示服务器接收到的请求标头。
inspect_request_body 显示正文大小、解码文本、解析JSON和需要时的base64预览。
inspect_request_summary 方法、路径、调用者和转发链的紧凑视图。
inspect_mcp_envelope 显示解析的MCP/JSON-RPC信封。
inspect_recent_calls 从内存中返回最近捕获的通话记录。
inspect_runtime 返回运行时、进程、版本、正常运行时间和相关的服务器元数据。
inspect_routes 列出当前公开的FastAPI路由和方法。
inspect_environment 返回环境变量,可选择按前缀或名称进行筛选。
get_server_info 返回高级服务器标识和配置详细信息。
echo_payload 往返任意有效载荷,以便您可以比较发送和接收的内容。
http_probe 从容器内部发出出站HTTP请求。
tls_probe 执行TLS握手并报告证书和密码详细信息。
tcp_probe 尝试TCP连接并报告延迟和套接字详细信息。
dns_resolve 从正在运行的容器内部解析DNS。
decode_jwt 将类似JWT的令牌解码为标头、有效载荷和签名段。
get_caller_ip 返回服务器观察到的调用者IP。
utc_now 从正在运行的容器返回当前UTC时间。
add_numbers MCP调用流的简单算术健全性检查。

使用MCP工具箱测试Foundry MCP身份验证模式

MCP工具箱有意最好用作 未经验证的诊断端点。其价值在于,Foundry仍然可以使用任何支持的MCP身份验证模式(未经身份验证、基于密钥、Microsoft Entra身份模式或OAuth身份传递)连接到它,并且此服务器会向您准确显示传入呼叫的样子。

换句话说:Foundry应用身份验证模式,MCP Toolbox使您可以查看结果请求(inspect_request_headers, inspect_request_auth, debug_request_context).

实际应用

  1. 生产前验证身份验证模式 --使用不同的Foundry身份验证设置连接同一代理,并确认到达MCP端点的确切标头/令牌形状。
  2. 车载故障分诊 --当工具设置失败时(超时、401/403、错误的标头格式),立即检查真正的入站请求,而不是猜测中断在哪里。
  3. 安全和策略验证 --在将代理切换到真正受保护的MCP后端之前,证明只有预期的身份验证/上下文数据从Foundry转发。

Foundry中的示例使用

有用参考: