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.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
95%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,244토큰 (도구 정의)
~5.5 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.75%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (4)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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/"
        }
      ]
    }
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 4개
검증됨버전이 기록되지 않음도구 4개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 8개