Now part of GAIP Witness: records a buyer's request and checks what was delivered.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check and a delivery receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
PUBLIC_REPLAY: GAIP fetches the public URL itself. BUYER_SUBMITTED: check a response you pass in.
The terms_id returned when the terms were registered.
BUYER_SUBMITTED: the response body you received (max 32 KiB).
BUYER_SUBMITTED: SHA-256 of the body, instead of the body.
BUYER_SUBMITTED: the HTTP status you received.
BUYER_SUBMITTED: the Content-Type you received.
PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Use this when finishing a Buyer Assurance check. Pass the `terms_id` from assurance_prepare and mode PUBLIC_REPLAY (GAIP replays the service) or BUYER_SUBMITTED. Returns PASS / FAIL / UNKNOWN per check and a delivery receipt. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
| Argument | Type | Description |
|---|---|---|
| body | string | BUYER_SUBMITTED: the response body you received (max 32 KiB). |
| mode* | any | PUBLIC_REPLAY: GAIP fetches the public URL itself. BUYER_SUBMITTED: check a response you pass in. |
| terms_id* | string | The terms_id returned when the terms were registered. |
| body_sha256 | string | BUYER_SUBMITTED: SHA-256 of the body, instead of the body. |
| http_status | integer | BUYER_SUBMITTED: the HTTP status you received. |
| content_type | string | BUYER_SUBMITTED: the Content-Type you received. |
| data_classification | string | PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data. |
{
"type": "object",
"examples": [
{
"mode": "PUBLIC_REPLAY",
"terms_id": "<terms_id from assurance_prepare>"
}
],
"required": [
"terms_id",
"mode"
],
"properties": {
"body": {
"type": "string",
"description": "BUYER_SUBMITTED: the response body you received (max 32 KiB)."
},
"mode": {
"enum": [
"BUYER_SUBMITTED",
"PUBLIC_REPLAY"
],
"description": "PUBLIC_REPLAY: GAIP fetches the public URL itself. BUYER_SUBMITTED: check a response you pass in."
},
"terms_id": {
"type": "string",
"description": "The terms_id returned when the terms were registered."
},
"body_sha256": {
"type": "string",
"description": "BUYER_SUBMITTED: SHA-256 of the body, instead of the body."
},
"http_status": {
"type": "integer",
"description": "BUYER_SUBMITTED: the HTTP status you received."
},
"content_type": {
"type": "string",
"description": "BUYER_SUBMITTED: the Content-Type you received."
},
"data_classification": {
"enum": [
"PUBLIC",
"NON_PERSONAL_PUBLIC"
],
"type": "string",
"default": "PUBLIC",
"description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data."
}
}
}Use this when you, the buyer, chose a public service and want its delivery checked end to end. Pass `service_url`, `checks` and explicit_read_only_consent=true. GAIP preflights it and records your checks; returns a `terms_id` for assurance_complete. Free, no account; records a GAIP receipt only. Inputs must be public and non-personal.
| Argument | Type | Description |
|---|---|---|
| checks* | array | 1-8 checks, each {"id": "http_status_in", "allowed": [200]}, {"id": "content_type_is", "value": "application/json"}, {"id": "non_empty"}, {"id": "json_parses"}, {"id": "json_required_keys", "keys": ["a.b"]}, {"id": "json_path_equals", "path": "a.b", "value": 1}, {"id": "max_latency_ms", "limit": 2000}, {"id": "max_bytes", "limit": 20000}, {"id": "text_contains", "value": "ok"} or {"id": "regex", "pattern": "ok|up"}. |
| episode_id | string | Optional: your own id to group related calls. |
| task_class | string | Optional: short name of the task, e.g. weather_forecast. |
| service_url* | string | Public https URL of the service. |
| counterparty_id | string | Name or URL of the agent or service. |
| data_classification | string | PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data. |
| explicit_read_only_consent |
Use this when you hold a Buyer Assurance terms or delivery receipt_id and want to confirm it. Returns the retained record and its integrity proof (integrity only). Free, read-only, no account; inputs must be public and non-personal.
| Argument | Type | Description |
|---|---|---|
| receipt_id* | string | A receipt_id returned by an earlier GAIP call. |
{
"type": "object",
"examples": [
{
"receipt_id": "<receipt_id from assurance_prepare or assurance_complete>"
}
],
"required": [
"receipt_id"
],
"properties": {
"receipt_id": {
"type": "string",
"description": "A receipt_id returned by an earlier GAIP call."
}
}
}| any |
| Must be true: you consent to a public, read-only check. |
{
"type": "object",
"examples": [
{
"checks": [
{
"id": "http_status_in",
"allowed": [
200
]
},
{
"id": "json_parses"
}
],
"task_class": "weather_forecast",
"service_url": "https://weather.example.com/forecast.json",
"counterparty_id": "example-weather-agent",
"explicit_read_only_consent": true
}
],
"required": [
"service_url",
"checks",
"explicit_read_only_consent"
],
"properties": {
"checks": {
"type": "array",
"maxItems": 8,
"minItems": 1,
"description": "1-8 checks, each {\"id\": \"http_status_in\", \"allowed\": [200]}, {\"id\": \"content_type_is\", \"value\": \"application/json\"}, {\"id\": \"non_empty\"}, {\"id\": \"json_parses\"}, {\"id\": \"json_required_keys\", \"keys\": [\"a.b\"]}, {\"id\": \"json_path_equals\", \"path\": \"a.b\", \"value\": 1}, {\"id\": \"max_latency_ms\", \"limit\": 2000}, {\"id\": \"max_bytes\", \"limit\": 20000}, {\"id\": \"text_contains\", \"value\": \"ok\"} or {\"id\": \"regex\", \"pattern\": \"ok|up\"}."
},
"episode_id": {
"type": "string",
"description": "Optional: your own id to group related calls."
},
"task_class": {
"type": "string",
"description": "Optional: short name of the task, e.g. weather_forecast."
},
"service_url": {
"type": "string",
"description": "Public https URL of the service."
},
"counterparty_id": {
"type": "string",
"description": "Name or URL of the agent or service."
},
"data_classification": {
"enum": [
"PUBLIC",
"NON_PERSONAL_PUBLIC"
],
"type": "string",
"default": "PUBLIC",
"description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data."
},
"explicit_read_only_consent": {
"const": true,
"description": "Must be true: you consent to a public, read-only check."
}
}
}