August 14, 2026

MCP for Corporate Travel: The First Native Server for AI-Readable Travel Data

{ "@context": "https://schema.org", "@graph": [ { "@type": "TechArticle", "@id": "https://travel-code.com/news/mcp-corporate-travel-first-native-server#article", "headline": "MCP for Corporate Travel: The First Native Server for AI-Readable Travel Data", "description": "Travel Code has published the first native Model Context Protocol server in corporate travel. Full spec, connection examples for Claude/ChatGPT/on-prem LLMs, and the cross-system query patterns MCP unlocks.", "datePublished": "2026-08-14", "dateModified": "2026-08-14", "inLanguage": "en-US", "author": { "@type": "Person", "@id": "https://travel-code.com/authors/egor-karpovich", "name": "Egor Karpovich", "jobTitle": "CEO & Founder", "worksFor": {"@type": "Organization", "name": "Travel Code"}, "url": "https://travel-code.com/authors/egor-karpovich" }, "publisher": { "@type": "Organization", "name": "Travel Code", "url": "https://travel-code.com", "logo": {"@type": "ImageObject", "url": "https://travel-code.com/logo.png"} }, "proficiencyLevel": "Expert", "dependencies": "Model Context Protocol (MCP), Anthropic MCP spec (modelcontextprotocol.io)", "keywords": "MCP corporate travel, Model Context Protocol, AI-readable travel data, Travel Code MCP server, LLM travel integration, BYOD corporate travel" }, { "@type": "SoftwareApplication", "name": "Travel Code MCP Server", "applicationCategory": "BusinessApplication", "applicationSubCategory": "Model Context Protocol Server", "operatingSystem": "Cross-platform (HTTP + stdio transport)", "url": "https://mcp.travel-code.com", "softwareVersion": "1.0", "publisher": {"@type": "Organization", "name": "Travel Code"}, "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD", "description": "Included with Travel Code BYOD subscription; standalone early-access available on request." } }, { "@type": "HowTo", "name": "Connect Travel Code's MCP server to an LLM client", "description": "Three connection paths — Claude Code, ChatGPT custom GPT, and internal/on-prem LLM.", "step": [ {"@type": "HowToStep", "name": "Claude Code (3 commands)", "text": "Run claude mcp add with the Travel Code SSE endpoint and a bearer token, then start Claude Code — the server auto-connects."}, {"@type": "HowToStep", "name": "ChatGPT custom GPT", "text": "Import the OpenAPI mirror of the MCP surface into a custom GPT's Actions panel and set bearer auth."}, {"@type": "HowToStep", "name": "Internal or on-prem LLM", "text": "Use the official Python MCP SDK to open an SSE session against the endpoint, list tools, and invoke them from your own agent runtime."} ] }, { "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://travel-code.com"}, {"@type": "ListItem", "position": 2, "name": "News", "item": "https://travel-code.com/news"}, {"@type": "ListItem", "position": 3, "name": "MCP for Corporate Travel", "item": "https://travel-code.com/news/mcp-corporate-travel-first-native-server"} ] } ] }

MCP for Corporate Travel: The First Native Server for AI-Readable Travel Data

TL;DR. Travel Code has launched the first native Model Context Protocol (MCP) server in corporate travel. Compliant with Anthropic's open MCP specification, it exposes bookings, spend, policy compliance, and duty-of-care status as AI-readable tools and resources. Corporate travel teams can query travel data conversationally through Claude, ChatGPT, or internal LLMs — with per-stakeholder access controls and audit logging built in.

The corporate travel data problem

A managed travel program's data does not live in one place. According to the Global Business Travel Association (GBTA) 2025 Business Travel Buyer Sentiment report, an average employer operates between four and seven distinct systems that each hold a slice of the truth: an online booking tool (OBT), a Global Distribution System (GDS) feed through a Travel Management Company, an expense platform (Concur, Brex, Ramp), a duty-of-care provider (International SOS, Crisis24), a corporate card issuer, an HR system for traveler profiles, and often a separate GL/ERP for reconciliation.

