🚀 API Tester MCP Server
API Tester MCP Server 是一款全面的模型上下文协议(MCP)服务器,专为 QA/SDET 工程师打造。它具备强大的 API 测试能力,支持 Swagger/OpenAPI 和 Postman 集合,能显著提升测试效率和质量。

🎉 现已在 NPM 上可用! 使用 npx @kirti676/api-tester-mcp@latest 进行安装
🆕 新特性
- ✅ 增强的进度跟踪 - 实时显示进度,包含完成百分比和预计完成时间(ETA)
- ✅ 可视化进度条 - ASCII 进度条搭配里程碑通知
- ✅ 性能指标 - 吞吐量计算和执行摘要
- ✅ 已发布到 NPM - 可通过 NPX 立即安装
- ✅ VS Code 集成 - 一键安装按钮
- ✅ 简化设置 - 无需手动安装 Python
- ✅ 跨平台支持 - 支持 Windows、macOS 和 Linux
- ✅ 自动更新 - 使用
@latest 始终获取最新版本
🚀 快速开始
安装
API Tester MCP 服务器可以直接使用 npx 运行,无需安装:
npx @kirti676/api-tester-mcp@latest
快速安装:

Claude Desktop
按照 MCP 安装 指南,使用以下标准配置:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
其他 MCP 客户端
标准配置适用于大多数 MCP 客户端:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
支持的客户端:
Python 安装(可选)
pip install api-tester-mcp
从源代码安装
git clone https://github.com/kirti676/api_tester_mcp.git
cd api_tester_mcp
npm install
⚡ 快速上手
立即尝试 API Tester MCP 服务器:
npx @kirti676/api-tester-mcp@latest
npx @kirti676/api-tester-mcp@latest --version
npx @kirti676/api-tester-mcp@latest --help
对于像 Claude Desktop 这样的 MCP 客户端,使用以下配置:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
✨ 主要特性
- 📥 输入支持:支持 Swagger/OpenAPI 文档和 Postman 集合
- 🔄 测试生成:自动生成 API 和负载测试场景
- 🌐 多语言支持:支持在 TypeScript/Playwright、JavaScript/Jest、Python/pytest 等多种语言和框架中生成测试代码
- ⚡ 测试执行:运行生成的测试并提供详细报告
- 🔐 智能认证检测:自动分析环境变量并提供设置指导
- 🔐 认证支持:通过
set_env_vars 支持Bearer令牌和 API 密钥认证
- 📊 HTML 报告:通过 MCP 资源提供美观、易访问的报告
- 📈 实时进度跟踪:通过进度条和完成百分比实时更新进度
- ⏱️ ETA 计算:为所有操作计算预计完成时间
- 🎯 里程碑跟踪:在关键进度里程碑(25%、50%、75% 等)提供特殊通知
- 📊 性能指标:吞吐量计算和执行摘要
- ✅ 模式验证:根据模式示例自动生成请求体
- 🎯 断言支持:针对每个端点进行状态码断言(2xx、4xx、5xx)
- 📦 项目生成:生成包含依赖项和配置的完整项目脚手架
🌐 多语言测试生成
API Tester MCP 现在支持在多种编程语言和测试框架中生成测试代码:
支持的语言/框架组合
| 语言 |
框架 |
描述 |
使用场景 |
| TypeScript |
Playwright |
具有出色 API 支持的现代端到端测试框架 |
企业级 Web 应用程序 |
| TypeScript |
Supertest |
专注于 Express.js 的 API 测试框架 |
Node.js 后端服务 |
| JavaScript |
Jest |
流行的测试框架,生态系统丰富 |
通用 API 测试 |
| JavaScript |
Cypress |
提供出色开发体验的端到端测试框架 |
全栈应用程序 |
| Python |
pytest |
具有丰富的夹具和插件的综合测试框架 |
数据密集型 API 和机器学习服务 |
| Python |
requests |
用于快速验证的简单 HTTP 测试框架 |
快速原型开发和脚本编写 |
语言选择工作流程
const languages = await mcp.call("get_supported_languages");
await mcp.call("ingest_spec", {
spec_type: "openapi",
content: spec_content,
preferred_language: "typescript",
preferred_framework: "playwright"
});
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
生成的项目结构
generate_project_files 工具会创建一个完整的、可直接运行的项目:
TypeScript + Playwright:
my-api-tests/
├── package.json # 依赖项和脚本
├── playwright.config.ts # Playwright 配置
├── tests/
│ └── api.spec.ts # 生成的测试代码
└── README.md # 设置说明
Python + pytest:
my-api-tests/
├── requirements.txt # Python 依赖项
├── pytest.ini # pytest 配置
├── tests/
│ └── test_api.py # 生成的测试代码
└── README.md # 设置说明
JavaScript + Jest:
my-api-tests/
├── package.json # 依赖项和脚本
├── jest.config.js # Jest 配置
├── tests/
│ └── api.test.js # 生成的测试代码
└── README.md # 设置说明
框架特定特性
- Playwright:浏览器自动化、并行执行、详细报告
- Jest:快照测试、模拟、开发时的监视模式
- pytest:夹具、参数化测试、丰富的插件生态系统
- Cypress:交互式调试、时间旅行调试、真实浏览器测试
- Supertest:Express.js 集成、中间件测试
- requests:简单的 API 调用、会话管理、认证助手
📈 进度跟踪
API Tester MCP 为所有操作提供全面的进度跟踪:
可视化进度指示器
🎯 API 测试执行: [██████████░░░░░░░░░░] 50.0% (5/10) | ETA: 2.5s - GET /api/users ✅
特性:
- 进度条:带有填充/空指示符的 ASCII 进度条
- 完成百分比:实时显示完成百分比
- ETA 计算:根据当前性能计算预计完成时间
- 里程碑通知:在关键进度点进行特殊高亮显示
- 性能指标:吞吐量和计时统计
- 操作上下文:详细的当前执行步骤信息
适用场景:
- 场景生成
- 测试用例生成
- API 测试执行
- 负载测试执行
- 所有长时间运行的操作
🛠️ MCP 工具
服务器提供 10 个全面的 MCP 工具:
ingest_spec - 加载 Swagger/OpenAPI 或 Postman 集合,并指定语言偏好
get_supported_languages - 获取支持的编程语言和框架列表(新特性!)
get_env_var_suggestions - 获取详细的环境变量设置指导
set_env_vars - 配置认证和环境变量
generate_scenarios - 根据规范创建测试场景
generate_test_cases - 将场景转换为所选语言/框架中的可执行测试用例(增强功能!)
generate_project_files - 生成包含依赖项和配置的完整项目(新特性!)
run_api_tests - 执行 API 测试并提供详细结果
run_load_tests - 执行性能/负载测试
get_session_status - 获取当前会话信息
📚 MCP 资源
file://reports - 列出所有可用的测试报告
file://reports/{report_id} - 访问单个 HTML 测试报告
💡 MCP 提示
create_api_test_plan - 生成全面的 API 测试计划
analyze_test_failures - 分析测试失败原因并提供建议
🔧 智能环境变量分析
API Tester MCP 现在可以自动分析您的 API 规范,检测所需的环境变量并提供有用的设置指导:
自动检测
- 认证方案:Bearer 令牌、API 密钥、基本认证、OAuth2
- 基础 URL:从规范的服务器/主机中提取
- 模板变量:Postman 集合变量,如
{{baseUrl}}、{{authToken}}
- 路径参数:路径中的动态值,如
/users/{userId}
智能建议
const result = await mcp.call("ingest_spec", {
spec_type: "openapi",
content: openapi_json_string
});
console.log(result.setup_message);
const suggestions = await mcp.call("get_env_var_suggestions");
console.log(suggestions.setup_instructions);
🔧 配置示例
const languages = await mcp.call("get_supported_languages");
console.log(languages.supported_combinations);
await mcp.call("ingest_spec", {
spec_type: "openapi",
content: openapi_json_string,
preferred_language: "typescript",
preferred_framework: "playwright"
});
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com",
"auth_bearer": "your-bearer-token",
"auth_apikey": "your-api-key"
}
});
await mcp.call("generate_scenarios", {
include_negative_tests: true,
include_edge_cases: true
});
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
await mcp.call("run_api_tests", {
max_concurrent: 5
});
📖 完整工作流示例
以下是测试 Petstore API 的完整示例:
npx @kirti676/api-tester-mcp@latest
然后在您的 MCP 客户端(如 Claude Desktop)中:
await mcp.call("ingest_spec", {
kind: "openapi",
path_or_text: "https://petstore.swagger.io/v2/swagger.json"
});
await mcp.call("set_env_vars", {
pairs: {
"baseUrl": "https://petstore.swagger.io/v2",
"auth_apikey": "special-key"
}
});
const tests = await mcp.call("get_generated_tests");
const result = await mcp.call("run_api_tests");
const reports = await mcp.call("list_resources", {
uri: "file://reports"
});
📖 使用示例
基本 API 测试工作流
-
摄入 API 规范
{
"tool": "ingest_spec",
"params": {
"spec_type": "openapi",
"content": "{ ... your OpenAPI spec ... }"
}
}
-
配置认证
{
"tool": "set_env_vars",
"params": {
"variables": {
"auth_bearer": "your-token",
"baseUrl": "https://api.example.com"
}
}
}
-
生成并运行测试
{
"tool": "generate_scenarios",
"params": {
"include_negative_tests": true
}
}
-
查看结果
- 通过 MCP 资源访问 HTML 报告
- 获取会话状态和统计信息
负载测试
{
"tool": "run_load_tests",
"params": {
"users": 10,
"duration": 60,
"ramp_up": 10
}
}
🔍 测试生成特性
- 正向测试:发送有效请求并期望 2xx 响应
- 负向测试:测试无效认证(401)、错误方法(405)等情况
- 边界情况测试:测试大负载、边界条件等情况
- 基于模式的请求体:根据 OpenAPI 模式自动生成请求体
- 全面断言:对状态码、响应时间、内容进行验证
📊 HTML 报告
生成的报告包括:
- 测试执行摘要,包含通过/失败统计信息
- 详细的测试结果,包含计时信息
- 断言细分和错误详情
- 响应预览和调试信息
- 移动友好的响应式设计
🔒 认证支持
- Bearer 令牌:通过
auth_bearer 环境变量设置
- API 密钥:通过
auth_apikey 环境变量设置(作为 X-API-Key 头发送)
- 基本认证:通过
auth_basic 环境变量设置
🔧 要求
- Python:3.8 或更高版本
- Node.js:14 或更高版本(用于 npm 安装)
📦 依赖项
Python 依赖项
- fastmcp>=0.2.0
- pydantic>=2.0.0
- aiohttp>=3.8.0
- jinja2>=3.1.0
- pyyaml>=6.0
- jsonschema>=4.0.0
- faker>=19.0.0
Node.js 依赖项
🔧 故障排除
常见问题
NPX 命令不起作用
npm install -g @kirti676/api-tester-mcp@latest
node ./node_modules/@kirti676/api-tester-mcp/cli.js
未找到 Python
python --version
pip install fastmcp>=0.2.0 pydantic>=2.0.0 requests>=2.28.0
MCP 客户端连接问题
- 确保 MCP 服务器在标准输入输出传输上运行(默认设置)
- 检查您的 MCP 客户端是否支持最新的 MCP 协议版本
- 验证配置 JSON 语法是否正确
获取帮助
- 查看 Examples 目录以获取工作配置示例
- 查看 PROGRESS_TRACKING.md 以获取详细的进度跟踪文档
- 使用
--verbose 标志运行以获取详细日志
- 在 GitHub Issues 上报告问题
🤝 贡献
- Fork 仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature)
- 提交您的更改 (
git commit -m 'Add some amazing feature')
- 将更改推送到分支 (
git push origin feature/amazing-feature)
- 打开 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
🐛 问题与支持
📈 路线图
- [x] 多语言测试生成 - 支持 TypeScript/Playwright、JavaScript/Jest、Python/pytest ✨ 新特性!
- [x] 完整项目生成 - 生成包含依赖项和配置的完整项目脚手架 ✨ 新特性!
- [ ] GraphQL API 支持
- [ ] 额外的认证方法(OAuth2、JWT)
- [ ] Go/Golang 测试生成(使用 testify/ginkgo)
- [ ] C#/.NET 测试生成(使用 NUnit/xUnit)
- [ ] 性能监控和警报
- [ ] 与 CI/CD 管道集成(GitHub Actions、Jenkins)
- [ ] 从示例和模式生成高级测试数据
- [ ] 支持 Pact 的 API 契约测试
- [ ] 开发模拟服务器生成功能
为 QA/SDET 工程师用心打造 ❤️