{
  "agent_card": {
    "capabilities": {
      "extendedAgentCard": false,
      "pushNotifications": false,
      "stateTransitionHistory": false,
      "streaming": false
    },
    "defaultInputModes": [
      "application/json"
    ],
    "defaultOutputModes": [
      "application/json"
    ],
    "description": "Now part of GAIP's front door (Check and GAIP Watch; Diagnose) on /mcp and the integration-protocol agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents/integration-protocol. Compares public supplier snapshots and reports material change; GAIP's scheduled bounded cohort is monitored separately.",
    "documentationUrl": "https://www.gaipagents.com/agents/supplier-watch",
    "gaip": {
      "agentId": "supplier-watch",
      "authority": "PUBLIC_NON_PERSONAL_ZERO_PRICE_BOUNDED_NO_SPEND_NO_PAYMENT_NO_CONTRACT",
      "automaticEvidenceCredit": false,
      "discovery": {
        "aiCatalog": "https://www.gaipagents.com/.well-known/ai-catalog.json",
        "listingKit": "https://www.gaipagents.com/v1/free/discovery/listing-kit",
        "llms": "https://www.gaipagents.com/llms.txt",
        "llmsFull": "https://www.gaipagents.com/llms-full.txt",
        "mcpServerCard": "https://www.gaipagents.com/mcp/server-card",
        "openapi": "https://www.gaipagents.com/openapi.json",
        "products": "https://www.gaipagents.com/v1/free/products"
      },
      "distributionBundle": "https://www.gaipagents.com/v1/distribution/agents/supplier-watch",
      "durableReceiptRequiredBeforeSuccess": true,
      "howToCall": {
        "a2a": "POST JSON-RPC message/send (A2A 0.3) or SendMessage (A2A 1.0) to https://www.gaipagents.com/a2a/supplier-watch. Put the tool name (underscores, e.g. \"gaip_compare_supplier_snapshots\") in message.metadata.gaip_tool and the input object in one data part (0.3: {\"kind\": \"data\", \"data\": {...}}; 1.0: {\"data\": {...}} with role ROLE_USER). Without gaip_tool the data part must match one of this agent's tools. Text parts are never converted into a task.",
        "allowedTools": [
          "gaip_compare_supplier_snapshots",
          "gaip_watch_register",
          "gaip_watch_list",
          "gaip_watch_remove",
          "gaip_watch_events",
          "gaip_supplier_reliability"
        ],
        "example": {
          "id": 1,
          "jsonrpc": "2.0",
          "method": "message/send",
          "params": {
            "message": {
              "kind": "message",
              "messageId": "example-1",
              "metadata": {
                "gaip_tool": "gaip_compare_supplier_snapshots"
              },
              "parts": [
                {
                  "data": {
                    "counterparty_id": "example-weather-agent",
                    "current": {
                      "capabilities": {
                        "streaming": true
                      },
                      "name": "Weather Agent",
                      "protocolVersion": "0.3.0",
                      "security": [
                        {
                          "bearer": []
                        }
                      ],
                      "securitySchemes": {
                        "bearer": {
                          "scheme": "bearer",
                          "type": "http"
                        }
                      },
                      "skills": [
                        {
                          "id": "forecast",
                          "name": "Forecast"
                        }
                      ],
                      "url": "https://weather.example.com/v2/a2a",
                      "version": "2.0.0"
                    },
                    "prior": {
                      "capabilities": {
                        "streaming": true
                      },
                      "name": "Weather Agent",
                      "protocolVersion": "0.3.0",
                      "skills": [
                        {
                          "id": "forecast",
                          "name": "Forecast"
                        },
                        {
                          "id": "alerts",
                          "name": "Severe weather alerts"
                        }
                      ],
                      "url": "https://weather.example.com/a2a",
                      "version": "1.4.0"
                    }
                  },
                  "kind": "data"
                }
              ],
              "role": "user"
            }
          }
        },
        "mcp": "POST tools/call to https://www.gaipagents.com/mcp/agents/supplier-watch",
        "primaryTool": "gaip_compare_supplier_snapshots"
      },
      "legal": {
        "corrections": "https://www.gaipagents.com/corrections",
        "methodology": "https://www.gaipagents.com/methodology",
        "privacyPolicy": "https://www.gaipagents.com/privacy",
        "status": "DRAFT_PENDING_LEGAL_REVIEW",
        "termsOfService": "https://www.gaipagents.com/terms"
      },
      "mcpServerCard": "https://www.gaipagents.com/mcp/agents/supplier-watch/server-card",
      "mcpUrl": "https://www.gaipagents.com/mcp/agents/supplier-watch",
      "priceGbp": 0,
      "product": {
        "foldedInto": "integration-protocol",
        "kind": "PRODUCT",
        "listed": false,
        "productId": "developer-checks",
        "productName": "Check and GAIP Watch \u00b7 Diagnose",
        "role": "FOLDED",
        "roleLabel": "folded in, still callable",
        "status": "PUBLIC_FREE",
        "url": "https://www.gaipagents.com/v1/free/products#developer-checks"
      }
    },
    "iconUrl": "https://www.gaipagents.com/assets/agents/supplier-watch.svg",
    "name": "GAIP Supplier Watch Agent",
    "preferredTransport": "JSONRPC",
    "protocolVersion": "1.0",
    "provider": {
      "organization": "GAIP",
      "url": "https://www.gaipagents.com"
    },
    "securityRequirements": [],
    "securitySchemes": {},
    "skills": [
      {
        "description": "Use this when asked what changed between two versions of an agent card, MCP server description or OpenAPI document (\"did this API break?\"). Pass `prior` and `current`. Returns each change as BREAKING / NON_BREAKING / INFO with migration notes and a receipt. Input: required prior, current; optional continuity_handle, counterparty_id, data_classification, episode_id, independent_operator_id, protocol, synthetic, task_class. A2A: send message/send with metadata.gaip_tool=\"gaip_compare_supplier_snapshots\" and one data part holding the input object; MCP: tools/call name \"gaip_compare_supplier_snapshots\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"counterparty_id\": \"example-weather-agent\", \"current\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}], \"url\": \"https://weather.example.com/v2/a2a\", \"version\": \"2.0.0\"}, \"prior\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}, {\"id\": \"alerts\", \"name\": \"Severe weather alerts\"}], \"url\": \"https://weather.example.com/a2a\", \"version\": \"1.4.0\"}}"
        ],
        "id": "gaip-compare-supplier-snapshots",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Compare Supplier Snapshots",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      },
      {
        "description": "Use this when asked to keep an eye on an agent or MCP server (\"tell me if it changes or goes down\"). Pass the `continuity_handle` from any GAIP result, `kind` and `target_url`. GAIP re-checks every 24 hours (3 free watches), receipts each change and can call your webhook. Input: required continuity_handle, kind; optional data_classification, interval_hours, sla, target_url, terms_id, webhook_url. A2A: send message/send with metadata.gaip_tool=\"gaip_watch_register\" and one data part holding the input object; MCP: tools/call name \"gaip_watch_register\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"supplier-watch\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"current\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}], \"url\": \"https://weather.example.com/v2/a2a\", \"version\": \"2.0.0\"}, \"prior\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}, {\"id\": \"alerts\", \"name\": \"Severe weather alerts\"}], \"url\": \"https://weather.example.com/a2a\", \"version\": \"1.4.0\"}}, \"keep_from_result\": \"continuity_handle\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 1, \"tool\": \"gaip_compare_supplier_snapshots\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"interval_hours\": 24, \"kind\": \"SUPPLIER_CARD\", \"target_url\": \"https://weather.example.com/.well-known/agent-card.json\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 2, \"tool\": \"gaip_watch_register\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-watch-register",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Watch Register",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      },
      {
        "description": "Use this when asked which agents or services you are watching. Pass your `continuity_handle`. Returns each watch's kind, target, last verdict, last and next check and webhook endpoint (never the secret). Input: required continuity_handle. A2A: send message/send with metadata.gaip_tool=\"gaip_watch_list\" and one data part holding the input object; MCP: tools/call name \"gaip_watch_list\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"supplier-watch\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"current\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}], \"url\": \"https://weather.example.com/v2/a2a\", \"version\": \"2.0.0\"}, \"prior\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}, {\"id\": \"alerts\", \"name\": \"Severe weather alerts\"}], \"url\": \"https://weather.example.com/a2a\", \"version\": \"1.4.0\"}}, \"keep_from_result\": \"continuity_handle\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 1, \"tool\": \"gaip_compare_supplier_snapshots\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"interval_hours\": 24, \"kind\": \"SUPPLIER_CARD\", \"target_url\": \"https://weather.example.com/.well-known/agent-card.json\"}, \"keep_from_result\": \"watch.watch_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 2, \"tool\": \"gaip_watch_register\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 3, \"tool\": \"gaip_watch_list\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-watch-list",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Watch List",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      },
      {
        "description": "Use this when asked to stop watching an agent or service. Pass your `continuity_handle` and the `watch_id`. Its stored events are deleted; retained receipts stay verifiable. Input: required continuity_handle, watch_id. A2A: send message/send with metadata.gaip_tool=\"gaip_watch_remove\" and one data part holding the input object; MCP: tools/call name \"gaip_watch_remove\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"supplier-watch\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"current\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}], \"url\": \"https://weather.example.com/v2/a2a\", \"version\": \"2.0.0\"}, \"prior\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}, {\"id\": \"alerts\", \"name\": \"Severe weather alerts\"}], \"url\": \"https://weather.example.com/a2a\", \"version\": \"1.4.0\"}}, \"keep_from_result\": \"continuity_handle\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 1, \"tool\": \"gaip_compare_supplier_snapshots\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"interval_hours\": 24, \"kind\": \"SUPPLIER_CARD\", \"target_url\": \"https://weather.example.com/.well-known/agent-card.json\"}, \"keep_from_result\": \"watch.watch_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 2, \"tool\": \"gaip_watch_register\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"watch_id\": \"<watch.watch_id from step 2 (gaip_watch_register)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 3, \"tool\": \"gaip_watch_remove\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-watch-remove",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Watch Remove",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      },
      {
        "description": "Use this when asked what changed on a watched agent or service. Pass your `continuity_handle` and optionally a `watch_id`. Returns recent change events: verdict before and after, a change summary, the receipt and webhook delivery status. Input: required continuity_handle; optional limit, watch_id. A2A: send message/send with metadata.gaip_tool=\"gaip_watch_events\" and one data part holding the input object; MCP: tools/call name \"gaip_watch_events\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"chain\": [{\"agent_id\": \"supplier-watch\", \"arguments\": {\"counterparty_id\": \"example-weather-agent\", \"current\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}], \"url\": \"https://weather.example.com/v2/a2a\", \"version\": \"2.0.0\"}, \"prior\": {\"capabilities\": {\"streaming\": true}, \"name\": \"Weather Agent\", \"protocolVersion\": \"0.3.0\", \"skills\": [{\"id\": \"forecast\", \"name\": \"Forecast\"}, {\"id\": \"alerts\", \"name\": \"Severe weather alerts\"}], \"url\": \"https://weather.example.com/a2a\", \"version\": \"1.4.0\"}}, \"keep_from_result\": \"continuity_handle\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 1, \"tool\": \"gaip_compare_supplier_snapshots\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"interval_hours\": 24, \"kind\": \"SUPPLIER_CARD\", \"target_url\": \"https://weather.example.com/.well-known/agent-card.json\"}, \"keep_from_result\": \"watch.watch_id\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 2, \"tool\": \"gaip_watch_register\"}, {\"agent_id\": \"supplier-watch\", \"arguments\": {\"continuity_handle\": {\"continuity_id\": \"<continuity_handle.continuity_id from step 1 (gaip_compare_supplier_snapshots)>\", \"token\": \"<continuity_handle.token from step 1 (gaip_compare_supplier_snapshots)>\"}, \"limit\": 10, \"watch_id\": \"<watch.watch_id from step 2 (gaip_watch_register)>\"}, \"keep_from_result\": \"result\", \"mcp_endpoint\": \"https://www.gaipagents.com/mcp/agents/supplier-watch\", \"step\": 3, \"tool\": \"gaip_watch_events\"}], \"note\": \"Run the steps in order; replace each angle-bracket value with the named field from the result of the named earlier step.\"}"
        ],
        "id": "gaip-watch-events",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Watch Events",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      },
      {
        "description": "Use this when a supplier agent or API you depend on started failing (\"did something change on their side?\"). Pass its `supplier_url` and the `failure`. Returns the diagnosis plus changes GAIP observed around then (correlated in time, not causation), with receipts. Input: required supplier_url; optional card, counterparty_id, data_classification, failure, failure_started_at, failures, lookback_days, protocol, task_class, transport. A2A: send message/send with metadata.gaip_tool=\"gaip_supplier_reliability\" and one data part holding the input object; MCP: tools/call name \"gaip_supplier_reliability\" at https://www.gaipagents.com/mcp/agents/supplier-watch.",
        "examples": [
          "{\"failure\": {\"code\": 404, \"detail\": \"Not Found\"}, \"failure_started_at\": \"2026-09-27T12:00:00Z\", \"supplier_url\": \"https://weather.example.com/.well-known/agent-card.json\"}"
        ],
        "id": "gaip-supplier-reliability",
        "inputModes": [
          "application/json"
        ],
        "name": "Gaip Supplier Reliability",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "supplier",
          "monitoring",
          "change"
        ]
      }
    ],
    "supportedInterfaces": [
      {
        "protocolBinding": "JSONRPC",
        "protocolVersion": "1.0",
        "url": "https://www.gaipagents.com/a2a/supplier-watch"
      }
    ],
    "url": "https://www.gaipagents.com/a2a/supplier-watch",
    "version": "1.0.0"
  },
  "agent_id": "supplier-watch",
  "agentverse": {
    "a2a_agent_card": "https://www.gaipagents.com/agents/supplier-watch/.well-known/agent-card.json",
    "a2a_endpoint": "https://www.gaipagents.com/a2a/supplier-watch",
    "agent_id": "supplier-watch",
    "chat_protocol_required": true,
    "description": "Now part of GAIP's front door (Check and GAIP Watch; Diagnose) on /mcp and the integration-protocol agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents/integration-protocol. Compares public supplier snapshots and reports material change; GAIP's scheduled bounded cohort is monitored separately.",
    "name": "GAIP Supplier Watch Agent",
    "price_gbp": 0,
    "product": {
      "foldedInto": "integration-protocol",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "developer-checks",
      "productName": "Check and GAIP Watch \u00b7 Diagnose",
      "role": "FOLDED",
      "roleLabel": "folded in, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#developer-checks"
    },
    "proof_boundary": "This public profile is ready for registration; Agentverse discovery is not claimed until a registry receipt exists.",
    "protocols": [
      "A2A",
      "MCP",
      "HTTPS"
    ],
    "public": true,
    "publication_approval": "FOUNDER_GRANTED_2026-09-24",
    "registration_state": "PENDING_AGENTVERSE_IDENTITY_LINK",
    "schema_version": "gaip.agentverse.profile.v2",
    "tags": [
      "supplier",
      "monitoring",
      "change"
    ]
  },
  "coo_reporting": "ENABLED",
  "engineering_reliability_monitoring": "ENABLED",
  "erc8004": {
    "active": true,
    "description": "Now part of GAIP's front door (Check and GAIP Watch; Diagnose) on /mcp and the integration-protocol agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents/integration-protocol. Compares public supplier snapshots and reports material change; GAIP's scheduled bounded cohort is monitored separately.",
    "gaip": {
      "agent_id": "supplier-watch",
      "mainnet_claimed": false,
      "onchain_state": "PENDING_WALLET_SIGNED_REGISTRATION",
      "spend_authorized": false,
      "target_network": "BASE_SEPOLIA"
    },
    "image": "https://www.gaipagents.com/assets/agents/supplier-watch.svg",
    "name": "GAIP Supplier Watch Agent",
    "registrations": [],
    "services": [
      {
        "endpoint": "https://www.gaipagents.com/agents/supplier-watch",
        "name": "web"
      },
      {
        "endpoint": "https://www.gaipagents.com/agents/supplier-watch/.well-known/agent-card.json",
        "name": "A2A",
        "version": "1.0"
      },
      {
        "endpoint": "https://www.gaipagents.com/mcp/agents/supplier-watch",
        "name": "MCP",
        "version": "2025-06-18"
      },
      {
        "endpoint": "https://www.gaipagents.com/v1/distribution/oasf/supplier-watch.json",
        "name": "OASF",
        "version": "1.0.0"
      }
    ],
    "supportedTrust": [
      "reputation"
    ],
    "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
    "x402Support": false
  },
  "external_acceptance_receipts": [
    {
      "evidence_url": "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype/actions/runs/36324732597",
      "name": "io.github.tjcgraham-rgb/gaip-supplier-watch",
      "surface": "OFFICIAL_MCP_REGISTRY",
      "version": "1.0.0"
    }
  ],
  "generated_at_utc": "2026-10-18T01:52:35.569070+00:00",
  "mcp": {
    "description": "Now part of GAIP's front door (Check and GAIP Watch; Diagnose) on /mcp and the integration-protocol agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents/integration-protocol. Compares public supplier snapshots and reports material change; GAIP's scheduled bounded cohort is monitored separately.",
    "endpoint": "https://www.gaipagents.com/mcp/agents/supplier-watch",
    "name": "io.github.tjcgraham-rgb/gaip-supplier-watch",
    "privacyPolicy": "https://www.gaipagents.com/privacy",
    "product": {
      "foldedInto": "integration-protocol",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "developer-checks",
      "productName": "Check and GAIP Watch \u00b7 Diagnose",
      "role": "FOLDED",
      "roleLabel": "folded in, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#developer-checks"
    },
    "protocolVersion": "2025-06-18",
    "publication": {
      "acceptanceNotImplied": true,
      "descriptorLive": true,
      "officialMcpRegistry": "PENDING_INDIVIDUAL_REGISTRY_ACCEPTANCE"
    },
    "registryVersion": "1.5.0",
    "repository": {
      "source": "github",
      "url": "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype"
    },
    "schema_version": "gaip.agent-mcp-descriptor.v1",
    "serverCard": "https://www.gaipagents.com/mcp/agents/supplier-watch/server-card",
    "termsOfService": "https://www.gaipagents.com/terms",
    "title": "GAIP Supplier Watch Agent",
    "tools": [
      {
        "annotations": {
          "destructiveHint": false,
          "openWorldHint": false,
          "readOnlyHint": false
        },
        "description": "Compare two supplied public snapshots and return material changes with a retained receipt. The separate scheduled GAIP cohort watch is published at /v1/free/commercial/watch-status.",
        "inputSchema": {
          "additionalProperties": true,
          "properties": {
            "continuity_handle": {
              "additionalProperties": false,
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "counterparty_id": {
              "type": "string"
            },
            "current": {
              "type": "object"
            },
            "data_classification": {
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "episode_id": {
              "type": "string"
            },
            "independent_operator_id": {
              "type": "string"
            },
            "prior": {
              "type": "object"
            },
            "protocol": {
              "enum": [
                "A2A",
                "MCP",
                "OPENAPI"
              ],
              "type": "string"
            },
            "synthetic": {
              "type": "boolean"
            },
            "task_class": {
              "type": "string"
            }
          },
          "required": [
            "data_classification",
            "counterparty_id",
            "task_class",
            "protocol",
            "prior",
            "current"
          ],
          "type": "object"
        },
        "name": "gaip_compare_supplier_snapshots",
        "title": "Compare supplier snapshots"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": false,
          "openWorldHint": true,
          "readOnlyHint": false
        },
        "description": "Register a free watch (max 3, every 24h+) on an agent's readiness, a published card, or witness delivery terms; optional signed webhook on change.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "continuity_handle": {
              "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "data_classification": {
              "default": "PUBLIC",
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "interval_hours": {
              "default": 24,
              "description": "Hours between checks: 24 minimum on the free tier; 1 for DELIVERY_SLA.",
              "maximum": 168,
              "minimum": 1,
              "type": "integer"
            },
            "kind": {
              "enum": [
                "AGENT_READINESS",
                "DELIVERY_TERMS",
                "SUPPLIER_CARD",
                "DELIVERY_SLA"
              ],
              "type": "string"
            },
            "sla": {
              "description": "DELIVERY_SLA only: service-level terms checked on every observation, any of min_uptime_pct, max_latency_ms, required_fields (JSON key paths), freshness_field + max_age_seconds; optional uptime_window_hours, min_observations. Results go only to you.",
              "type": "object"
            },
            "target_url": {
              "description": "Public https URL (AGENT_READINESS, SUPPLIER_CARD). No query string.",
              "format": "uri",
              "maxLength": 2048,
              "type": "string"
            },
            "terms_id": {
              "description": "DELIVERY_TERMS or DELIVERY_SLA: terms_id from witness_register_terms.",
              "type": "string"
            },
            "webhook_url": {
              "description": "Optional: your own public https endpoint for signed change events.",
              "format": "uri",
              "maxLength": 2048,
              "type": "string"
            }
          },
          "required": [
            "continuity_handle",
            "kind"
          ],
          "type": "object"
        },
        "name": "gaip_watch_register",
        "title": "Watch an agent, card or delivery"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "List your watches with last verdict, last check and next due time.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "continuity_handle": {
              "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            }
          },
          "required": [
            "continuity_handle"
          ],
          "type": "object"
        },
        "name": "gaip_watch_list",
        "title": "List my watches"
      },
      {
        "annotations": {
          "destructiveHint": true,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": false
        },
        "description": "Stop one of your watches and delete its events.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "continuity_handle": {
              "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "watch_id": {
              "type": "string"
            }
          },
          "required": [
            "continuity_handle",
            "watch_id"
          ],
          "type": "object"
        },
        "name": "gaip_watch_remove",
        "title": "Remove a watch"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": true,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Read recent change events (with receipts and webhook delivery status) for your watches.",
        "inputSchema": {
          "additionalProperties": false,
          "properties": {
            "continuity_handle": {
              "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "limit": {
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            },
            "watch_id": {
              "type": "string"
            }
          },
          "required": [
            "continuity_handle"
          ],
          "type": "object"
        },
        "name": "gaip_watch_events",
        "title": "Read watch change events"
      },
      {
        "annotations": {
          "destructiveHint": false,
          "idempotentHint": false,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "An agent or API you depend on started failing? Pass the `failure` ({code, detail}) as for gaip_diagnose_integration_failure plus the supplier's public `supplier_url` and optionally `failure_started_at`. Returns GAIP's repair diagnosis plus the supplier changes GAIP observed around that time (card and readiness watch events, observatory change log), each with a receipt and labelled as correlated in time, not causation. Recommends next steps and offers a watch. Does not fetch the supplier.",
        "inputSchema": {
          "additionalProperties": true,
          "properties": {
            "card": {
              "description": "Optional supplier card / server description you integrated against.",
              "type": "object"
            },
            "counterparty_id": {
              "type": "string"
            },
            "data_classification": {
              "default": "PUBLIC",
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "failure": {
              "description": "{code, detail?, http_status?} as for gaip_diagnose_integration_failure.",
              "type": "object"
            },
            "failure_started_at": {
              "format": "date-time",
              "type": "string"
            },
            "failures": {
              "maxItems": 100,
              "minItems": 1,
              "type": "array"
            },
            "lookback_days": {
              "default": 14,
              "maximum": 30,
              "minimum": 1,
              "type": "integer"
            },
            "protocol": {
              "description": "Omit to infer it from card, transport or the supplier URL path (else UNKNOWN).",
              "enum": [
                "A2A",
                "MCP",
                "OPENAPI",
                "UNKNOWN"
              ],
              "type": "string"
            },
            "supplier_url": {
              "format": "uri",
              "maxLength": 2048,
              "type": "string"
            },
            "task_class": {
              "type": "string"
            },
            "transport": {
              "description": "Optional transport you used (e.g. streamable-http, sse, GRPC).",
              "type": "string"
            }
          },
          "required": [
            "supplier_url"
          ],
          "type": "object"
        },
        "name": "gaip_supplier_reliability",
        "title": "Diagnose a supplier failure with recent changes"
      }
    ],
    "transport": "streamable-http",
    "version": "1.0.0"
  },
  "oasf": {
    "authors": [
      "GAIP"
    ],
    "created_at": "2026-09-24T00:00:00Z",
    "description": "Now part of GAIP's front door (Check and GAIP Watch; Diagnose) on /mcp and the integration-protocol agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents/integration-protocol. Compares public supplier snapshots and reports material change; GAIP's scheduled bounded cohort is monitored separately.",
    "domains": [],
    "extensions": {
      "gaip": {
        "agent_id": "supplier-watch",
        "mcp": "https://www.gaipagents.com/mcp/agents/supplier-watch",
        "product": "developer-checks",
        "publication_state": "PENDING_AGNTCY_DIRECTORY_RECEIPT"
      }
    },
    "locators": [
      {
        "type": "source_code",
        "urls": [
          "https://github.com/tjcgraham-rgb/-gaip-agent-to-art-prototype"
        ]
      },
      {
        "type": "documentation",
        "urls": [
          "https://www.gaipagents.com/agents/supplier-watch"
        ]
      },
      {
        "type": "a2a_agent_card",
        "urls": [
          "https://www.gaipagents.com/agents/supplier-watch/.well-known/agent-card.json"
        ]
      }
    ],
    "modules": [],
    "name": "GAIP Supplier Watch Agent",
    "schema_version": "1.0.0",
    "skills": [
      {
        "id": 1004,
        "name": "agent_orchestration/agent_coordination"
      }
    ],
    "version": "1.0.0"
  },
  "publication_truth": "OFFICIAL_MCP_REGISTRY_PUBLISHED_OTHER_EXTERNAL_ACCEPTANCE_PENDING",
  "schema_version": "gaip.ten-agent-distribution-bundle.v1"
}