MCP server by runespoor-engineering
Testmo MCP Server
A Model Context Protocol (MCP) server that exposes Testmo's REST API as tools for AI assistants (Claude, Cursor, etc.), using the official @testmo/testmo-api package.
- Testmo MCP Server
Features
| Category | Tools | |---|---| | Projects | List projects, get project details | | Milestones | List milestones, get milestone details | | Test Runs | List runs, get run details, list run results | | Automation Runs | List, get, create automation runs; submit results; mark complete | | Test Cases | List, create, update, delete repository cases | | Folders | List, create, update, delete repository folders | | Sessions | List and get exploratory test sessions | | Users | Get current user, list all users |
Requirements
- Node.js 22.12+
- npm (or pnpm/yarn) – installs
@testmo/testmo-api - A Testmo account with an API token
Setup
1. Install dependencies
npm install
2. Get your Testmo API token
- Log in to your Testmo instance
- Go to My Profile → API Keys
- Generate a new API key and copy it
3. Configure the server
The server is configured via environment variables:
| Variable | Description | Example |
|---|---|---|
| TESTMO_INSTANCE_URL | Your Testmo instance URL | https://mycompany.testmo.net |
| TESTMO_TOKEN | Your Testmo API token | tm_abc123... |
Do not commit tokens or config files that contain them (use .env and add it to .gitignore).
Using with Cursor
- Open Cursor Settings → MCP (or edit ~/.cursor/mcp.json directly)
- Add this config:
{
"mcpServers": {
"testmo": {
"command": "node",
"args": ["/absolute/path/to/mcp-testmo/index.js"],
"env": {
"TESTMO_INSTANCE_URL": "https://mcp.testmo.net",
"TESTMO_TOKEN": "your-api-token"
}
}
}
}
- Restart Cursor — the Testmo tools will appear in the MCP tools list.
A couple of Cursor-specific tips:
- Use the server in Agent mode (Ctrl+I / Cmd+I) — that's where Cursor actually calls MCP tools
- Cursor will ask for approval before each tool call, so you stay in control of writes (creating runs, submitting results, etc.)
Running manually (for testing)
export TESTMO_INSTANCE_URL="https://your-company.testmo.net"
export TESTMO_TOKEN="your-api-token"
npm start
Available Tools
Projects
testmo_list_projects— List all accessible projects (pagination)testmo_get_project— Get a project by ID
Milestones
testmo_list_milestones— List milestones for a projecttestmo_get_milestone— Get a milestone by ID
Test Runs (manual)
testmo_list_runs— List runs for a project (optional milestone filter)testmo_get_run— Get a run by IDtestmo_list_run_results— Get results for a run (filters: status, user, date range, expands)
Automation Runs
testmo_list_automation_runs— List automation runs (optional source filter)testmo_get_automation_run— Get an automation run by IDtestmo_create_automation_run— Create a new automation run (name, source, optional milestone)testmo_submit_automation_result— Submit a single test result (name, status_id, optional duration_ms, message)testmo_complete_automation_run— Mark the automation run as complete
Test Cases (repository)
testmo_list_cases— List cases (filter by folder, template, date)testmo_create_case— Create one or more cases (casesarray or singlename+ optionalfolder_id)testmo_update_case— Update cases byproject_id+idsand optional fieldstestmo_delete_case— Delete cases byproject_id+ids
Folders (repository)
testmo_list_folders— List folders in a projecttestmo_create_folder— Create one or more folders (foldersarray or singlename+ optionalparent_id)testmo_update_folder— Update folders byproject_id+idstestmo_delete_folder— Delete folders byproject_id+ids
Sessions
testmo_list_sessions— List exploratory sessions for a projecttestmo_get_session— Get session details
Users
testmo_get_current_user— Get the current user's profiletestmo_list_users— List all users in the instance
Status IDs Reference
| ID | Status | |----|--------| | 1 | Untested | | 2 | Passed | | 3 | Failed | | 4 | Retest | | 5 | Blocked | | 6 | Skipped |
(Custom statuses may use IDs 7–25 depending on your instance.)
Example prompts
- "List all my Testmo projects"
- "Show me failed test results from run 15"
- "Create an automation run named 'CI Build #123' with source 'backend' in project 2"
- "Submit a failed test result for 'Login flow' with message 'Timeout after 30s'"
- "List repository cases in project 1 and create a folder named 'Regression'"
Architecture
The server uses the official @testmo/testmo-api SDK and implements the MCP JSON-RPC 2.0 protocol over stdio.
MCP Client (Claude / Cursor / …)
│ stdio (JSON-RPC 2.0)
▼
testmo-mcp-server (index.js)
│ @testmo/testmo-api (HTTPS)
▼
Your Testmo instance (/api/v1)
License
MIT