
Testrail Mcp Server
io.github.uarlouskiPublished by GitHub account uarlouskiv3.3.1Updated Oct 28, 2026
Connect AI assistants to TestRail: manage test cases, suites, runs, results, and attachments.
Overview
Local MCP server that connects an AI assistant to TestRail so it can browse projects, manage test cases, run tests, record results and upload attachments.
- What you can do
- Browse projects, suites, sections and users to map the QA structure
- Fetch, create, update and bulk-edit test cases, with case fields, history and optional RAG export
- Create and query test runs, list tests and results, and submit results by test or case ID
- Upload and query attachments, and manage shared steps
- Look up statuses, priorities, templates, labels and configurations
- Delete entities when deletion is explicitly enabled
- When to use it
- Useful for QA engineers and test automation work where the assistant should read or edit TestRail directly from chat instead of copy-pasting: drafting test cases, starting runs, marking results, or exporting cases for a knowledge base. The bundled CLI also covers CI/CD pipelines that want the same operations without an LLM.
- Requirements
- Runs locally over stdio via npx on Node.js 18 or later. Requires TESTRAIL_INSTANCE_URL, TESTRAIL_USERNAME and TESTRAIL_API_KEY, plus a TestRail subscription with the API enabled instance-wide. Optional flags control read, write and delete permissions, tool disabling and feature tools.
Installation
In SourceWeft
- Open Testrail Mcp Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
🚀 TestRail MCP Server
Connect Claude, Cursor, Windsurf, and VS Code to TestRail — an open-source Model Context Protocol (MCP) server for AI-assisted test management.
Manage TestRail projects, search and create test cases, kick off test runs, record results, and attach files through natural-language conversation with your AI assistant — or from CI/CD with the bundled testrail-cli. Built for QA engineers and AI-assisted test automation.
[npm version] [npm downloads] [CI Status] [License] [TypeScript] [GitHub stars] [Score Badge] [M8ven Score] [M8ven Verified] [Smithery badge]
Compatible with: [Claude Desktop] [Cursor] [Windsurf] [VS Code]
📚 Documentation · Getting Started · Tool Reference · FAQ
What is the TestRail MCP Server?
The TestRail MCP Server is a free, open-source Model Context Protocol server that gives AI assistants direct, structured access to a TestRail instance through the TestRail API v2. Once configured, an assistant such as Claude Desktop, Cursor, Windsurf, or GitHub Copilot in VS Code can search test cases, draft new ones, start test runs, record results, and upload attachments on your behalf — without you leaving the chat window.
It exposes 35 tools, runs locally on Node.js 18+ over the MCP stdio transport, and is licensed under Apache 2.0. There is nothing to host or deploy: your MCP client launches it on demand with npx.
No context switching. No tedious copy-pasting. Just ask your AI.
[!NOTE] Compatibility baseline: tested and validated against TestRail 10.6.2 (API v2). Older TestRail instances (including pre-7.x pagination) are also supported via built-in backward compatibility. TestRail Cloud and self-hosted TestRail Server both work.
Table of contents
- Key features
- Quick start
- Command line interface & CI/CD
- Environment variables
- Available tools
- FAQ
- Documentation
- Contributing
✨ Key Features & Capabilities
🚀 Quick Start Guide
1. Obtain your TestRail API key
Navigate to My Settings → API Keys in TestRail and generate a new key. Copy it immediately — TestRail shows it only once. The API must also be enabled instance-wide under Administration → Site Settings → API.
2. Configure your MCP client
Add the server to your MCP client configuration. The Claude Desktop example is shown below; Cursor, Windsurf, and VS Code use the same pattern (see the collapsible sections).
🤖 Claude Desktop
Add this to your claude_desktop_config.json:
⌨️ Cursor
Open Settings → MCP → Add new MCP server, or edit .cursor/mcp.json in your project (~/.cursor/mcp.json for all projects):
🌊 Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
💻 VS Code
Add to .vscode/mcp.json. The inputs block keeps your API key out of the file:
🌐 Other MCP Clients
Any MCP-compliant client can use this server, because it speaks the standard MCP stdio transport. Point your client at the npx command with the required environment variables — no port, URL, or transport configuration needed.
3. See it in action
Restart your client completely, then 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 C1042 as passed with the comment 'verified on staging'."
Full per-client setup instructions, including troubleshooting, are in the Getting Started guide.
🖥️ Command Line Interface (CLI) & CI/CD Automation
In addition to interacting via AI assistants, you can invoke any TestRail tool directly from shell scripts, terminal environments, and automated CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins) using testrail-cli or npx — with zero LLM overhead.
- Deterministic Execution: Returns standard Unix exit codes (
0on success,1on error). - Pipeline-Native Output: Emits clean JSON to
stdoutfor piping into tools likejq, while diagnostics and errors go tostderr. - Zero Duplication: Reuses the exact same API client, retry logic, and validation schemas as the MCP server.
Invocation methods
Examples
Query projects (query_project)
Report automated test results (add_results_for_cases)
Export cases for knowledge base / RAG (export_cases_for_rag)
Command discovery & flag documentation
See the CLI & CI/CD guide for complete GitHub Actions, GitLab CI, and Jenkins workflows.
⚙️ Environment Variables & Security Controls
With only the three required credentials, 27 of the 35 tools are registered. Ready-made read-only and least-privilege configurations are in the Configuration guide.
🧰 Available Tools
All 35 tools, grouped by area. Each declares a read, write, or delete mode, which the server surfaces to clients as MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).
❓ Frequently Asked Questions
Which AI assistants and MCP clients are supported?
Any MCP-compliant client, because the server uses the standard MCP stdio transport. Setup is verified with Claude Desktop, Cursor, Windsurf, and VS Code. Other clients follow the same pattern: run npx -y @uarlouski/testrail-mcp-server@latest with three environment variables.
Which TestRail versions are supported?
The server targets TestRail API v2 and is tested against TestRail 10.6.2. Older instances work too — the client detects whether an endpoint returns a modern paginated response or a legacy bare array, so pre-7.x instances need no configuration. Both TestRail Cloud and self-hosted TestRail Server are supported.
Is it safe to give an AI assistant write access to TestRail?
Access is layered rather than all-or-nothing. Every tool declares a read, write, or delete mode; deletes are disabled unless you explicitly set TESTRAIL_ALLOW_DELETE_OPERATIONS=true. You can disable all writes with TESTRAIL_ALLOW_WRITE_OPERATIONS=false, or block individual tools by name with TESTRAIL_DISABLED_TOOLS. The server runs locally and talks only to your TestRail instance — there is no telemetry and no third-party service in the middle.
Is it free?
Yes — Apache 2.0 licensed, with no paid tier, licence key, or usage limit. You need your own TestRail subscription, and whatever your AI assistant costs. The CLI has no LLM cost at all.
Can I use it in CI/CD without an AI assistant?
Yes. The package ships a testrail-cli binary exposing every tool as a subcommand, reusing the same API client, retry logic, and validation schemas. JSON on stdout, diagnostics on stderr, exit code 0 or 1 — see the CLI guide.
How do I stop the AI from inventing custom fields that don't exist?
It can't. Before add_case or update_case sends anything, the server validates every field key against your instance's real schema (fetched via get_case_fields) and rejects unknown keys. Templates, priorities, statuses, and configurations are all exposed as tools too, so the model looks up correct IDs instead of guessing them.
How do I handle thousands of test cases without blowing the context window?
Pass output_file to get_cases (or output_dir to export_cases_for_rag). The server paginates the full result set, writes raw JSON to disk, and returns only a short summary to the model.
More answers in the full FAQ.
📚 Documentation & Complete Tool Reference
For a comprehensive guide, detailed configuration options, and a complete breakdown of all available tools, visit the official documentation site:
👉 TestRail MCP Server Documentation
- 🚀 Getting Started: Per-client setup for Claude, Cursor, Windsurf, and VS Code.
- ⚙️ Configuration: Every environment variable, permission, and feature flag.
- 🧰 All Tools: All 35 tools with modes and feature flags in one table.
- 🔭 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.
- 🖥️ CLI & CI/CD: Pipeline automation without an LLM.
🤝 Contributing
Open-source contributions are actively welcomed! Please feel free to open an issue for feature requests or submit a pull request for improvements.
📜 License
This project is licensed under the Apache License 2.0.
TestRail MCP Server · Engineered with the Model Context Protocol
Source: README.md at commit eeadcf5
Tools
0Version history
6- v3.3.1LatestOct 26, 2026
- v3.3.0Oct 20, 2026
- v3.2.0Oct 5, 2026
- v3.1.0Sep 25, 2026
- v3.0.0Sep 22, 2026
- v2.10.0Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts