Show JSON
{
"protocolVersion": "0.3",
"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.",
"author": "Agent Bench",
"wellKnownURI": "https://travel.agenthaven.dev/.well-known/agent-card.json",
"url": "https://travel.agenthaven.dev/a2a",
"version": "0.1.0",
"provider": {
"organization": "Agent Bench",
"url": "https://agenthaven.dev/"
},
"documentationUrl": "https://travel.agenthaven.dev/",
"iconUrl": null,
"supportsAuthenticatedExtendedCard": null,
"security": [],
"securitySchemes": {
"bearer": {
"type": "http",
"scheme": "bearer",
"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/",
"bearerFormat": "JWT"
}
},
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false,
"extensions": null
},
"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"
],
"examples": [],
"inputModes": [],
"outputModes": []
},
{
"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 — 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\":\"…\",\"currency\":\"…\"}}; as a text part: create_checkout <quote_id>.",
"tags": [
"travel",
"checkout",
"payment-intent"
],
"examples": [],
"inputModes": [],
"outputModes": []
}
],
"conformance": true,
"conformance_errors": null,
"homepage": null,
"repository": null,
"license": null,
"pricing": null,
"contact": null,
"id": "c5e0def9-6a7d-404c-a1d9-3d329bf53333"
}