What TestOptim MCP server does
TestOptim MCP server gives MCP-compatible coding agents access to TestOptim’s web application QA workflows. It can identify projects available to an API key, launch a test run for an entire project, or focus a run on selected pages and flows through changedAreas. Agents can then follow the run until it completes or fails and review the issues that were found.
Issue results include summary fields such as title, severity, category, and status. A detailed issue response adds the description, reproduction steps, expected and actual behavior, affected page URL, and screenshot. This makes the server suitable for an agent loop in which code changes are followed by targeted testing and issue review.
The server also exposes exploration operations. Exploration scans the project’s application so TestOptim can record new or modified pages, flows, and entities for later testing.
How it works
TestOptim hosts the MCP endpoint at https://api.testoptim.com/api/mcp. Communication uses stateless Streamable HTTP with POST requests. Each request carries an Authorization: Bearer ... header containing a TestOptim API key; the service does not use session IDs.
A typical workflow is:
- Call
list_projects to obtain an accessible project ID.
- Use
start_test_run with that ID, optionally passing paths or flows in changedAreas.
- Poll
get_test_run for status, progress, the current step, and issue counts by severity.
- Filter results with
list_issues, then call get_issue for reproduction details and screenshots.
- Stop an unnecessary run with
stop_test_run.
For applications with new or changed coverage, start_exploration returns an exploration ID. get_exploration reports progress and, after completion, the number of pages, flows, and entities recorded.
Setup and configuration
No local package or process is required. Create a TestOptim API key from Settings, API keys, and select project access and permissions appropriate for the client. The key is shown only once and should be kept outside committed configuration where possible.
Set the key in the environment used to launch the client:
export TESTOPTIM_TOKEN="topt_..."
Then add the hosted endpoint to the client’s MCP configuration with the bearer header. Claude Code, Cursor, VS Code, Windsurf, and Claude Desktop are documented connection options. VS Code can prompt for and securely store the key; the other configuration examples use the environment variable or a locally configured header. Claude Desktop and claude.ai can also connect through a custom connector.
A Claude Code plugin connects the server and installs the testoptim-qa skill together. The skill can also be installed separately with the skills CLI for agents that support SKILL.md files.
Tools and capabilities
list_projects finds projects available to the API key.
start_test_run launches a complete or targeted test run.
get_test_run reports run state, progress, current step, and severity counts.
stop_test_run halts a running run before additional test cases execute.
list_issues returns issue summaries, optionally filtered by run or severity.
get_issue returns full issue context, including screenshots and reproduction steps.
start_exploration discovers application pages, flows, and entities.
get_exploration reports exploration progress and recorded coverage.
The server only exposes tools allowed by the API key’s permissions. Read-only keys therefore cannot see run-starting tools.
Limitations and notes
TestOptim requires an account with at least one project containing generated test cases. Creating API keys requires the organization’s Owner or Admin role. Runs consume plan test executions and are attributed to the person who created the key; stopping a run prevents further execution and billing, but the stopped run is reported as failed.
Exploration uses the plan’s page allowance. Starting a new exploration replaces one that is already running. If an exploration reports waiting_otp_ready or waiting_otp, a one-time login code must be entered in the TestOptim application before it can continue.
The endpoint is stateless and accepts POST requests; GET and DELETE return 405. Shared organization connectors should use narrowly scoped keys because all users of the connector share that credential.