Timing & cancellation
Bounded delays, requests that hang until cancellation, and deliberately late stdio responses.
delayhangresponse_after_cancellationMCP Lab develops focused tools for reproducing failure conditions in Model Context Protocol systems. The first project, MCP Failure Lab, runs deterministic scenarios against its built-in server or a configured external MCP target.
The runner makes a real MCP tool call, records the observed outcome and duration, then evaluates the declared expectations.
{
"name": "bounded delay succeeds",
"call": {
"tool": "delay",
"args": { "delayMs": 250 }
},
"timeoutMs": 1000,
"expect": {
"outcome": "success",
"maxDurationMs": 500
}
}$ npm run dev -- run \ examples/scenarios/delay-success.json Scenario: bounded delay succeeds Outcome: success Duration: ~250 ms Assertions: passed
Start with a focused failure mode, then verify what the same connection—or a new one—can do next.
Bounded delays, requests that hang until cancellation, and deliberately late stdio responses.
delayhangresponse_after_cancellationInvalid envelopes, duplicate results, oversized payloads, and broken progress notification sequences.
malformed_messageduplicate_responseoversized_responseinvalid_progressIn-flight connection loss and controlled legacy HTTP session invalidation across stdio and HTTP.
disconnectsession_lossStreamable HTTPCheck recovery and protocol liveness, then produce stable console, JSON, or JUnit results for CI.
pingprotocol_ping_livenessJSON + JUnitA deterministic test server, scenario runner, assertion model, and CLI for exercising known MCP failure paths.
It is not a general-purpose proxy or protocol compliance suite. External execution is limited to configured MCP targets and declared scenarios.