TestOps MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTOPS_URL | Yes | TestOps instance URL (e.g. https://testops.example.com) | |
| TESTOPS_TOKEN | Yes | API token for authentication | |
| TESTOPS_LOG_LEVEL | No | Runtime stderr log level: error, info, or debug (default: error) | |
| TESTOPS_PAGE_SIZE | No | Pagination page size (server default if not set) | |
| TESTOPS_READ_ONLY | No | Set to 'true' to disable all write operations | |
| TESTOPS_RETRY_MAX | No | Retry count for transient read-request failures (default: 2) | |
| TESTOPS_LOG_FORMAT | No | Runtime stderr log format: json or pretty (default: json) | |
| TESTOPS_PROJECT_ID | No | Default project ID (so you don't have to specify it in every request) | |
| TESTOPS_TIMEOUT_MS | No | Request timeout in milliseconds for auth and API calls (default: 30000) | |
| TESTOPS_RETRY_BASE_MS | No | Base backoff delay in milliseconds for transient read-request retries (default: 250) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list-projectsB | List all projects in TestOps. Returns project IDs needed for other operations. |
| get-projectC | Get project details by ID. |
| list-test-casesB | List test cases in a project. Use list-projects first to get projectId. Supports text search. |
| search-test-casesA | Search test cases using AQL (Allure Query Language). Examples:
|
| get-test-caseA | Get basic information about a test case. For full details including members, issues, custom fields, relations, requirements, and test keys — use get-test-case-overview instead. |
| get-test-case-overviewA | Get FULL test case information including members, issue links, custom fields, requirements, and test keys. Use this when you need complete test case details. |
| get-test-case-historyA | Get past runs of this test case across launches (status, launch, duration, failure message). This is a run history, not an edit log — TestOps does not expose who changed the test case. |
| create-test-caseA | Create a new test case. Supports setting name, description, tags, links, and members. For custom fields, issues, relations, requirements, and test keys — create the test case first, then use dedicated set-* tools. |
| update-test-caseA | Update an existing test case. Supports updating name, description, tags, links, and members. For custom fields, issues, relations, requirements, and test keys — use dedicated set-* tools. |
| delete-test-caseA | Delete a test case by ID. This action is irreversible. |
| get-test-case-scenarioA | Get the scenario (steps) of a test case. Reads both Gherkin scenarios (Given/When/Then) and manual steps added through the UI. |
| update-test-case-scenarioA | Update the scenario (steps) of a test case. Replaces all existing steps. |
| get-test-case-issuesA | Get issue links for a test case (e.g. Jira issues). |
| set-test-case-issuesA | Set issue links for a test case (replaces all existing). Use to link Jira/YouTrack/etc issues. |
| get-test-case-membersB | Get members (owner, reviewers, etc.) for a test case. |
| set-test-case-membersA | Set members for a test case (replaces all existing). Each member needs a user ID and role ID. |
| get-test-case-custom-fieldsB | Get custom field values for a test case (e.g. Component, Priority, Team, Section). |
| set-test-case-custom-fieldsA | Update custom field values for a test case. First use get-test-case-custom-fields to see available fields and their IDs. Automatically merges with existing values — only the specified fields are replaced, others are preserved. |
| get-test-case-relationsA | Get relations for a test case (related to, clones, duplicates, etc.). |
| set-test-case-relationsA | Set relations for a test case (replaces all existing). Types: "related to", "clones", "is cloned by", "duplicates", "is duplicated by", "automates", "is automated by". |
| get-test-case-requirementsB | Get requirements linked to a test case. |
| set-test-case-requirementsA | Set requirements for a test case (replaces all existing). |
| get-test-case-test-keysB | Get test keys for a test case. |
| set-test-case-test-keysA | Set test keys for a test case (replaces all existing). |
| list-test-plansB | List test plans in a project. Use list-projects first to get projectId. |
| get-test-planC | Get test plan details by ID. |
| create-test-planB | Create a new test plan in a project. |
| update-test-planC | Update an existing test plan. |
| get-test-plan-test-casesC | Get test cases included in a test plan. |
| list-launchesC | List test launches in a project. |
| get-launchC | Get launch details by ID. |
| get-launch-progressA | Get execution progress of a launch: whether it has finished, plus its test status counts. Use it to tell a still-running launch from a completed one. |
| get-launch-test-resultsC | Get test results for a specific launch. |
| list-test-resultsC | List test results in a project. Optionally filter by launch. |
| get-test-resultA | Get detailed test result by ID. |
| get-test-result-historyA | Get previous runs of the same test (status, launch and failure message per run). Use it to tell a stable failure from a flaky one. |
| update-test-resultB | Update a test result (e.g., change status or add comment). |
| list-defectsC | List defects in a project. |
| get-defectB | Get defect details by ID. |
| create-defectB | Create a new defect in a project. |
| update-defectC | Update an existing defect. |
| get-automation-trendC | Get automation trend chart data for a project. |
| get-status-distributionC | Get test case status distribution for a project. |
| get-success-rateC | Get test success rate trend for a project. |
| list-test-layersA | List available test layers (e.g. UI, API, Unit). Use the returned IDs when setting testLayerId in create-test-case or update-test-case. |
| list-workflowsB | List available workflows with their statuses (e.g. Active, Draft, Deprecated). Use status IDs when setting statusId in create-test-case or update-test-case. |
| list-project-custom-fieldsA | List custom fields configured for a project (e.g. Component, Priority, Team, Story). Use the returned IDs with list-custom-field-values and the names in AQL cf["Name"] filters. |
| list-custom-field-valuesA | List the values a custom field can take in a project. Use it to build AQL filters with real values instead of guessed ones. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kirchik95/testops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server