使用说明
mcptest
MCP(模型上下文协议)服务器的零配置测试运行器
特性
- 零配置 --自动检测您的MCP服务器
package.json或mcptest.config.ts - 协议合规性测试 --验证是否符合MCP规范2025-06-18
- 模式验证 --检查
inputSchema针对JSON模式的每个工具 - JUnit XML输出 --降低CI/CD集成
--reporter junit - 苏格兰和南方能源公司运输支持 --通过stdio或服务器发送事件测试服务器
- 快速启动 --500ms以下冷启动
安装
# Global install
npm install -g @ricker-np/mcptest
# Or use directly with npx
npx mcptest run
快速开始
步骤1:在MCP服务器项目中安装mcptest
cd my-mcp-server
npm install --save-dev @ricker-np/mcptest
第二步:运行mcptest
npx mcptest run
步骤3:mcptest自动检测您的服务器并运行测试
mcptest读取您的 package.json 要找到服务器入口点,请通过stdio连接,并自动为服务器公开的每个工具生成和运行协议合规性测试。
mcptest v0.1.0
Auto-detected server: node dist/index.js (stdio)
initialize PASS
tools/list PASS
tools/call: add PASS
tools/call: subtract PASS
Schema: add PASS
Schema: subtract PASS
6 passed 0 failed (312ms)
步骤4:修复任何失败结果
每个故障都包含一个明确的信息,解释出了什么问题以及如何修复:
tools/call: divide FAIL
Error: Tool response missing required field "content"
Expected: { content: [...] }
Received: { result: 0 }
步骤5:与CI/CD集成
在您的管道中添加JUnitXML输出以跟踪测试结果:
npx mcptest run --reporter junit --output test-results.xml
命令
mcptest run [options]
对MCP服务器运行协议合规性和模式测试。
| 选项 | 默认值 | 描述 |
|---|---|---|
--server <cmd> |
自动检测 | 服务器启动命令(例如。 node dist/index.js) |
--transport <type> |
stdio |
运输类型: stdio 或 sse |
--url <url> |
-- | SSE服务器URL(需要时 --transport sse) |
--timeout <ms> |
30000 |
每次测试超时(毫秒) |
--reporter <type> |
default |
输出格式: default 或 junit |
--output <file> |
-- | 将报告写入文件(需要 --reporter junit) |
--mode <mode> |
conservative |
测试生成模式: conservative 或 strict |
mcptest validate [target] [options]
验证工具 inputSchema 定义,而无需运行实时服务器。
| 选项 | 默认值 | 描述 |
|---|---|---|
[target] |
. |
MCP服务器源代码或构建文件的路径 |
--strict |
false |
警告和错误失败 |
mcptest init [options]
初始化a mcptest.config.ts 当前目录中的配置文件。
| 选项 | 默认值 | 描述 |
|---|---|---|
--transport <type> |
stdio |
在生成的配置中预填充传输类型 |
配置
创建 mcptest.config.ts 在项目根目录中覆盖默认值:
import type { McptestConfig } from '@ricker-np/mcptest';
export default {
server: 'node dist/index.js',
transport: 'stdio',
timeout: 30000,
mode: 'conservative',
} satisfies Partial<McptestConfig>;
配置文件是可选的——mcptest在没有配置文件的情况下通过自动检测服务器来工作。
CI/CD集成
GitHub 操作
name: MCP Protocol Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run build
- run: npx mcptest run --reporter junit --output test-results.xml
- uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: test-results.xml
JUnitXML输出与GitHub Actions测试报告、Jenkins、GitLab CI和大多数其他CI系统兼容。
许可证
麻省理工学院——见 许可证 了解详情。
