GAIP Procurement Evidence Agent
Delivery Assurance: compares supplier claims with public observations, keeping unknowns.
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-procurement-verify": {
"url": "https://www.gaipagents.com/mcp/agents/procurement-verify"
}
}
}Remote endpoints
https://www.gaipagents.com/mcp/agents/procurement-verifystreamable-httpWhat it can do
Tool inventory
Tools (1)
⚪gaip_verify_supplier_claims(claims, continuity_handle, counterparty_id, data_classification, episode_id, ...)
Use this when asked to verify what an agent, API or supplier claims ("verify these claims"). Pass `claims` (each with an `id`), your `observations` and its `metadata`. Returns OBSERVED_AS_REPORTED / CONTRADICTED / MIXED / UNTESTED per claim with a receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"claims": {
"description": "Claims to check, each {id, text}.",
"items": {
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"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"
},
"counterparty_id": {
"description": "Name or URL of the agent/service. Optional.",
"type": "string"
},
"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"
},
"metadata": {
"description": "The published agent card, MCP server description or OpenAPI document (as JSON).",
"type": "object"
},
"observations": {
"description": "Optional: what you saw, each {claim_id, result: PASS|FAIL, detail}.",
"items": {
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"protocol": {
"description": "Counterparty protocol. Inferred from metadata when omitted, otherwise MCP.",
"enum": [
"A2A",
"MCP",
"OPENAPI"
],
"type": "string"
},
"synthetic": {
"description": "Optional: true marks a test call.",
"type": "boolean"
},
"task_class": {
"default": "supplier_claim_check",
"description": "Optional: short name of the task, e.g. weather_forecast.",
"type": "string"
}
},
"required": [
"claims",
"metadata"
],
"additionalProperties": true,
"examples": [
{
"claims": [
{
"id": "c1",
"text": "Returns JSON forecasts over MCP"
},
{
"id": "c2",
"text": "Responds within 2 seconds"
}
],
"counterparty_id": "example-weather-agent",
"metadata": {
"protocolVersion": "2025-06-18",
"url": "https://weather.example.com/mcp"
},
"observations": [
{
"claim_id": "c1",
"detail": "tools/call returned valid JSON",
"result": "PASS"
},
{
"claim_id": "c2",
"detail": "p95 latency 4.8 s over 20 calls",
"result": "FAIL"
}
]
}
]
}Community
Evidence