BookingTruth
Booking assurance for AI agents: feed booking confirmation emails and receipts, get an evidence-tiered verdict (confirmed only on supplier-authoritative evidence) with a citable proof packet. Remote MCP, free sandbox.
Hosted MCP Server
npx add-mcp 'https://api.bookingtruth.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
BookingTruth
Is that booking actually real? BookingTruth is a booking-assurance API and MCP server for AI agents. Feed it booking confirmation emails and receipts; it reconciles contradictions across supplier records and returns a verdict - confirmed, held, pending, cancelled, or an honest unknown - each with a citable proof packet.
The core rule: CONFIRMED is returned only on supplier-authoritative evidence (tier 5-6: an authenticated supplier lookup, or a supplier-issued receipt carrying an issuance artifact such as an eTicket number). Everything below that bar returns a safe UNKNOWN with an indicated_state - never an LLM guess. An OTA "you're all set!" email is not ticketing. "We're processing your request" is not ticketing. An issued 13-digit eTicket number is.
Live endpoint: https://api.bookingtruth.com - sandbox is free, no signup.
MCP tools
| Tool | What it does |
|---|---|
booking_check | Parse booking/confirmation documents (emails, receipts) and return reconciled booking-state verdicts with citable proof packets. |
supplier_coverage | List suppliers BookingTruth can currently parse or look up, with per-supplier status (seeded/planned). |
Installation
Remote streamable-HTTP server - no install, no key for the sandbox.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"bookingtruth": {
"type": "url",
"url": "https://api.bookingtruth.com/mcp"
}
}
}
Cursor / other MCP clients: add a remote MCP server with URL https://api.bookingtruth.com/mcp.
Usage
Ask your agent things like:
- "Here's the confirmation email United sent - is my flight actually ticketed?"
- "Expedia says my rental car is confirmed. Verify it."
- "I changed my flight and got three different emails. What's the real state of my booking?"
Or call the tool directly with raw document text:
{
"documents": [
{"filename": "united_eticket.txt", "content": "<raw email text>"}
]
}
REST API
# free sample documents to try (synthetic demo fixtures)
curl https://api.bookingtruth.com/v1/demo/fixtures
curl https://api.bookingtruth.com/v1/demo/fixtures/united_eticket_QA7X2K.txt
# run a check (sandbox: any Bearer key starting with sb_)
curl -X POST https://api.bookingtruth.com/v1/check \
-H "Authorization: Bearer sb_demo" \
-H "Content-Type: application/json" \
-d '{"documents": [{"filename": "doc.txt", "content": "<raw email text>"}]}'
- Discovery:
https://api.bookingtruth.com/.well-known/booking-assurance.json - OpenAPI 3.0:
https://api.bookingtruth.com/v1/openapi.yaml - Agent-oriented docs:
https://api.bookingtruth.com/llms.txt - Verdicts persist:
GET /v1/bookings/{id}andGET /v1/bookings/{id}/proof
Pricing
Sandbox: free, full round trip, demo fixtures included.
Paid: $0.05 per check, prepaid packs ($10 / $25 / $50 = 200 / 500 / 1,000 checks) via POST /v1/buy. Paid keys start with pk_; check remaining credit at GET /v1/balance.
Supplier coverage
Seeded today: United (confirmation + eTicket receipt parsing), Expedia (OTA itinerary), Disney (aggregate reservation emails). More suppliers planned - call supplier_coverage for the live matrix.
How it works
- Parse - supplier-specific parsers extract typed claims (identity, status, party, money) from each document, each claim carrying an evidence tier (0-6).
- Reconcile - claims are resolved into booking identities; contradictions (e.g. "processing" prose vs. an issued eTicket) are logged as first-class conflict records, rules R0-R5 decide the verdict.
- Prove - every verdict ships with a proof packet: the claims, tiers, rule trace, and source hashes behind the decision. LLM output is tier 0 and can never decide a verdict.
See docs/ for ARCHITECTURE, API-SPEC, PARSER-FRAMEWORK, and PROOF-PACKET.
Repo layout
booking_assurance/- the Python package (stdlib only, Python 3.10+): parsers, reconciliation engine, proof packets, REST + MCP serversfixtures/- synthetic demo fixtures (no real data)tests/run_tests.py- 16 checks over the contradiction casesserver.json- MCP registry metadata (com.bookingtruth/bookingtruth)
Run the tests
python3 tests/run_tests.py
License
MIT