MCP Lab / open-source testing tools
Test MCP timeout, cancellation, and disconnect handling.
MCP Lab develops focused tools for reproducing failure conditions in Model Context Protocol systems. The first project, MCP Failure Lab, runs deterministic scenarios against a purpose-built MCP server.
A scenario and its result
The runner makes a real MCP tool call, records the observed outcome and duration, then evaluates the declared expectations.
delay-success.jsoninput
{
"name": "bounded delay succeeds",
"call": {
"tool": "delay",
"args": { "delayMs": 250 }
},
"timeoutMs": 1000,
"expect": {
"outcome": "success",
"maxDurationMs": 500
}
}consoleoutput
$ npm run dev -- run \ examples/scenarios/delay-success.json Scenario: bounded delay succeeds Outcome: success Duration: ~250 ms Assertions: passed
MCP Failure Lab
The current release covers a deliberately small set of failure modes and reporting primitives.
| Capability | Behavior | Status |
|---|---|---|
| delay | Bounded, cancellation-aware latency from 0 to 30 seconds. | available |
| hang | A pending request that ends only on client cancellation. | available |
| disconnect | Transport loss while a tool request is in flight. | available |
| ping | Health and post-condition verification through a separate tool path. | available |
| reporting | Console and stable JSON output with CI-oriented exit codes. | available |
| HTTP / JUnit | Streamable HTTP transport and JUnit reports. | planned |
What it is
A deterministic test server, scenario runner, assertion model, and CLI for exercising known MCP failure paths.
What it is not
It is not currently a general-purpose proxy, protocol compliance suite, or external MCP client orchestrator.