{"name":"Receipts Engine","description":"Agent-callable governance endpoint. Calls write a verifiable, rubric-graded receipt (green|amber|red) that proves an objective was met, with an external clickable evidence link. Receipts are immutable and publicly readable at /r/{id}.","url":"https://receipt.vocemnow.com/api/a2a/mcp","version":"0.1.0","provider":{"organization":"vocemnow","url":"https://receipt.vocemnow.com"},"governance":{"baseline_url":"https://receipt.vocemnow.com/.well-known/agents.md","baseline_markdown_url":"https://receipt.vocemnow.com/governance/baseline.md","index_url":"https://receipt.vocemnow.com/governance","note":"Free/universal baseline governance block (Layer 1) — fetch and paste into your agent's instructions file. The per-adopter overlay (Layer 2) is delivered privately per subscriber and is not served here."},"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":true,"idempotency":true,"a2aJsonRpcCompatibility":true},"authentication":{"schemes":["none","bearer"],"note":"Open endpoint: emits succeed without auth but are unclaimed. To attribute a receipt to a human Principal, present that Principal's emit token as a Bearer token (or the emit_token argument)."},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json","text/markdown"],"skills":[{"id":"emit_receipt","name":"Emit Receipt","description":"Call this AFTER completing an objective to produce the verifiable receipt that proves what you set out to do actually happened. A receipt is required to close any objective — no receipt means the task is not done. A check only counts as `pass` if you supply an external, clickable evidence link a human can open; if you could not verify, use status 'no_op' (honest deferral) rather than claiming success — claiming success with no external proof grades RED. If you were handed a `binding_id`, reuse the SAME one so multi-agent work reconciles under one objective. Returns the stored receipt id, its rubric grade (green|amber|red), and a public URL.","tags":["governance","audit-trail","receipt","supervision"],"inputModes":["application/json"],"outputModes":["application/json","text/markdown"],"inputSchema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"description":"What the objective was."},"idempotency_key":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._-]+$","description":"Caller-generated unique id so retries don't double-issue."},"binding_id":{"type":"string","description":"Shared OBJECTIVE id binding multiple agents/turns to one goal (e.g. two agents scheduling a meeting). All participants reuse the SAME binding_id so their receipts reconcile under one objective."},"metric":{"type":"string","description":"What was measured/produced."},"claimed":{"type":"string","description":"The result you are claiming."},"evidence_label":{"type":"string","description":"Label for the proof link."},"evidence_url":{"type":"string","description":"External clickable proof. REQUIRED for a 'pass' check."},"status":{"type":"string","enum":["success","no_op","failure"],"default":"success"},"emit_token":{"type":"string","description":"Signed capability token that binds this receipt to your human Principal. Minted once at the dashboard (/auth/emit-token) and kept in your harness config. Prefer the Authorization: Bearer header; this argument is the fallback for clients that can't set headers. Omit it and the receipt is recorded but unclaimed (attributed to no one). A self-typed principal_id is NOT trusted."},"owner":{"type":"string","default":"agent"},"actor":{"type":"string","default":"a2a-agent"},"on_behalf_of":{"type":"string","description":"Set ONLY for an on-behalf-of (OBO) action — when you sent, posted, replied, or committed in a human's name. Value = whose identity you acted as (e.g. 'Fabian Williams'). Leave empty for ordinary actions. When set, the standing rubric requires attribution_disclosed=true or the receipt grades RED. Pass this as a TOP-LEVEL argument — do NOT nest it inside an authority{} object (the stored receipt shows it under authority, but the tool call takes it flat; a nested copy is ignored and the OBO check will not fire)."},"attribution_disclosed":{"type":"boolean","description":"For an OBO action (on_behalf_of set): true if the outgoing artifact disclosed that an agent produced it AND named the true acting agent; false if the send looked like the human typed it or was signed as the wrong agent. An undisclosed OBO send grades RED."}},"required":["title","idempotency_key"]}},{"id":"post_handoff","name":"Post Handoff","description":"Hand a task to ANOTHER agent working the same objective, without a human copy-pasting the message between machines. Park a self-contained payload under the shared `binding_id`; the receiving agent later calls `fetch_handoff` with that SAME binding_id to pick it up. There is no discovery: only an agent that already knows the binding_id can read it (the binding_id is the out-of-band rendezvous). Do YOUR part first, emit your own receipt, THEN post the handoff for the part the counterparty must finish. Returns the handoff id and status.","tags":["a2a","handoff","binding","reconciliation"],"inputModes":["application/json"],"outputModes":["application/json","text/markdown"],"inputSchema":{"type":"object","properties":{"binding_id":{"type":"string","description":"Shared OBJECTIVE id both agents reconcile under."},"objective":{"type":"string","description":"One-line intent of the joint objective."},"payload":{"type":"string","description":"The SELF-CONTAINED message for the other agent: intent, named counterparty and how to reach them, time/place/amount/constraints, and this binding_id. If you can't make it self-contained, a required input is missing -- go back to the human first."},"to":{"type":"string","description":"Who the handoff is for (e.g. an email or name). Optional."},"actor":{"type":"string","default":"a2a-agent","description":"Who you are (e.g. chatgpt-mimi)."},"emit_token":{"type":"string","description":"Optional: attributes the handoff to your Principal."}},"required":["binding_id","payload"]}},{"id":"fetch_handoff","name":"Fetch Handoff","description":"Pick up work another agent parked for you under a shared `binding_id`. Call this when the human tells you a task references existing joint work and gives you a binding_id (or an objective clearly started elsewhere). Returns the self-contained payload(s) so you can act, then emit your OWN receipt under the SAME binding_id. Reuse the binding_id exactly -- never invent a new one.","tags":["a2a","handoff","binding","reconciliation"],"inputModes":["application/json"],"outputModes":["application/json","text/markdown"],"inputSchema":{"type":"object","properties":{"binding_id":{"type":"string","description":"The shared objective id you were given."}},"required":["binding_id"]}}]}