GAIP — evidence on AI agents before and after you call them
Server Details
GAIP keeps an independent, dated record of what AI agents, MCP servers and online shops publish.
- Status
- Healthy
- Uptime
- 99.9% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- tjcgraham-rgb/gaip-agents
- GitHub Stars
- 0
- Server Listing
- gaip-broker
TDQS
Scored across 5 tools
Four tools form a clear lifecycle (pre-check, diagnose failure, verify delivery, ongoing watch), and second_look_check is a specialized shopping verification. However, gaip_check, gaip_verify, and second_look_check all involve checking claims/status, so boundaries are slightly fuzzy without reading descriptions.
Four tools follow a clean gaip_verb pattern (gaip_check, gaip_diagnose, gaip_verify, gaip_watch), all in snake_case. The fifth, second_look_check, breaks the prefix pattern and adds an extra noun, but remains readable and snake_case.
Five tools is well-scoped for a focused evidence service; each covers a distinct phase (check, diagnose, verify, watch, second look). No tool feels redundant or missing from the core lifecycle.
The surface covers the main before/during/after workflow for AI agent and API interactions, including verification and monitoring. Minor gaps exist around managing watch subscriptions or retrieving past receipts by identifier, but no critical dead ends.
Available Tools
5 toolsgaip_checkCheck an AI agent, MCP server or APIARead-onlyIdempotentInspect
Use this when asked whether an AI agent, MCP server or API works or has changed, e.g. before adding or paying it. Pass its url. Returns a verdict, fixes, dated history when observed, and a receipt. With agent (e.g. GPTBot): may your bot fetch it (robots.txt, AI-crawler rules)? Free, read-only, no account; inputs must be public and non-personal.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 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). | |
| agent | No | 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). | |
| verbose | No | Optional: true returns the full result with every underlying field. Default: a short answer. | |
| intended_task | No | Optional: what you plan to hand it, e.g. 'weather forecast for London'. Adds task-specific evidence. | |
| continuity_handle | No | Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety bar is partly met. The description adds genuinely useful context beyond them: free, no account required, inputs must be public and non-personal, and it discloses the return contents (verdict, fixes, dated history, receipt).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger condition, then the required input, then the return summary and the agent mode. Dense and largely waste-free, though the parenthetical robots.txt/AI-crawler detail is slightly redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so (verdict, fixes, dated history, receipt). A 5-param tool with a nested object is otherwise covered by the schema; only the absence of any sibling differentiation keeps this from being complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url, agent, verbose, intended_task and continuity_handle in detail. The description only restates url and the agent mode, adding little syntax or format meaning beyond the schema — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: checks whether an AI agent, MCP server or API works or has changed. An agent can tell this is a health/change-verification tool, though it never names or contrasts itself with the siblings gaip_diagnose, gaip_verify or gaip_watch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ("Use this when asked whether ... works or has changed, e.g. before adding or paying it") and a second mode via the `agent` parameter. No when-not guidance and no routing to the sibling tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gaip_diagnoseWhy did my agent or API call fail?ARead-onlyIdempotentInspect
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) and retry_after_seconds; keep_receipt: true adds a dated receipt. Free, read-only, no account; inputs must be public and non-personal.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional: public https URL of the agent, MCP server or API that failed. | |
| error | No | The error you got, as text: HTTP status line, JSON-RPC/A2A/MCP error or message. Give this and/or http_status. | |
| verbose | No | Optional: true returns the full result with every underlying field. Default: a short answer. | |
| http_status | No | Optional: the HTTP status code you got, e.g. 429. | |
| keep_receipt | No | Optional: true keeps a dated GAIP receipt of this answer and returns a continuity handle. Default: GAIP keeps no record of the task (usage is counted without its content). | |
| continuity_handle | No | Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description adds substantive context on top: the return payload (cause, exact fix, retry_after_seconds), the receipt behavior, and hard input constraints ('must be public and non-personal', 'no account'). Minor gaps remain on failure modes and whether any input combination is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the usage trigger, then inputs, then outputs, then constraints — a logical order with no filler sentences. The semicolon-chained clauses are dense but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes the return values and the verbose toggle, and it discloses privacy/account constraints. Slightly incomplete: continuity_handle's purpose (linking to earlier/watches) is only implied, not explained in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mostly mirrors the schema ('paste the error text and/or http_status', 'add the url if known') and only marginally extends it via the keep_receipt receipt effect and privacy constraint; the nested continuity_handle is left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource up front: diagnose a failed agent, MCP or API call. The trigger ('when an agent, MCP or API call failed') makes the scope unambiguous. It does not, however, distinguish itself from siblings like gaip_check or second_look_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition ('Use this when an agent, MCP or API call failed') and tells the agent what to supply (error text and/or http_status, url if known). No when-not guidance or explicit routing away from the sibling check/verify tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gaip_verifyVerify a delivery or citationsAInspect
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), or claims with observations. Returns a result per item. Free, no account; only delivery keeps a record. Inputs must be public and non-personal.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Claims: the agent or supplier they are about. Delivery: the public https service URL that should deliver. | |
| checks | No | 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. | |
| claims | No | Claims to record about `url`: each a sentence or {id, text}. Each is compared with the `observations` you supply; without them it stays UNTESTED. | |
| result | No | Optional (delivery): the response you received. Omitted: GAIP fetches the service URL now (public replay). | |
| verbose | No | Optional: true returns the full result with every underlying field. Default: a short answer. | |
| metadata | No | Optional (claims): the published agent card, MCP or OpenAPI document. | |
| terms_id | No | Optional (delivery): terms_id from an earlier registration, instead of url. | |
| citations | No | Citations to check: each {url, quote?} or just a URL. GAIP fetches each page once (robots.txt respected) and looks for the quote. | |
| keep_receipt | No | Optional: true keeps a dated GAIP receipt of this answer and returns a continuity handle. Default: GAIP keeps no record of the task (usage is counted without its content). | |
| observations | No | Optional (claims): what you saw, each {claim_id, result: PASS|FAIL, detail}. | |
| continuity_handle | No | Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations provided, the description still adds real context beyond them: it states the tool is free, requires no account, that only the delivery path keeps a record, and that inputs must be public and non-personal. This clarifies cost, auth, data-retention, and privacy constraints that the annotations (readOnlyHint=false, openWorldHint=true) only vaguely imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded: the trigger condition comes first, followed by input modes and then operational constraints. Every sentence carries weight, though the middle 'Pass ...' sentence is dense with nested parentheticals that take a moment to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, multi-mode tool with no output schema, the description covers the essential decision points: when to use it, how to select inputs, cost, and privacy limits. The one gap is the return value, described only as 'a result per item,' leaving the verdict structure unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds value by grouping the 11 parameters into three coherent usage patterns (citations / url+checks+result / claims+observations) rather than listing them. That mode-level framing helps an agent pick the right subset, which the flat schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names two concrete tasks with specific verbs and resources: verifying that a service delivered what was promised, and verifying that cited pages contain quoted text. An agent can immediately tell this is a verification tool. It does not, however, distinguish itself from siblings like gaip_check or gaip_diagnose, which would be needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with an explicit trigger ('Use this when asked whether...') and then maps three distinct input modes to their parameter combinations (citations; url + checks + result; claims + observations), which is genuinely actionable routing guidance. It stops short of naming when NOT to use it or pointing to alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gaip_watchWatch an agent or MCP server for changesAInspect
Use this when asked to keep an eye on an agent or MCP server, or to be alerted when it changes. Pass its url: returns feed links and its latest dated changes; add webhook_url for 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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public https URL of the MCP server endpoint or agent (card) to follow. No query string. | |
| verbose | No | Optional: true returns the full result with every underlying field. Default: a short answer. | |
| webhook_url | No | Optional: your own public https endpoint. GAIP then registers a watch and POSTs a signed event when the result changes. | |
| continuity_handle | No | Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond annotations: it states the tool is free with no account, that adding a webhook records a watch (consistent with readOnlyHint=false), the 24-hour check frequency, signed webhook behavior, and the public/non-personal input constraint. This goes well beyond the safety profile already provided by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense paragraph that front-loads the usage scenario and then efficiently covers mechanics, cost, and constraints. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (creating watches, optional webhooks, continuity handles) and the absence of an output schema, the description adequately explains return values ('returns feed links and its latest dated changes'), side effects, and input constraints. The remaining parameter details are fully covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics for url ('Pass its url') and webhook_url ('add webhook_url for a free watch, checked every 24 h, signed webhook on change'), but does not elaborate on verbose or continuity_handle beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (watch) and resource (agent or MCP server), and clarifies the outcome: feed links and latest dated changes. It does not explicitly differentiate itself from siblings like gaip_check or gaip_verify, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear trigger: 'Use this when asked to keep an eye on an agent or MCP server, or to be alerted when it changes.' No when-not conditions or named alternatives are provided, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
second_look_checkSecond Look: check before you buyARead-onlyInspect
Use this when a shopper is about to buy something an AI suggested, or asks if a price or stock claim is right. Pass the product page url and the claim. Returns what the page showed beside what the claim said, and a signed, dated receipt. Second Look by GAIP. Free, no account, no affiliate links; inputs must be public and non-personal.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public https link to the product page on the shop's own site. | |
| claim | No | What the shopper was told, in plain words, e.g. "89 GBP, in stock, size M". Only the price, stock and variant are kept; the rest is discarded. | |
| price | No | Claimed price, e.g. "89.00" (optional). | |
| variant | No | Claimed size, colour or option (optional). | |
| verbose | No | Optional: true returns the full result with every underlying field. Default: a short answer. | |
| currency | No | ISO currency, e.g. GBP (optional). | |
| in_stock | No | Claimed stock (optional). | |
| mandate_ref | No | Optional: your own reference to the shopper's mandate for this purchase. Kept only as a keyed hash (mandate_sha256) on the receipt, never in clear. | |
| continuity_handle | No | Optional: the continuity_handle from an earlier GAIP result; links this call to your earlier ones (needed to see or remove your watches later). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, open-world, non-idempotent behavior. The description adds real behavioral context beyond them: free of charge, no account required, no affiliate links, inputs must be public and non-personal, and the return includes a signed dated receipt. It omits rate limits and error behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, followed by inputs, output, and constraints in three tight sentences. The "Second Look by GAIP." branding fragment is the only mildly expendable element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes the return (page finding beside the claim, plus a signed dated receipt), covering the main completeness gap. The nested continuity_handle and optional claim sub-fields are left entirely to the schema, but nothing an agent needs to invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents url, claim, price, variant, currency, mandate_ref and continuity_handle. The description only echoes url and claim and adds the public/non-personal constraint, adding little beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: verifying a shopper's price/stock claim against a product page URL. It is clearly a claim-verification tool, but it never distinguishes itself from siblings like gaip_check or gaip_verify, which sound functionally adjacent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when a shopper is about to buy something an AI suggested, or asks if a price or stock claim is right" gives a clear triggering context. It stops short of naming an alternative or stating when NOT to use it versus the other gaip_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Publisher details
- Operator
- Not available
- Operator website
- https://www.gaipagents.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://www.gaipagents.com/for-agents · Publisher source
- Trust center
- Not available
- Restrictions
- None. Free, no account or API key needed.
Related MCP Connectors
Signed, publicly logged records of what your AI agent did, with proofs anyone can check offline.
Now part of GAIP Witness: records a buyer's request and checks what was delivered.
An agent-native database over MCP: shared, validated, structured records in every AI chat.
Read-only Remote MCP for externally grounded AI agent trust receipts.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server that stores AI agent reasoning traces permanently on 0G Storage, enabling immutable and verifiable decision logging.514 npmMIT
- AlicenseNot gradedqualityDmaintenanceTamper-evident audit logging for AI agents. Append-only, hash-chained, optionally Ed25519-signed log. The MCP server lets an agent keep and verify a record of what it actually did.8MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to store, search, and resolve shared memories with full provenance, conflict detection, and an audit trail across MCP-compatible clients.-
- AlicenseNot gradedqualityCmaintenanceMCP server for AI compliance auditing. Scores agent outputs for hallucination liability under the EU AI Act, issues verifiable compliance stamps, and tracks audit history by agent.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.