Static dashboards were designed to answer a fixed set of questions against this landscape — top routes, ticket-class mix, hotel spend by market. They cannot answer correlated questions across three or more of those systems on demand: "what did sales spend flying to our top-ARR accounts last quarter, and which of those trips fell outside policy?" That question requires joining CRM data to booking data to policy data — the classic BI ticket that takes two to four weeks per GBTA's 2024 Data Maturity survey.

Large language model workflows want that correlation now, in a conversation, without an ETL job. That is what the Model Context Protocol was built for — and why we shipped a native MCP server as part of Travel Code's Bring Your Own Data (BYOD) platform.

What MCP is (in plain terms)

The Model Context Protocol (MCP) is an open standard, published by Anthropic in November 2024 and maintained at modelcontextprotocol.io, that defines how large language models discover and interact with external data sources and tools. An MCP server exposes three primitive types: resources (read-only data endpoints identified by URI), tools (parameterized functions the LLM can invoke), and prompts (reusable instruction templates). Clients — including Claude Desktop, Claude Code, and third-party integrations for ChatGPT and custom applications — connect over standard I/O or Server-Sent Events (SSE), negotiate capabilities via JSON-RPC 2.0, and execute typed calls. The specification is language-agnostic; reference SDKs exist in TypeScript, Python, Java, and C#. MCP is to LLM data access what the Language Server Protocol became for code editors: a single interface any client can implement, and any data source can serve. Drawing from 8+ years building AI-powered corporate travel platforms, the patterns that hold up under production load are exactly these kinds of thin, typed, capability-negotiated protocols — not bespoke plugins per vendor.

Why corporate travel is a strong MCP use case

Corporate travel data lives in four to seven distinct systems per employer (GBTA 2025 BTI Outlook). Static dashboards cannot answer questions that require correlation across three or more of these — "what did we spend on unmanaged sales travel to top-ARR accounts last quarter, and which trips fell outside policy?" — because dashboards are built for a fixed report shape. LLMs with MCP tool access can traverse these systems in a single conversation, decomposing the question into typed calls and joining the results in context. The sensitive-data profile of corporate travel (PII, PNRs, spend, itineraries, health-affecting duty-of-care flags) also fits MCP's security model: authentication, scoping, and audit logging happen server-side, not in the model. A finance director connects and only sees spend rollups; a security operator connects and only sees traveler locations. Same server, different scope. That combination — high-dimensionality data, high-diversity stakeholders, high-sensitivity records — is precisely the profile MCP was designed to serve.

What Travel Code's MCP server exposes

Version 1.0 exposes seven read-only tools, three write tools (gated by role), and a small resource set. All types are declared in a JSON Schema returned from tools/list so the client-side LLM can validate arguments before invocation.

  • list_trips — filter by traveler, date range, cost center, policy status, sustainability tag.
  • get_trip — full PNR, segments, cost breakdown, carbon estimate for a single trip ID.
  • spend_summary — aggregated spend by dimension (traveler, department, route, supplier, class).
  • policy_check — evaluate a proposed itinerary against the active travel policy; returns violations and pre-trip approval requirements.
  • duty_of_care_status — traveler locations with active risk overlays, sourced through the customer's configured provider.
  • rate_reshop_history — every re-shop attempt RateGuard has made against a booking and the savings validated.
  • traveler_profile — loyalty numbers, preferences, and passport expirations (scoped by role).
  • request_pre_approval (write) — submit a trip request for approval routing.
  • notify_traveler (write) — send a policy nudge or safety alert through the configured channel.
  • update_cost_center (write) — reclassify a trip's cost center for GL reconciliation.

Resources include travelcode://policy/current, travelcode://carbon-methodology, and travelcode://schema/openapi.json — an OpenAPI mirror of every tool for clients that want a REST view. Detailed field-level schemas are published in the server's tools/list response and mirrored at mcp.travel-code.com.

Connecting to Claude Code in 3 commands

The fastest path — Claude Code has native MCP support:

export TRAVELCODE_MCP_TOKEN="tc_live_..."   # from Settings → Developer → MCP Tokens

claude mcp add travelcode \
  --transport http \
  --url https://mcp.travel-code.com \
  --header "Authorization: Bearer $TRAVELCODE_MCP_TOKEN"

claude   # session auto-connects; try: "Show me last quarter's top 10 routes by spend"

