Price gate
Booking runs only with the exact expected total. One cent of drift and it fails closed: no checkout, no charge.
book_plan {"plan_id": "d860398a",
"expect_total_cents": 393121,
"item_ids": […]}
→ PRICE_CHANGED · no checkout created/agents · Voyagier for AI agents
Agents plan. You approve the checkout.
Voyagier is an IATAN-accredited host agency. Its booking engine is now a hosted MCP server your agent connects to once, and the trip carries end to end: plan, traveler details, loyalty numbers, verified total, checkout.
Condensed from a recorded session, shown as CLI 4.x commands. Read the full story →
mcp.voyagier.com/api/mcp · Self-serve OAuth sign-in · npm @voyagier/cli · Works with Claude, ChatGPT, Cursor, OpenClaw · MIT-licensed skill
Why this exists
Software is collapsing into the agent loop. Booking a trip is exactly the kind of work agents are built for: comparing hundreds of fares, juggling dates and traveler details, verifying totals. What was missing was a way to finish the job. Voyagier is the first booking rail built agent-first: real inventory, real fulfillment, structured for machines.
The same inventory our human advisors book from, live from connected suppliers. Not an affiliate feed.
Typed inputs, structured JSON, verifiable totals: Voyagier gives your agent everything it needs to book with confidence.
Booking runs only with the exact expected total. One cent of drift and it fails closed: no checkout, no charge.
book_plan {"plan_id": "d860398a",
"expect_total_cents": 393121,
"item_ids": […]}
→ PRICE_CHANGED · no checkout createdPreview blockers and the exact total before anything touches a card. One quote call returns both.
get_plan_quote {"plan_id": "d860398a"}
→ 0 blockers · total 3931.21Hotel names, reviews, and fare rules arrive as supplier text. Voyagier marks every byte of it as data, never as instructions to your agent.
"hotel_name": <supplier text>
→ data, never instructionsOut of scope by design: Voyagier never stores card numbers, never skips the approval step, and never books without the exact expected total.
create_planOne trip, one ID. Every later call hangs off it.
search_flightsAsync by design. get_search_status reports when results land.
select_optionOptions are IDs with structured fares. No DOM, nothing to re-parse.
book_planNeeds the exact expected total. Fails closed on price drift. A human pays the checkout.
Add the hosted MCP server at https://mcp.voyagier.com/api/mcp. Your MCP client runs the sign-in. You sign up or sign in at travel.voyagier.com and approve once. No invite, no API key.
No account yet? Sign up at travel.voyagier.com.
claude mcp add --transport http voyagier https://mcp.voyagier.com/api/mcpRun it, then sign in and approve when Claude Code asks.
https://mcp.voyagier.com/api/mcpAdd a custom connector with this URL, then sign in and approve. In ChatGPT, turn on Developer mode first.
{
"mcpServers": {
"voyagier": {
"url": "https://mcp.voyagier.com/api/mcp"
}
}
}Add to ~/.cursor/mcp.json, then sign in and approve when Cursor asks.
npm i -g @voyagier/cli
voyagier login
voyagier doctor --jsonOptional, for scripts and CI. Same tools from a shell. Needs a Personal Access Token, issued on request.
openclaw skills install voyagier-cliInstalls the Voyagier skill for OpenClaw agents.
Prefer a shell? The optional Voyagier CLI runs the same tools for scripts and CI. It needs a Personal Access Token, issued on request: talk to us below.
Tell us what you're building. We'll get you a Personal Access Token for the Voyagier CLI and scripts, or set up a call about your integration. Using MCP? You don't need a key. Just follow the steps above.
Connect once. Your agent searches, prices, and holds the trip. The traveler pays the checkout.