A standardized testing harness for MCP servers and agent workflows
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Eval Runner.
run_suiteexecute all fixtures in the fixtures directory; returns a pass/fail summary
run_caserun a single named fixture by name
list_casesenumerate available fixtures with step counts and descriptions
create_test_casecreate a new YAML fixture file (simulation mode; no `server` block)
scaffold_fixturegenerate a boilerplate fixture with placeholder steps and pre-filled assertion comments
regression_reportcompare the current fixture state to the last run; surfaces regressions and fixes
npm mcp-eval-runner package
A standardized testing harness for MCP servers and agent workflows. Define test cases as YAML fixtures (steps β expected tool calls β expected outputs), run regression suites directly from your MCP client, and get pass/fail results with diffs β without leaving Claude Code or Cursor.
Tool reference | Configuration | Fixture format | Contributing | Troubleshooting | Design principles
expected_output without a server.output_contains, output_not_contains, output_equals, output_matches, schema_match, tool_called, and latency_under per step.{{steps.<step_id>.output}}.Add the following config to your MCP client:
By default, eval fixtures are loaded from ./evals/ in the current working directory. To use a different path:
Amp Β· Claude Code Β· Cline Β· Cursor Β· VS Code Β· Windsurf Β· Zed
Create a file at evals/smoke.yaml. Use live mode (recommended) by including a server block:
Then enter the following in your MCP client:
Your client should return a pass/fail result for the smoke test.
Fixtures are YAML (or JSON) files placed in the fixtures directory. Each file defines one test case.
| Field | Required | Description |
|---|---|---|
name | Yes | Unique name for the test case |
description | No | Human-readable description |
server | No | Server config β if present, runs in live mode; if absent, runs in simulation mode |
steps | Yes | Array of steps to execute |
server block (live mode)When server is present the eval runner spawns the server as a child process, connects via MCP stdio transport, and calls each step's tool against the live server.
steps arrayEach step has the following fields:
| Field | Required | Description |
|---|---|---|
id | Yes | Unique identifier within the fixture (used for output piping) |
tool | Yes | MCP tool name to call |
description | No | Human-readable step description |
input | No | Key-value map of arguments passed to the tool (default: {}) |
expected_output | No | Literal string used as output in simulation mode |
expect | No | Assertions evaluated against the step output |
Live mode β fixture has a server block:
Simulation mode β no server block:
expected_output (or empty string if absent).output_contains assertions will always fail if expected_output is not set.All assertions go inside a step's expect block:
Multiple assertions in one expect block are all evaluated; the step fails if any assertion fails.
Reference the output of a previous step in a downstream step's input using {{steps.<step_id>.output}}:
Piping works in both live mode and simulation mode.
create_test_caseFixtures created with the create_test_case tool do not include a server block. They always run in simulation mode. To use live mode, add a server block manually to the generated YAML file.
run_suite β execute all fixtures in the fixtures directory; returns a pass/fail summaryrun_case β run a single named fixture by namelist_cases β enumerate available fixtures with step counts and descriptionscreate_test_case β create a new YAML fixture file (simulation mode; no server block)scaffold_fixture β generate a boilerplate fixture with placeholder steps and pre-filled assertion commentsregression_report β compare the current fixture state to the last run; surfaces regressions and fixescompare_results β diff two specific runs by run IDgenerate_html_report β generate a single-file HTML report for a completed runevaluate_deployment_gate β CI gate; fails if recent pass rate drops below a configurable thresholddiscover_fixtures β discover fixture files across one or more directories (respects FIXTURE_LIBRARY_DIRS)--fixtures / --fixtures-dirDirectory to load YAML/JSON eval fixture files from.
Type: string
Default: ./evals
--db / --db-pathPath to the SQLite database file used to store run history.
Type: string
Default: ~/.mcp/evals.db
--timeoutMaximum time in milliseconds to wait for a single step before marking it as failed.
Type: number
Default: 30000
--watchWatch the fixtures directory and rerun the affected fixture automatically when files change.
Type: boolean
Default: false
--formatOutput format for eval results.
Type: string
Choices: console, json, html
Default: console
--concurrencyNumber of test cases to run in parallel.
Type: number
Default: 1
--http-portStart an HTTP server on this port instead of stdio transport.
Type: number
Default: disabled (uses stdio)
Pass flags via the args property in your JSON config:
Before publishing a new version, verify the server with MCP Inspector to confirm all tools are exposed correctly and the protocol handshake succeeds.
Interactive UI (opens browser):
CLI mode (scripted / CI-friendly):
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-eval-runner)<a href="https://allmcps.com/mcp/mcp-eval-runner"><img src="https://allmcps.com/api/badge/mcp-eval-runner?style=directory" alt="MCP Eval Runner on AllMCPs" /></a>