GAIP Integration & Protocol Agent
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Behind Check and GAIP Watch, and Diagnose: A2A, MCP and OpenAPI checks with a dated change log.
| Author | io.github.tjcgraham-rgb |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2339 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"GAIP Integration & Protocol Agent": {
"url": "https://www.gaipagents.com/mcp/agents/integration-protocol",
"transport": "streamable-http"
}
}
}
Measured tools (13)
check_agent_conformanceread-onlyUse this when asked to check an AI agent or MCP server: does it work, is it reachable, is its card valid ("check this agent", "is this MCP server up?"). Pass just its `url`. Returns READY / FIXES_NEEDED / NO_AGENT_CARD / UNREACHABLE with fixes and a receipt. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
url— string — Public https link to an agent, its A2A agent card, MCP server description or OpenAPI document. GAIP fetches, validates and reach-tests it. Use instead of metadata.mode— string — CONFORMANCE (default) checks the interface; VERIFY_BEFORE_CALL returns task-specific evidence about `target` for `intended_task`.target— VERIFY_BEFORE_CALL: the counterparty URL or reference.metadata— object — Alternative to url: the agent card or MCP/OpenAPI document itself.protocol— string — Counterparty protocol. Inferred from metadata when omitted, otherwise MCP.source_url— string — Optional: where `metadata` was published, used only to resolve relative endpoints. Never fetched.intended_task— string — VERIFY_BEFORE_CALL: what you intend to delegate.declared_identity— string — Optional: the name the agent claims.expected_endpoint— string — Optional: the endpoint you expect; a different primary endpoint is reported as ENDPOINT_DRIFT.data_classification— string — PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
gaip_watch_registerUse 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. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Parameters:
continuity_handle(required) — object — The continuity_handle from an earlier GAIP result; proves you own these watches.kind(required) — string — AGENT_READINESS (agent URL), SUPPLIER_CARD (published card), DELIVERY_TERMS (terms_id) or DELIVERY_SLA (terms_id plus sla terms).sla— object — DELIVERY_SLA only: service-level terms checked on every observation, any of min_uptime_pct, max_latency_ms, required_fields (JSON key paths), freshness_field + max_age_seconds; optional uptime_window_hours, min_observations. Results go only to you.terms_id— string — DELIVERY_TERMS or DELIVERY_SLA: terms_id from witness_register_terms.target_url— string — Public https URL (AGENT_READINESS, SUPPLIER_CARD). No query string.webhook_url— string — Optional: your own public https endpoint for signed change events.interval_hours— integer — Hours between checks: 24 minimum on the free tier; 1 for DELIVERY_SLA.data_classification— string — PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.
Hints: read-only no · destructive no · idempotent no · open-world yes
gaip_watch_listread-onlyUse 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). Free, read-only, no account; inputs must be public and non-personal.
Parameters:
continuity_handle(required) — object — The continuity_handle from an earlier GAIP result; proves you own these watches.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gaip_watch_removedestructiveUse 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. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Parameters:
continuity_handle(required) — object — The continuity_handle from an earlier GAIP result; proves you own these watches.watch_id(required) — string — The watch_id returned by gaip_watch_register.
Hints: read-only no · destructive yes · idempotent yes · open-world no
gaip_watch_eventsread-onlyUse 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. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
continuity_handle(required) — object — The continuity_handle from an earlier GAIP result; proves you own these watches.limit— integer — Optional: maximum events to return.watch_id— string — The watch_id returned by gaip_watch_register.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gaip_observatory_lookupread-onlyUse this when asked about an MCP server's or agent's history ("has this server changed?", "was it up last week?"). Pass its `url` or `name`. Returns dated facts the Agent Observatory observed: status history, manifest hash, conformance codes, change log. Not an assessment. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
url— string — Public URL of the MCP server or agent to look up.name— string — Optional: server or agent name to search for.target_id— string — Optional: an Observatory target id (obs_...).
Hints: read-only yes · destructive no · idempotent yes · open-world no
gaip_manifest_changesread-onlyUse this when asked which MCP servers or agents changed recently ("what changed this week?"). Optional `since` (RFC 3339), `target_id`, `limit` (max 100). Returns the Observatory's hash-chained log of manifest changes: before/after hashes, neutral facts, receipts. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
limit— integer — Optional: maximum entries (1-100).since— string — Optional: RFC 3339 time, e.g. 2026-09-01T00:00:00Z.target_id— string — Optional: an Observatory target id (obs_...).
Hints: read-only yes · destructive no · idempotent yes · open-world no
gaip_observatory_captureUse this to save a dated record of what a public MCP server or A2A agent card declares now. Pass its `url`. GAIP reads it once (robots.txt respected, never tools/call), re-reads it daily and returns the capture id, time and SHA-256 hashes. Not an assessment. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Parameters:
url(required) — string — Public https URL of the MCP endpoint or the A2A agent card.protocol— string — Optional; inferred from the URL (a /.well-known/agent-card.json path is A2A).
Hints: read-only no · destructive no · idempotent no · open-world yes
gaip_tools_changed_sinceread-onlyUse this before connecting to an MCP server: did its tools change since your `since` date? Pass its `url`, optionally your tools/list `tools` or a digest. Returns dates, change classes, stored hashes and whether yours match the latest GAIP observed. Facts, not a verdict. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
url— string — The MCP endpoint (or A2A agent card) URL, exactly as you connect to it.since— string — Your approval date (RFC 3339 or YYYY-MM-DD): changes recorded since then.tools— array — The `tools` array from your own tools/list; GAIP hashes it and compares.target_id— string — Optional: an Observatory target id (obs_...).tool_digests— array — Per-tool digests in the DRAFT MCP SEP-2636 form (may change).tools_digest— string — A SHA-256 (64 hex) of the tool list you approved, as GAIP reported it.
Hints: read-only yes · destructive no · idempotent yes · open-world no
gaip_check_permissionread-onlyUse this before your agent fetches a page ("may my agent fetch this?"). Pass the `url` and your `agent` token. Reads robots.txt (RFC 9309), AI-preference lines, RSL, tdmrep.json and llms.txt; returns ALLOWED, DISALLOWED, NO_RULE or UNKNOWN, the rule quoted, the time and a signature. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
url(required) — string — The public https URL your agent wants to fetch.agent— string — Your agent's user-agent token as robots.txt names it, e.g. GPTBot or ClaudeBot (a full User-Agent string also works). Default * (any crawler without its own rules).user_agent— string — Alternative to agent: your agent's full User-Agent string.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
gaip_compare_supplier_snapshotsUse 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. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Parameters:
prior(required) — object — The earlier version: agent card, MCP server description, OpenAPI document or snapshot.current(required) — object — The later version, same kind as `prior`.protocol— string — Counterparty protocol. Inferred from metadata when omitted, otherwise MCP.synthetic— boolean — Optional: true marks a test call.episode_id— string — Optional: your own id to group related calls.task_class— string — Optional: short name of the task, e.g. weather_forecast.counterparty_id— string — Name or URL of the agent/service. Optional.continuity_handle— object — Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones.data_classification— string — PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.independent_operator_id— string — Optional: your operator id (recorded as a claim, not verified).
Hints: read-only no · destructive no · idempotent no · open-world no
gaip_diagnose_integration_failureUse this when an agent, MCP or API call failed ("why did my call fail?", "what does this 429 mean?"). Pass the `failure` ({code, detail}) or the raw error text. Returns the likely cause, when and how to retry, fix steps and a receipt. GAIP touches no other system. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
Parameters:
failure(required) — object — The failure: {code, detail?, http_status?}, e.g. {"code": 429, "detail": "Too Many Requests; Retry-After: 20"}.protocol— string — Counterparty protocol. Inferred from metadata when omitted, otherwise MCP.synthetic— boolean — Optional: true marks a test call.episode_id— string — Optional: your own id to group related calls.task_class— string — Optional: short name of the task, e.g. weather_forecast.counterparty_id— string — Name or URL of the agent/service. Optional.continuity_handle— object — Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones.data_classification— string — PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.independent_operator_id— string — Optional: your operator id (recorded as a claim, not verified).
Hints: read-only no · destructive no · idempotent no · open-world no
gaip_supplier_reliabilityread-onlyUse 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. Free, read-only, no account; inputs must be public and non-personal.
Parameters:
supplier_url(required) — string — Public https URL of the supplier's agent card, MCP server or API.card— object — Optional supplier card / server description you integrated against.failure— object — {code, detail?, http_status?} as for gaip_diagnose_integration_failure.failures— array — Optional: several failures, each {code, detail}.protocol— string — Omit to infer it from card, transport or the supplier URL path (else UNKNOWN).transport— string — Optional transport you used (e.g. streamable-http, sse, GRPC).task_class— string — Optional: short name of the task, e.g. weather_forecast.lookback_days— integer — Optional: days of GAIP observations to look back over.counterparty_id— string — Optional: name of the supplier.failure_started_at— string — Optional: RFC 3339 time the failures started.data_classification— string — PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.
Hints: read-only yes · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.