TestOps MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TestOps MCP Server show me the latest test run results"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TestOps MCP Server
MCP server for TestOps 5.25. Lets AI assistants (Cursor, VS Code, Claude, OpenCode, Windsurf, Zed, Kilo Code) work directly with projects, launches, test plans, and test cases in TestOps.
What you can do
Once connected, an AI assistant can:
Find projects, launches, and test plans
Create and stop test launches
Read, create, and edit test cases
Work with scenarios and custom fields
Search test cases using AQL
Related MCP server: TestOps MCP Server
Quick start
Install
npm install @syn7xx/testops-mcp-serverOr run without installing — via npx:
npx @syn7xx/testops-mcp-server --url https://your-testops.com --token your-tokenShort flags: -u (url), -t (token), -h (help).
You can also use environment variables:
export TESTOPS_URL=https://your-testops.com
export TESTOPS_TOKEN=your-token
npx @syn7xx/testops-mcp-serverCLI flags take priority over environment variables.
Connecting to an AI tool
Cursor, Windsurf, Kilo Code, Zed
mcp.json in your project or home folder:
{
"mcpServers": {
"testops": {
"command": "npx",
"args": ["-y", "@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
}
}
}Visual Studio Code
.vscode/mcp.json in your project (key is servers, not mcpServers):
{
"servers": {
"testops": {
"command": "npx",
"args": ["-y", "@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
}
}
}OpenCode
opencode.jsonc:
{
"mcp": {
"testops": {
"type": "local",
"command": ["npx", "-y", "@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"],
"enabled": true
}
}
}Or with environment variables:
{
"mcp": {
"testops": {
"type": "local",
"command": ["npx", "-y", "@syn7xx/testops-mcp-server"],
"environment": {
"TESTOPS_URL": "https://your-testops.com",
"TESTOPS_TOKEN": "your-token"
},
"enabled": true
}
}
}Claude Desktop
claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"testops": {
"command": "npx",
"args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
}
}
}Never commit real tokens. Use environment variables or local-only configs.
Available tools
Projects
Tool | Description |
| List projects with pagination |
| Find project by exact or partial name match |
| Get project by ID |
| Get test case trees for a project |
Launches
Tool | Description |
| List launches for a project with pagination |
| Get a launch by ID |
| Create a test launch (with envVarValueSets support) |
| Stop a running launch |
| Launch summary: counts by status + progress |
| Flat paginated test results for a launch |
Test Plans
Tool | Description |
| List test plans for a project with pagination |
| Get test plan by ID |
| Test plan statistics: automated/manual counts and durations |
| Get test cases from a test plan |
| Create a launch from a test plan |
| Sync test plan with its source |
Test Cases
Tool | Description |
| Get test case by ID |
| Summary: flattened step strings, custom fields, tags |
| Full scenario JSON (steps + expected results) |
| Same as |
| Get custom field values for a test case |
| Update test case metadata (name, description, status, tags, etc.) |
| Update a single scenario step |
| Replace all steps in a scenario |
| Set custom field values |
| Search test cases using AQL query |
| List test cases in a project tree |
| Create a test case (with steps, tags, custom fields) |
Project Custom Fields
Tool | Description |
| Custom field definitions for a project |
| Available values for a custom field |
Self-signed certificates
If TestOps uses a self-signed certificate and Node.js fails TLS validation:
export NODE_TLS_REJECT_UNAUTHORIZED=0This disables certificate checks for all HTTPS requests in that process. Use only when necessary and in a trusted environment.
Build and run from source
# Clone
git clone https://github.com/syn7xx/testops-mcp-server.git
cd testops-mcp-server
# Install dependencies
npm install
# Build
npm run build
# Run
npm start -- --url https://your-testops.com --token your-tokenFor working on the codebase, see CONTRIBUTING.md.
License
MIT
Available Tools
31 toolslaunch_createCreate LaunchB
Create a test run (launch). Body requires name and projectId.
Inputs: name (required), projectId (required), tags, extra, +4 more.
launch_getGet LaunchC
Get a launch by ID
Inputs: launchId (required).
launch_get_statisticGet Launch StatisticC
Launch run summary: counts by test status and progress (ready).
Inputs: launchId (required).
launch_listList LaunchesB
List launches for a project with pagination
Inputs: projectId (required), page, size, sort.
launch_list_test_resultsList Launch Test ResultsARead-only
Flat paginated test results for a launch (rows: id, name, testCaseId, status, duration, etc.).
Inputs: launchId (required), page, size, sort, +2 more.
launch_stopStop LaunchB
Close/stop a running launch (ends the run on TestOps).
Inputs: launchId (required).
pingPingA
Test tool to verify server connectivity
Inputs: no named parameters.
project_find_by_nameFind Project by NameA
Find a project by exact or partial name match
Inputs: name (required).
project_get_by_idGet Project by IDB
Get a project by its ID
Inputs: id (required).
project_get_custom_fieldsGet Project Custom FieldsA
Get custom field definitions for a project with pagination. Returns { items, total, page, size } for chunked fetching.
Inputs: projectId (required), page, size.
project_get_custom_field_valuesGet Project Custom Field ValuesA
Get available values for a custom field with pagination. Returns { items, total, page, size } so the model can fetch in chunks.
Inputs: projectId (required), customFieldId (required), page, size.
project_get_test_case_treesGet Project Test Case TreesA
Get test case trees for a project. Use the returned tree IDs with testcase_list_in_tree.
Inputs: projectId (required).
project_listList ProjectsA
List all projects with pagination
Inputs: page, size, sort.
testcase_createCreate Test CaseB
Create a new test case in TestOps. Required: name and projectId. Optional: steps, customFields, tags, precondition, etc.
Inputs: name (required), projectId (required), tags, links, +13 more.
testcase_getGet Test CaseC
Get a test case by ID
Inputs: id (required).
testcase_get_custom_fieldsGet Test Case Custom FieldsC
Get custom field values for a test case
Inputs: id (required), projectId (required).
testcase_get_detailGet Test Case DetailARead-only
Aggregated card: name, description, tags, custom fields, and step texts as a simple list.
Inputs: id (required), projectId.
testcase_get_scenarioGet Test Case ScenarioBRead-only
Normalized scenario JSON (scenarioSteps, step bodies, expected results).
Inputs: id (required).
testcase_get_stepGet Test Case StepsCRead-only
Alias for testcase_get_scenario.
Inputs: id (required).
testcase_list_in_treeList Test Cases in TreeB
List test cases under a project tree with pagination. Use parentNodeId to page into a folder.
Inputs: treeId (required), projectId (required), page, size, +6 more.
testcase_search_by_aqlSearch Test Cases by AQLC
Search test cases using AQL query with pagination
Inputs: rql (required), projectId (required), page, size, +2 more.
testcase_set_scenarioSet Test Case ScenarioC
Replace all steps in a test case scenario
Inputs: id (required), steps (required).
testcase_updateUpdate Test CaseA
Update test case metadata (name, description, status, tags, etc.). Does NOT change steps or custom fields — use testcase_set_scenario / testcase_update_custom_fields for those.
Inputs: id (required), name, tags, links, +10 more.
testcase_update_custom_fieldsUpdate Test Case Custom FieldsB
Update custom field values for a test case
Inputs: id (required), fields (required).
testcase_update_stepUpdate Scenario StepB
Update one scenario step by its step id.
Inputs: stepId (required), body, expectedResult.
testplan_getGet Test PlanB
Get a test plan by ID
Inputs: id (required).
testplan_get_statGet Test Plan StatisticA
Test plan statistics: automated/manual counts, durations. Useful before running to estimate effort.
Inputs: id (required).
testplan_get_test_casesGet Test Plan Test CasesA
Get test cases from a test plan with pagination
Inputs: id (required), page, size, sort.
testplan_listList Test PlansA
List test plans for a project with pagination
Inputs: projectId (required), page, size, sort.
testplan_runRun Test PlanC
Create a launch from a test plan. Body requires launchName.
Inputs: id (required), launchName (required), tags, extra, +1 more.
testplan_syncSync Test PlanB
Sync test plan with its source: refreshes the test case list in the plan to match the current source.
Inputs: id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 31 tools
Each tool targets a distinct entity and action, with no overlapping purposes. Aliases like testcase_get_step for testcase_get_scenario are clearly documented as such.
All tools follow a consistent verb_noun pattern with underscores, e.g., project_list, testcase_create. Even multi-word actions like testcase_update_custom_fields maintain the pattern.
31 tools is on the higher side but well-scoped for a full-featured test management server. Each tool has a clear purpose and covers core workflows without being excessive.
The tool set lacks any delete operations for projects, test plans, launches, or test cases. This is a significant gap for CRUD completeness and will likely cause agent failures when deletion is needed.
Maintenance
Related MCP Connectors
Create and manage test cases, test runs and results in Testiny from your AI assistant.
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Connect AI assistants to your Tedix organization’s tasks, knowledge, apps, and results through MCP.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables management of TestRail projects, test cases, runs, and results directly through MCP-supported clients. It provides a comprehensive set of tools to interact with the TestRail API for seamless test cycle management within AI environments.426,221 npm42MIT
- AlicenseAqualityDmaintenanceAn MCP server that connects AI agents to TestOps, enabling test case management, launches, defects, and analytics through natural language.4825 npmMIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes Kiwi TCMS as a set of AI-callable tools, enabling assistants to create and manage test plans, test cases, test runs, and executions directly from a conversation.1-
- AlicenseAqualityDmaintenanceMCP server that integrates with Testmo to let AI assistants read projects, runs, results, and test cases, and create or update runs, results, and cases via natural language.15135 npmMIT