Google Flights Policy Recommender (MCP)
Corp Travel MCP
A remote MCP server that searches Google Flights, labels every result in-policy or out-of-policy against a travel policy file, and ranks them by your travel preferences — nonstop, airline alliance, red-eye avoidance, cheapest/fastest/balanced. It never visits an airline or OTA site and never attempts to book anything: it hands you a ranked, labeled list and a Google Flights link to complete the booking yourself.
Built as a technology demonstration of policy-aware flight recommendations.
This repository is one of three independently deployed MCPs in the
tarun-mcp-suite, alongside
gsuite and
simplefin.
There's also a local, browser-driven server in this repo that can drive a booking up to (but never through) payment — see local-server/README.md.
Connect it to claude.ai
The live deployment:
https://corp-travel-mcp-508362522869.us-central1.run.app/mcpIn claude.ai, go to Settings → Connectors → Add custom connector.
URL: paste the URL above.
Auth: choose OAuth. Leave the Client ID / Client Secret fields blank — this server supports dynamic client registration, so claude.ai registers itself automatically; nothing to fill in by hand.
Save. claude.ai will prompt you to connect — sign in with your
@routespring.com(or@gallop.ai) Google account. Any other domain is rejected.Try asking it to find a flight (see docs/examples.md).
Running your own separate deployment instead? See
docs/advanced-build.md for deploying it (Docker,
Fly.io/Render/Cloud Run) and setting up your own Google OAuth client — or
use the simpler username/password (Basic Auth) option claude.ai also offers,
where the password is the deployment's MCP_BEARER_TOKEN.
Change the default policy & config
Two files drive every recommendation: policy (hard/soft rules — fare caps, cabin class, blocked airlines) and preferences (personal taste — nonstop, alliance, cheapest vs. fastest). Full schema for both: docs/advanced-usage.md.
Change the deployment's default — edit
policy.json/user_preferences.jsonand redeploy, or set thePOLICY_JSON/PREFERENCES_JSONenv vars directly (no rebuild needed). This changes results for everyone using that deployment — see docs/advanced-build.md for exact commands.Use your own policy without changing the shared default — keep a personal
policy.json/user_preferences.jsonand just mention it ("use my policy for this"); the assistant reads it and passes it in for that call only. This is also how multiple colleagues share one deployment with different policies — see docs/advanced-usage.md.
More
docs/examples.md — worked examples: a search, checking the active policy, bringing your own policy, booking.
local-server/README.md — the browser-driven server that can autofill a booking up to payment.
docs/advanced-build.md — deploying, Google OAuth setup, running it locally.
docs/advanced-usage.md — full policy/preferences schema, the multi-colleague pattern, known limitations, safety boundary.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tarun101/corp-travel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server