MCP服务器测试工具

一个用于测试其他MCP服务器的专用工具,支持连接测试、能力发现和工具调用测试等功能。

  • by Peterpan-MU
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Peterpan-MU/MCP-Test

使用说明

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:

  1. 连接测试:
{
  "command": "node",
  "args": ["/servers/simple_server.js"]
}
  1. 能力测试:
{
  "command": "node",
  "args": ["/servers/simple_server.js"]
}
  1. 工具调用测试 (假设服务器有一个“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客户端无法与服务器建立连接。

解决方案:

  1. 尝试使用选项C(本地路径):

    {
      "mcpServers": {
        "mcp-tester": {
          "command": "node",
          "args": ["E:\\MCP Test\\dist\\index.js"]
        }
      }
    }
    
  2. 验证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"}}}
    
  3. 检查Node.js版本:

    node --version  # Should be >= 18.0.0
    
  4. 尝试清除npx缓存:

    npx clear-npx-cache
    # or
    rm -rf ~/.npm/_npx
    
  5. 先在本地安装:

    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模式支持