{
  "agent_card": {
    "capabilities": {
      "extendedAgentCard": false,
      "pushNotifications": false,
      "stateTransitionHistory": false,
      "streaming": false
    },
    "defaultInputModes": [
      "application/json"
    ],
    "defaultOutputModes": [
      "application/json"
    ],
    "description": "No longer listed as a separate GAIP agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents. Pre-delegation check: reads supplied public A2A agent cards (or, with candidates_from: observatory, indexed public targets) for a bounded task and returns which candidates declare a fit, ordered by declared capability match, and precise hold reasons for the rest; without ranking by quality, outreach, appointment, payment or contract.",
    "documentationUrl": "https://www.gaipagents.com/agents/opportunity-broker",
    "gaip": {
      "agentId": "opportunity-broker",
      "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/opportunity-broker",
      "durableReceiptRequiredBeforeSuccess": true,
      "howToCall": {
        "a2a": "POST JSON-RPC message/send (A2A 0.3) or SendMessage (A2A 1.0) to https://www.gaipagents.com/a2a/opportunity-broker. Put the tool name (underscores, e.g. \"preflight_broker_candidates\") 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": [
          "preflight_broker_candidates"
        ],
        "example": {
          "id": 1,
          "jsonrpc": "2.0",
          "method": "message/send",
          "params": {
            "message": {
              "kind": "message",
              "messageId": "example-1",
              "metadata": {
                "gaip_tool": "preflight_broker_candidates"
              },
              "parts": [
                {
                  "data": {
                    "candidates": [
                      {
                        "agent_card": {
                          "description": "Public weather forecasts over A2A.",
                          "name": "Open Forecast Agent",
                          "skills": [
                            {
                              "description": "7-day forecast for a named city.",
                              "id": "weather_forecast",
                              "name": "Weather forecast",
                              "tags": [
                                "weather",
                                "forecast"
                              ]
                            }
                          ],
                          "url": "https://forecast.example.com/a2a",
                          "version": "1.2.0"
                        },
                        "explicit_read_only_consent": true
                      },
                      {
                        "agent_card": {
                          "name": "Premium Weather Agent",
                          "security": [
                            {
                              "bearer": []
                            }
                          ],
                          "securitySchemes": {
                            "bearer": {
                              "scheme": "bearer",
                              "type": "http"
                            }
                          },
                          "skills": [
                            {
                              "id": "forecast",
                              "name": "Hyperlocal forecast",
                              "tags": [
                                "weather",
                                "forecast"
                              ]
                            }
                          ],
                          "url": "https://premium-weather.example.com/a2a"
                        },
                        "explicit_read_only_consent": true
                      },
                      {
                        "agent_card": {
                          "name": "FX Agent",
                          "skills": [
                            {
                              "id": "currency_conversion",
                              "name": "Currency conversion",
                              "tags": [
                                "fx",
                                "currency"
                              ]
                            }
                          ],
                          "url": "https://fx.example.com/a2a"
                        }
                      }
                    ],
                    "task_class": "weather_forecast"
                  },
                  "kind": "data"
                }
              ],
              "role": "user"
            }
          }
        },
        "mcp": "POST tools/call to https://www.gaipagents.com/mcp/agents/opportunity-broker",
        "primaryTool": "preflight_broker_candidates"
      },
      "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/opportunity-broker/server-card",
      "mcpUrl": "https://www.gaipagents.com/mcp/agents/opportunity-broker",
      "priceGbp": 0,
      "product": {
        "foldedInto": "unlisted",
        "kind": "PRODUCT",
        "listed": false,
        "productId": "witness",
        "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
        "role": "UNLISTED",
        "roleLabel": "unlisted, still callable",
        "status": "PUBLIC_FREE",
        "url": "https://www.gaipagents.com/v1/free/products#witness"
      }
    },
    "iconUrl": "https://www.gaipagents.com/assets/agents/opportunity-broker.svg",
    "name": "GAIP Opportunity Broker",
    "preferredTransport": "JSONRPC",
    "protocolVersion": "1.0",
    "provider": {
      "organization": "GAIP",
      "url": "https://www.gaipagents.com"
    },
    "securityRequirements": [],
    "securitySchemes": {},
    "skills": [
      {
        "description": "Use this when choosing which agent to hand a task to (\"which of these agents can do X?\"). Pass `task_class` and `candidates` (A2A agent cards). Returns callable candidates ordered by declared skill match (not a quality ranking), held ones with reasons and a receipt. Input: required candidates; optional continuity_handle, data_classification, episode_id, independent_operator_id, synthetic, task_class. A2A: send message/send with metadata.gaip_tool=\"preflight_broker_candidates\" and one data part holding the input object; MCP: tools/call name \"preflight_broker_candidates\" at https://www.gaipagents.com/mcp/agents/opportunity-broker.",
        "examples": [
          "{\"candidates\": [{\"agent_card\": {\"description\": \"Public weather forecasts over A2A.\", \"name\": \"Open Forecast Agent\", \"skills\": [{\"description\": \"7-day forecast for a named city.\", \"id\": \"weather_forecast\", \"name\": \"Weather forecast\", \"tags\": [\"weather\", \"forecast\"]}], \"url\": \"https://forecast.example.com/a2a\", \"version\": \"1.2.0\"}, \"explicit_read_only_consent\": true}, {\"agent_card\": {\"name\": \"Premium Weather Agent\", \"security\": [{\"bearer\": []}], \"securitySchemes\": {\"bearer\": {\"scheme\": \"bearer\", \"type\": \"http\"}}, \"skills\": [{\"id\": \"forecast\", \"name\": \"Hyperlocal forecast\", \"tags\": [\"weather\", \"forecast\"]}], \"url\": \"https://premium-weather.example.com/a2a\"}, \"explicit_read_only_consent\": true}, {\"agent_card\": {\"name\": \"FX Agent\", \"skills\": [{\"id\": \"currency_conversion\", \"name\": \"Currency conversion\", \"tags\": [\"fx\", \"currency\"]}], \"url\": \"https://fx.example.com/a2a\"}}], \"task_class\": \"weather_forecast\"}"
        ],
        "id": "preflight-broker-candidates",
        "inputModes": [
          "application/json"
        ],
        "name": "Preflight Broker Candidates",
        "outputModes": [
          "application/json"
        ],
        "tags": [
          "discovery",
          "matching",
          "procurement"
        ]
      }
    ],
    "supportedInterfaces": [
      {
        "protocolBinding": "JSONRPC",
        "protocolVersion": "1.0",
        "url": "https://www.gaipagents.com/a2a/opportunity-broker"
      }
    ],
    "url": "https://www.gaipagents.com/a2a/opportunity-broker",
    "version": "1.0.0"
  },
  "agent_id": "opportunity-broker",
  "agentverse": {
    "a2a_agent_card": "https://www.gaipagents.com/agents/opportunity-broker/.well-known/agent-card.json",
    "a2a_endpoint": "https://www.gaipagents.com/a2a/opportunity-broker",
    "agent_id": "opportunity-broker",
    "chat_protocol_required": true,
    "description": "No longer listed as a separate GAIP agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents. Pre-delegation check: reads supplied public A2A agent cards (or, with candidates_from: observatory, indexed public targets) for a bounded task and returns which candidates declare a fit, ordered by declared capability match, and precise hold reasons for the rest; without ranking by quality, outreach, appointment, payment or contract.",
    "name": "GAIP Opportunity Broker",
    "price_gbp": 0,
    "product": {
      "foldedInto": "unlisted",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "witness",
      "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
      "role": "UNLISTED",
      "roleLabel": "unlisted, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#witness"
    },
    "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": [
      "discovery",
      "matching",
      "procurement"
    ]
  },
  "coo_reporting": "ENABLED",
  "engineering_reliability_monitoring": "ENABLED",
  "erc8004": {
    "active": true,
    "description": "No longer listed as a separate GAIP agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents. Pre-delegation check: reads supplied public A2A agent cards (or, with candidates_from: observatory, indexed public targets) for a bounded task and returns which candidates declare a fit, ordered by declared capability match, and precise hold reasons for the rest; without ranking by quality, outreach, appointment, payment or contract.",
    "gaip": {
      "agent_id": "opportunity-broker",
      "mainnet_claimed": false,
      "onchain_state": "PENDING_WALLET_SIGNED_REGISTRATION",
      "spend_authorized": false,
      "target_network": "BASE_SEPOLIA"
    },
    "image": "https://www.gaipagents.com/assets/agents/opportunity-broker.svg",
    "name": "GAIP Opportunity Broker",
    "registrations": [],
    "services": [
      {
        "endpoint": "https://www.gaipagents.com/agents/opportunity-broker",
        "name": "web"
      },
      {
        "endpoint": "https://www.gaipagents.com/agents/opportunity-broker/.well-known/agent-card.json",
        "name": "A2A",
        "version": "1.0"
      },
      {
        "endpoint": "https://www.gaipagents.com/mcp/agents/opportunity-broker",
        "name": "MCP",
        "version": "2025-06-18"
      },
      {
        "endpoint": "https://www.gaipagents.com/v1/distribution/oasf/opportunity-broker.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-opportunity-broker",
      "surface": "OFFICIAL_MCP_REGISTRY",
      "version": "1.0.0"
    }
  ],
  "generated_at_utc": "2026-10-21T17:26:15.320224+00:00",
  "mcp": {
    "description": "No longer listed as a separate GAIP agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents. Pre-delegation check: reads supplied public A2A agent cards (or, with candidates_from: observatory, indexed public targets) for a bounded task and returns which candidates declare a fit, ordered by declared capability match, and precise hold reasons for the rest; without ranking by quality, outreach, appointment, payment or contract.",
    "endpoint": "https://www.gaipagents.com/mcp/agents/opportunity-broker",
    "name": "io.github.tjcgraham-rgb/gaip-opportunity-broker",
    "privacyPolicy": "https://www.gaipagents.com/privacy",
    "product": {
      "foldedInto": "unlisted",
      "kind": "PRODUCT",
      "listed": false,
      "productId": "witness",
      "productName": "Witness \u00b7 Deals \u00b7 Sign-offs",
      "role": "UNLISTED",
      "roleLabel": "unlisted, still callable",
      "status": "PUBLIC_FREE",
      "url": "https://www.gaipagents.com/v1/free/products#witness"
    },
    "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/opportunity-broker/server-card",
    "termsOfService": "https://www.gaipagents.com/terms",
    "title": "GAIP Opportunity Broker",
    "tools": [
      {
        "annotations": {
          "destructiveHint": false,
          "openWorldHint": false,
          "readOnlyHint": true
        },
        "description": "Pre-delegation check (Delivery Assurance): preflight supplied public agent candidates (A2A cards or GAIP fields) and order them by declared fit only (not a quality ranking), without outreach, appointment, contract or payment.",
        "inputSchema": {
          "additionalProperties": true,
          "properties": {
            "candidates": {
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "continuity_handle": {
              "additionalProperties": false,
              "properties": {
                "continuity_id": {
                  "type": "string"
                },
                "token": {
                  "type": "string"
                }
              },
              "required": [
                "continuity_id",
                "token"
              ],
              "type": "object"
            },
            "data_classification": {
              "enum": [
                "PUBLIC",
                "NON_PERSONAL_PUBLIC"
              ],
              "type": "string"
            },
            "episode_id": {
              "type": "string"
            },
            "independent_operator_id": {
              "type": "string"
            },
            "synthetic": {
              "type": "boolean"
            },
            "task_class": {
              "type": "string"
            }
          },
          "required": [
            "data_classification",
            "task_class",
            "candidates"
          ],
          "type": "object"
        },
        "name": "preflight_broker_candidates"
      }
    ],
    "transport": "streamable-http",
    "version": "1.0.0"
  },
  "oasf": {
    "authors": [
      "GAIP"
    ],
    "created_at": "2026-09-24T00:00:00Z",
    "description": "No longer listed as a separate GAIP agent. It stays callable here with the same tools; see https://www.gaipagents.com/agents. Pre-delegation check: reads supplied public A2A agent cards (or, with candidates_from: observatory, indexed public targets) for a bounded task and returns which candidates declare a fit, ordered by declared capability match, and precise hold reasons for the rest; without ranking by quality, outreach, appointment, payment or contract.",
    "domains": [],
    "extensions": {
      "gaip": {
        "agent_id": "opportunity-broker",
        "mcp": "https://www.gaipagents.com/mcp/agents/opportunity-broker",
        "product": "witness",
        "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/opportunity-broker"
        ]
      },
      {
        "type": "a2a_agent_card",
        "urls": [
          "https://www.gaipagents.com/agents/opportunity-broker/.well-known/agent-card.json"
        ]
      }
    ],
    "modules": [],
    "name": "GAIP Opportunity Broker",
    "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"
}