# Synthetic MCP fixture `server.mjs` is a dependency-free stdio MCP server containing only synthetic data. It advertises `echo` and `slugify`. With `FIXTURE_V2=1`, it removes `slugify` and makes `echo.prefix` required, providing a stable breaking-change probe for CI. Build the CLI, then use any MCP client to drive the record command: ```bash npm run build node dist/cli.js record -o .dsh-echo/example.cassette.jsonl -- \ node examples/fixture/server.mjs ``` Replay does not start the fixture server: ```bash node dist/cli.js replay .dsh-echo/example.cassette.jsonl ``` Contract example: ```bash node dist/cli.js snapshot --stdio "node examples/fixture/server.mjs" \ -f /tmp/example.snapshot.json node dist/cli.js snapshot --check --fail-on breaking \ --stdio "env FIXTURE_V2=1 node examples/fixture/server.mjs" \ -f /tmp/example.snapshot.json ``` The second command must exit with status 1 and report both a removed tool and a new required property.