Workflow
- Capture a session with
proxy start --session-file:
- Replay the captured messages against a server:
Command reference
| Option | Required | Description |
|---|---|---|
--session-file | Yes | Path to a saved session file |
--target-command | Yes* | Server command for replay (stdio) |
--target-url | No | Server URL for replay (SSE/HTTP) |
--output | No | Save replay results to JSON |
--timeout | No | Per-message response timeout in seconds (default: 10.0) |
--no-handshake | No | Skip auto-handshake if session already includes initialize |
--target-command or --target-url is required.
Auto-handshake
By default, the replay engine sends a syntheticinitialize / notifications/initialized handshake before replaying messages. This ensures the server is ready to accept tool calls. Use --no-handshake if your session file already starts with the initialize sequence and you want to replay it exactly.
Modifying arguments
Replay sends messages exactly as captured. To modify arguments before replaying:- Export or inspect the session to find the message you want to change
- Edit the session JSON file directly — modify the
payloadfield of the target message - Replay the edited session
Saving results
Use--output to save replay results as JSON:
Timeout
The--timeout option sets the per-message response timeout in seconds (default: 10.0). Increase this for slow servers:
Use case: reproducing findings
Replay is useful for reproducing audit findings. After a scan identifies a vulnerability, capture a targeted interaction with the proxy, then replay the exact message sequence to confirm the finding is reproducible:Only client-to-server messages (requests and notifications) are replayed. Server-to-client messages in the session file are skipped.