Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Connect AI assistants to TestRail: manage test cases, suites, runs, results, and attachments.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
TESTRAIL_INSTANCE_URL, TESTRAIL_USERNAME, TESTRAIL_API_KEY, TESTRAIL_ENABLE_SHARED_STEPS, TESTRAIL_ENABLE_CASE_HISTORY, TESTRAIL_ENABLE_RAG_TOOLS, TESTRAIL_ALLOW_WRITE_OPERATIONS, TESTRAIL_ALLOW_READ_OPERATIONS, TESTRAIL_ALLOW_DELETE_OPERATIONS, TESTRAIL_ENABLE_DEPRECATED_TOOLS, TESTRAIL_DISABLED_TOOLS, TESTRAIL_REQUEST_TIMEOUT_MSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": [
"-y",
"@uarlouski/testrail-mcp-server"
],
"env": {
"TESTRAIL_INSTANCE_URL": "your-value",
"TESTRAIL_USERNAME": "your-value",
"TESTRAIL_API_KEY": "your-value",
"TESTRAIL_ENABLE_SHARED_STEPS": "your-value",
"TESTRAIL_ENABLE_CASE_HISTORY": "your-value",
"TESTRAIL_ENABLE_RAG_TOOLS": "your-value",
"TESTRAIL_ALLOW_WRITE_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_READ_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_DELETE_OPERATIONS": "your-value",
"TESTRAIL_ENABLE_DEPRECATED_TOOLS": "your-value",
"TESTRAIL_DISABLED_TOOLS": "your-value",
"TESTRAIL_REQUEST_TIMEOUT_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add testrail --env TESTRAIL_INSTANCE_URL=your-value --env TESTRAIL_USERNAME=your-value --env TESTRAIL_API_KEY=your-value --env TESTRAIL_ENABLE_SHARED_STEPS=your-value --env TESTRAIL_ENABLE_CASE_HISTORY=your-value --env TESTRAIL_ENABLE_RAG_TOOLS=your-value --env TESTRAIL_ALLOW_WRITE_OPERATIONS=your-value --env TESTRAIL_ALLOW_READ_OPERATIONS=your-value --env TESTRAIL_ALLOW_DELETE_OPERATIONS=your-value --env TESTRAIL_ENABLE_DEPRECATED_TOOLS=your-value --env TESTRAIL_DISABLED_TOOLS=your-value --env TESTRAIL_REQUEST_TIMEOUT_MS=your-value -- npx -y @uarlouski/testrail-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": [
"-y",
"@uarlouski/testrail-mcp-server"
],
"env": {
"TESTRAIL_INSTANCE_URL": "your-value",
"TESTRAIL_USERNAME": "your-value",
"TESTRAIL_API_KEY": "your-value",
"TESTRAIL_ENABLE_SHARED_STEPS": "your-value",
"TESTRAIL_ENABLE_CASE_HISTORY": "your-value",
"TESTRAIL_ENABLE_RAG_TOOLS": "your-value",
"TESTRAIL_ALLOW_WRITE_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_READ_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_DELETE_OPERATIONS": "your-value",
"TESTRAIL_ENABLE_DEPRECATED_TOOLS": "your-value",
"TESTRAIL_DISABLED_TOOLS": "your-value",
"TESTRAIL_REQUEST_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"testrail": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@uarlouski/testrail-mcp-server"
],
"env": {
"TESTRAIL_INSTANCE_URL": "your-value",
"TESTRAIL_USERNAME": "your-value",
"TESTRAIL_API_KEY": "your-value",
"TESTRAIL_ENABLE_SHARED_STEPS": "your-value",
"TESTRAIL_ENABLE_CASE_HISTORY": "your-value",
"TESTRAIL_ENABLE_RAG_TOOLS": "your-value",
"TESTRAIL_ALLOW_WRITE_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_READ_OPERATIONS": "your-value",
"TESTRAIL_ALLOW_DELETE_OPERATIONS": "your-value",
"TESTRAIL_ENABLE_DEPRECATED_TOOLS": "your-value",
"TESTRAIL_DISABLED_TOOLS": "your-value",
"TESTRAIL_REQUEST_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
TESTRAIL_ENABLE_SHARED_STEPS envTESTRAIL_ENABLE_CASE_HISTORY envTESTRAIL_ENABLE_RAG_TOOLS envTESTRAIL_ALLOW_WRITE_OPERATIONS envTESTRAIL_ALLOW_READ_OPERATIONS envTESTRAIL_ALLOW_DELETE_OPERATIONS envTESTRAIL_ENABLE_DEPRECATED_TOOLS envTESTRAIL_DISABLED_TOOLS envTESTRAIL_REQUEST_TIMEOUT_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account uarlouski, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: TESTRAIL_INSTANCE_URL, TESTRAIL_USERNAME, TESTRAIL_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (3.3.1) reached the registry 13 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Thalovant MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Connect MCP clients to Thalovant control-plane and hub runtime APIs over stdio or Streamable HTTP.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
🚀 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.
Compatible with:
📚 Documentation · Getting Started · Tool Reference · FAQ
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.
| 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. |
| ▶️ Actionable Execution | 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. |
| 🖥️ CLI & CI/CD Native | Run every tool from bash, GitHub Actions, GitLab CI, or Jenkins with zero LLM overhead. |
| 🔐 Least-Privilege Controls | Per-mode permissions plus per-tool allowlisting; destructive deletes are off by default. |
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.
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).
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 → MCP → Add new MCP server, or edit .cursor/mcp.json in your project (~/.cursor/mcp.json for all projects):
{
"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" } } } }
</details>
🌊 Windsurf
Edit ~/.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": "your@email.com", "TESTRAIL_API_KEY": "your-api-key" } } } }
</details>
💻 VS Code
Add to .vscode/mcp.json. The inputs block keeps your API key out of the file:
{
"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": "your@email.com", "TESTRAIL_API_KEY": "${input:testrail-api-key}" } } } }
</details>
🌐 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.
Restart your client completely, then turbo-charge your QA workflow by asking your AI assistant:
Full per-client setup instructions, including troubleshooting, are in the Getting Started guide.
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.
0 on success, 1 on error).stdout for piping into tools like jq, while diagnostics and errors go to stderr.# Method 1: Direct npx subcommand (Recommended)
npx @uarlouski/testrail-mcp-server cli [flags]
testrail-cli [flags]
npx -p @uarlouski/testrail-mcp-server testrail-cli [flags]
query_project)# List all active projects
npx @uarlouski/testrail-mcp-server cli query_project --action many
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"}]'
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
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
npx @uarlouski/testrail-mcp-server cli query_project --help
See the CLI & CI/CD guide for complete GitHub Actions, GitLab CI, and Jenkins workflows.
| Variable | Description | Required | Default |
|---|---|---|---|
TESTRAIL_INSTANCE_URL | Your TestRail instance URL (e.g., https://example.testrail.io) | ✅ |
| `TEST
Only the beginning is shown; read the rest in the repo