关于 Testrail Mcp Server
TestRail MCP Server 是一个开源的 MCP 服务,通过 TestRail API v2 让 Claude、Cursor、Windsurf 和 VS Code 等 AI 助手直接管理测试用例、测试运行与结果。面向 QA 工程师,也可通过配套命令行在 CI/CD 中使用。
主要功能
- 01共 35 个工具,覆盖用例、测试运行与结果
- 02按读、写、删除模式进行权限控制
- 03支持附件上传与结果回写
- 04配套 testrail-cli 用于 CI/CD 流水线
- 05支持 TestRail Cloud 与自托管版本
适用场景
- 01通过自然语言创建或检索测试用例
- 02在对话中创建测试运行并记录通过或失败结果
- 03在 CI 流水线中通过 testrail-cli 回写自动化测试结果
MCP 相关
该项目是 MCP 服务端,向 MCP 客户端暴露 TestRail 的项目、用例、测试运行、结果与附件等操作工具,通过 stdio 传输运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @uarlouski/testrail-mcp-serverTESTRAIL_INSTANCE_URLBase URL of your TestRail instance (e.g. https://example.testrail.io)TESTRAIL_USERNAMEEmail address used to authenticate with TestRailTESTRAIL_API_KEY密钥API key for authenticating with the TestRail APITESTRAIL_ENABLE_SHARED_STEPSEnable shared steps managementTESTRAIL_ENABLE_CASE_HISTORYEnable test case history managementTESTRAIL_ENABLE_RAG_TOOLSEnable Knowledge Base and RAG export toolsTESTRAIL_ALLOW_WRITE_OPERATIONSAllow write operations on TestRail (defaults to true)TESTRAIL_ALLOW_READ_OPERATIONSAllow read operations on TestRail (defaults to true)TESTRAIL_ALLOW_DELETE_OPERATIONSAllow delete operations on TestRail (defaults to false)TESTRAIL_ENABLE_DEPRECATED_TOOLSEnable deprecated tools for backward compatibility (defaults to true)TESTRAIL_DISABLED_TOOLSComma-separated list of tool names to disableTESTRAIL_REQUEST_TIMEOUT_MSTimeout in milliseconds for TestRail HTTP requests (defaults to 30000ms)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
26收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| payload | any | 是 | 包含操作('one' 或 'many')及相应参数的负载 |
详细介绍
🚀 TestRail MCP 服务
将 Claude、Cursor、Windsurf 和 VS Code 连接到 TestRail —— 这是一款开源的模型上下文协议(MCP)服务,可用于 AI 辅助测试管理。
通过与 AI 助手进行自然语言对话,管理 TestRail 项目、搜索和创建测试用例、启动测试运行、记录结果并附加文件;也可以通过随附的 testrail-cli 在 CI/CD 中操作。本工具专为 QA 工程师和 AI 辅助测试自动化打造。
兼容:
什么是 TestRail MCP 服务?
TestRail MCP 服务 是一个免费的开源 Model Context Protocol 服务,可通过 TestRail API v2 为 AI 助手提供对 TestRail 实例的直接、结构化访问权限。完成配置后,Claude Desktop、Cursor、Windsurf 或 VS Code 中的 GitHub Copilot 等助手可以代你搜索测试用例、起草新用例、启动测试运行、记录结果并上传附件,而你无需离开聊天窗口。
它提供 35 个工具,通过 MCP stdio 传输在本地的 Node.js 18+ 上运行,并采用 Apache 2.0 许可证。无需托管或部署任何内容:MCP 客户端会按需通过 npx 启动它。
无需切换上下文。无需繁琐地复制粘贴。只需向 AI 提问。
说明
兼容性基准:已针对 TestRail 10.6.2(API v2)进行测试和验证。较旧的 TestRail 实例(包括使用 7.x 之前分页方式的实例)也可通过内置的向后兼容功能获得支持。TestRail Cloud 和可自托管的 TestRail Server 均可使用。
目录
✨ 主要功能与能力
| 能力 | 描述 |
|---|---|
| 🔍 智能发现 | 浏览项目、测试套件和分区,自动梳理 QA 组织结构。 |
| 📋 完整的用例管理 | 获取、创建、更新和批量编辑测试用例,并全面支持自定义字段。 |
| ▶️ 可执行的测试操作 | 创建测试运行,按 test_id 或 case_id 更新结果、添加文件并跟踪状态。 |
| 🧠 感知上下文的 AI | 动态提供模板、字段、优先级和状态,让大模型生成有效、结构化的数据。 |
| 🖥️ 原生支持 CLI 与 CI/CD | 可从 bash、GitHub Actions、GitLab CI 或 Jenkins 运行所有工具,无需消耗 LLM 资源。 |
| 🔐 最小权限控制 | 支持按模式设置权限,并可按工具设置允许列表;默认关闭破坏性删除操作。 |
🚀 快速入门指南
1. 获取 TestRail API 密钥
在 TestRail 中前往 My Settings → API Keys 并生成一个新密钥。请立即复制该密钥——TestRail 只会显示一次。还必须在 Administration → Site Settings → API 中为整个实例启用 API。
2. 配置 MCP 客户端
将服务添加到 MCP 客户端配置中。下方展示的是 Claude Desktop 示例;Cursor、Windsurf 和 VS Code 使用相同的配置方式(请参阅可折叠部分)。
🤖 Claude Desktop
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "[email protected]",
"TESTRAIL_API_KEY": "your-api-key",
"TESTRAIL_ENABLE_SHARED_STEPS": "true"
}
}
}
}
⌨️ Cursor
打开 Settings → MCP → Add new MCP server,或编辑项目中的 .cursor/mcp.json(适用于所有项目的配置文件为 ~/.cursor/mcp.json):
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "[email protected]",
"TESTRAIL_API_KEY": "your-api-key"
}
}
}
}
🌊 Windsurf
编辑 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "[email protected]",
"TESTRAIL_API_KEY": "your-api-key"
}
}
}
}
💻 VS Code
将以下内容添加到 .vscode/mcp.json。inputs 块可确保 API 密钥不会写入文件:
{
"inputs": [
{
"id": "testrail-api-key",
"type": "promptString",
"description": "TestRail API key",
"password": true
}
],
"servers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "[email protected]",
"TESTRAIL_API_KEY": "${input:testrail-api-key}"
}
}
}
}
🌐 其他 MCP 客户端
任何符合 MCP 标准的客户端都可以使用此服务,因为它采用标准的 MCP stdio 传输方式。将客户端指向带有所需环境变量的 npx 命令即可——无需配置端口、URL 或传输方式。
完全重启客户端,然后向 AI 助手提问,为 QA 工作流提速:
- “列出 TestRail 中的所有项目,找出最新的活跃项目。”
- “显示该项目中的所有活跃用户,找到合适的受派人。”
- “显示项目 3 中第 5 个分区的所有测试用例。”
- “为‘登录验证’创建一个详尽的测试用例,并包含详细步骤。”
- “创建一个新的测试运行,其中包含第 5 个分区中的用例。”
- “将测试用例 C1042 标记为通过,并添加评论‘已在预发布环境验证’。”
各客户端的完整设置说明(包括故障排除)请参阅入门指南。
🖥️ 命令行界面(CLI)与 CI/CD 自动化
除了通过 AI 助手交互,你还可以使用 testrail-cli 或 npx,直接从 Shell 脚本、终端环境和自动化 CI/CD 流水线(GitHub Actions、GitLab CI、Jenkins)调用任何 TestRail 工具,完全无需 LLM 开销。
- 确定性执行:返回标准 Unix 退出代码(成功时为
0,出错时为1)。 - 原生支持流水线的输出:向
stdout输出简洁的 JSON,可通过管道传递给jq等工具;诊断信息和错误则输出到stderr。 - 零重复:复用与 MCP 服务完全相同的 API 客户端、重试逻辑和验证架构。
调用方式
# Method 1: Direct npx subcommand (Recommended)
npx @uarlouski/testrail-mcp-server cli <command> [flags]
# Method 2: Global or local binary
testrail-cli <command> [flags]
# Method 3: Via package runner
npx -p @uarlouski/testrail-mcp-server testrail-cli <command> [flags]
示例
查询项目(query_project)
# List all active projects
npx @uarlouski/testrail-mcp-server cli query_project --action many
# Query a single project by ID
npx @uarlouski/testrail-mcp-server cli query_project --action one --project_id 1
报告自动化测试结果(add_results_for_cases)
# Submit results by case_id — what your test framework already knows
npx @uarlouski/testrail-mcp-server cli add_results_for_cases \
--run_id 88 \
--results '[{"case_id":1042,"status_id":1,"comment":"Passed in CI"}]'
导出用例到知识库 / RAG(export_cases_for_rag)
# Export all cases for a project into Markdown & metadata sidecars
npx @uarlouski/testrail-mcp-server cli export_cases_for_rag \
--project_id 1 \
--output_dir ./rag_exports
# Export specific cases by ID (comma-separated list)
npx @uarlouski/testrail-mcp-server cli export_cases_for_rag \
--case_ids C101,C102,103 \
--output_dir ./rag_exports
命令发现与标志文档
# List all available commands
npx @uarlouski/testrail-mcp-server cli --help
# Show parameter options for a specific tool
npx @uarlouski/testrail-mcp-server cli query_project --help
有关完整的 GitHub Actions、GitLab CI 和 Jenkins 工作流,请参阅 CLI 与 CI/CD 指南。
⚙️ 环境变量与安全控制
| 变量 | 描述 | 必需 | 默认值 |
|---|---|---|---|
TESTRAIL_INSTANCE_URL | 你的 TestRail 实例 URL(例如,https://example.testrail.io) | ✅ | |
TESTRAIL_USERNAME | 你的 TestRail 用户邮箱地址 | ✅ | |
TESTRAIL_API_KEY | 你的 TestRail API 密钥(指南) | ✅ | |
TESTRAIL_ENABLE_SHARED_STEPS | 设为 true 以启用共享步骤管理工具 | false | |
TESTRAIL_ENABLE_CASE_HISTORY | 设为 true 以启用用例历史和修订跟踪工具 | false | |
TESTRAIL_ENABLE_RAG_TOOLS | 设为 true 以启用实验性的知识库 / RAG 导出工具(export_cases_for_rag)。API 可能会发生不兼容变更。 | false | |
TESTRAIL_ALLOW_WRITE_OPERATIONS | 允许写入操作(例如,添加或更新测试用例、测试运行、分区) | true | |
TESTRAIL_ALLOW_READ_OPERATIONS | 允许读取操作(例如,获取项目、测试用例、模板) | true | |
TESTRAIL_ALLOW_DELETE_OPERATIONS | 允许删除操作(例如,删除用例或共享步骤)。必须显式设为 true 才会启用。 | false | |
TESTRAIL_ENABLE_DEPRECATED_TOOLS | 为兼容现有宿主配置而保留。 | true | |
TESTRAIL_DISABLED_TOOLS | 以逗号分隔的特定工具名称列表,指定要禁用的工具(例如,mutate_suite,delete_entity)。若指定无效的工具名称,则会失败。 | - |
仅使用三个必需凭据时,会注册 35 个工具中的 27 个。现成的只读配置和最小权限配置请参阅配置指南。
🧰 可用工具
全部 35 个工具,按领域分组。每个工具都声明了 read、write 或 delete 模式,服务器会将其作为 MCP 注解(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)提供给客户端。
| 领域 | 工具 | 参考文档 |
|---|---|---|
| 发现与导航 | query_project、query_suite、mutate_suite、query_section、mutate_section、get_users | 文档 |
| 测试用例管理 | get_case、get_cases、add_case、update_case、update_cases、get_case_fields、resolve_case_field、get_case_history、export_cases_for_rag | 文档 |
| 执行与跟踪 | query_run、mutate_run、query_test、get_tests、get_results、add_results、add_results_for_cases | 文档 |
| 附件与媒体 | add_attachment、query_attachment | 文档 |
| 共享步骤 | get_shared_step、get_shared_steps、get_shared_step_history、add_shared_step、update_shared_step | 文档 |
| 系统元数据 | get_statuses、get_priorities、get_case_fields、get_templates、get_labels、get_configurations | 文档 |
| 删除 | delete_entity | 文档 |
❓ 常见问题
支持哪些 AI 助手和 MCP 客户端?
任何符合 MCP 规范的客户端都可以使用,因为该服务使用标准 MCP stdio 传输。已验证的配置包括 Claude Desktop、Cursor、Windsurf 和 VS Code。其他客户端的配置方式相同:使用三个环境变量运行 npx -y @uarlouski/testrail-mcp-server@latest。
支持哪些 TestRail 版本?
该服务面向 TestRail API v2,并已通过 TestRail 10.6.2 测试。较旧的实例也能使用——客户端会检测端点返回的是现代分页响应还是旧版裸数组,因此无需为 7.x 之前的实例进行任何配置。TestRail Cloud 和可自托管的 TestRail Server 均受支持。
允许 AI 助手拥有 TestRail 写入权限安全吗?
权限采用分层控制,而不是非此即彼。每个工具都声明 read、write 或 delete 模式;除非你明确设置 TESTRAIL_ALLOW_DELETE_OPERATIONS=true,否则删除操作会被禁用。你可以通过 TESTRAIL_ALLOW_WRITE_OPERATIONS=false 禁用所有写入操作,也可以使用 TESTRAIL_DISABLED_TOOLS 按名称禁用单个工具。该服务在本地运行,只与您的 TestRail 实例通信——不会收集遥测数据,也没有第三方服务介入。
它免费吗?
是的——采用 Apache 2.0 许可证,没有付费层级、许可证密钥或使用限制。你需要拥有自己的 TestRail 订阅,并承担 AI 助手的相关费用。CLI 完全不产生大模型费用。
我可以在没有 AI 助手的情况下将它用于 CI/CD 吗?
可以。该软件包附带 testrail-cli 二进制文件,可将每个工具作为子命令使用,并复用相同的 API 客户端、重试逻辑和验证架构。JSON 输出到 stdout,诊断信息输出到 stderr,退出代码为 0 或 1——请参阅 CLI 指南。
如何防止 AI 编造不存在的自定义字段?
它无法编造。发送任何内容之前,add_case 或 update_case 会由服务根据你实例中的实际架构(通过 get_case_fields 获取)验证每个字段键,并拒绝未知键。模板、优先级、状态和配置也都通过工具提供,因此模型会查询正确的 ID,而不是猜测。
如何处理数千个测试用例而不撑爆上下文窗口?
将 output_file 传给 get_cases(或将 output_dir 传给 export_cases_for_rag)。该服务会对完整结果集进行分页,将原始 JSON 写入磁盘,并仅向模型返回简短摘要。
更多解答请参阅完整常见问题。
📚 文档与完整工具参考
如需完整指南、详细配置选项和所有可用工具的完整说明,请访问官方文档网站:
- 🚀 快速入门:Claude、Cursor、Windsurf 和 VS Code 的客户端配置。
- ⚙️ 配置:所有环境变量、权限和功能标志。
- 🧰 所有工具:一个表格列出所有 35 个工具及其模式和功能标志。
- 🔭 发现与导航:浏览项目、套件和分区。
- 📋 测试用例管理:获取、创建和批量更新测试用例。
- ▶️ 执行与跟踪:管理测试运行并提交测试结果。
- 📎 附件:自动压缩并上传文件或目录。
- 🔗 共享步骤:管理可重复使用的步骤定义。
- 🖥️ CLI 与 CI/CD:无需大模型即可实现流水线自动化。
🤝 贡献
我们热烈欢迎开源贡献!欢迎提交 问题 以申请功能,或提交拉取请求来改进项目。
📜 许可证
本项目采用 Apache License 2.0 许可。
TestRail MCP Server · 基于 Model Context Protocol 构建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。