使用说明
MCP服务器测试仪
一个专用的MCP服务器,用于使用STDIO模式测试其他MCP服务器,用TypeScript实现。
特性
- 连接测试:验证目标MCP服务器的基本连接和初始化
- 能力发现:自动发现并列出所有工具、资源和提示
- 工具调用测试:测试特定工具以确保其正常工作
- 清晰的测试报告:以结构化、可读的格式显示测试过程和结果
安装
使用npx(推荐)
您可以直接从GitHub运行MCP Tester,无需安装:
npx github:Peterpan-MU/MCP-Test
本地安装
# Clone the repository
git clone https://github.com/Peterpan-MU/MCP-Test.git
cd MCP-Test
# Install dependencies
npm install
# Build the project
npm run build
用法
方法1:作为独立的MCP服务器
在您的MCP客户端(例如Claude Desktop)中配置此服务器:
选项A:直接来自GitHub(推荐)
{
"mcpServers": {
"mcp-tester": {
"command": "npx",
"args": ["-y", "github:Peterpan-MU/MCP-Test"]
}
}
}
选项B:使用包名(本地安装后)
# First, install globally or link locally
npm install -g github:Peterpan-MU/MCP-Test
# or
cd MCP-Test && npm link
然后配置:
{
"mcpServers": {
"mcp-tester": {
"command": "npx",
"args": ["mcp-server-tester"]
}
}
}
方案C:地方发展
{
"mcpServers": {
"mcp-tester": {
"command": "node",
"args": ["E:\\MCP Test\\dist\\index.js"]
}
}
}
然后从MCP客户端调用测试工具。
方法2:直接运行测试
# If installed locally
npm test
# Or run directly with npx
git clone https://github.com/Peterpan-MU/MCP-Test.git
cd MCP-Test
npm install
npm test
可用工具
1.测试服务器连接
测试目标MCP服务器的基本连接能力。
参数:
command(string):启动命令,例如“node”、“python”、“uvx”args(array):命令参数,例如[“server.js”]env(对象,可选):环境变量
示例:
{
"command": "node",
"args": ["/path/to/your_server.js"],
"env": {
"API_KEY": "your_key"
}
}
输出:详细的连接测试报告,包括:
- 连接状态
- 初始化结果
- 测试过程步骤
2.测试服务器能力
全面测试目标MCP服务器的所有功能。
参数:
command(string):启动命令args(数组):命令参数env(对象,可选):环境变量
示例:
{
"command": "node",
"args": ["/path/to/your_server.js"]
}
输出:完整的能力报告,包括:
- 所有可用工具列表及说明
- 所有可用资源列表
- 所有可用提示列表
- 每种能力类型的统计数据
3.测试工具调用
在目标MCP服务器上测试调用特定工具。
参数:
command(string):启动命令args(数组):命令参数env(对象,可选):环境变量test_tool(string):要测试的工具名称tool_arguments(object,可选):传递给工具的参数
示例:
{
"command": "node",
"args": ["/path/to/your_server.js"],
"test_tool": "echo",
"tool_arguments": {
"message": "Hello, MCP!"
}
}
输出:工具调用测试报告,包括:
- 通话是否成功
- 返回内容
- 是否发生错误
测试示例
示例1:测试一个简单的Node.js MCP服务器
假设您有一个名为的MCP服务器 simple_server.js:
- 连接测试:
{
"command": "node",
"args": ["/servers/simple_server.js"]
}
- 能力测试:
{
"command": "node",
"args": ["/servers/simple_server.js"]
}
- 工具调用测试 (假设服务器有一个“get_time”工具):
{
"command": "node",
"args": ["/servers/simple_server.js"],
"test_tool": "get_time",
"tool_arguments": {}
}
示例2:测试Python MCP服务器
{
"command": "python",
"args": ["/servers/python_server.py"]
}
示例3:测试通过uvx安装的MCP服务器
{
"command": "uvx",
"args": ["mcp-server-time"]
}
样品测试报告
连接测试报告
============================================================
🧪 MCP Server 连接测试报告
============================================================
📋 测试配置:
命令: node
参数: server.js
🔄 测试过程:
🔌 正在连接到目标MCP Server...
✅ 连接初始化成功
✅ 基本连接测试通过
🎉 所有测试步骤完成
✅ 测试结果: 成功
状态: connected
消息: 目标服务器成功响应初始化请求
============================================================
能力测试报告
============================================================
🧪 MCP Server 能力测试报告
============================================================
📋 测试配置:
命令: node
参数: server.js
🔄 测试过程:
🔌 正在连接到目标MCP Server...
✅ 连接初始化成功
🔍 正在获取服务器能力...
📦 发现 3 个工具
📚 发现 0 个资源
💬 发现 0 个提示词
✅ 能力测试完成
🎉 所有测试步骤完成
✅ 测试结果: 成功
📦 工具列表 (3):
1. echo
描述: Echo back the provided message
2. add
描述: Add two numbers together
3. get_time
描述: Get current time
📚 资源列表 (0):
(无资源或不支持)
💬 提示词列表 (0):
(无提示词或不支持)
============================================================
配置文件
参见 test_config_example.json 了解如何配置多个测试服务器和测试场景。
故障排除
问题:MCP错误-32000:连接已关闭
此错误通常意味着MCP客户端无法与服务器建立连接。
解决方案:
-
尝试使用选项C(本地路径):
{ "mcpServers": { "mcp-tester": { "command": "node", "args": ["E:\\MCP Test\\dist\\index.js"] } } } -
验证npx是否可以找到该包:
npx -y github:Peterpan-MU/MCP-Test然后键入一个测试JSON-RPC请求:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}} -
检查Node.js版本:
node --version # Should be >= 18.0.0 -
尝试清除npx缓存:
npx clear-npx-cache # or rm -rf ~/.npm/_npx -
先在本地安装:
npm install -g github:Peterpan-MU/MCP-Test然后使用
"args": ["mcp-server-tester"]在配置中
问题:连接超时(-32001)
解决方案:
- 确保安装了最新版本(dist/文件是预先构建的,不需要编译)
- 如果使用带有GitHub URL的npx,请检查网络连接
- 尝试本地安装选项
问题:工具调用失败
解决方案:
- 使用
test_server_capabilities首先查看可用工具 - 检查刀具参数是否正确
- 验证目标服务器路径和依赖关系
问题:导入错误
解决方案:
cd "E:\MCP Test"
npm install
npm run build
技术细节
- 运输方式:STDIO(标准输入/输出)
- 语言:TypeScript
- 运行时:Node.js 18+
- MCP SDK版本: 1.0.4+
- 并发模型:使用Promises异步/等待
项目结构
MCP-Test/
├── src/
│ ├── index.ts # Main MCP Tester server
│ ├── tester.ts # Testing logic implementation
│ ├── example-server.ts # Example server for testing
│ └── test.ts # Test runner script
├── dist/ # Compiled JavaScript (generated)
├── package.json # NPM package configuration
├── tsconfig.json # TypeScript configuration
├── requirements.txt # Python dependencies (legacy)
├── README.md # This file
├── LICENSE # MIT License
├── .gitignore # Git ignore rules
└── test_config_example.json # Configuration examples
发展
构建项目
npm run build
观看模式(开发)
npm run dev
运行测试
npm test
发布到npm(可选)
要将此包发布到npm以便于访问:
# Login to npm (first time only)
npm login
# Publish the package
npm publish
发布后,用户可以运行:
npx mcp-server-tester
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
贡献
欢迎问题和拉取请求!
相关资源
更新日志
版本1.0.0(TypeScript)
- 完全重写TypeScript
- 支持npx安装
- 改进了类型安全性和错误处理
- 更好地与Node.js生态系统集成
版本0.1.0(Python-遗留)
- Python的初始实现
- 基本测试能力
- STDIO模式支持