Your MCP server drifts. Nobody notices until the agent breaks.
MCPReplay records real client traffic, replays it on every commit, and fails the build the moment a tool response stops matching contract.
$ npx mcpreplay record
✓ captured 12 tool calls → tests/mcp/fixtures.json
# later, in CI…
$ npx mcpreplay replay
✗ tools/search: response shape drifted
- results: [{ title, url: "string" }]
+ results: [{ title, url: { href, label } }]
FAIL 1 tool drifted · exit 1
Free CLI + GitHub Action launching soon. Hosted dashboard waitlist open now.
How it works
-
1
Record
$ npx mcpreplay recordProxy your real dev MCP session. Every tool call + response is snapshotted into
tests/mcp/*.json. -
2
Commit
$ git add tests/mcp/ && git commitFixtures ship with your code. Reviewed in PRs like any other test. No cloud round-trip.
-
3
Replay in CI
# .github/workflows/mcp.yml - uses: mcpreplay/action@v1One workflow step. The PR fails the instant any tool response drifts from the last green run.
Why MCPReplay
- Catch schema drift before your agents do. A renamed param, a new required field, a missing enum — MCPReplay diffs every replayed response against the last green run and fails CI on drift.
-
Zero-config for most MCP servers.
npx mcpreplay recordattaches to your dev session and snapshots real traffic. Commit the JSON fixtures alongside your code. No auth flows, no cloud setup, no sign-up. - OSS-first, hosted-optional. CLI and GitHub Action are Apache-2.0. Your fixtures live in your repo. The hosted dashboard is there if you want history, status badges, or cron runs — not required to get value.