GAIP Buyer Assurance Agent

Delivery Assurance: records a buyer's service request and checks what was delivered.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~866Tokens (tool definitions)
~2.3 KBTypical response size
Moderate attention impact (0.68% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "gaip-buyer-assurance": {
      "url": "https://www.gaipagents.com/mcp/agents/buyer-assurance"
    }
  }
}

Remote endpoints

https://www.gaipagents.com/mcp/agents/buyer-assurancestreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢assurance_prepare(checks, counterparty_id, data_classification, episode_id, explicit_read_only_consent, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "checks": {
      "description": "Checks: http_status_in {allowed}, content_type_is {value}, non_empty, json_parses.",
      "maxItems": 8,
      "minItems": 1,
      "type": "array"
    },
    "counterparty_id": {
      "description": "Name or URL of the agent or service.",
      "type": "string"
    },
    "data_classification": {
      "default": "PUBLIC",
      "description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.",
      "enum": [
        "PUBLIC",
        "NON_PERSONAL_PUBLIC"
      ],
      "type": "string"
    },
    "episode_id": {
      "description": "Optional: your own id to group related calls.",
      "type": "string"
    },
    "explicit_read_only_consent": {
      "const": true,
      "description": "Must be true: you consent to a public, read-only check."
    },
    "service_url": {
      "description": "Public https URL of the service.",
      "type": "string"
    },
    "task_class": {
      "description": "Optional: short name of the task, e.g. weather_forecast.",
      "type": "string"
    }
  },
  "required": [
    "service_url",
    "checks",
    "explicit_read_only_consent"
  ],
  "examples": [
    {
      "checks": [
        {
          "allowed": [
            200
          ],
          "id": "http_status_in"
        },
        {
          "id": "json_parses"
        }
      ],
      "counterparty_id": "example-weather-agent",
      "explicit_read_only_consent": true,
      "service_url": "https://weather.example.com/forecast.json",
      "task_class": "weather_forecast"
    }
  ]
}
🟢assurance_complete(body, body_sha256, content_type, data_classification, http_status, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "body": {
      "description": "BUYER_SUBMITTED: the response body you received (max 32 KiB).",
      "type": "string"
    },
    "body_sha256": {
      "description": "BUYER_SUBMITTED: SHA-256 of the body, instead of the body.",
      "type": "string"
    },
    "content_type": {
      "description": "BUYER_SUBMITTED: the Content-Type you received.",
      "type": "string"
    },
    "data_classification": {
      "default": "PUBLIC",
      "description": "PUBLIC (default) or NON_PERSONAL_PUBLIC. Never send personal data.",
      "enum": [
        "PUBLIC",
        "NON_PERSONAL_PUBLIC"
      ],
      "type": "string"
    },
    "http_status": {
      "description": "BUYER_SUBMITTED: the HTTP status you received.",
      "type": "integer"
    },
    "mode": {
      "description": "PUBLIC_REPLAY: GAIP fetches the public URL itself. BUYER_SUBMITTED: check a response you pass in.",
      "enum": [
        "BUYER_SUBMITTED",
        "PUBLIC_REPLAY"
      ]
    },
    "terms_id": {
      "description": "The terms_id returned when the terms were registered.",
      "type": "string"
    }
  },
  "required": [
    "terms_id",
    "mode"
  ],
  "examples": [
    {
      "mode": "PUBLIC_REPLAY",
      "terms_id": "<terms_id from assurance_prepare>"
    }
  ]
}
🟢assurance_verify(receipt_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "receipt_id": {
      "description": "A receipt_id returned by an earlier GAIP call.",
      "type": "string"
    }
  },
  "required": [
    "receipt_id"
  ],
  "examples": [
    {
      "receipt_id": "<receipt_id from assurance_prepare or assurance_complete>"
    }
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools