小狗测试mcp
MCP(模型上下文协议)服务器,用于管理Apidog测试用例、场景、套件和测试数据。为AI助手提供对Apidog测试管理功能的完全读/写访问权限。
此项目不是Apidog的官方集成。
特性
- 测试用例 --为API端点创建、读取、更新、删除和批量创建测试用例
- 测试场景 --构建链接多个API调用的多步骤测试流
- 测试套件 --将测试组织到可运行的CI/CD套件中
- 测试数据 --使用CSV格式的数据管理数据驱动的测试迭代
- 文件夹 --将场景和套件组织到嵌套的文件夹结构中
- 只读工具 --列出环境、端点、类别、标签、跑步者和覆盖率统计信息
文档
docs/PRACTICAL-USAGE.md --用于创建稳定测试用例/场景/套件的经过验证的模式SECURITY.md --漏洞报告和安全使用指南CONTRIBUTING.md --贡献工作流程CHANGELOG.md --发行说明
安装
npm install -g @acabala/apidog-tests-mcp
或者直接与npx一起使用:
npx @acabala/apidog-tests-mcp
配置
服务器需要以下环境变量:
| 变量 | 必填 | 描述 |
|---|
APIDOG_ACCESS_TOKEN | 是 | 您的Apidog访问令牌 |
APIDOG_PROJECT_ID | 是 | Apidog项目ID |
APIDOG_BRANCH_ID | 是 | 要使用的分支ID |
APIDOG_BASE_URL | 否 | 覆盖API基础URL(默认值: https://api.apidog.com/api/v1) |
MCP客户端配置
添加到MCP客户端配置(例如Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"apidog-tests": {
"command": "npx",
"args": ["@acabala/apidog-tests-mcp"],
"env": {
"APIDOG_ACCESS_TOKEN": "your-token",
"APIDOG_PROJECT_ID": "your-project-id",
"APIDOG_BRANCH_ID": "your-branch-id"
}
}
}
}
推荐的代币实践
- 使用专用令牌进行自动化。
- 范围访问所需的最低Apidog项目。
- 定期旋转令牌。
- 保持MCP客户端配置文件本地/私有。
可用工具
只读
| 工具 | 说明 |
|---|
list_environments | 列出所有具有基本URL的环境 |
list_api_endpoints | 列出API端点树(可按模块和名称进行筛选) |
list_test_case_categories | 列出测试用例类别 |
list_test_case_tags | 列出可用标签 |
list_runners | 列出自托管测试运行者 |
get_endpoint_statistics | 获取测试覆盖率统计数据 |
测试用例
| 工具 | 说明 |
|---|
list_test_cases | 列出所有测试用例(可按端点筛选) |
get_test_case | 获取完整的测试用例详细信息 |
create_test_case | 为端点创建测试用例 |
create_test_cases_bulk | 一次创建多个测试用例 |
update_test_case | 更新测试用例(GET然后合并) |
delete_test_case | 删除测试用例 |
测试场景
| 工具 | 说明 |
|---|
list_test_scenarios | 列出具有文件夹结构的场景 |
get_test_scenario_steps | 获取场景的步骤 |
create_test_scenario | 创建多步骤测试场景 |
update_test_scenario_steps | 设置/替换场景步骤 |
delete_test_scenario | 删除场景 |
测试套件
| 工具 | 说明 |
|---|
list_test_suites | 列出具有文件夹结构的套件 |
get_test_suite | 获取全套套房详情 |
create_test_suite | 创建测试套件 |
update_test_suite_items | 设置套件项目(静态/动态组) |
delete_test_suite | 删除套件 |
测试数据
| 工具 | 说明 |
|---|
list_test_data | 列出测试用例的测试数据记录 |
get_test_data | 使用CSV行和列获取测试数据 |
create_test_data | 为测试用例创建测试数据 |
update_test_data | 更新测试数据(GET然后合并) |
delete_test_data | 删除测试数据记录 |
文件夹
| 工具 | 说明 |
|---|
create_scenario_folder | 创建场景文件夹 |
delete_scenario_folder | 删除场景文件夹 |
create_suite_folder | 创建套件文件夹 |
发展
# Install dependencies
npm install
# Run in development mode
npm run start:dev
# Type check
npm run typecheck
# Format
npm run format
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Build for production
npm run build
安全
- 使用具有最低所需权限的专用自动化令牌。
- 永不承诺
APIDOG_ACCESS_TOKEN 或特定于环境的ID。 - 保持本地MCP客户端配置文件私有。
- 看
SECURITY.md 报告和应对政策。
发布和版本控制
此存储库使用变更集和GitHub Actions发布工作流:
- 为用户可见的更改添加更改集:
npm run changeset - 发布自动化在以下位置创建/更新版本PR
main - 合并发布PR发布到npm并注明出处
开源指南
- 贡献指南:
CONTRIBUTING.md - 行为准则:
CODE_OF_CONDUCT.md - 变更日志:
CHANGELOG.md
实用技巧
- 始终包括
path 和 parameters.path 创建路由参数化测试用例时。 - 对于更新操作,更喜欢此服务器的合并样式工具,而不是原始的完整替换有效负载。
- 使用
customScript 用于断言的后处理器,以避免声明性断言的运行器问题。 - 看
docs/PRACTICAL-USAGE.md 查看完整示例。
项目结构
src/
index.ts Entry point, registers tools and starts MCP server
client.ts ApidogClient HTTP wrapper with auth headers
types.ts Shared TypeScript interfaces and MCP result helpers
errors.ts Custom error classes (ApidogApiError, ApidogConfigError)
schemas.ts Shared Zod schemas for request parameters
tools/
read.ts Read-only tools (environments, endpoints, categories, etc.)
test-cases.ts Test case CRUD tools
test-scenarios.ts Test scenario CRUD tools
test-suites.ts Test suite CRUD tools
test-data.ts Test data CRUD tools
folders.ts Folder management tools
许可证
MIT许可证