Atlas / MCP servers / denys-ispaniuk / mcp-testrail

mcp-testrailSAFE

mcp/denys-ispaniuk/testrail-mcp

TestRail MCP Server for team integration with Cursor

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
35 17r · 16w · 2d
Transport
stdio
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A complete Model Context Protocol (MCP) server for TestRail integration with full API support. Allows AI assistants like Cursor to interact with TestRail test management system.

✨ Features

📁 Projects

  • Get all projects or specific project details

📦 Test Suites

  • Get, create, and update test suites

📂 Sections

  • Get, create, update, and delete sections

📝 Test Cases

  • Full CRUD operations (Create, Read, Update, Delete)
  • Get case types and custom fields
  • Support for all custom fields and templates

🏃 Test Runs

  • Create, update, and close test runs
  • Get run details and lists

🧪 Tests

  • Get tests from runs
  • Detailed test information

✅ Results

  • Add single or bulk test results
  • Get results for tests, cases, and runs
  • Track test execution history

📋 Test Plans

  • Get test plans and plan details

🎯 Milestones

  • Get milestones for projects

Installation

npm install -g mcp-testrail

Or use directly with npx (no installation needed):

npx -y mcp-testrail

Quick Setup with Cursor

Step 1: Get Your TestRail API Key

  1. Log in to your TestRail instance
  2. Click on your profile (top right)
  3. Go to Settings → API Keys
  4. Click Add Key and give it a name
  5. Copy the generated API key

Step 2: Configure Cursor

  1. Open Cursor Settings (Ctrl/Cmd + ,)
  2. Search for "MCP" or go to Features → Model Context Protocol
  3. Click Edit Config or open the config file
  4. Add the following configuration (also available in cursor-config.example.json):
{
"mcpServers": {
"testrail": {
"command": "npx",
"args": ["-y", "mcp-testrail"],
"env": {
"TESTRAIL_URL": "https://your-company.testrail.io",
"TESTRAIL_USERNAME": "[email protected]",
"TESTRAIL_API_KEY": "your-api-key-here"
}
}
}
}
  1. Replace the following values:
  2. https://your-company.testrail.io - with your TestRail URL
Read from source at commit 6e682c64288dOBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-testrail --env TESTRAIL_API_KEY=${TESTRAIL_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-testrail": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "TESTRAIL_API_KEY": "${TESTRAIL_API_KEY}"
      }
    }
  }
}
03

Exposed tools (35)

17 read · 16 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
add_casewriteCreate a new test case
add_resultwriteAdd a test result
add_result_for_casewriteAdd a test result for a specific case in a run
add_results_for_caseswriteAdd multiple test results for cases in a run
add_runwriteCreate a new test run
add_sectionwriteCreate a new section
add_suitewriteCreate a new test suite
close_runwriteClose a test run
delete_casedestructiveDelete a test case
delete_sectiondestructiveDelete a section
get_casereadGet a specific test case by ID
get_case_fieldsreadGet all available test case fields
get_case_typesreadGet all available test case types
get_casesreadGet test cases for a project/suite
get_milestonereadGet a specific milestone by ID
get_milestonesreadGet milestones for a project
get_planreadGet a specific test plan by ID
get_plansreadGet test plans for a project
get_projectreadGet a specific project by ID
get_projectsreadGet all TestRail projects
get_resultsreadGet results for a test
get_results_for_casewriteGet results for a test case in a run
get_results_for_runwriteGet results for a test run
get_runwriteGet a specific test run by ID
get_runsreadGet test runs for a project
get_sectionreadGet a specific section by ID
get_sectionsreadGet all sections for a project/suite
get_suitereadGet a specific test suite by ID
get_suitesreadGet all test suites for a project
get_testreadGet a specific test by ID
get_testswriteGet tests for a test run
update_casewriteUpdate an existing test case
update_runwriteUpdate an existing test run
update_sectionwriteUpdate an existing section
update_suitewriteUpdate an existing test suite
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
delete_case, delete_section
Why it matters. 2 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, axios, dotenv, @types/node, tsx, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 6e682c64288dfull audit observations/trust-audit/mcp-server/denys-ispaniuk__testrail-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-126e682c64288dSAFEB89first audit
06

Questions

What is the mcp-testrail MCP server?

TestRail MCP Server for team integration with Cursor

What tools does mcp-testrail expose?

35 in total: 17 read-only, 16 that write, and 2 that can delete or overwrite (delete_case, delete_section). Every one is listed on this page with its risk.

Is mcp-testrail safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does mcp-testrail need?

It reads TESTRAIL_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does mcp-testrail run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as mcp-testrail at 2.0.2.

How current is this page?

The grade is for one exact copy of the source (6e682c64288d), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement