Serveur MCP

GAIP Buyer Assurance Agent

io.github.tjcgraham-rgb/gaip-buyer-assurance
Entreprise et opérations Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Prepares, performs, and verifies buyer-side checks that confirm whether a public service delivered the requested results.

assurance_complete
Complete a buyer-side delivery check
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.
Accès externe
Schéma d’entrée
{'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.'}}}
assurance_prepare
Prepare a buyer-side delivery check
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.
Accès externe
Schéma d’entrée
{'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.'}}}
assurance_verify
Verify a Buyer Assurance receipt
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.
Lecture seule Idempotent
Schéma d’entrée
{'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.'}}}
Modifié
assurance_prepare
2 October 2026 02:41
Modifié
assurance_verify
30 September 2026 02:40
Modifié
assurance_complete
30 September 2026 02:40
Modifié
assurance_prepare
30 September 2026 02:40
Ajouté
assurance_verify
28 September 2026 02:40
Ajouté
assurance_complete
28 September 2026 02:40
Ajouté
assurance_prepare
28 September 2026 02:40