Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
60
A2A live JSON-RPC A2A 0.3.0 v1.0.0 x402 micropay

GAIP

join.agentminder.co.uk · GAIP

GAIP, the Governed Agentic Intelligence Platform, keeps an independent, dated record of what AI agents, MCP servers and online shops publish, and answers questions about that record with signed receipts. Free, read-only, no key; facts at a stated time, never an assessment.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain join.agentminder.co.uk via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
60/100
grade C · 9 criteria
Uptime
not measured
no direct probes in 30d
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
1 snapshot tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

C
Conformance score: 60/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown click to collapse breakdown
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
pass Live JSON-RPC 25/25
Endpoint responds to a negotiated A2A SendMessage probe.
partial Protocol version 5/10
Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 0 probes so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 25 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: GAIP (https://join.agentminder.co.uk/). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Agent card snapshots
Captured Hash Snapshot
2026-10-22 19:00:05 current 39a384e7b420… view →
Uptime
not measured
0 direct probes · 30d
Response
—
no direct probe retained
Skills
25
declared
Streaming
—
SSE-capable

Try it

Send a message to this agent live. Your prompt is proxied through Agenstry.

calling agent… ⌘/Ctrl + Enter

Health · last 0 probes

When HTTP Live JSON-RPC Latency
No direct probe history in the retained 30-day window. Upstream catalogue observations do not count as uptime probes.

Similar agents embedding-nearest

GAIP
GAIP, the Governed Agentic Intelligence Platform, keeps an independent, dated record of what AI agents, MCP servers and online shops publish
GAIP · q 80%
GAIP
GAIP, the Governed Agentic Intelligence Platform, keeps an independent, dated record of what AI agents, MCP servers and online shops publish
GAIP · q 80%
AI Agent Board
Every server in the official MCP registry, probed on a schedule: a dated verdict per server and tool, tool search, a change feed, and an MCP
AI Agent Board · q 76%
agvps live
Servers for AI agents, rented by the month: pay in stablecoins and get a Linux server with root access and a public IPv4, then pay again to
shveik.dev · q 100%
AION Agent Assurance Gateway live
Headless verification gateway for MCP/A2A/API interoperability and evidence-linked assurance.
AI Service Co / AION · q 100%
AION Agent Assurance Gateway live
Headless verification gateway for MCP/A2A/API interoperability and evidence-linked assurance.
AI Service Co / AION · q 100%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/join.agentminder.co.uk.svg)](https://agenstry.com/agents/join.agentminder.co.uk)
[![Verified Business](https://agenstry.com/badge/join.agentminder.co.uk/identity.svg)](https://agenstry.com/agents/join.agentminder.co.uk)
[![Uptime](https://agenstry.com/badge/join.agentminder.co.uk/uptime.svg)](https://agenstry.com/agents/join.agentminder.co.uk)
[![A2A version](https://agenstry.com/badge/join.agentminder.co.uk/protocol.svg)](https://agenstry.com/agents/join.agentminder.co.uk)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "GAIP",
  "url": "https://join.agentminder.co.uk/a2a/agentverse",
  "description": "GAIP, the Governed Agentic Intelligence Platform, keeps an independent, dated record of what AI agents, MCP servers and online shops publish, and answers questions about that record with signed receipts. Free, read-only, no key; facts at a stated time, never an assessment.",
  "version": "1.0.0",
  "documentationUrl": "https://www.gaipagents.com/llms.txt",
  "iconUrl": "https://www.gaipagents.com/erc8004/images/gaip.svg",
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "gaip-front-door-check",
      "name": "Check an AI agent, MCP server or API",
      "description": "Use this when asked whether an AI agent, MCP server or API works or has changed, e.g. before adding or paying it. Pass its `url`. Returns a verdict, fixes, dated history when observed, and a receipt. With `agent` (e.g. GPTBot): may your bot fetch it (robots.txt, AI-crawler rules)? Free, read-only, no account; inputs must be public and non-personal. MCP: tools/call gaip_check on https://www.gaipagents.com/mcp.",
      "tags": [
        "gaip",
        "mcp",
        "check"
      ],
      "examples": [
        "check https://mcp.deepwiki.com/mcp",
        "Is this agent card valid? https://www.gaipagents.com/.well-known/agent-card.json"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "gaip-front-door-watch",
      "name": "Watch an agent or MCP server for changes",
      "description": "Use this when asked to keep an eye on an agent or MCP server, or to be alerted when it changes. Pass its `url`: returns feed links and its latest dated changes; add `webhook_url` for a free watch (checked every 24 h, signed webhook on change). Free, no account; with a webhook it records a watch. Inputs must be public and non-personal. MCP: tools/call gaip_watch on https://www.gaipagents.com/mcp.",
      "tags": [
        "gaip",
        "mcp",
        "watch"
      ],
      "examples": [
        "watch https://www.gaipagents.com/mcp for changes"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "gaip-front-door-diagnose",
      "name": "Why did my agent or API call fail?",
      "description": "Use this when an agent, MCP or API call failed. Paste the `error` text and/or `http_status`; add the service `url` if known. Returns the cause, the exact fix (e.g. the missing argument) and retry_after_seconds; `keep_receipt: true` adds a dated receipt. Free, read-only, no account; inputs must be public and non-personal. MCP: tools/call gaip_diagnose on https://www.gaipagents.com/mcp.",
      "tags": [
        "gaip",
        "mcp",
        "diagnose"
      ],
      "examples": [
        "Why did my call fail? HTTP 429 Too Many Requests; Retry-After: 20"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "gaip-front-door-verify",
      "name": "Verify a delivery or citations",
      "description": "Use this when asked whether a service delivered what was promised or whether cited pages contain the quoted text. Pass `citations`, or a service `url` (+ `checks`, the `result` you got), or `claims` with `observations`. Returns a result per item. Free, no account; only delivery keeps a record. Inputs must be public and non-personal. MCP: tools/call gaip_verify on https://www.gaipagents.com/mcp.",
      "tags": [
        "gaip",
        "mcp",
        "verify"
      ],
      "examples": [
        "Do these pages really contain these quotes? https://www.gaipagents.com/ | GAIP"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "gaip-front-door-second_look_check",
      "name": "Second Look: check before you buy",
      "description": "Use this when a shopper is about to buy something an AI suggested, or asks if a price or stock claim is right. Pass the product page `url` and the `claim`. Returns what the page showed beside what the claim said, and a signed, dated receipt. Second Look by GAIP. Free, no account, no affiliate links; inputs must be public and non-personal. MCP: tools/call second_look_check on https://www.gaipagents.com/mcp.",
      "tags": [
        "gaip",
        "mcp",
        "second_look_check"
      ],
      "examples": [
        "Check before I buy: https://www.gaipagents.com/test-range/shop/products/demo-mug was quoted at 24 GBP, in stock"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "witness_register_terms",
      "name": "Register what a service should deliver",
      "description": "Use this when about to depend on a public HTTPS service and you want neutral evidence of what it delivers. Pass `service_url`; `checks` default to HTTP 200 and a non-empty body (also JSON keys, latency, size, regex). Returns a `terms_id`; then call witness_delivery. A2A: metadata.gaip_tool \"witness_register_terms\".",
      "tags": [
        "gaip",
        "gaip-map",
        "delivery",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"checks\":[{\"allowed\":[200],\"id\":\"http_status_in\"},{\"id\":\"json_parses\"}],\"seller_ref\":\"example-weather-agent\",\"service_url\":\"https://weather.example.com/forecast.json\"},\"metadata\":{\"gaip_tool\":\"witness_register_terms\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "witness_delivery",
      "name": "Did the service deliver?",
      "description": "Use this when asked whether a service delivered what was agreed (\"did the supplier deliver?\"). Pass the `terms_id` from witness_register_terms and mode PUBLIC_REPLAY (GAIP fetches it) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check, what changed since last time, and a receipt. A2A: metadata.gaip_tool \"witness_delivery\".",
      "tags": [
        "gaip",
        "gaip-map",
        "delivery",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"mode\":\"PUBLIC_REPLAY\",\"terms_id\":\"<terms_id from witness_register_terms>\"},\"metadata\":{\"gaip_tool\":\"witness_delivery\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_permissions",
      "name": "What did this site allow an AI agent on a date?",
      "description": "Use this when asked what a site allowed an AI agent on a date (\"did it block GPTBot in September?\"). Pass `host`, `agent` and `on`. Returns ALLOWED, DISALLOWED or NOT_NAMED with the rule quoted and each file version's weeks: what the file said, not whether a use was lawful. A2A: metadata.gaip_tool \"gaip_record_permissions\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"agent\":\"GPTBot\",\"host\":\"huggingface.co\",\"on\":\"2026-10-08\"},\"metadata\":{\"gaip_tool\":\"gaip_record_permissions\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_prices",
      "name": "What did this agent service charge on a date?",
      "description": "Use this when asked what an agent service charged on a date (\"what did it cost last week?\"). Pass `host` and `on`. Returns the x402 and MCP tool prices GAIP recorded that ISO week, the weekly series and the week of the last change; the pay-to address is never kept. A2A: metadata.gaip_tool \"gaip_record_prices\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"host\":\"huggingface.co\",\"on\":\"2026-10-08\"},\"metadata\":{\"gaip_tool\":\"gaip_record_prices\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_keys",
      "name": "Which keys had this host published on a date?",
      "description": "Use this when asked which signing key a host had published on a date (\"was this key theirs on 3 Oct?\"). Pass `host`, `on` and optionally `kid`. Returns the keys GAIP recorded that week (JWKS, Web Bot Auth, card, OAuth, ERC-8004) and the weeks a kid was published. A2A: metadata.gaip_tool \"gaip_record_keys\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"host\":\"mcp.notion.com\",\"on\":\"2026-10-08\"},\"metadata\":{\"gaip_tool\":\"gaip_record_keys\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_names",
      "name": "Since when has this name been on record, and what looks like it?",
      "description": "Use this when asked whether an agent name looks like another (\"is acme-payments the original?\"). Pass `name` (a registry name or its last segment) or a `url`. Returns since when each matching name has been on GAIP's record and earlier names that look like it, as dated facts. A2A: metadata.gaip_tool \"gaip_record_names\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"name\":\"io.github.upstash/context7\"},\"metadata\":{\"gaip_tool\":\"gaip_record_names\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_tenure",
      "name": "How long has this agent been on record?",
      "description": "Use this when asked how long an agent or MCP server has been around (\"is this agent new?\"). Pass its `url` (or only your continuity handle, for your own). Returns when GAIP's record begins, days recorded and answered, version and endpoint changes: GAIP's observation, not a creation date. A2A: metadata.gaip_tool \"gaip_record_tenure\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"url\":\"https://huggingface.co/mcp\"},\"metadata\":{\"gaip_tool\":\"gaip_record_tenure\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_extract",
      "name": "Extract of GAIP's record about a URL",
      "description": "Use this when you need proof of what an agent or shop page declared on a date. Pass its `url` (optional `since`, `until`). Returns an extract of GAIP's record as kept: entries with chain positions, hashes, daily anchors and a signature. Free preview. A2A: metadata.gaip_tool \"gaip_record_extract\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"since\":\"2026-09-01\",\"url\":\"https://huggingface.co/mcp\"},\"metadata\":{\"gaip_tool\":\"gaip_record_extract\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_check_permission",
      "name": "May my agent fetch this?",
      "description": "Use this before your agent fetches a page (\"may my agent fetch this?\"). Pass the `url` and your `agent` token. Reads robots.txt (RFC 9309), AI-preference lines, RSL, tdmrep.json and llms.txt; returns ALLOWED, DISALLOWED, NO_RULE or UNKNOWN, the rule quoted, the time and a signature. A2A: metadata.gaip_tool \"gaip_check_permission\".",
      "tags": [
        "gaip",
        "gaip-map",
        "record-by-date",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"agent\":\"GPTBot\",\"url\":\"https://www.gaipagents.com/test-range\"},\"metadata\":{\"gaip_tool\":\"gaip_check_permission\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_notices",
      "name": "Has anyone withdrawn or warned about this server?",
      "description": "Use this before you rely on an MCP server or agent, or when one stops answering. Pass `urls` (up to 25). Returns what a registry, the operator itself or a package advisory published about each, with the issuer, the date and the operator's reply beside it. Facts as published, not a verdict. A2A: metadata.gaip_tool \"gaip_notices\".",
      "tags": [
        "gaip",
        "gaip-map",
        "notices",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"urls\":[\"https://huggingface.co/mcp\"]},\"metadata\":{\"gaip_tool\":\"gaip_notices\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_dependency_check",
      "name": "Did a server I depend on change?",
      "description": "Use this in CI or before a release to see whether an MCP server or agent you depend on changed. Pass `urls` (up to 25) and optionally `since`. Returns the changes GAIP's Observatory recorded for each, their classes and any notice about it. Dated facts, not a verdict. A2A: metadata.gaip_tool \"gaip_dependency_check\".",
      "tags": [
        "gaip",
        "gaip-map",
        "notices",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"since\":\"2026-10-01\",\"urls\":[\"https://huggingface.co/mcp\"]},\"metadata\":{\"gaip_tool\":\"gaip_dependency_check\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_check_preferences",
      "name": "May my agent approach this person or agent?",
      "description": "Use this before your agent approaches a person or agent. Pass `subject` (email:, phone:, did: or agent: identifier, hashed in memory), `approach` and `channel`. Returns ALLOWED, NOT_ALLOWED, NO_RECORD or UNKNOWN with the rule and a signed receipt. Silence is not permission. A2A: metadata.gaip_tool \"gaip_check_preferences\".",
      "tags": [
        "gaip",
        "gaip-map",
        "preferences",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"approach\":\"RESEARCH\",\"channel\":\"EMAIL\",\"subject\":\"email:agents@gaipagents.com\"},\"metadata\":{\"gaip_tool\":\"gaip_check_preferences\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "witness_accept_terms",
      "name": "Accept registered terms (the other party)",
      "description": "Use this when you are the other party to terms a buyer registered. Pass the `terms_id`, your own `continuity_handle` and `business_purpose_statement` true (businesses only); the buyer confirms it with the `agreement_id`. Returns an `agreement_id` naming both parties. A2A: metadata.gaip_tool \"witness_accept_terms\".",
      "tags": [
        "gaip",
        "gaip-map",
        "deals",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"business_purpose_statement\":true,\"continuity_handle\":{\"continuity_id\":\"<continuity_handle.continuity_id returned by any GAIP tool>\",\"token\":\"<continuity_handle.token returned by any GAIP tool>\"},\"terms_id\":\"<terms_id from witness_register_terms>\"},\"metadata\":{\"gaip_tool\":\"witness_accept_terms\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "witness_finding",
      "name": "Was the agreed rule met? (signed finding)",
      "description": "Use this when deliveries exist for an agreement and you want GAIP's signed finding. Pass the `agreement_id` and your `continuity_handle`. Returns MET, NOT_MET or INDETERMINATE on the agreed rule with the records relied on. Evidence only; no sum of money. A2A: metadata.gaip_tool \"witness_finding\".",
      "tags": [
        "gaip",
        "gaip-map",
        "deals",
        "company_agent"
      ],
      "examples": [
        "{\"data\":{\"agreement_id\":\"<agreement_id from witness_accept_terms>\",\"continuity_handle\":{\"continuity_id\":\"<continuity_handle.continuity_id returned by any GAIP tool>\",\"token\":\"<continuity_handle.token returned by any GAIP tool>\"}},\"metadata\":{\"gaip_tool\":\"witness_finding\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_screen_caller",
      "name": "Who is this agent approaching mine?",
      "description": "Use this when an unknown agent approaches yours (\"who is this calling me?\"). Pass its `caller` URL, the `approach` and any preference `receipt` it sent. Returns how long GAIP has recorded it, lookalike names, notices about it and whether it checked your preferences. Facts, not a score. A2A: metadata.gaip_tool \"gaip_screen_caller\".",
      "tags": [
        "gaip",
        "gaip-map",
        "screen",
        "person_agent"
      ],
      "examples": [
        "{\"data\":{\"approach\":\"COMMERCIAL_OFFER\",\"caller\":\"https://mcp.deepwiki.com/mcp\",\"channel\":\"A2A\"},\"metadata\":{\"gaip_tool\":\"gaip_screen_caller\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_check_mandate",
      "name": "Was this agent mandated to act for them, as indexed?",
      "description": "Use this before relying on an agent that says it acts for a person. Pass `principal` (hashed in memory), the `agent` endpoint and a `scope` class. Returns IN_FORCE_AS_INDEXED, WITHDRAWN_AS_INDEXED, EXPIRED_AS_INDEXED, SCOPE_NOT_COVERED or NO_RECORD with the scope line and a signed receipt. A2A: metadata.gaip_tool \"gaip_check_mandate\".",
      "tags": [
        "gaip",
        "gaip-map",
        "mandates",
        "person_agent"
      ],
      "examples": [
        "{\"data\":{\"agent\":\"https://www.gaipagents.com/mcp\",\"principal\":\"email:agents@gaipagents.com\",\"scope\":\"RESEARCH\"},\"metadata\":{\"gaip_tool\":\"gaip_check_mandate\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "witness_signoff",
      "name": "Record a role's decision on a proposal (sign-off)",
      "description": "Use this when a role (APPROVER, REVIEWER, OWNER, OPERATOR or a hashed role_id) decided on an agent's proposal. Pass `proposal_sha256`, `decision` (APPROVED, REFUSED, CHANGED), optionally `agreement_id`. Returns a chained, signed entry of the role's decision, never GAIP's. A2A: metadata.gaip_tool \"witness_signoff\".",
      "tags": [
        "gaip",
        "gaip-map",
        "signoffs",
        "person_agent"
      ],
      "examples": [
        "{\"data\":{\"agreement_id\":\"<agreement_id returned by witness_accept_terms>\",\"decision\":\"APPROVED\",\"proposal_sha256\":\"a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1\",\"role\":\"APPROVER\"},\"metadata\":{\"gaip_tool\":\"witness_signoff\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_ingredients",
      "name": "What did this agent say it runs on, on a date?",
      "description": "Use this when asked what an agent says it runs on or whether it says it is an AI (\"which model is behind it?\"). Pass its `url` and optionally `on`. Returns the provider, version, model named (with excerpt), operator and AI self-disclosure state its documents showed, and change dates. A2A: metadata.gaip_tool \"gaip_record_ingredients\".",
      "tags": [
        "gaip",
        "gaip-map",
        "ingredients-residence",
        "any"
      ],
      "examples": [
        "{\"data\":{\"on\":\"2026-10-09\",\"url\":\"https://huggingface.co/mcp\"},\"metadata\":{\"gaip_tool\":\"gaip_record_ingredients\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_record_residence",
      "name": "Where did this agent's endpoint answer from, on a date?",
      "description": "Use this when asked where an agent's endpoint is hosted (\"which network and country does it answer from?\"). Pass its `url` and optionally `on`. Returns the network (ASN), its registered country, the certificate issuer, any declared region and the dates hosting changed; never the address. A2A: metadata.gaip_tool \"gaip_record_residence\".",
      "tags": [
        "gaip",
        "gaip-map",
        "ingredients-residence",
        "any"
      ],
      "examples": [
        "{\"data\":{\"on\":\"2026-10-09\",\"url\":\"https://huggingface.co/mcp\"},\"metadata\":{\"gaip_tool\":\"gaip_record_residence\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    },
    {
      "id": "gaip_statement",
      "name": "What did my agents do this month?",
      "description": "Use this to see what GAIP recorded for your agents in a month. Pass `month` (YYYY-MM) and your `continuity_handle`. Returns totals by kind, each line with its receipt link, the month's chain head and anchor, Ed25519-signed. Not an invoice; your own handle's record only. A2A: metadata.gaip_tool \"gaip_statement\".",
      "tags": [
        "gaip",
        "gaip-map",
        "statements",
        "any"
      ],
      "examples": [
        "{\"data\":{\"continuity_handle\":{\"continuity_id\":\"<continuity_handle.continuity_id returned by any GAIP tool>\",\"token\":\"<continuity_handle.token returned by any GAIP tool>\"},\"month\":\"2026-10\"},\"metadata\":{\"gaip_tool\":\"gaip_statement\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json",
        "text/plain"
      ]
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": null
  },
  "protocolVersion": "0.3.0",
  "provider": {
    "organization": "GAIP",
    "url": "https://join.agentminder.co.uk/"
  }
}