mcp-test-mcp 是一个专门的 MCP(模型上下文协议)服务器,帮助 AI 助手测试其他 MCP 服务器。它解决了“循环中断”问题,即 AI 助手在测试自身 MCP 能力时遇到困难,因为它们无法看到自己的工具模式或执行结果。
可以将其视为一个测试框架,通过提供 AI 助手所需的可见性和控制能力,使 MCP 服务器的开发和调试变得容易得多。
mcp-test-mcp 具有独特的双重角色架构,专为测试而设计:
┌─────────────────────────────────────────────────────────────────────┐
│ 测试流程 │
└─────────────────────────────────────────────────────────────────────┘
用户/开发者
│
├─► Claude Desktop/Code (MCP 客户端)
│
├─► mcp-test-mcp (MCP 服务器角色)
│ └─ 通过 MCP 协议暴露测试工具
│ • connect_to_server
│ • list_tools, call_tool
│ • list_resources, read_resource
│ • list_prompts, get_prompt
│ • execute_prompt_with_llm
│
├─► mcp-test-mcp (MCP 客户端角色)
│
└─► 目标 MCP 服务器 (被测试的服务器)
└─ 正在开发/调试的服务器
服务器和客户端功能之间的耦合是有意为之且经过设计的:
这不是两个独立的关注点偶然合并的结果,而是一个测试框架,其中服务器角色将客户端能力作为可测试工具暴露出来。
代码库反映了这种双重角色:
src/mcp_test_mcp/server.py:FastMCP 服务器实例(向 Claude 暴露工具)src/mcp_test_mcp/connection.py:ConnectionManager(目标服务器的 MCP 客户端)src/mcp_test_mcp/tools/:桥接服务器和客户端角色的工具实现
connection.py:连接管理工具(使用 ConnectionManager)tools.py:工具测试工具(调用目标服务器的工具)resources.py:资源测试工具(读取目标服务器的资源)prompts.py:提示测试工具(获取目标服务器的提示)llm.py:LLM 集成(使用实际 LLM 执行提示)当你在 Claude 中调用 connect_to_server 工具时,实际上是:
这使得测试 MCP 服务器变得自然:Claude 调用工具,这些工具测试其他服务器。
在开发 MCP 服务器时,测试可能会令人沮丧。AI 助手不能与未配置的 MCP 服务器交互进行测试,有时会导致它们错误地认为工作的 MCP 代码是故障的,并通过转换为 REST/WebSocket 模式来“修复”它。
通过提供 AI 助手可以调用的原生 MCP 测试能力,mcp-test-mcp 防止了破坏性的“循环中断”,其中 AI 尝试 curl 命令失败后重写正常工作的代码。相反,AI 可以连接到用户正在开发的 MCP 服务器,列出其工具/资源/提示及其完整的模式,并执行测试调用——所有这些都是通过适当的 MCP 协议通信完成的。这使得快速验证部署的 MCP 服务器成为可能,并支持构建自信地消费 MCP 服务的代理。
MVP 专注于测试部署的 MCP 服务器(流式传输-http 运输),具有详细的可验证响应,防止 AI 幻想并允许人类验证结果的真实性。
mcp-test-mcp 解决了这个问题,通过为 AI 助手提供专用工具来:
这创建了一个测试工作流程,AI 助手可以有效地测试 MCP 服务器,清晰地报告问题,并全面验证功能。
{占位符} 替换)最简单的方法是使用 Claude Desktop 或 Claude Code。只需将其添加到您的 MCP 配置文件中:
配置文件位置:
~/Library/Application Support/Claude/claude_desktop_config.json使用 npx(推荐 - 不需要安装):
基本配置(大多数用户):
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"]
}
}
}
带 LLM 集成(可选):
{
"mcpServers": {
"mcp-test-mcp": {
"command": "npx",
"args": ["-y", "mcp-test-mcp"],
"env": {
"LLM_URL": "https://your-llm-endpoint.com/v1",
"LLM_MODEL_NAME": "your-model-name",
"LLM_API_KEY": "your-api-key"
}
}
}
}
使用 Claude Code CLI:
claude mcp add mcp-test-mcp -- npx -y mcp-test-mcp
前提条件:
npm 包会自动:
关于 LLM 配置的注意事项: env 部分是完全可选的。服务器和所有测试工具无需它也能运行。只有当您希望使用 execute_prompt_with_llm 工具进行端到端提示测试时才需要 LLM 配置。所有其他工具(连接、list_tools、call_tool、list_resources、list_prompts 等)无需任何 LLM 配置即可运行。
添加此配置后,请重启 Claude Code/Desktop 以使更改生效。
如果您希望直接开发或运行 mcp-test-mcp(不在 Claude 中):
使用 pip:
# 首先创建虚拟环境(必需)
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 安装包
pip install mcp-test-mcp
从源码:
# 克隆仓库
git clone https://github.com/example/mcp-test-mcp
cd mcp-test-mcp
# 创建并激活虚拟环境(必需)
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 使用开发依赖项安装
pip install -e ".[dev]"
使用标准 Python 与 Claude(替代方案):
如果您更喜欢使用 pip 安装的 Python 而不是 npx:
基本配置:
{
"mcpServers": {
"mcp-test-mcp": {
"command": "python",
"args": ["-m", "mcp_test_mcp"]
}
}
}
带 LLM 集成(可选):
{
服务器": {
"mcp-test-mcp": {
"command": "python",
"args": ["-m", "mcp_test_mcp"],
"env": {
"LLM_URL": "https://your-llm-endpoint.com/v1",
"LLM_MODEL_NAME": "your-model-name",
"LLM_API_KEY": "your-api-key"
}
}
}
}
配置说明已移至上面的 安装 部分。选择最适合您需求的安装方法:
execute_prompt_with_llm 工具需要 LLM 配置才能工作。所有其他工具无需任何 LLM 设置即可运行。
对于 Claude Desktop/Code 用户:
在您的 MCP 配置中添加 env 部分(参见上面安装部分中的示例):
"env": {
"LLM_URL": "https://your-llm-endpoint.com/v1",
"LLM_MODEL_NAME": "your-model-name",
"LLM_API_KEY": "your-api-key"
}
对于独立/本地开发:
在项目根目录创建一个 .env 文件:
# .env 文件
LLM_URL=https://your-llm-endpoint.com/v1
LLM_MODEL_NAME=your-model-name
LLM_API_KEY=your-api-key
该工具支持任何兼容 OpenAI 的 API 端点(包括 OpenAI、Azure OpenAI、通过 vLLM/Ollama 的本地模型以及企业端点)。
配置完成后,您可以立即开始通过与 Claude 的自然对话测试 MCP 服务器:
用户:"连接到我的本地 MCP 服务器 /path/to/server"
Claude 将:使用 connect_to_server 工具并显示:
用户:"它有哪些工具?"
Claude 将:使用 list_tools 工具并显示:
用户:"测试带有消息 'Hello MCP' 的 echo 工具"
Claude 将:使用 call_tool 工具并显示:
用户:"连接状态如何?"
Claude 将:使用 get_connection_status 工具并显示:
用户:"使用 LLM 执行带有该数据的 weather_report 提示"
Claude 将:使用 execute_prompt_with_llm 工具并显示:
用户:"从服务器断开连接"
Claude 将:使用 disconnect 工具并确认断开连接,同时显示最终统计信息。
mcp-test-mcp 提供14 个工具,按功能类别组织:
1. 连接 → 检查连接状态
2. 列出工具 → 了解可用功能
3. 调用每个工具 → 验证行为
4. 列出资源 → 检查资源功能
5. 读取资源 → 验证内容
6. 列出提示 → 检查提示模板
7. 获取提示 → 验证渲染
8. 使用 LLM 执行提示 → 测试端到端(新!)
9. 断开连接 → 清洁关闭
1. 连接到 MCP 服务器
2. 调用工具获取数据(例如,get_weather)
3. 使用 execute_prompt_with_llm 和数据执行提示
4. 验证 LLM 生成预期输出格式
5. 检查令牌使用量和性能指标
1. 尝试使用详细输出连接
2. 检查特定问题的错误消息
3. 验证传输类型(stdio 对比 HTTP)
4. 检查服务器日志以获取更多上下文
5. 使用 health_check 和 ping 测试基本连通性
1. 连接到服务器
2. 列出工具以获取完整模式
3. 与预期模式进行比较
4. 使用各种参数测试边缘情况
5. 验证无效输入的错误处理