TestRail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTRAIL_URL | Yes | Your TestRail instance URL (e.g., https://yourcompany.testrail.io) | |
| TESTRAIL_API_KEY | Yes | Your TestRail API key (generated in TestRail settings) | |
| TESTRAIL_USERNAME | Yes | Your TestRail email address |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_projectsB | Get all TestRail projects |
| get_projectB | Get a specific project by ID |
| get_suitesB | Get all test suites for a project |
| get_suiteA | Get a specific test suite by ID |
| add_suiteB | Create a new test suite |
| update_suiteB | Update an existing test suite |
| get_sectionsB | Get all sections for a project/suite |
| get_sectionA | Get a specific section by ID |
| add_sectionC | Create a new section |
| update_sectionC | Update an existing section |
| delete_sectionC | Delete a section |
| get_casesB | Get test cases for a project/suite |
| get_caseB | Get a specific test case by ID |
| add_caseC | Create a new test case |
| update_caseC | Update an existing test case |
| delete_caseB | Delete a test case |
| get_case_typesB | Get all available test case types |
| get_case_fieldsA | Get all available test case fields |
| get_runsB | Get test runs for a project |
| get_runB | Get a specific test run by ID |
| add_runB | Create a new test run |
| update_runC | Update an existing test run |
| close_runB | Close a test run |
| get_testsC | Get tests for a test run |
| get_testB | Get a specific test by ID |
| get_resultsC | Get results for a test |
| get_results_for_caseB | Get results for a test case in a run |
| get_results_for_runC | Get results for a test run |
| add_resultC | Add a test result |
| add_result_for_caseB | Add a test result for a specific case in a run |
| add_results_for_casesB | Add multiple test results for cases in a run |
| get_plansC | Get test plans for a project |
| get_planC | Get a specific test plan by ID |
| get_milestonesB | Get milestones for a project |
| get_milestoneA | Get a specific milestone by ID |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Each tool targets a distinct entity and action (add, get, update, delete, close) with clear naming. Even multiple result tools are differentiated by context (case, run, bulk). No ambiguity.
All tool names follow the verb_object pattern in snake_case (e.g., add_case, get_run, update_suite). Verbs are consistent and predictably used.
35 tools is high but matches the complexity of TestRail’s domain (project, suite, section, case, run, result, milestone, plan). Most tools are necessary for comprehensive coverage.
Covers CRUD for cases, runs, suites, sections, and projects. However, milestones and plans only have get operations (no add/update/delete for milestones, no add/update for plans), which are notable gaps.