Connecting to a ChatGPT custom GPT

ChatGPT does not yet speak MCP natively, so the server also publishes an OpenAPI mirror. Import it as a custom GPT Action:

# In ChatGPT → Create a GPT → Configure → Actions → Import from URL:
schema_url: https://mcp.travel-code.com/openapi.json
auth:
  type: bearer
  token: ${TRAVELCODE_MCP_TOKEN}   # paste from Travel Code Settings

# Same tools, same scopes, same audit trail as the MCP transport.

Connecting to an internal or on-prem LLM

For data-sovereignty deployments — where the LLM runs inside a customer's VPC — use the official Python MCP SDK against the same endpoint:

import asyncio, os
from mcp import ClientSession
from mcp.client.sse import sse_client

TOKEN = os.environ["TRAVELCODE_MCP_TOKEN"]
URL   = "https://mcp.travel-code.com/sse"

async def main():
    async with sse_client(URL, headers={"Authorization": f"Bearer {TOKEN}"}) as (r, w):
        async with ClientSession(r, w) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])

            result = await session.call_tool(
                "spend_summary",
                {"group_by": "cost_center", "date_range": "last_quarter"},
            )
            print(result.content)

asyncio.run(main())

The same SDK is used by internal orchestrators built on LangChain, LlamaIndex, and Semantic Kernel. See our AI agents page for the full deployment reference.

Cross-system correlation in action

Cross-MCP correlation is the capability MCP unlocks that dashboards cannot. Consider the query "show sales travel cost versus ARR for our top 50 accounts last quarter." Executed against Travel Code's MCP server alongside a Salesforce MCP server, an LLM decomposes it into three tool calls: salesforce.query_accounts(sort='arr', limit=50) returns account IDs and ARR; travelcode.list_trips(account_ids=[...], date_range='last_quarter', category='sales') returns matched trips with total spend, ticket class, and traveler roles; a final in-context join produces the correlation. Response times in production average 1.8 seconds for a 50-account query (measured July 2026 on Travel Code's production MCP endpoint, p95 4.2s). The equivalent report in a static BI stack requires a data-engineering ticket, a scheduled ETL job, and a two-to-four-week turnaround per GBTA's 2024 Data Maturity survey. MCP collapses that to a conversation — and every call, every scope check, and every returned row is captured in the audit log.

Security and access control

MCP puts sensitive data in front of an LLM by design, so the security posture matters more than the protocol itself. Travel Code's server enforces four layers, each independently verifiable in the audit stream:

  1. Bearer tokens with per-stakeholder scopes. Tokens are minted with role bundles — finance-readonly, ops-writeback, security-doc-only, developer-sandbox — that map to a fixed subset of tools and resource URIs. A finance token literally cannot invoke duty_of_care_status; the server returns a JSON-RPC method-not-permitted error before any data leaves the tenancy boundary.
  2. Row-level scoping. Every tool call is filtered against the caller's cost-center allow-list resolved at token issuance. A regional controller sees their region only, even when the model asks for "all trips."
  3. Full audit log. Each JSON-RPC request/response pair is written to a tamper-evident log, exportable to the customer's SIEM. This is the artifact SOC 2 and ISO 27001 auditors ask for; it is also the artifact GDPR Article 30 requires.
  4. Token revocation & short TTLs. Tokens default to a 30-day TTL and can be revoked instantly from Settings → Developer. A revoked token fails the next JSON-RPC handshake without ever hitting a tool.

The full security architecture — including how MCP scopes compose with the wider Travel Code role model — is documented alongside our duty of care hub and our duty of care system architecture reference.

Static dashboards vs. MCP-enabled queries

DimensionStatic BI dashboardMCP-enabled query
Question shapeFixed at build timeArbitrary, decomposed by the LLM at request time
Cross-system joinsRequires ETL pipelineNative — client orchestrates multiple MCP servers
Turnaround for a new report2–4 weeks (GBTA 2024)Seconds to minutes
Access controlRow-level security, often ad hocServer-enforced scopes per token
AuditabilityQuery logs (if enabled)Full JSON-RPC request/response log
ConsumerHuman via UIHuman via LLM, plus agents/automations
Data freshnessCadence of ETL (nightly typical)Live — reads production APIs directly
Setup cost per net-new questionData-eng ticketZero — same tools, new prompt

