GAIP Integration & Protocol Agent

Agent Observatory: checks A2A, MCP and OpenAPI declarations and logs published changes.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,259Tokens (tool definitions)
~2.6 KBTypical response size
Moderate attention impact (1.76% of 128k context)

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-integration-protocol": {
      "url": "https://www.gaipagents.com/mcp/agents/integration-protocol"
    }
  }
}

Remote endpoints

https://www.gaipagents.com/mcp/agents/integration-protocolstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_agent_conformance(data_classification, declared_identity, expected_endpoint, intended_task, metadata, ...)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "data_classification": {
      "default": "PUBLIC",
      "description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.",
      "enum": [
        "PUBLIC",
        "NON_PERSONAL_PUBLIC"
      ],
      "type": "string"
    },
    "declared_identity": {
      "description": "Optional: the name the agent claims.",
      "type": "string"
    },
    "expected_endpoint": {
      "description": "Optional: the endpoint you expect; a different primary endpoint is reported as ENDPOINT_DRIFT.",
      "format": "uri",
      "type": "string"
    },
    "intended_task": {
      "description": "VERIFY_BEFORE_CALL: what you intend to delegate.",
      "type": "string"
    },
    "metadata": {
      "description": "Alternative to url: the agent card or MCP/OpenAPI document itself.",
      "type": "object"
    },
    "mode": {
      "description": "CONFORMANCE (default) checks the interface; VERIFY_BEFORE_CALL returns task-specific evidence about `target` for `intended_task`.",
      "enum": [
        "CONFORMANCE",
        "VERIFY_BEFORE_CALL"
      ],
      "type": "string"
    },
    "protocol": {
      "description": "Counterparty protocol. Inferred from metadata when omitted, otherwise MCP.",
      "enum": [
        "A2A",
        "MCP",
        "OPENAPI"
      ],
      "type": "string"
    },
    "source_url": {
      "description": "Optional: where `metadata` was published, used only to resolve relative endpoints. Never fetched.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "target": {
      "description": "VERIFY_BEFORE_CALL: the counterparty URL or reference.",
      "oneOf": [
        {
          "format": "uri",
          "type": "string"
        },
        {
          "type": "object"
        }
      ]
    },
    "url": {
      "description": "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.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "url": "https://www.gaipagents.com/.well-known/agent-card.json"
    },
    {
      "metadata": {
        "name": "GAIP Broker",
        "protocolVersion": "2025-06-18",
        "tools": [],
        "url": "https://www.gaipagents.com/mcp"
      }
    }
  ]
}
🟡gaip_watch_register(continuity_handle, data_classification, interval_hours, kind, target_url, ...)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "continuity_handle": {
      "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
      "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"
    },
    "interval_hours": {
      "default": 24,
      "description": "Optional: hours between checks (24 minimum on the free tier).",
      "maximum": 168,
      "minimum": 24,
      "type": "integer"
    },
    "kind": {
      "description": "AGENT_READINESS (agent URL), SUPPLIER_CARD (published card) or DELIVERY_TERMS (terms_id).",
      "enum": [
        "AGENT_READINESS",
        "DELIVERY_TERMS",
        "SUPPLIER_CARD"
      ],
      "type": "string"
    },
    "target_url": {
      "description": "Public https URL (AGENT_READINESS, SUPPLIER_CARD). No query string.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "terms_id": {
      "description": "DELIVERY_TERMS: terms_id from witness_register_terms.",
      "type": "string"
    },
    "webhook_url": {
      "description": "Optional: your own public https endpoint for signed change events.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    }
  },
  "required": [
    "continuity_handle",
    "kind"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "continuity_handle": {
        "continuity_id": "<continuity_handle.continuity_id returned by any GAIP tool>",
        "token": "<continuity_handle.token returned by any GAIP tool>"
      },
      "interval_hours": 24,
      "kind": "SUPPLIER_CARD",
      "target_url": "https://weather.example.com/.well-known/agent-card.json",
      "webhook_url": "https://hooks.example.com/gaip-watch"
    }
  ]
}
🟢gaip_watch_list(continuity_handle)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "continuity_handle": {
      "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    }
  },
  "required": [
    "continuity_handle"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "continuity_handle": {
        "continuity_id": "<continuity_handle.continuity_id returned by any GAIP tool>",
        "token": "<continuity_handle.token returned by any GAIP tool>"
      }
    }
  ]
}
🔴gaip_watch_remove(continuity_handle, watch_id)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "continuity_handle": {
      "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "watch_id": {
      "description": "The watch_id returned by gaip_watch_register.",
      "type": "string"
    }
  },
  "required": [
    "continuity_handle",
    "watch_id"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "continuity_handle": {
        "continuity_id": "<continuity_handle.continuity_id returned by any GAIP tool>",
        "token": "<continuity_handle.token returned by any GAIP tool>"
      },
      "watch_id": "<watch_id from gaip_watch_register>"
    }
  ]
}
🟢gaip_watch_events(continuity_handle, limit, watch_id)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "continuity_handle": {
      "description": "The continuity_handle from an earlier GAIP result; proves you own these watches.",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "limit": {
      "description": "Optional: maximum events to return.",
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "watch_id": {
      "description": "The watch_id returned by gaip_watch_register.",
      "type": "string"
    }
  },
  "required": [
    "continuity_handle"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "continuity_handle": {
        "continuity_id": "<continuity_handle.continuity_id returned by any GAIP tool>",
        "token": "<continuity_handle.token returned by any GAIP tool>"
      },
      "limit": 10,
      "watch_id": "<watch_id from gaip_watch_register>"
    }
  ]
}
🟢gaip_observatory_lookup(name, target_id, url)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Optional: server or agent name to search for.",
      "maxLength": 200,
      "type": "string"
    },
    "target_id": {
      "description": "Optional: an Observatory target id (obs_...).",
      "pattern": "^obs_[0-9a-f]{24}$",
      "type": "string"
    },
    "url": {
      "description": "Public URL of the MCP server or agent to look up.",
      "maxLength": 2048,
      "type": "string"
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "url": "https://weather.example.com/mcp"
    }
  ]
}
🟢gaip_manifest_changes(limit, since, target_id)

Use 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.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Optional: maximum entries (1-100).",
      "maximum": 100,
      "minimum": 1,
      "type": "integer"
    },
    "since": {
      "description": "Optional: RFC 3339 time, e.g. 2026-09-01T00:00:00Z.",
      "format": "date-time",
      "type": "string"
    },
    "target_id": {
      "description": "Optional: an Observatory target id (obs_...).",
      "pattern": "^obs_[0-9a-f]{24}$",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "limit": 20,
      "since": "2026-09-01T00:00:00Z"
    }
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools