TestRail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTRAIL_URL | Yes | The URL of your TestRail instance (e.g., https://your-instance.testrail.io) | |
| TESTRAIL_API_KEY | Yes | TestRail API key | |
| TESTRAIL_USERNAME | Yes | 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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| getSuitesA | Retrieves all test suites for a specified TestRail project / 指定されたTestRailプロジェクトの全テストスイートを取得します |
| getSuiteB | Retrieves details of a specific test suite by ID / 特定のテストスイートの詳細をIDで取得します |
| addSuiteB | Creates a new test suite in the specified project / 指定されたプロジェクトに新しいテストスイートを作成します |
| updateSuiteB | Updates an existing test suite / 既存のテストスイートを更新します |
| getProjectsA | Retrieves all TestRail projects / すべてのTestRailプロジェクトを取得します |
| getProjectB | Retrieves details of a specific TestRail project by ID / 特定のTestRailプロジェクトの詳細をIDで取得します |
| getCaseA | Retrieves complete details for a single test case including steps, expected results, and prerequisites. REQUIRED: caseId. |
| getCasesA | Retrieves test cases list with basic fields only (excludes steps/expected results for performance). REQUIRED: projectId, suiteId. OPTIONAL: createdBy, filter, limit (default 50), milestoneId, offset (default 0), priorityId, refs, sectionId, templateId, typeId, updatedBy, labelId. Use getCase for full details. |
| addCaseA | Creates a new test case in TestRail. REQUIRED: sectionId, title. OPTIONAL: typeId, priorityId, templateId, customSteps, customExpected, customStepsSeparated, customFields, etc. Use getCaseTypes to find valid typeId values. NOTE: templateId=2 is required to use customStepsSeparated (array of step objects with 'content' and 'expected' fields). For simple text steps, use customSteps and customExpected instead. Use customFields for any additional custom fields (e.g., {custom_case_security_score: 'high'}). |
| updateCaseA | Updates an existing test case. REQUIRED: caseId. OPTIONAL: title, typeId, priorityId, templateId, customSteps, customExpected, customStepsSeparated, customFields, etc. Only specified fields will be updated. NOTE: templateId=2 is required to use customStepsSeparated (array of step objects with 'content' and 'expected' fields). For simple text steps, use customSteps and customExpected instead. Use customFields for any additional custom fields (e.g., {custom_case_security_score: 'high'}). |
| deleteCaseB | Deletes a test case from TestRail / TestRailからテストケースを削除します |
| getCaseTypesA | Retrieves all available test case types in TestRail / TestRailで利用可能な全テストケースタイプを取得します |
| getCaseFieldsA | Retrieves all available test case fields in TestRail / TestRailで利用可能な全テストケースフィールドを取得します |
| copyToSectionA | Copies specified test cases to a target section while keeping the originals / 指定されたテストケースを対象のセクションにコピーし、元のケースは保持します |
| moveToSectionB | Moves specified test cases to a target section / 指定されたテストケースを対象のセクションに移動します |
| getCaseHistoryA | Retrieves the change history of a test case including updates to fields and custom fields / テストケースの変更履歴(フィールドとカスタムフィールドの更新を含む)を取得します |
| updateCasesA | Updates multiple test cases simultaneously with the same field values / 複数のテストケースを同じフィールド値で一括更新します. NOTE: templateId=2 is required to use customStepsSeparated (array of step objects with 'content' and 'expected' fields). For simple text steps, use customSteps and customExpected instead. Use customFields for any additional custom fields (e.g., {custom_case_security_score: 'high'}). |
| addBddA | Imports/uploads a .feature file (Gherkin BDD scenario) into a TestRail section. Creates a new test case with BDD template (template_id=4) and populates the custom_testrail_bdd_scenario field. REQUIRED: sectionId, featureContent (raw Gherkin text including Feature:, Scenario:, Given/When/Then). |
| getBddB | Exports a BDD test case as a .feature file in Gherkin format. REQUIRED: caseId. |
| getSectionB | Retrieves details of a specific section by ID / 特定のセクションの詳細をIDで取得します |
| getSectionsA | Retrieves sections for a specified project and suite. Supports pagination via limit and offset parameters (default: limit=250, offset=0). Use _links.next to determine if more pages are available. / 指定されたプロジェクトとスイートのセクションを取得します。limitとoffsetパラメータでページネーションをサポートします。 |
| addSectionB | Creates a new section in a TestRail project / TestRailプロジェクトに新しいセクションを作成します |
| moveSectionC | Moves a section to a new position in the test hierarchy / テスト階層内の新しい位置にセクションを移動します |
| updateSectionC | Updates an existing section / 既存のセクションを更新します |
| deleteSectionB | Deletes a section / セクションを削除します |
| getRunsB | Retrieves all test runs for a specified TestRail project / 指定されたTestRailプロジェクトの全テスト実行を取得します |
| getRunA | Retrieves details of a specific test run by ID / 特定のテスト実行の詳細をIDで取得します |
| addRunC | Creates a new test run in a TestRail project / TestRailプロジェクトに新しいテスト実行を作成します |
| updateRunB | Updates an existing test run / 既存のテスト実行を更新します |
| getTestsB | Retrieves a list of tests for a test run / テスト実行に含まれるテスト一覧を取得します |
| getTestA | Retrieves complete details for a single test, including all fields such as status, type, and results / 単一のテストの完全な詳細(ステータス、タイプ、結果などのすべてのフィールドを含む)を取得します |
| getResultsC | Retrieves test results for a specific test / 特定のテストのテスト結果を取得します |
| getResultsForCaseC | Retrieves test results for a specific test case in a test run / テスト実行内の特定のテストケースのテスト結果を取得します |
| getResultsForRunB | Retrieves all test results for a test run / テスト実行の全テスト結果を取得します |
| addResultForCaseB | Adds a test result for a specific test case in a test run / テスト実行内の特定のテストケースにテスト結果を追加します |
| addResultsForCasesB | Adds test results for multiple test cases in a test run / テスト実行内の複数のテストケースにテスト結果を追加します |
| getPlansB | Retrieves all test plans for a specified TestRail project / 指定されたTestRailプロジェクトの全テストプランを取得します |
| getPlanA | Retrieves a TestRail test plan with all entries and child runs |
| addPlanB | Creates a new test plan in a TestRail project / TestRailプロジェクトに新しいテストプランを作成します |
| addPlanEntryB | Adds a new test plan entry to an existing test plan / 既存のテストプランに新しいテストプランエントリーを追加します |
| addRunToPlanEntryC | Adds a new test run to an existing plan entry / 既存のプランエントリーに新しいテストランを追加します |
| getMilestonesB | Retrieves all milestones for a specified TestRail project / 指定されたTestRailプロジェクトの全マイルストーンを取得します |
| addMilestoneC | Creates a new milestone in a TestRail project / TestRailプロジェクトに新しいマイルストーンを作成します |
| getSharedStepsC | Retrieves all shared steps for a specified TestRail project / 指定されたTestRailプロジェクトの全共有ステップを取得します |
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 44 tools
Most tools target a distinct resource and action, and the singular/plural get patterns are clear. The main confusion risk is moveSection vs moveToSection, which sound similar but operate on different things, and the several result-fetching variants could be briefly confusing.
Tool names mostly follow a consistent verb+resource camelCase pattern such as getCases, addCase, updateCase, deleteSection, and addRun. Minor deviations like addBdd/getBdd and nested names like addRunToPlanEntry are understandable but slightly break the uniform pattern.
44 tools is a very large surface for an MCP server. While TestRail covers many entity types and most tools correspond to real API operations, the count makes selection harder and exceeds the range where a tool set feels tight and easily navigable.
Core case, section, run, and result workflows are well covered, including bulk operations and BDD import/export. However, several secondary resources are incomplete: milestones only support get/add, shared steps are read-only, and plans lack update/delete operations.