---
name: gaip-witness
description: "Witness: agreed terms, delivery checks, signed receipts, dispute bundles and evidence packs. Registers caller-declared delivery checks, observes supplied public results and returns a verifiable retained receipt. It also keeps buyer-side delivery checks, tests supplier claims, inspects counterparty evidence, compiles evidence packs and incident bundles, and records a task's outcome and caller-supplied costs (Buyer Assurance, Procurement Evidence, Trust & Assurance and Outcome & Value are part of Witness since 1 Oct 2026). It returns signed extracts of GAIP's record as kept about an agent or a shop page."
---

# GAIP Witness Agent

Registers caller-declared delivery checks, observes supplied public results and returns a verifiable retained receipt. It also keeps buyer-side delivery checks, tests supplier claims, inspects counterparty evidence, compiles evidence packs and incident bundles, and records a task's outcome and caller-supplied costs (Buyer Assurance, Procurement Evidence, Trust & Assurance and Outcome & Value are part of Witness since 1 Oct 2026). It returns signed extracts of GAIP's record as kept about an agent or a shop page.

## Connect

- MCP (streamable HTTP, no account or key): https://www.gaipagents.com/mcp/agents/witness
- A2A endpoint: https://www.gaipagents.com/a2a/witness-agent (card: https://www.gaipagents.com/agents/witness/.well-known/agent-card.json)
- Claude Code: `claude mcp add --transport http gaip-witness https://www.gaipagents.com/mcp/agents/witness`
- Web page: https://www.gaipagents.com/agents/witness

## Tools

- `witness_register_terms`: Use this when about to depend on a public HTTPS service and you want neutral evidence of what it delivers.
- `witness_delivery`: Use this when asked whether a service delivered what was agreed ("did the supplier deliver?").
- `gaip_receipt_export`: Export a GAIP receipt in another ecosystem's shape (for example x402 or in-toto).
- `verify_gaip_receipt`: Use this when you hold a GAIP receipt_id and want to confirm it ("is this receipt genuine?"). Returns the retained record, hash chain and Merkle inclusion proof.
- `witness_dispute_bundle`: Use this when a witnessed delivery failed and you must hand the facts to the other party or a resolver. Pass `terms_id` or a delivery `receipt_id`.
- `gaip_watch_register`: Register a free watch on an agent card, supplier interface or delivery terms; signed webhook on change.
- `gaip_watch_list`: List your watches, their last result and next check.
- `gaip_watch_remove`: Stop a watch and delete its stored events.
- `gaip_watch_events`: Read recent change events for your watches.
- `gaip_citation_witness`: Check that cited web pages exist and contain the quoted text.
- `gaip_check_sar_receipt`: Use this when handed an x402 SAR-shaped receipt (draft proposal shape; may change). Pass `sar_receipt`, optionally the issuer's `public_key`.
- `gaip_record_extract`: Use this when you need proof of what an agent or shop page declared on a date. Pass its `url` (optional `since`, `until`).
- `witness_accept_terms`: Use this when you are the other party to terms a buyer registered.
- `witness_finding`: Use this when deliveries exist for an agreement and you want GAIP's signed finding. Pass the `agreement_id` and your `continuity_handle`.
- `witness_signoff`: Use this when a role (APPROVER, REVIEWER, OWNER, OPERATOR or a hashed role_id) decided on an agent's proposal.
- `assurance_prepare`: Use this when you, the buyer, chose a public service and want its delivery checked end to end. Pass `service_url`, `checks` and explicit_read_only_consent=true.
- `assurance_complete`: Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED.
- `assurance_verify`: Use this when you hold a Buyer Assurance terms or delivery receipt_id and want to confirm it. Returns the retained record and its integrity proof (integrity only).
- `gaip_verify_supplier_claims`: Use this to check what an agent, API or supplier claims. Pass `claims` (each with an `id`; add `check_url` and GAIP tests it now), your `observations` and `metadata`.
- `inspect_counterparty_evidence`: Use this when asked what evidence exists about an agent before delegating to it. Pass its `counterparty_id` and any `observations`.
- `gaip_evidence_pack`: Compile an agent's or supplier's conformance, watch, witness and repair history into one dossier with a verify URL per item.
- `gaip_incident_bundle`: Put the receipts and observations about an incident in time order.
- `gaip_measure_outcome_value`: Use this when asked whether an outcome-priced task delivered and what it cost.

## First call

```bash
curl -s https://www.gaipagents.com/mcp/agents/witness -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"witness_register_terms","arguments":{"seller_ref":"example-weather-agent","service_url":"https://weather.example.com/forecast.json","checks":[{"id":"http_status_in","allowed":[200]},{"id":"json_parses"}]}}}'
```

## Limits

- Public or non-personal data only; read-only; free.
- Results state what was observed at a stated time. They are not certification, endorsement, a ranking or advice; the decision stays with the caller.
- Terms: https://www.gaipagents.com/terms · Methodology: https://www.gaipagents.com/methodology
