GAIP — evidence on AI agents before and after you call them

Four tools to check, watch, diagnose and verify AI agents and MCP servers. Free, read-only.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
95%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,244Tokens (Tool-Definitionen)
~5.5 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.75% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "gaip-broker": {
      "url": "https://gaip-agent-to-art-prototype-production.up.railway.app/mcp"
    }
  }
}

Remote-Endpunkte

https://gaip-agent-to-art-prototype-production.up.railway.app/mcpstreamable-http
https://www.gaipagents.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (4)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢gaip_check(agent, continuity_handle, intended_task, url, verbose)

Use this when asked whether an AI agent, MCP server or API works, is valid or has changed. Pass its `url` (agent card, MCP endpoint or OpenAPI document). Returns a one-line verdict, the fixes, dated history when GAIP observes it, and a receipt. With `agent`: may your bot fetch it? Free, read-only, no account; inputs must be public and non-personal.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent": {
      "description": "Optional: ask \"may my agent fetch this url?\" instead. Your agent's user-agent token, e.g. GPTBot; GAIP reads the site's robots.txt and AI-permission files (gaip_check_permission).",
      "maxLength": 300,
      "type": "string"
    },
    "continuity_handle": {
      "additionalProperties": false,
      "description": "Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later).",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "intended_task": {
      "description": "Optional: what you plan to hand it, e.g. 'weather forecast for London'. Adds task-specific evidence.",
      "maxLength": 500,
      "type": "string"
    },
    "url": {
      "description": "Public https link to the agent, its A2A agent card, MCP server endpoint or OpenAPI document. GAIP fetches, validates and reach-tests it; an MCP endpoint gets a read-only handshake (initialize, tools/list).",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "verbose": {
      "default": false,
      "description": "Optional: true returns the full result with every underlying field. Default: a short answer.",
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "url": "https://www.gaipagents.com/.well-known/agent-card.json"
    }
  ]
}
🟡gaip_watch(continuity_handle, url, verbose, webhook_url)

Use this when asked to keep an eye on an agent or MCP server, or to be alerted when it changes. Pass its `url` for no-account feed links and its latest dated changes; add `webhook_url` to register a free watch (checked every 24 h, signed webhook on change). Free, no account; with a webhook it records a watch. Inputs must be public and non-personal.

Eingabe-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 (needed to see or remove your watches later).",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "url": {
      "description": "Public https URL of the MCP server endpoint or agent (card) to follow. No query string.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "verbose": {
      "default": false,
      "description": "Optional: true returns the full result with every underlying field. Default: a short answer.",
      "type": "boolean"
    },
    "webhook_url": {
      "description": "Optional: your own public https endpoint. GAIP then registers a watch and POSTs a signed event when the result changes.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "examples": [
    {
      "url": "https://www.gaipagents.com/mcp"
    }
  ]
}
🟡gaip_diagnose(continuity_handle, error, http_status, url, verbose)

Use this when an agent, MCP or API call failed. Paste the `error` text and/or `http_status`; add the service `url` if known. Returns the cause, the exact fix (e.g. the missing argument), retry_after_seconds and a receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

Eingabe-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 (needed to see or remove your watches later).",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "error": {
      "description": "The error you got, as text: HTTP status line, JSON-RPC/A2A/MCP error or message. Give this and/or http_status.",
      "maxLength": 4000,
      "type": "string"
    },
    "http_status": {
      "description": "Optional: the HTTP status code you got, e.g. 429.",
      "maximum": 599,
      "minimum": 100,
      "type": "integer"
    },
    "url": {
      "description": "Optional: public https URL of the agent, MCP server or API that failed.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "verbose": {
      "default": false,
      "description": "Optional: true returns the full result with every underlying field. Default: a short answer.",
      "type": "boolean"
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "error": "HTTP 429 Too Many Requests; Retry-After: 20",
      "http_status": 429
    }
  ]
}
⚪gaip_verify(checks, citations, claims, continuity_handle, metadata, ...)