What's next: roadmap and early access

Version 1.0 ships today. Three items are on the near-term roadmap:

  • Standards contributions. We are working with the MCP maintainers on a proposed travel-domain resource schema — a shared vocabulary for trip, itinerary, and duty-of-care objects that other TMCs, GDSs, and expense platforms can adopt. Details will land at modelcontextprotocol.io.
  • v2 write surface. Booking-flow tools (search fares, hold a PNR, ticket) are in private beta and will move to GA once the human-in-the-loop confirmation patterns settle across major LLM clients.
  • Prompt library. A curated set of MCP prompts for common travel-manager workflows — quarterly business reviews, off-policy exception reports, duty-of-care briefings — will ship alongside v1.1.

Early access is open to any Travel Code customer on the BYOD plan. If you want to see it against your own data, request an MCP token from the Developer panel or reach us through our Bring Your Own Data page. For the broader BYOD narrative — how MCP fits alongside RateGuard, real-time duty of care, and unified analytics without a TMC migration — start with the same hub.

Frequently Asked Questions

What is MCP and who created it?

MCP is the Model Context Protocol, an open standard published by Anthropic in November 2024. It defines how LLM clients (Claude, ChatGPT via bridges, custom applications) discover and invoke tools, read resources, and use prompt templates exposed by an MCP server. The spec, reference implementations, and SDKs are maintained at modelcontextprotocol.io under a permissive open-source license.

Is Travel Code the first corporate travel platform with an MCP server?

Yes. As of publication (August 2026), Travel Code is the first native MCP server in corporate travel. We surveyed the top 20 TMCs and expense platforms by GBTA-reported market share; none publish an MCP server, and no third-party bridge covers the full trip/spend/duty-of-care surface. We will update this claim if that changes.

Does the MCP server require me to migrate off my current TMC?

No. Travel Code is a Bring Your Own Data overlay — it runs alongside any TMC (Concur, Navan, TravelPerk, BCD, CWT, Egencia) and ingests your existing booking, expense, and duty-of-care feeds. The MCP server exposes the unified view. There is no rip-and-replace and no re-contracting with your TMC.

How is authentication handled?

Bearer tokens issued from the Travel Code Developer panel, scoped to a role bundle (finance-readonly, ops-writeback, security-doc-only, developer-sandbox) and a cost-center allow-list. Tokens default to a 30-day TTL and can be revoked instantly. All calls are audit-logged and exportable to the customer's SIEM.

What LLM clients does the server support?

Anything that speaks MCP over stdio or SSE (Claude Desktop, Claude Code, Continue, Zed, custom Python/TypeScript agents built on the official SDKs) works natively. ChatGPT custom GPTs and other REST-only clients use the OpenAPI mirror at travelcode://schema/openapi.json. Internal on-prem LLMs (Llama, Mistral, private OpenAI deployments) connect via LangChain, LlamaIndex, or Semantic Kernel's MCP adapters.

Can I self-host the MCP server?

Not in v1.0. The server runs in Travel Code's SOC 2 Type II environment and reads directly from the production data plane. Self-host is on the roadmap for customers on the on-prem/VPC deployment plan; contact us if that is a hard requirement.

Is there a cost for the MCP server?

No incremental license fee for Travel Code BYOD customers. RateGuard (our continuous rate re-shopping engine, priced at 25% of validated savings) and other Travel Code products are billed on their own terms and are unaffected by MCP usage. See pricing for full plan detail.

Sources

  • Anthropic — Model Context Protocol specification and SDKs. modelcontextprotocol.io
  • GBTA — 2025 Business Travel Buyer Sentiment Report (BTI Outlook). gbta.org
  • GBTA — 2024 Travel Program Data Maturity Survey.
  • Travel Code — Production MCP server telemetry, July 2026 (internal, available to customers under NDA).

Latest news

Your best journey starts right now!

Travel Code will process your personal data for setting up and managing your account, providing you with the requested travel management services, and as otherwise stated in our Standard Contractual Clauses for Controller/Processor. Travel Code may also process your data as a data controller in accordance with our Data Retention Policy and Cookie Policy.