mcpField
T
Testrail Mcp Server

Testrail Mcp Server

本地服务
github.com/uarlouski开发工具445 天前更新

关于 Testrail Mcp Server

TestRail MCP Server 是一个开源的 MCP 服务,通过 TestRail API v2 让 Claude、Cursor、Windsurf 和 VS Code 等 AI 助手直接管理测试用例、测试运行与结果。面向 QA 工程师,也可通过配套命令行在 CI/CD 中使用。

主要功能

  1. 01共 35 个工具,覆盖用例、测试运行与结果
  2. 02按读、写、删除模式进行权限控制
  3. 03支持附件上传与结果回写
  4. 04配套 testrail-cli 用于 CI/CD 流水线
  5. 05支持 TestRail Cloud 与自托管版本

适用场景

  1. 01通过自然语言创建或检索测试用例
  2. 02在对话中创建测试运行并记录通过或失败结果
  3. 03在 CI 流水线中通过 testrail-cli 回写自动化测试结果

MCP 相关

该项目是 MCP 服务端,向 MCP 客户端暴露 TestRail 的项目、用例、测试运行、结果与附件等操作工具,通过 stdio 传输运行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": [
"-y",
"@uarlouski/testrail-mcp-server"
],
"env": {
"TESTRAIL_INSTANCE_URL": "<TESTRAIL_INSTANCE_URL>",
"TESTRAIL_USERNAME": "<TESTRAIL_USERNAME>",
"TESTRAIL_API_KEY": "<TESTRAIL_API_KEY>",
"TESTRAIL_ENABLE_SHARED_STEPS": "<TESTRAIL_ENABLE_SHARED_STEPS>",
"TESTRAIL_ENABLE_CASE_HISTORY": "<TESTRAIL_ENABLE_CASE_HISTORY>",
"TESTRAIL_ENABLE_RAG_TOOLS": "<TESTRAIL_ENABLE_RAG_TOOLS>",
"TESTRAIL_ALLOW_WRITE_OPERATIONS": "<TESTRAIL_ALLOW_WRITE_OPERATIONS>",
"TESTRAIL_ALLOW_READ_OPERATIONS": "<TESTRAIL_ALLOW_READ_OPERATIONS>",
"TESTRAIL_ALLOW_DELETE_OPERATIONS": "<TESTRAIL_ALLOW_DELETE_OPERATIONS>",
"TESTRAIL_ENABLE_DEPRECATED_TOOLS": "<TESTRAIL_ENABLE_DEPRECATED_TOOLS>",
"TESTRAIL_DISABLED_TOOLS": "<TESTRAIL_DISABLED_TOOLS>",
"TESTRAIL_REQUEST_TIMEOUT_MS": "<TESTRAIL_REQUEST_TIMEOUT_MS>"
}
}
}
}
启动命令npx -y @uarlouski/testrail-mcp-server
需要配置的环境变量
TESTRAIL_INSTANCE_URLBase URL of your TestRail instance (e.g. https://example.testrail.io)
TESTRAIL_USERNAMEEmail address used to authenticate with TestRail
TESTRAIL_API_KEY密钥API key for authenticating with the TestRail API
TESTRAIL_ENABLE_SHARED_STEPSEnable shared steps management
TESTRAIL_ENABLE_CASE_HISTORYEnable test case history management
TESTRAIL_ENABLE_RAG_TOOLSEnable Knowledge Base and RAG export tools
TESTRAIL_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 disable
TESTRAIL_REQUEST_TIMEOUT_MSTimeout in milliseconds for TestRail HTTP requests (defaults to 30000ms)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@uarlouski/testrail-mcp-server3.3.1

工具

26

收录的工具列表 · 更新于 3 周前

参数类型必填说明
payloadany是包含操作('one' 或 'many')及相应参数的负载

详细介绍

🚀 TestRail MCP 服务

将 Claude、Cursor、Windsurf 和 VS Code 连接到 TestRail —— 这是一款开源的模型上下文协议(MCP)服务,可用于 AI 辅助测试管理。

通过与 AI 助手进行自然语言对话,管理 TestRail 项目、搜索和创建测试用例、启动测试运行、记录结果并附加文件;也可以通过随附的 testrail-cli 在 CI/CD 中操作。本工具专为 QA 工程师和 AI 辅助测试自动化打造。

npm 版本 npm 下载量 CI 状态 许可证 TypeScript GitHub 星标 评分徽章 M8ven 评分 M8ven 已验证 Smithery 徽章

兼容: Claude Desktop Cursor Windsurf VS Code

📚 文档 · 快速入门 · 工具参考 · 常见问题


什么是 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 或传输方式。

### 3. 查看实际效果

完全重启客户端,然后向 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 写入磁盘,并仅向模型返回简短摘要。

更多解答请参阅完整常见问题。


📚 文档与完整工具参考

如需完整指南、详细配置选项和所有可用工具的完整说明,请访问官方文档网站:

👉 TestRail MCP 服务文档

  • 🚀 快速入门:Claude、Cursor、Windsurf 和 VS Code 的客户端配置。
  • ⚙️ 配置:所有环境变量、权限和功能标志。
  • 🧰 所有工具:一个表格列出所有 35 个工具及其模式和功能标志。
  • 🔭 发现与导航:浏览项目、套件和分区。
  • 📋 测试用例管理:获取、创建和批量更新测试用例。
  • ▶️ 执行与跟踪:管理测试运行并提交测试结果。
  • 📎 附件:自动压缩并上传文件或目录。
  • 🔗 共享步骤:管理可重复使用的步骤定义。
  • 🖥️ CLI 与 CI/CD:无需大模型即可实现流水线自动化。

🤝 贡献

我们热烈欢迎开源贡献!欢迎提交 问题 以申请功能,或提交拉取请求来改进项目。

📜 许可证

本项目采用 Apache License 2.0 许可。


TestRail MCP Server · 基于 Model Context Protocol 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。