Use this when asked whether a service delivered what was promised or whether cited pages contain the quoted text. Pass `citations`, or a service `url` (+ `checks`, the `result` you got); `claims` are compared with `observations` you supply. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "checks": {
      "description": "Optional (delivery): what a good response is, e.g. [{\"id\": \"http_status_in\", \"allowed\": [200]}, {\"id\": \"json_parses\"}]. Default: HTTP 200 and a non-empty body.",
      "examples": [
        [
          {
            "allowed": [
              200
            ],
            "id": "http_status_in"
          },
          {
            "id": "content_type_is",
            "value": "application/json"
          },
          {
            "id": "non_empty"
          },
          {
            "id": "json_parses"
          }
        ],
        [
          {
            "allowed": [
              200
            ],
            "id": "http_status_in"
          },
          {
            "id": "json_required_keys",
            "keys": [
              "status"
            ]
          },
          {
            "id": "json_path_equals",
            "path": "status",
            "value": "ok"
          },
          {
            "id": "max_latency_ms",
            "limit": 2000
          }
        ]
      ],
      "items": {
        "additionalProperties": false,
        "properties": {
          "allowed": {
            "description": "http_status_in: the acceptable HTTP statuses, e.g. [200].",
            "items": {
              "maximum": 599,
              "minimum": 100,
              "type": "integer"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
          },
          "id": {
            "description": "http_status_in (allowed), content_type_is (value), non_empty, json_parses, json_required_keys (keys), json_path_equals (path, value), max_latency_ms (limit), max_bytes (limit), text_contains (value), regex (pattern).",
            "enum": [
              "http_status_in",
              "content_type_is",
              "non_empty",
              "json_parses",
              "json_required_keys",
              "json_path_equals",
              "max_latency_ms",
              "max_bytes",
              "text_contains",
              "regex"
            ],
            "type": "string"
          },
          "keys": {
            "description": "json_required_keys: top-level or dotted keys that must exist, e.g. [\"a.b\"].",
            "items": {
              "maxLength": 200,
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          },
          "limit": {
            "description": "max_latency_ms: milliseconds (1-60000); max_bytes: body bytes (1-32768).",
            "maximum": 60000,
            "minimum": 1,
            "type": "integer"
          },
          "path": {
            "description": "json_path_equals: dotted path, list items by index, e.g. items.0.id.",
            "maxLength": 200,
            "type": "string"
          },
          "pattern": {
            "description": "regex: bounded pattern searched in the body; no nested quantifiers.",
            "maxLength": 200,
            "type": "string"
          },
          "value": {
            "description": "content_type_is: media type, e.g. application/json; text_contains: case-sensitive text; json_path_equals: the expected value (GAIP also accepts a number, boolean, null, array or object).",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "maxItems": 8,
      "minItems": 1,
      "type": "array"
    },
    "citations": {
      "description": "Citations to check: each {url, quote?} or just a URL. GAIP fetches each page once (robots.txt respected) and looks for the quote.",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "type": "object"
          }
        ]
      },
      "maxItems": 20,
      "minItems": 1,
      "type": "array"
    },
    "claims": {
      "description": "Claims to record about `url`: each a sentence or {id, text}. Each is compared with the `observations` you supply; without them it stays UNTESTED.",
      "items": {
        "oneOf": [
          {
            "type": "string"
          },
          {
            "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 (needed to see or remove your watches later).",
      "properties": {
        "continuity_id": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      },
      "required": [
        "continuity_id",
        "token"
      ],
      "type": "object"
    },
    "metadata": {
      "description": "Optional (claims): the published agent card, MCP or OpenAPI document.",
      "type": "object"
    },
    "observations": {
      "description": "Optional (claims): what you saw, each {claim_id, result: PASS|FAIL, detail}.",
      "items": {
        "type": "object"
      },
      "maxItems": 30,
      "type": "array"
    },
    "result": {
      "description": "Optional (delivery): the response you received. Omitted: GAIP fetches the service URL now (public replay).",
      "properties": {
        "body": {
          "maxLength": 32768,
          "type": "string"
        },
        "body_sha256": {
          "type": "string"
        },
        "content_type": {
          "type": "string"
        },
        "http_status": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "terms_id": {
      "description": "Optional (delivery): terms_id from an earlier registration, instead of url.",
      "type": "string"
    },
    "url": {
      "description": "Claims: the agent or supplier they are about. Delivery: the public https service URL that should deliver.",
      "format": "uri",
      "maxLength": 2048,
      "type": "string"
    },
    "verbose": {
      "default": false,
      "description": "Optional: true returns the full result with every underlying field. Default: a short answer.",
      "type": "boolean"
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "citations": [
        {
          "quote": "GAIP",
          "url": "https://www.gaipagents.com/"
        }
      ]
    }
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet4 Tools
verifiziertVersion nicht aufgezeichnet4 Tools
verifiziertVersion nicht aufgezeichnet7 Tools
verifiziertVersion nicht aufgezeichnet7 Tools
verifiziertVersion nicht aufgezeichnet8 Tools