GAIP Opportunity Broker
Delivery Assurance: checks which public agent candidates declare a fit for a bounded task.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"gaip-opportunity-broker": {
"url": "https://www.gaipagents.com/mcp/agents/opportunity-broker"
}
}
}Remote endpoints
https://www.gaipagents.com/mcp/agents/opportunity-brokerstreamable-httpWhat it can do
Tool inventory
Tools (1)
🟢preflight_broker_candidates(candidates, continuity_handle, data_classification, episode_id, independent_operator_id, ...)
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. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"candidates": {
"description": "A2A agent cards as published, or {agent_card, explicit_read_only_consent}.",
"items": {
"type": "object"
},
"type": "array"
},
"continuity_handle": {
"additionalProperties": false,
"description": "Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones.",
"properties": {
"continuity_id": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"continuity_id",
"token"
],
"type": "object"
},
"data_classification": {
"default": "PUBLIC",
"description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.",
"enum": [
"PUBLIC",
"NON_PERSONAL_PUBLIC"
],
"type": "string"
},
"episode_id": {
"description": "Optional: your own id to group related calls.",
"type": "string"
},
"independent_operator_id": {
"description": "Optional: your operator id (recorded as a claim, not verified).",
"type": "string"
},
"synthetic": {
"description": "Optional: true marks a test call.",
"type": "boolean"
},
"task_class": {
"description": "Optional: short name of the task, e.g. weather_forecast.",
"type": "string"
}
},
"required": [
"candidates"
],
"additionalProperties": true,
"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"
}
]
}Community
Evidence