{"id":11034,"name":"GAIP","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.","card_url":"https://gaip-agent-to-art-prototype-production.up.railway.app/.well-known/agent-card.json","endpoint":"https://gaip-agent-to-art-prototype-production.up.railway.app/a2a/agentverse","protocol_version":"1.0","first_seen":"2026-10-10T12:38:38.467512+00:00","last_verified":"2026-10-10T15:15:40.992052+00:00","card":{"url":"https://gaip-agent-to-art-prototype-production.up.railway.app/a2a/agentverse","gaip":{"map":"https://www.gaipagents.com/v1/free/map","legal":{"status":"DRAFT_PENDING_LEGAL_REVIEW","corrections":"https://www.gaipagents.com/corrections","methodology":"https://www.gaipagents.com/methodology","privacyPolicy":"https://www.gaipagents.com/privacy","termsOfService":"https://www.gaipagents.com/terms"},"tools":{"gaip_watch_list":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/supplier-watch"],"witness_finding":["https://www.gaipagents.com/a2a/witness-agent"],"witness_signoff":["https://www.gaipagents.com/a2a/witness-agent"],"assurance_verify":["https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/buyer-assurance"],"witness_delivery":["https://www.gaipagents.com/a2a/witness-agent"],"assurance_prepare":["https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/buyer-assurance"],"gaip_watch_events":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/supplier-watch"],"gaip_watch_remove":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/supplier-watch"],"assurance_complete":["https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/buyer-assurance"],"gaip_evidence_pack":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"gaip_receipt_export":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"gaip_record_extract":["https://www.gaipagents.com/a2a/witness-agent"],"gaip_watch_register":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/supplier-watch"],"verify_gaip_receipt":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"gaip_incident_bundle":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"gaip_observe_listing":["https://www.gaipagents.com/a2a/listing-observer"],"witness_accept_terms":["https://www.gaipagents.com/a2a/witness-agent"],"gaip_check_permission":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_citation_witness":["https://www.gaipagents.com/a2a/witness-agent"],"gaip_manifest_changes":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_check_sar_receipt":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"witness_dispute_bundle":["https://www.gaipagents.com/a2a/witness-agent"],"witness_register_terms":["https://www.gaipagents.com/a2a/witness-agent"],"check_agent_conformance":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_observatory_lookup":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_observatory_capture":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_tools_changed_since":["https://www.gaipagents.com/a2a/integration-protocol"],"gaip_supplier_reliability":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/integration-repair","https://www.gaipagents.com/a2a/supplier-watch"],"gaip_measure_outcome_value":["https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/outcome-value"],"gaip_verify_supplier_claims":["https://www.gaipagents.com/a2a/witness-agent","https://www.gaipagents.com/a2a/procurement-verify"],"preflight_broker_candidates":["https://www.gaipagents.com/a2a/opportunity-broker"],"evaluate_public_art_evidence":["https://www.gaipagents.com/a2a/art-intelligence"],"inspect_counterparty_evidence":["https://www.gaipagents.com/a2a/trust-assurance","https://www.gaipagents.com/a2a/witness-agent"],"gaip_compare_supplier_snapshots":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/supplier-watch"],"gaip_diagnose_integration_failure":["https://www.gaipagents.com/a2a/integration-protocol","https://www.gaipagents.com/a2a/integration-repair"]},"router":{"a2a":"https://www.gaipagents.com/a2a/agentverse","summary":"Send plain text or a structured data part (optionally metadata.gaip_tool); GAIP routes it to the matching specialist, runs it under the same governance and returns ready-to-send next steps. Plain text is never converted into authority.","mcp_start":"https://www.gaipagents.com/mcp (tools/list: gaip_check, gaip_watch, gaip_diagnose, gaip_verify; every tool callable by name, full catalogue at /mcp/all)"},"products":[{"id":"developer-checks","kind":"PRODUCT","name":"Check and GAIP Watch · Diagnose","status":"PUBLIC_FREE","members":["integration-protocol","supplier-watch","integration-repair"],"one_line":"The front door for developers: on /mcp, gaip_check tests whether an agent, MCP server or API works, is valid or has changed, gaip_diagnose explains a failed call and the fix, gaip_watch follows it for changes and gaip_verify checks what came back. Behind it, the Agent Observatory keeps a dated record of what agents published; facts at a stated time, never a ranking or score.","lead_agent":"integration-protocol","listed_agent":"integration-protocol"},{"id":"witness","kind":"PRODUCT","name":"Witness · Deals · Sign-offs","status":"PUBLIC_FREE","members":["witness","buyer-assurance","procurement-verify","trust-assurance","outcome-value","opportunity-broker","art-intelligence"],"one_line":"Agreed terms, delivery, receipts, disputes and evidence: record the checks a buyer expects, witness what came back, test supplier claims, and keep verifiable receipts, evidence packs and outcome records; no trust score and no ROI claim.","lead_agent":"witness","listed_agent":"witness"},{"id":"shop-listing-data","kind":"PRODUCT","name":"Second Look","status":"PUBLIC_FREE_PREVIEW","members":["listing-observer"],"one_line":"Whether a shop's product data reads the same to AI shopping agents as on the page: price, stock, SKU and name across the page's public sources, with a dated history. The engine of GAIP's Shopify app (coming soon). Read-only; never cart or checkout.","lead_agent":"listing-observer","listed_agent":"listing-observer"}],"discovery":{"llms":"https://www.gaipagents.com/llms.txt","openapi":"https://www.gaipagents.com/openapi.json","llmsFull":"https://www.gaipagents.com/llms-full.txt","products":"https://www.gaipagents.com/v1/free/products","aiCatalog":"https://www.gaipagents.com/.well-known/ai-catalog.json","listingKit":"https://www.gaipagents.com/v1/free/discovery/listing-kit","mcpServerCard":"https://www.gaipagents.com/mcp/server-card"},"firstCall":{"mcp":"https://www.gaipagents.com/mcp","http":"GET https://www.gaipagents.com/v1/free/conformance/check?url=<url>","tool":"gaip_check","example":{"tool":"gaip_check","arguments":{"url":"https://mcp.deepwiki.com/mcp"}},"arguments":{"url":"<public https link to the agent, its card, MCP endpoint or OpenAPI document>"}},"continuity":"Every completed answer carries a continuity handle; send it back and the answer is bound to your own history with GAIP.","callAnyTool":"Every tool on the map is a skill here: send message/send (A2A 0.3) or SendMessage (1.0) with message.metadata.gaip_tool set to the tool and its arguments as one data part; the answer is a task whose data part is the same answer as MCP tools/call on /mcp/all.","productsUrl":"https://www.gaipagents.com/v1/free/products","skillGroups":[{"id":"check","who":"any","skills":["gaip-front-door-check","gaip-front-door-watch"],"question":"Does this agent, server or API work, and has it changed?"},{"id":"diagnose","who":"any","skills":["gaip-front-door-diagnose"],"question":"A call failed; what went wrong?"},{"id":"delivery","who":"company_agent","skills":["gaip-front-door-verify","witness_register_terms","witness_delivery"],"question":"Was this delivery or quotation what was promised?"},{"id":"record-by-date","who":"company_agent","skills":["gaip_record_permissions","gaip_record_prices","gaip_record_keys","gaip_record_names","gaip_record_tenure","gaip_record_extract","gaip_check_permission"],"question":"What did a site allow, publish, key or charge on a date?"},{"id":"notices","who":"company_agent","skills":["gaip_notices","gaip_dependency_check"],"question":"Has anyone withdrawn it or warned about it?"},{"id":"preferences","who":"company_agent","skills":["gaip_check_preferences"],"question":"May I contact this person's agent?"},{"id":"deals","who":"company_agent","skills":["witness_accept_terms","witness_finding"],"question":"Was this business deal kept?"},{"id":"screen","who":"person_agent","skills":["gaip_screen_caller"],"question":"Who is calling me, and should I pick up?"},{"id":"second-look","who":"person_agent","skills":["gaip-front-door-second_look_check"],"question":"Does the shop's own page show the price and stock an AI quoted?"},{"id":"mandates","who":"person_agent","skills":["gaip_check_mandate"],"question":"Was this agent authorised to act for them?"},{"id":"signoffs","who":"person_agent","skills":["witness_signoff"],"question":"Who signed off on this decision, and when?"},{"id":"ingredients-residence","who":"any","skills":["gaip_record_ingredients","gaip_record_residence"],"question":"What is this agent made of, and where does it live?"},{"id":"statements","who":"any","skills":["gaip_statement"],"question":"What did my agents do this month?"}],"specialists":[{"a2a":"https://www.gaipagents.com/a2a/integration-protocol","mcp":"https://www.gaipagents.com/mcp/agents/integration-protocol","name":"GAIP Integration & Protocol Agent","product":"developer-checks","summary":"Checks A2A, MCP and OpenAPI declarations and task-specific handshakes before delegated work, and keeps the Agent Observatory: a dated record of what agents and MCP servers published. It also compares supplier snapshots, watches suppliers for change and diagnoses failed calls (Supplier Watch and Integration Repair are part of it since 1 Oct 2026), and answers \"may my agent fetch this?\" from a site's robots.txt and AI-permission files. Part of GAIP Check and GAIP Watch · Diagnose (lead agent).","agent_id":"integration-protocol","agent_card":"https://www.gaipagents.com/agents/integration-protocol/.well-known/agent-card.json","primary_tool":"check_agent_conformance"},{"a2a":"https://www.gaipagents.com/a2a/witness-agent","mcp":"https://www.gaipagents.com/mcp/agents/witness","name":"GAIP Witness Agent","product":"witness","summary":"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. Part of GAIP Witness · Deals · Sign-offs (lead agent).","agent_id":"witness","agent_card":"https://www.gaipagents.com/agents/witness/.well-known/agent-card.json","primary_tool":"witness_register_terms"},{"a2a":"https://www.gaipagents.com/a2a/listing-observer","mcp":"https://www.gaipagents.com/mcp/agents/listing-observer","name":"GAIP Listing Observer","product":"shop-listing-data","summary":"Tells AI shopping agents whether a shop's product listing (price, currency, stock, SKU) agrees across the product page's structured data, its meta tags and the shop platform's product data at a stated time. Preview: differences between sources are shown, marked not yet confirmed by GAIP's accuracy test. Read-only; not Amazon, eBay or Etsy; never cart or checkout. Part of GAIP Second Look (lead agent).","agent_id":"listing-observer","agent_card":"https://www.gaipagents.com/agents/listing-observer/.well-known/agent-card.json","primary_tool":"gaip_observe_listing"}],"alsoCallable":[{"a2a":"https://www.gaipagents.com/a2a/art-intelligence","mcp":"https://www.gaipagents.com/mcp/agents/art-intelligence","agent_id":"art-intelligence","folded_into":"unlisted"},{"a2a":"https://www.gaipagents.com/a2a/opportunity-broker","mcp":"https://www.gaipagents.com/mcp/agents/opportunity-broker","agent_id":"opportunity-broker","folded_into":"unlisted"},{"a2a":"https://www.gaipagents.com/a2a/trust-assurance","mcp":"https://www.gaipagents.com/mcp/agents/trust-assurance","agent_id":"trust-assurance","folded_into":"witness"},{"a2a":"https://www.gaipagents.com/a2a/buyer-assurance","mcp":"https://www.gaipagents.com/mcp/agents/buyer-assurance","agent_id":"buyer-assurance","folded_into":"witness"},{"a2a":"https://www.gaipagents.com/a2a/procurement-verify","mcp":"https://www.gaipagents.com/mcp/agents/procurement-verify","agent_id":"procurement-verify","folded_into":"witness"},{"a2a":"https://www.gaipagents.com/a2a/integration-repair","mcp":"https://www.gaipagents.com/mcp/agents/integration-repair","agent_id":"integration-repair","folded_into":"integration-protocol"},{"a2a":"https://www.gaipagents.com/a2a/supplier-watch","mcp":"https://www.gaipagents.com/mcp/agents/supplier-watch","agent_id":"supplier-watch","folded_into":"integration-protocol"},{"a2a":"https://www.gaipagents.com/a2a/outcome-value","mcp":"https://www.gaipagents.com/mcp/agents/outcome-value","agent_id":"outcome-value","folded_into":"witness"}],"erc8004_identity":{"status":"https://www.gaipagents.com/erc8004/status.json","network":"Base Sepolia","agent_id":9315,"chain_id":84532,"standard":"ERC-8004","namespace":"eip155","environment":"TESTNET","registry_page":"https://testnet.8004scan.io/agents/base-sepolia/9315","identity_state":"REGISTERED","proof_boundary":"Identity registration and protocol reachability do not prove adoption, reputation, validation, outcome, demand or authority.","registry_owner":"0x2F7BB2Caa8BB575867E1D64A94321De90F4233af","identity_registry":"0x8004A818BFB912233c491871b3d84c89A494BD9e","canonical_registration":"https://www.gaipagents.com/.well-known/agent-registration.json","automatic_evidence_credit":0}},"name":"GAIP","skills":[{"id":"gaip-front-door-check","name":"Check an AI agent, MCP server or API","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"],"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.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public https link to the agent, its A2A agent card, MCP server endpoint or OpenAPI document. GAIP fetches, validates and reach-tests it; an MCP endpoint gets a read-only handshake (initialize, tools/list)."},"agent":{"type":"string","maxLength":300,"description":"Optional: ask \"may my agent fetch this url?\" instead. Your agent's user-agent token, e.g. GPTBot; GAIP reads the site's robots.txt and AI-permission files (gaip_check_permission)."},"verbose":{"type":"boolean","default":false,"description":"Optional: true returns the full result with every underlying field. Default: a short answer."},"intended_task":{"type":"string","maxLength":500,"description":"Optional: what you plan to hand it, e.g. 'weather forecast for London'. Adds task-specific evidence."},"continuity_handle":{"type":"object","required":["continuity_id","token"],"properties":{"token":{"type":"string"},"continuity_id":{"type":"string"}},"description":"Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).","additionalProperties":false}},"additionalProperties":false},"outputModes":["application/json"]},{"id":"gaip-front-door-watch","name":"Watch an agent or MCP server for changes","tags":["gaip","mcp","watch"],"examples":["watch https://www.gaipagents.com/mcp for changes"],"inputModes":["application/json","text/plain"],"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.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Public https URL of the MCP server endpoint or agent (card) to follow. No query string."},"verbose":{"type":"boolean","default":false,"description":"Optional: true returns the full result with every underlying field. Default: a short answer."},"webhook_url":{"type":"string","format":"uri","maxLength":2048,"description":"Optional: your own public https endpoint. GAIP then registers a watch and POSTs a signed event when the result changes."},"continuity_handle":{"type":"object","required":["continuity_id","token"],"properties":{"token":{"type":"string"},"continuity_id":{"type":"string"}},"description":"Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).","additionalProperties":false}},"additionalProperties":false},"outputModes":["application/json"]},{"id":"gaip-front-door-diagnose","name":"Why did my agent or API call fail?","tags":["gaip","mcp","diagnose"],"examples":["Why did my call fail? HTTP 429 Too Many Requests; Retry-After: 20"],"inputModes":["application/json","text/plain"],"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.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Optional: public https URL of the agent, MCP server or API that failed."},"error":{"type":"string","maxLength":4000,"description":"The error you got, as text: HTTP status line, JSON-RPC/A2A/MCP error or message. Give this and/or http_status."},"verbose":{"type":"boolean","default":false,"description":"Optional: true returns the full result with every underlying field. Default: a short answer."},"http_status":{"type":"integer","maximum":599,"minimum":100,"description":"Optional: the HTTP status code you got, e.g. 429."},"keep_receipt":{"type":"boolean","default":false,"description":"Optional: true keeps a dated GAIP receipt of this answer and returns a continuity handle. Default: GAIP keeps no record of the task (usage is counted without its content)."},"continuity_handle":{"type":"object","required":["continuity_id","token"],"properties":{"token":{"type":"string"},"continuity_id":{"type":"string"}},"description":"Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).","additionalProperties":false}},"additionalProperties":false},"outputModes":["application/json"]},{"id":"gaip-front-door-verify","name":"Verify a delivery or citations","tags":["gaip","mcp","verify"],"examples":["Do these pages really contain these quotes? https://www.gaipagents.com/ | GAIP"],"inputModes":["application/json","text/plain"],"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 and a receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal. MCP: tools/call gaip_verify on https://www.gaipagents.com/mcp.","inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048,"description":"Claims: the agent or supplier they are about. Delivery: the public https service URL that should deliver."},"checks":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"enum":["http_status_in","content_type_is","non_empty","json_parses","json_required_keys","json_path_equals","max_latency_ms","max_bytes","text_contains","regex"],"type":"string","description":"http_status_in (allowed), content_type_is (value), non_empty, json_parses, json_required_keys (keys), json_path_equals (path, value), max_latency_ms (limit), max_bytes (limit), text_contains (value), regex (pattern)."},"keys":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20,"minItems":1,"description":"json_required_keys: top-level or dotted keys that must exist, e.g. [\"a.b\"]."},"path":{"type":"string","maxLength":200,"description":"json_path_equals: dotted path, list items by index, e.g. items.0.id."},"limit":{"type":"integer","maximum":60000,"minimum":1,"description":"max_latency_ms: milliseconds (1-60000); max_bytes: body bytes (1-32768)."},"value":{"type":"string","maxLength":200,"description":"content_type_is: media type, e.g. application/json; text_contains: case-sensitive text; json_path_equals: the expected value (GAIP also accepts a number, boolean, null, array or object)."},"allowed":{"type":"array","items":{"type":"integer","maximum":599,"minimum":100},"maxItems":10,"minItems":1,"description":"http_status_in: the acceptable HTTP statuses, e.g. [200]."},"pattern":{"type":"string","maxLength":200,"description":"regex: bounded pattern searched in the body; no nested quantifiers."}},"additionalProperties":false},"examples":[[{"id":"http_status_in","allowed":[200]},{"id":"content_type_is","value":"application/json"},{"id":"non_empty"},{"id":"json_parses"}],[{"id":"http_status_in","allowed":[200]},{"id":"json_required_keys","keys":["status"]},{"id":"json_path_equals","path":"status","value":"ok"},{"id":"max_latency_ms","limit":2000}]],"maxItems":8,"minItems":1,"description":"Optional (delivery): what a good response is, e.g. [{\"id\": \"http_status_in\", \"allowed\": [200]}, {\"id\": \"json_parses\"}]. Default: HTTP 200 and a non-empty body."},"claims":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object"}]},"maxItems":20,"minItems":1,"description":"Claims to record about `url`: each a sentence or {id, text}. Each is compared with the `observations` you supply; without them it stays UNTESTED."},"result":{"type":"object","properties":{"body":{"type":"string","maxLength":32768},"body_sha256":{"type":"string"},"http_status":{"type":"integer"},"content_type":{"type":"string"}},"description":"Optional (delivery): the response you received. Omitted: GAIP fetches the service URL now (public replay)."},"verbose":{"type":"boolean","default":false,"description":"Optional: true returns the full result with every underlying field. Default: a short answer."},"metadata":{"type":"object","description":"Optional (claims): the published agent card, MCP or OpenAPI document."},"terms_id":{"type":"string","description":"Optional (delivery): terms_id from an earlier registration, instead of url."},"citations":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"object"}]},"maxItems":20,"minItems":1,"description":"Citations to check: each {url, quote?} or just a URL. GAIP fetches each page once (robots.txt respected) and looks for the quote."},"observations":{"type":"array","items":{"type":"object"},"maxItems":30,"description":"Optional (claims): what you saw, each {claim_id, result: PASS|FAIL, detail}."},"continuity_handle":{"type":"object","required":["continuity_id","token"],"properties":{"token":{"type":"string"},"continuity_id":{"type":"string"}},"description":"Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).","additionalProperties":false}},"additionalProperties":false},"outputModes":["application/json"]},{"id":"gaip-front-door-second_look_check","name":"Second Look: check before you buy","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"],"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 shop shows now, whether it matches, 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.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2000,"description":"Public https link to the product page on the shop's own site."},"claim":{"type":"string","maxLength":2000,"description":"What the shopper was told, in plain words, e.g. \"89 GBP, in stock, size M\". Only the price, stock and variant are kept; the rest is discarded."},"price":{"type":"string","maxLength":20,"description":"Claimed price, e.g. \"89.00\" (optional)."},"variant":{"type":"string","maxLength":60,"description":"Claimed size, colour or option (optional)."},"verbose":{"type":"boolean","default":false,"description":"Optional: true returns the full result with every underlying field. Default: a short answer."},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"ISO currency, e.g. GBP (optional)."},"in_stock":{"type":"boolean","description":"Claimed stock (optional)."},"continuity_handle":{"type":"object","required":["continuity_id","token"],"properties":{"token":{"type":"string"},"continuity_id":{"type":"string"}},"description":"Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).","additionalProperties":false}},"additionalProperties":false},"outputModes":["application/json"]},{"id":"witness_register_terms","name":"Register what a service should deliver","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"witness_delivery","name":"Did the service deliver?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_permissions","name":"What did this site allow an AI agent on a date?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_prices","name":"What did this agent service charge on a date?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_keys","name":"Which keys had this host published on a date?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_names","name":"Since when has this name been on record, and what looks like it?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_tenure","name":"How long has this agent been on record?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_extract","name":"Extract of GAIP's record about a URL","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_check_permission","name":"May my agent fetch this?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_notices","name":"Has anyone withdrawn or warned about this server?","tags":["gaip","gaip-map","notices","company_agent"],"examples":["{\"data\":{\"urls\":[\"https://huggingface.co/mcp\"]},\"metadata\":{\"gaip_tool\":\"gaip_notices\"}}"],"inputModes":["application/json"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_dependency_check","name":"Did a server I depend on change?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_check_preferences","name":"May my agent approach this person or agent?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"witness_accept_terms","name":"Accept registered terms (the other party)","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"],"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` binding both parties. A2A: metadata.gaip_tool \"witness_accept_terms\".","outputModes":["application/json","text/plain"]},{"id":"witness_finding","name":"Was the agreed rule met? (signed 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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_screen_caller","name":"Who is this agent approaching mine?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_check_mandate","name":"Was this agent mandated to act for them, as indexed?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"witness_signoff","name":"Record a role's decision on a proposal (sign-off)","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_ingredients","name":"What did this agent say it runs on, on a date?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_record_residence","name":"Where did this agent's endpoint answer from, on a date?","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"],"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\".","outputModes":["application/json","text/plain"]},{"id":"gaip_statement","name":"What did my agents do this month?","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"],"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\".","outputModes":["application/json","text/plain"]}],"iconUrl":"https://www.gaipagents.com/erc8004/images/gaip.svg","version":"1.0.0","provider":{"url":"https://gaip-agent-to-art-prototype-production.up.railway.app","organization":"GAIP"},"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.","capabilities":{"streaming":false,"extendedAgentCard":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","securitySchemes":{},"documentationUrl":"https://www.gaipagents.com/llms.txt","executionEnabled":true,"defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["text/plain","application/json"],"preferredTransport":"JSONRPC","supportedInterfaces":[{"url":"https://gaip-agent-to-art-prototype-production.up.railway.app/a2a/agentverse","protocolBinding":"JSONRPC","protocolVersion":"1.0"},{"url":"https://gaip-agent-to-art-prototype-production.up.railway.app/a2a/agentverse","protocolBinding":"JSONRPC","protocolVersion":"0.3.0"}],"securityRequirements":[],"supportsAuthenticatedExtendedCard":false},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T15:15:40.992052+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agenstry federation","source_url":"https://agenstry.com/docs","last_check":{"checked_at":"2026-10-10T15:15:40.992052+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://gaip-agent-to-art-prototype-production.up.railway.app/.well-known/agent-card.json"],"skills":[{"skill_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` binding both parties. A2A: metadata.gaip_tool \"witness_accept_terms\".","tags":["gaip","gaip-map","deals","company_agent"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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 shop shows now, whether it matches, 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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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 and a receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal. MCP: tools/call gaip_verify on https://www.gaipagents.com/mcp.","tags":["gaip","mcp","verify"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":2,"passed":2},"recent_checks":[{"card_url":"https://gaip-agent-to-art-prototype-production.up.railway.app/.well-known/agent-card.json","checked_at":"2026-10-10T15:15:40.992052+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://gaip-agent-to-art-prototype-production.up.railway.app/.well-known/agent-card.json","checked_at":"2026-10-10T12:38:38.467512+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T15:15:40.992052+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T12:38:38.467512+00:00","state":"unconfirmed","http_status":200,"detail":"Advertised A2A task lookup method was not found"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://gaip-agent-to-art-prototype-production.up.railway.app/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T15:15:40.992052+00:00","latest_card_check":{"checked_at":"2026-10-10T15:15:40.992052+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T15:15:40.992052+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T15:15:40.992052+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-10T12:38:38.467512+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}