GAIP Trust & Assurance Agent
Evidence Ledger: verifies GAIP receipts and compiles evidence packs and incident bundles.
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-trust-assurance": {
"url": "https://www.gaipagents.com/mcp/agents/trust-assurance"
}
}
}Remote endpoints
https://www.gaipagents.com/mcp/agents/trust-assurancestreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢inspect_counterparty_evidence(continuity_handle, counterparty_id, data_classification, episode_id, independent_operator_id, ...)
Use this when asked what evidence exists about an agent before delegating to it. Pass its `counterparty_id` and any `observations`. Returns task-specific evidence coverage, conflicts, gaps and GAIP's own earlier checks of it, with a receipt. Never a trust score or recommendation. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"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 or service.",
"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"
},
"observations": {
"description": "Optional: observations about it, each {source, observed_at, evidence_digest, lifecycle_state, claim}.",
"items": {
"type": "object"
},
"type": "array"
},
"synthetic": {
"description": "Optional: true marks a test call.",
"type": "boolean"
},
"task_class": {
"default": "COUNTERPARTY_EVIDENCE",
"description": "Task you want evidence for. Optional.",
"type": "string"
}
},
"additionalProperties": true,
"examples": [
{
"counterparty_id": "example-weather-agent",
"observations": [
{
"claim": "Publishes a public weather_forecast skill",
"evidence_digest": "3f0a9c1e5b7d2468ace013579bdf2468ace013579bdf2468ace013579bdf2468",
"lifecycle_state": "observed",
"observed_at": "2026-09-27T12:00:00Z",
"source": "https://forecast.example.com/.well-known/agent-card.json"
},
{
"claim": "Returned a London forecast in 1.2 s",
"lifecycle_state": "OBSERVED",
"observed_at": "2026-09-27T12:05:00Z",
"source": "caller_task_log"
}
],
"task_class": "weather_forecast"
}
]
}🟢gaip_receipt_export(format, receipt_id)
Use this when you need a GAIP receipt in another format. Pass `receipt_id` and `format`: x402 (attestation style), erc8004 (validation-response shape) or vc (W3C-VC-like JSON-LD). Unsigned; integrity via hash chain and Merkle proof; no on-chain write. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"format": {
"description": "x402, erc8004 or vc.",
"enum": [
"x402",
"erc8004",
"vc"
],
"type": "string"
},
"receipt_id": {
"description": "A receipt_id returned by an earlier GAIP call.",
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
"required": [
"receipt_id",
"format"
],
"additionalProperties": false,
"examples": [
{
"format": "x402",
"receipt_id": "<receipt_id returned by any GAIP tool>"
}
]
}🟢verify_gaip_receipt(continuity_handle, data_classification, episode_id, independent_operator_id, receipt_id, ...)
Use this when you hold a GAIP receipt_id and want to confirm it ("is this receipt genuine?"). Returns the retained record, hash chain and Merkle inclusion proof. Integrity only: it does not make the underlying claim true. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"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": {
"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"
},
"receipt_id": {
"description": "A receipt_id returned by an earlier GAIP call.",
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"synthetic": {
"description": "Optional: true marks a test call.",
"type": "boolean"
}
},
"required": [
"receipt_id"
],
"additionalProperties": true,
"examples": [
{
"receipt_id": "<receipt_id returned by any GAIP tool>"
}
]
}🟢gaip_evidence_pack(requester, scope, subject)
Use this when an insurer, auditor or buyer asks what evidence exists about an agent or supplier. Pass its `subject` (public id or https URL). Returns conformance, watch, witness, repair and incident records with Merkle proofs, plus gaps. A compilation, not certification or advice. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"requester": {
"additionalProperties": false,
"description": "Optional: {purpose, continuity_handle} to include your own receipts.",
"properties": {
"continuity_handle": {
"properties": {
"continuity_id": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": [
"continuity_id",
"token"
],
"type": "object"
},
"purpose": {
"enum": [
"INSURER",
"AUDITOR",
"OPERATOR",
"BUYER",
"UNSPECIFIED"
],
"type": "string"
}
},
"type": "object"
},
"scope": {
"additionalProperties": false,
"description": "Optional: {receipt_ids, since, until, categories, max_items}.",
"properties": {
"categories": {
"items": {
"enum": [
"conformance",
"watch",
"witness",
"repair",
"incident",
"supplier_checks"
],
"type": "string"
},
"type": "array"
},
"max_items": {
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"receipt_ids": {
"items": {
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"since": {
"type": "string"
},
"until": {
"type": "string"
}
},
"type": "object"
},
"subject": {
"description": "The agent or supplier: its public id or https URL. Never a person.",
"oneOf": [
{
"maxLength": 256,
"type": "string"
},
{
"additionalProperties": false,
"properties": {
"counterparty_id": {
"type": "string"
},
"ref": {
"type": "string"
},
"seller_ref": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"type": "object"
}
]
}
},
"required": [
"subject"
],
"additionalProperties": false,
"examples": [
{
"requester": {
"purpose": "INSURER"
},
"scope": {
"max_items": 50,
"since": "2026-09-01"
},
"subject": {
"counterparty_id": "example-weather-agent"
}
}
]
}🟢gaip_incident_bundle(ai_system_ref, data_classification, observations, receipt_ids, title)
Use this when something went wrong with an agent and you need the facts in order. Pass the `receipt_ids` you hold and attributed `observations`. Returns a verified, source-attributed timeline with an EU AI Act Art. 73 reference aid. No fault, cause or liability finding. Free, read-only, no account; inputs must be public and non-personal.
Input Schema
{
"type": "object",
"properties": {
"ai_system_ref": {
"description": "Optional: public id or URL of the AI system involved.",
"maxLength": 256,
"type": "string"
},
"data_classification": {
"default": "PUBLIC",
"description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.",
"enum": [
"PUBLIC",
"NON_PERSONAL_PUBLIC"
],
"type": "string"
},
"observations": {
"description": "Attributed observations, each {source, statement, observed_at_utc}.",
"items": {
"additionalProperties": false,
"properties": {
"observed_at_utc": {
"type": "string"
},
"receipt_id": {
"type": "string"
},
"source": {
"maxLength": 120,
"type": "string"
},
"source_type": {
"enum": [
"AUTOMATED_MONITOR",
"PUBLIC_RECORD",
"REQUESTER",
"THIRD_PARTY"
],
"type": "string"
},
"statement": {
"maxLength": 2000,
"type": "string"
}
},
"required": [
"source",
"statement"
],
"type": "object"
},
"maxItems": 50,
"type": "array"
},
"receipt_ids": {
"description": "GAIP receipt ids you hold about the incident.",
"items": {
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"title": {
"description": "Optional: short incident title.",
"maxLength": 120,
"type": "string"
}
},
"additionalProperties": false,
"examples": [
{
"ai_system_ref": "example-weather-agent",
"observations": [
{
"observed_at_utc": "2026-09-27T10:00:00Z",
"source": "our uptime monitor",
"source_type": "AUTOMATED_MONITOR",
"statement": "HTTP 503 from the forecast endpoint for 12 minutes"
}
],
"receipt_ids": [
"<receipt_id returned by any GAIP tool>"
],
"title": "Forecast endpoint returned errors"
}
]
}Community
Evidence