All cases
Verify it in 5 minutes
Everything on this page runs on Replay: recorded, redacted responses from the real PayPal sandbox. No login, no keys, and nothing is sent. Carrier scans come from a mock carrier and store logs are sample data; both are labelled wherever they appear.
The evidence behind each call
For each case: the PayPal reason code, how much of the proof that answers it is on file, the score arithmetic, and the fact that decided it. Fixed rules, no AI. Open a case to see every proof with its record.
- PP-R-KFL-10190426OfferNot as described · $64.00 · proof 2 of 3 · score +1 +2 −1 = +2Mixed evidence: a fair offer usually settles it faster than a claim
- PP-R-VYZ-10190425RefundItem not received · $42.00 · proof 0 of 3 · score −3 = −3No tracking or proof of shipment on file
- PP-R-KWQ-10190429HoldItem not received · $142.00 · proof 1 of 3 · score +1 −1 = 0Still moving: no delivery scan yet
- PP-R-FDW-10190427RefundItem not received · $28.50 · proof 1 of 4 · score −4 +1 −4 = −7Seller's own records acknowledge the problem
- PP-R-OZN-10190428RefundItem not received · $9.50 · proof 1 of 3 · score +1 −1 = 0Your time (~$12.50) costs more than the $9.50 refund
- PP-R-FWW-10190477Defend · closed, wonItem not received · $312.00 · proof 3 of 3 · score +1 +3 +1 +1 = +6Carrier shows the package as delivered
- PP-R-WEO-10190424Defend · closed, wonItem not received · $89.00 · proof 3 of 3 · score +1 +3 +1 +1 = +6Carrier shows the package as delivered
Each fact for you adds its weight; each fact for the buyer subtracts it. +3 or more is strong, +1 to +2 mixed, below that weak. Any decisive fact for the buyer means a refund, whatever the total.
A 5-minute path
- 1 minWatch the agent work the case from the video. Check that every reason and every row of Proof for this claim carries a source chip; tap one and it jumps to the record.
- 30 sOn that case, press Test our checker: two made-up claims are injected and the server strikes them out.
- 30 sOpen What PayPal receives: the exact request (endpoint and JSON) and the evidence-pack PDF, before anything is sent.
- 1 minCases where the agent does not just defend: can't prove delivery · the buyer is right · a fair offer · hold, nothing to send yet.
- 1 minRun the checks yourself (no keys, no network):
npm ci && npm test - 1 minAsk any MCP client for the agent's judgement, keyless on the same Replay data:
npx @modelcontextprotocol/inspector npm run -s mcp:replaythen callassess_disputewithPP-R-VYZ-10190425: the verdict, the score arithmetic and the proof checklist, each with its record.
Gates every write passes
Each with the test file that proves it.
- Sandbox only: forced in three places (env check, Agent Toolkit context, base-URL assertion). The toolkit's own default is live.tests/sandbox-guard.test.ts
- Only the actions PayPal lists on the dispute right now (HATEOAS). A missing link means the write is refused before any call.tests/disputes.test.tstests/considered-actions.test.ts
- Nothing is sent without the seller's approval. The approval is stored first and used as PayPal-Request-Id, so a retry can't submit twice. Replay never sends.tests/submit.test.ts
- The server checker strikes AI claims with no record behind them, tracking numbers never gathered, offers above the amount, and policy outcomes stated as fact.tests/draft-validate.test.tstests/policy-claims.test.tstests/checker.test.ts
- Every proof and reason cites a record the agent actually gathered; the evidence-pack PDF refuses claims whose records aren't in it.tests/proof-checklist.test.tstests/submit.test.ts
- Buyer names, emails, addresses and phones are redacted before the AI, the logs and the fixtures.tests/redact.test.tstests/fixtures-scan.test.ts
- MCP: write tools are off unless DD_MCP_ALLOW_WRITES=1, HATEOAS-gated when on; keyless Replay returns the would-be request and sends nothing.tests/mcp.test.tstests/mcp-replay.test.ts