An open-source Model Context Protocol (MCP) server that connects Claude, Cursor, Windsurf, and other AI assistants directly to TestRail.
Manage TestRail projects, search and create test cases, kick off test runs, record results, and attach files — all through natural-language conversation with your AI assistant. Built for QA engineers and AI-assisted test automation.
Managing test cases manually is tedious and error-prone. With the TestRail MCP Server, your AI assistant (whether it’s Claude, Cursor, Windsurf, or any MCP-compliant client) interacts directly with your TestRail instance. Instruct it to find test cases, draft new ones, kick off test runs, and record test results—all through natural conversation.
No context switching. No tedious copy-pasting. Just ask your AI.
Note
Compatibility Baseline: The primary baseline version this MCP server is tested and validated against is TestRail 10.6.2 (API v2). Older TestRail instances (including pre-7.x pagination) are also supported via built-in backward compatibility.
| Capability | Description |
|---|---|
| 🔍 Intelligent Discovery | Browse projects, test suites, and sections to automatically map your QA organization. |
| 📋 Full Case Management | Fetch, create, update, and bulk-edit test cases with comprehensive custom field support. |
Create test runs, update results by test_id or case_id, attach files, and track statuses. |
|
| 🧠 Context-Aware AI | Dynamically exposes templates, fields, priorities, and statuses so LLMs generate valid, structured data. |
Navigate to My Settings → API Keys in your TestRail platform and generate a new key for authentication.
Add the server to your chosen MCP client configuration. The Claude Desktop example is shown below; Cursor, Windsurf, and other clients use the same pattern (see the collapsible sections further down).
Add this to your 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": "your@email.com",
"TESTRAIL_API_KEY": "your-api-key",
"TESTRAIL_ENABLE_SHARED_STEPS": "true"
}
}
}
}⌨️ Cursor
Open Settings → Features → MCP and add a new configuration:
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "your@email.com",
"TESTRAIL_API_KEY": "your-api-key"
}
}
}
}🌊 Windsurf
Update your Windsurf MCP configuration file:
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "@uarlouski/testrail-mcp-server@latest"],
"env": {
"TESTRAIL_INSTANCE_URL": "https://your-instance.testrail.io",
"TESTRAIL_USERNAME": "your@email.com",
"TESTRAIL_API_KEY": "your-api-key"
}
}
}
}🌐 Other MCP Clients
Any MCP-compliant client can utilize this server. The pattern is universal—point your client at the npx command with the required environment variables.
Once configured, turbo-charge your QA workflow by asking your AI assistant:
- "List all projects in TestRail to find the latest active project."
- "Show me all active users in the project to find the right assignee."
- "Show me all test cases in section 5 of project 3."
- "Create a comprehensive test case for 'Login Validation' with detailed steps."
- "Start a new test run containing cases from section 5."
- "Mark test case ID 1042 as passed with the comment 'Tested successfully on staging'."
| Variable | Description | Required | Default |
|---|---|---|---|
TESTRAIL_INSTANCE_URL |
Your TestRail instance URL (e.g., https://example.testrail.io) |
✅ | |
TESTRAIL_USERNAME |
Your TestRail user email address | ✅ | |
TESTRAIL_API_KEY |
Your TestRail API key (Guide) | ✅ | |
TESTRAIL_ENABLE_SHARED_STEPS |
Set to true to enable Shared Steps management tools |
false |
|
TESTRAIL_ENABLE_CASE_HISTORY |
Set to true to enable Case History and revision tracking tools |
false |
|
TESTRAIL_ALLOW_WRITE_OPERATIONS |
Allow write operations (e.g. adding/updating test cases, test runs, sections) | true |
|
TESTRAIL_ALLOW_READ_OPERATIONS |
Allow read operations (e.g. retrieving projects, test cases, templates) | true |
|
TESTRAIL_ALLOW_DELETE_OPERATIONS |
Allow delete operations (e.g. deleting cases or shared steps). Enabled strictly via true. |
false |
|
TESTRAIL_ENABLE_DEPRECATED_TOOLS |
Enable deprecated tools for backward compatibility. Set to false to reduce context token overhead. |
true |
To ensure smooth transitions, deprecated tools remain available by default (TESTRAIL_ENABLE_DEPRECATED_TOOLS=true) and will be removed in future major releases:
| Deprecated Tool | Replacement | Status |
|---|---|---|
add_attachment_to_run |
add_attachment (entity_type: "case" | "run") |
Deprecated in 2.3.0, scheduled for removal in 3.0.0 |
💡 Token Tip: If you are not using legacy tools, set
TESTRAIL_ENABLE_DEPRECATED_TOOLS=falsein your environment to eliminate deprecated tool definitions from the LLM prompt and save tokens!
For a comprehensive guide, detailed configuration options, and a complete breakdown of all available tools, please visit our official documentation site:
👉 TestRail MCP Server Documentation
The documentation includes detailed explanations for:
- 🔭 Discovery & Navigation: Exploring projects, suites, and sections.
- 📋 Test Case Management: Fetching, creating, and bulk-updating test cases.
▶️ Execution & Tracking: Managing test runs and submitting test results.- 📎 Attachments: Automatically zipping and uploading files or directories.
- 🔗 Shared Steps: Managing reusable step definitions.
Open-source contributions are actively welcomed! Please feel free to open an issue for feature requests or submit a pull request for improvements.
This project is securely licensed under the Apache License 2.0.
TestRail MCP Server · Engineered with the Model Context Protocol