Skip to content
Back to Agent Bench Travel Merchant

Card snapshot

travel.agenthaven.dev · 2026-10-04 07:23:46 UTC · af42696b4ccee2f09b1f8ac8ea79a5b98e5198915944adb202e50f23930a8933

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "Agent Bench Travel Merchant",
  "description": "Seller agent for flight search and travel checkout. Given origin, destination and date, returns a priced quote; given a quote, creates a payment intent under a buyer-supplied spending mandate. Proof of concept: payment is simulated and no ticket is issued.",
  "url": "https://travel.agenthaven.dev/a2a",
  "provider": {
    "organization": "Agent Bench",
    "url": "https://agenthaven.dev"
  },
  "documentationUrl": "https://travel.agenthaven.dev/",
  "version": "0.1.0",
  "protocolVersion": "0.3",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://travel.agenthaven.dev/a2a",
      "transport": "JSONRPC",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3"
    },
    {
      "url": "https://travel.agenthaven.dev/mcp",
      "transport": "JSONRPC",
      "protocolBinding": "MCP",
      "protocolVersion": "2025-06-18"
    }
  ],
  "capabilities": {
    "streaming": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "flight-search",
      "name": "Flight search",
      "description": "First step. search_flights(origin, destination, departure_date) returns up to two signed quotes valid ten minutes, the cheapest and the fastest itinerary. Airport codes are IATA, uppercase. No authorization needed. Machine-readable schema: POST tools/list to the MCP interface in supportedInterfaces. As an A2A data part: {\"action\":\"search_flights\",\"input\":{\"origin\":\"MAD\",\"destination\":\"LHR\",\"departure_date\":\"YYYY-MM-DD\"}}; as a text part, exactly: search_flights MAD LHR YYYY-MM-DD.",
      "tags": [
        "flights",
        "flight-search",
        "travel",
        "quote"
      ]
    },
    {
      "id": "travel-checkout",
      "name": "Travel checkout",
      "description": "Second step. create_checkout(quote_id, merchant_id, currency) turns one quote from flight-search into a payment intent and stops there \u2014 nothing is charged and no ticket is issued. Needs the bearer authorization described in securitySchemes.bearer. As an A2A data part: {\"action\":\"create_checkout\",\"input\":{\"quote_id\":\"<id of the chosen option>\",\"merchant_id\":\"\u2026\",\"currency\":\"\u2026\"}}; as a text part: create_checkout <quote_id>.",
      "tags": [
        "travel",
        "checkout",
        "payment-intent"
      ],
      "security": [
        {
          "bearer": [
            "commerce:purchase"
          ]
        }
      ]
    }
  ],
  "securitySchemes": {
    "bearer": {
      "type": "http",
      "scheme": "bearer",
      "bearerFormat": "JWT",
      "description": "Needed for create_checkout only; search_flights and tools/list are open. There is no public token endpoint. Two forms are accepted. (1) Sign each call as a request envelope (Authorization: Bearer <compact JWS, typ request+jwt>) under a key attested at /.well-known/agent-keys.json on your own domain, and present at checkout a mandate from an authority this merchant trusts (https://sealedby.dev), bound to the quote and to that key. (2) A JWT issued by this merchant's operator on request: iss agent-bench-demo-issuer, aud agent-bench, scope commerce:purchase, with a spending cap in EUR. Documentation: https://travel.agenthaven.dev/"
    }
  }
}