Overview
TripCache keeps the trips you've already booked: flights with live gate, terminal, belt and delay, hotel stays, cars, activities, documents and spending. The MCP server lets an assistant you connect answer questions about them and, if you allow it, add plans, expenses and booking drafts. It never books, pays, deletes or shares anything.
You need a TripCache account with TripCache Pro. TripCache is free on iPhone and Android; see pricing.
Connect
Server URL: https://trip-cache.com/mcp
Transport: Streamable HTTP (JSON responses, stateless). MCP protocol versions 2025-03-26, 2025-06-18, 2025-11-25 and 2026-07-28. Step-by-step guides for each assistant are on the AI agents page.
Sign-in and permissions
OAuth 2.1 with PKCE (S256). The server publishes protected resource metadata (RFC 9728) at https://trip-cache.com/.well-known/oauth-protected-resource/mcp and answers unauthenticated requests with 401 and a WWW-Authenticate header that points to it. The authorization server supports dynamic client registration and pre-registered clients.
During sign-in, TripCache shows a number to tap in the TripCache app on your phone; a password or an email code also works. The approval page then asks what the assistant may do:
- See your trips, flights, live flight status, document names and expenses (always on): the read tools below.
- Add plans and expenses to your trips, and import bookings as drafts (off unless you tick it): add_plan_item, add_expense and import_booking.
Revoke a connection at any time in TripCache → Profile → AI agents. Its next request is refused.
Tools
Every tool has a title and the MCP annotations readOnlyHint, destructiveHint, idempotentHint and openWorldHint. Read tools are read-only. Write tools only add; none of them changes or deletes existing data, so none is destructive. All tools act on the connected account only (openWorldHint false).
| Tool | Type | What it does | Inputs | Side effects |
|---|---|---|---|---|
| list_trips | Read | Lists your trips, newest first or upcoming first. | when (all, upcoming, past), limit, cursor | None. |
| get_trip | Read | One trip with its flights, hotel stays, cars, activities, spending summary, checklist progress and next reminders. | trip_id | None. |
| next_flight | Read | Your next flight that hasn't landed, with live status, gate, terminal, baggage belt and delay. | None | None. |
| get_flight | Read | One flight with live status, gate, terminal, belt, delay and aircraft position when tracked. | flight_id | None. |
| get_booking | Read | One hotel stay, car, transport leg, restaurant, event, activity or meeting, with its local times and place. | plan_item_id, or type with an optional trip_id and query | None. |
| list_documents | Read | Names and types of your saved travel documents. Files and links are never returned. | trip_id (optional), limit, cursor | None. |
| list_expenses | Read | Expenses on your trips with totals per currency and category, and trip budgets. | trip_id (optional), limit, cursor | None. |
| add_plan_item | Write | Adds a car, hotel stay, activity, event, transport leg or other plan to one of your trips. | trip_id, type, title, start_local and optional end_local with IANA time zones, provider, location, address, end_location, confirmation, notes | Creates one item, marked as added by the assistant. You can edit or delete it in the app. |
| add_expense | Write | Logs an expense on one of your trips. | trip_id, title, amount, currency (ISO 4217), category, date | Creates one expense, marked as added by the assistant. You can edit or delete it in the app. |
| import_booking | Write | Sends a booking confirmation (email text or a PDF) to TripCache's importer. | text or pdf_base64, optional filename and trip_id | Creates a draft you review and confirm in the app. Nothing is added to a trip until you do. Uses your AI import allowance. |
Results come as structured content with a text copy. In assistants that support MCP Apps, flights, trips, bookings, expenses, documents and imports also render as TripCache cards. The cards load no scripts or data from elsewhere; only images come from TripCache's asset CDN.
Data returned
Trip names, dates and destinations; flight numbers, airlines, airports, times, gate, terminal, belt, delay and aircraft position; names, places and local times of plans; expense titles, amounts, currencies, categories and budgets; document names and types; checklist progress and reminder titles.
Never returned: confirmation and ticket numbers, booking notes, booking prices, document files or links, passwords or payment details. Text that came from booking emails is cleaned of links, images and hidden characters, capped at 500 characters per field, and marked as untrusted so the assistant treats it as data. Full details are in the privacy policy.
Limits
| Reads | 60 a minute per assistant, 120 a minute per account |
| Discovery (initialize, tools/list) | 120 a minute per assistant |
| add_plan_item | 50 a day per assistant, 100 a day per account |
| add_expense | 50 a day per assistant, 100 a day per account |
| import_booking | 20 a day per assistant, 30 a day per account, plus your plan's AI import allowance |
| Request size | 8 MB (a PDF up to about 5.9 MB), booking text up to 60,000 characters |
| Response size | About 32 KB; longer lists are paginated with a cursor |
Errors
| 401 with WWW-Authenticate | No token, or the token is expired or not a connected-app token. The assistant signs in again. |
| 403 insufficient_scope | The tool needs permission to add, and the connection only allows reading, or the connection was revoked. Reconnect and allow it. |
| pro_required | The account doesn't have TripCache Pro. Returned as a tool error the assistant can show. |
| 429 rate_limited | A limit above was reached. Retry after the number of seconds in Retry-After. |
| invalid_arguments | An input was missing or the wrong shape. The message names the field. |
| not_found | That trip, flight or booking isn't in this account. |
| invalid_cursor | A pagination cursor was changed or reused from another list. Start the list again. |
| import_unavailable | import_booking couldn't start: the AI import allowance is used up, or the file couldn't be read. |
Troubleshooting
- The assistant says it can't connect.
- Check that the link is exactly https://trip-cache.com/mcp and that the assistant is set to OAuth. Remove the connector, add it again, and finish the sign-in within 10 minutes.
- The sign-in page timed out.
- The approval request lasts 10 minutes. Start connecting again, or sign in with your password or an email code instead of the phone number.
- Every request fails after I revoked access.
- That's expected. Remove TripCache from the assistant and connect it again to give it a new approval.
- It can read my trips but can't add anything.
- The connection was approved for reading only. Reconnect and tick “Add plans and expenses to your trips, and import bookings as drafts” on the TripCache approval page.
- It says I need TripCache Pro.
- Connecting AI assistants is part of TripCache Pro. Plans are on the pricing page.
- I see text instead of TripCache cards.
- Cards show in assistants that support MCP Apps, such as Claude and ChatGPT on the web and desktop. Other assistants answer in text with the same data.
- An imported booking didn't appear in my trip.
- import_booking creates a draft. Open TripCache → Drafts to review and confirm it.
Support and security
Help with connecting: support@trip-cache.com. Privacy requests: privacy@trip-cache.com. To report a security issue, email support@trip-cache.com with “Security” in the subject.
See also the support page, privacy policy and terms.