
Eclipse Rebuttal
Chargeback rebuttal evidence packets for agent purchases: turns a Procure/Till mandate + receipt chain into a generic reason-code packet with every element traced to a source record. LOCAL/fixture scope only — packet generation only; never files, submits, or transmits anything, no card network or issuer is contacted, and reason codes are a small generic table, not any network's proprietary codes.
status: in-developmentclass: mcpTrust & ReceiptsAgent Commerce / Procurement
Vendor: Cyan Eclipse Technologies
What it does
- Novel mechanism — auto-translation of the sealed Procure/Till mandate chain into generic reason-code evidence format (SPEC §3): ingest_dispute seals the dispute + mandate-chain + receipt records into one case with a chain hash; map_evidence translates that sealed chain, per dispute reason class, into evidence sections where every evidence element is traced to a specific mandate/receipt/dispute record id (source_record_id) — an untraced element cannot be emitted. The mandate facts translated are exactly the agent-commerce facts incumbents do not carry: who authorized what (authorized_by, agent_id, action), the authorization scope, transaction-within-scope derivation, and the drift-abort log (out-of-scope attempts the agent aborted), included whenever present. Bench P1: 11/11 elements traced to existing record ids, source_type consistent, values faithful; within_scope derivation arithmetic verified.
- Completeness honesty — a packet built from an incomplete mandate chain is marked INCOMPLETE with each missing element named (dispute_id, dispute_reason_class, dispute_amount, dispute_order_ref, mandate_chain, mandate_authorization, mandate_scope, receipt_record, receipt_order_ref_match, receipt_amount); a missing evidence section renders MISSING with zero elements and evidence is never fabricated. Bench anti-fabrication battery PASS: each gap case validated INCOMPLETE naming the exact gap, packet marked INCOMPLETE, section MISSING/empty, zero banned evidence strings in evidence JSON or text rendering; drift-abort absence handled honestly (no_events_declared, zero elements, nothing invented).
- Seal-gated translation + full-packet seal (v0.1.1 fixes for bench defects D1/D2, both HIGH): map_evidence/build_packet recompute the case seal before translating — a tampered stored case is a hard refusal (SEAL_INVALID), no packet is stored and the attacker value is emitted nowhere (re-bench C1: 6/6). The packet seal covers the FULL packet including text_rendering — appended/fabricated text, stored text tamper, and an edit-any-field sweep (12/12) all verify INVALID (re-bench C2: 5/5).
- Receipt attribution + no null elements (v0.1.1 fixes for bench defects D3/D5): the receipts[0] fallback is removed — only a receipt whose order_ref equals the dispute's is receipt evidence; a mismatched receipt (ORD-OTHER-999 under both unauthorized and processing_error) renders receipt sections MISSING with zero elements, the packet is INCOMPLETE, and the mismatched record_id/order_ref/amount/merchant occur nowhere in packet JSON or text (re-bench C3: 8/8). Null-valued dispute fields emit no elements — order_identification renders MISSING when no present values exist, partial nulls emit only present values (re-bench D5: 6/6).
- Keyed seal + honest scope: seals are HMAC-SHA256 with a runtime-generated local DEMO key (keys/demo.key, gitignored, mode 0600) — external re-seal attacks (unkeyed SHA-256, wrong-key HMAC, foreign-key store) all verify INVALID while the legitimate key-holder flow verifies VALID (re-bench C4: 7/7); the demo key proves 'unchanged since sealed under this local demo key' only, not a production/network signature. LOCAL/fixture scope only — packet generation only: no card network, issuer, merchant, or platform is contacted, no network calls, and the tool never files, submits, or transmits anything. Reason-code mapping is a small generic table (GEN-* codes) labelled generic — not any card network's proprietary reason codes, no network affiliation claimed. Python 3 standard library only; MCP over stdio; exactly 5 tools (submit_packet/file_chargeback/transmit_packet -> NO_SUCH_TOOL); no payment or checkout code — the $5.00/filing term is a pricing statement only.
Tools
ingest_dispute · map_evidence · build_packet · validate_case · get_packet
Platforms
- MCP over stdio
Certification
Bench verdict: CERTIFIED (local, fixture)
Certified scope: CERTIFIED (local, fixture) — Verity independent re-bench 2026-10-26, REBENCH-1 of the v0.1.1 Bench Fix C1–C4/D5 round (repo @ 3f0668c): 39/39 scoped probes PASS, builder suite re-run 23/23. C1/D2 (HIGH — build_packet/map_evidence never verified the case seal, so a tampered chain was re-sealed into a VALID packet) CLOSED: tampered stored case (authorized_by -> buyer:mallory) -> validate_case case_seal_valid=false, map_evidence + build_packet hard refusal SEAL_INVALID, no packet stored, attacker value emitted nowhere (6/6). C2/D1 (HIGH — packet seal excluded text_rendering, so fabricated text verified VALID) CLOSED: seal now covers the full packet incl. text_rendering; supplied + stored text tamper INVALID and edit-any-field sweep 12/12 INVALID (5/5). C3/D3 (MED — mismatched receipt silently used via receipts[0] fallback) CLOSED: receipt sections MISSING, packet INCOMPLETE, mismatched receipt traced nowhere under 2 reason classes (8/8). C4/D4 (MED — external re-seal verified under unkeyed SHA-256) CLOSED: HMAC-SHA256 demo-key seals; unkeyed/wrong-key/foreign-key re-seals INVALID, legitimate key-holder flow VALID (7/7). D5 (LOW — null-valued elements in present sections) CLOSED: no null elements, partial nulls emit only present values (6/6). Spot-check P1 regression PASS (7/7): complete fixture COMPLETE + case_seal_valid=true, 11/11 elements traced, within_scope derivation correct, all 5 sections present, get_packet VALID. Prior verdict on v0.1.0 (VERDICT.md): CONDITIONAL (local, fixture), 45/51 probes, core mechanism (traceability + anti-fabrication battery) passing in full with defects D1–D5 — all closed by this re-bench. Scope = LOCAL/fixture only: caller-supplied fixture dispute + mandate-chain + receipt data, stdio transport, HMAC-SHA256 demo seal with a local demo key (keys/demo.key, gitignored, mode 0600). Packet generation only — the tool never files, submits, or transmits anything, no card network/issuer/merchant/platform is contacted, and the generic GEN-* reason-code table is not any network's proprietary codes and claims no network affiliation; nothing about real filing, submission, or network acceptance is claimed by the product or tested here.
Not tested:
- Filing, submission, or transmission to any card network, issuer, merchant, or platform — not in v0.1.1 by design (SPEC §9 non-goals): packet generation only, no network calls at all
- Hosted or remote serving — v0.1.1 is local stdio only, operating on caller-supplied fixture dispute + mandate-chain + receipt data
- Payment, checkout, or per-filing metering enforcement — none exists in v0.1.1 by design: the $5.00/filing term is commercial metadata (PC-7 pattern); no payment or checkout code is in the server
- Proprietary network reason codes or network affiliation — mapping is a small generic GEN-* table, labelled generic; no legal advice or win/loss prediction is provided
- Production key custody — seals use an HMAC-SHA256 demo key generated locally (gitignored keys/demo.key); the seal proves unchanged-since-sealed under that local demo key only, no production key claim is made
Live state note: Bench evidence: argus-batch-20261026/bench/rebuttal/VERDICT.md + REBENCH-1.md (Verity, independent bench over stdio JSON-RPC only, fresh server process + isolated data dir + isolated key file per scenario; attack cases reused from prior suite). This bench issued no test-bench/results scorecard; scorecard_ref is null and no scorecard is claimed or hosted for this product.
Pricing
PRICED — $5.00/filing (PC-7 pattern), via the Eclipse Bazaar bench-order path only. No checkout, payment, or buy-now link exists for this product; v0.1.1 contains no payment or checkout code (the price is a stated term only). Repository is PRIVATE (priced-product policy).
Install / verify
No install command is published for this product in the catalog or its registry record.
Official MCP Registry name: io.github.CYAN-ECLIPSE-TECHNOLOGIES-LLC/eclipse-rebuttal-mcp
Registry listing: https://registry.modelcontextprotocol.io/v0.1/servers/io.github.CYAN-ECLIPSE-TECHNOLOGIES-LLC%2Feclipse-rebuttal-mcp/versions/0.1.1
Repository: https://github.com/CYAN-ECLIPSE-TECHNOLOGIES-LLC/eclipse-rebuttal-mcp
Verify any MCP server in your client configs against this catalog with bazaar check (Eclipse Bazaar MCP / CLI — see llms.txt).