TestRail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTRAIL_API_KEY | Yes | Your TestRail API key | |
| TESTRAIL_USERNAME | Yes | Your TestRail user email address | |
| TESTRAIL_INSTANCE_URL | Yes | Your TestRail instance URL (e.g., https://example.testrail.io) | |
| TESTRAIL_ENABLE_SHARED_STEPS | No | Set to true to enable Shared Steps management tools | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_projectsA | Get all available projects in TestRail. Returns project IDs and names that can be used with get_sections, get_templates, get_cases, and add_run |
| get_caseA | Get detailed information about a test case including its custom fields |
| get_casesA | Get all test cases for a project. Filter by section, API params (priority, type), or any field including custom fields via 'where'. Returns case IDs, titles, and any additional requested fields. |
| get_case_fieldsA | Get the field schema for test cases for a specific project. You should normally provide project_id to get fields applicable to your project. If you truly need all fields across all projects, you may omit project_id, but this is rarely what you want. Returns available fields with their types and options (for dropdown fields). |
| get_templatesA | Get available test case templates for a project. Template IDs determine which fields are available when creating or updating test cases |
| get_sectionsB | Get all sections for a project. Returns section IDs and names that can be used with add_case |
| update_caseA | Update a test case in TestRail. The update operation requires knowing valid field names that are returned by get_case_fields tool. Supports partial updates — only specify the fields you want to change. |
| update_casesA | Bulk update multiple test cases with the same field values. The update operation requires knowing valid field names that are returned by get_case_fields tool. More efficient than calling update_case multiple times. |
| add_caseA | Create a new test case in TestRail. The create operation requires knowing valid field names that are returned by get_case_fields tool. |
| add_runA | Create a new test run in TestRail |
| get_statusesA | Get all available test statuses (e.g. Passed, Failed, Blocked). Returns status IDs and names that can be used with add_result and get_tests |
| get_prioritiesA | Get all available test case priorities (e.g. Critical, High, Medium, Low). Returns priority IDs and names that can be used when creating or updating test cases. |
| get_testsA | Get tests for a test run, optionally filtered by status |
| add_resultsB | Add one or more test results to a test run |
| add_results_for_casesA | Add one or more test results to a test run using case IDs instead of test IDs |
| add_attachment_to_runA | Add an attachment to a test run in TestRail. If the file_path points to a directory, it will be automatically zipped before uploading. Maximum upload size is 256MB. |
| get_labelsA | Get all available test case labels (sometimes called tags) for a project. Returns label IDs and titles that can be used when creating or updating test cases. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/uarlouski/testrail-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server