@g-tiwari/mcp-testrail
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTRAIL_URL | No | TestRail instance URL (e.g. https://yourcompany.testrail.com) | |
| TESTRAIL_EMAIL | No | User email address | |
| TESTRAIL_TOOLS | No | Additional individual tool names to enable | |
| TESTRAIL_API_KEY | No | API key from My Settings in TestRail | |
| TESTRAIL_PASSWORD | No | Password (if API keys are unavailable) | |
| TESTRAIL_TOOLSETS | No | Comma-separated toolset names or 'all' (default: core toolsets) | |
| TESTRAIL_COOKIE_PATH | No | Path to Netscape-format cookie file for SSO auth | |
| TESTRAIL_PROJECT_IDS | No | Comma-separated project IDs to scope the server to | |
| TESTRAIL_READ_ONLY_MODE | No | Set to 'true' to expose only read operations | |
| TESTRAIL_DENIED_TOOLS_REGEX | No | Regex pattern to exclude tools by name |
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_projectA | Get a project by ID |
| get_projectsC | List all projects |
| add_projectA | Create a new project |
| update_projectC | Update an existing project |
| delete_projectB | Delete a project by ID |
| get_suiteA | Get a test suite by ID |
| get_suitesC | List suites for a project |
| add_suiteB | Create a test suite |
| update_suiteC | Update a test suite |
| delete_suiteC | Delete a test suite |
| get_sectionB | Get a section by ID |
| get_sectionsC | List sections in a project/suite |
| add_sectionC | Create a section |
| move_sectionB | Move a section to a new parent |
| update_sectionC | Update a section |
| delete_sectionC | Delete a section |
| get_caseB | Get a test case by ID |
| get_casesB | List test cases with filters |
| get_history_for_caseA | Get change history for a case |
| add_caseB | Create a test case in a section |
| update_caseC | Update a test case |
| update_casesB | Bulk update multiple test cases |
| delete_caseB | Delete a test case |
| delete_casesB | Bulk delete multiple test cases |
| copy_cases_to_sectionB | Copy cases to another section |
| move_cases_to_sectionB | Move cases to another section |
| get_case_fieldsB | List available case fields |
| add_case_fieldC | Create a custom case field |
| get_case_typesB | List available case types |
| get_runA | Get a test run by ID |
| get_runsB | List test runs for a project |
| add_runC | Create a test run |
| update_runC | Update a test run |
| close_runC | Close a test run |
| delete_runB | Delete a test run |
| get_testA | Get a test by ID |
| get_testsC | List tests in a run |
| get_resultsC | Get results for a test |
| get_results_for_caseA | Get results for a case in a run |
| get_results_for_runB | Get all results for a run |
| add_resultC | Add a result for a test |
| add_result_for_caseC | Add a result for a case in a run |
| add_resultsB | Bulk add results for a run |
| add_results_for_casesC | Bulk add results by case for a run |
| get_result_fieldsA | List available result fields |
| get_userA | Get a user by ID |
| get_current_userB | Get the authenticated user |
| get_user_by_emailA | Find a user by email |
| get_usersC | List users |
| get_rolesB | List available user roles |
| get_prioritiesB | List available priorities |
| get_statusesB | List available test statuses |
| get_case_statusesB | List available case statuses |
| get_templatesA | List templates for a project |
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 54 tools
The tools are mostly entity-based and distinct, but several groups can be confused: the four add_result variants differ mainly by test/case/bulk scope, and get_case vs get_test relies on the TestRail-specific distinction between a case definition and a test instance in a run. Descriptions help somewhat but do not fully disambiguate these boundaries.
Tool names follow a highly consistent snake_case verb_noun pattern with predictable prefixes like get/add/update/delete and singular/plural conventions for object vs list operations. Special actions like close_run, move_section, and copy_cases_to_section still fit the same overall naming style.
At 54 tools, this is far beyond the comfortable MCP range and will create a heavy selection surface for agents, even though each tool maps to a distinct TestRail API endpoint. The set is organized, but the sheer number makes it too large for efficient tool choice.
The core lifecycle for projects, suites, sections, cases, runs, and results is well covered, including bulk and move/copy operations. However, notable TestRail entities are missing—milestones, test plans, attachments, and configurations—so agents requiring those workflows will encounter dead ends.