{
  "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"
}