Skip to main content

MCP Server Introduction

Bundleport provides a Model Context Protocol (MCP) server that enables AI assistants and agents to interact with hotel booking services through a standardized, tool-based interface. The MCP server exposes hotel booking capabilities as tools that AI models can discover and use autonomously, making it easy to build conversational booking experiences.

What is MCP?

The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely interact with external systems through a structured tool interface. Instead of requiring custom integrations for each AI framework, MCP provides a universal protocol that works with any MCP-compatible client.

Bundleport MCP Server

The Bundleport aggregator MCP server (hotel-booking-server, version 2.x) exposes hotel booking operations as tools:

  • Search for hotel availability across connections
  • Get detailed quotes (optionQuote + quoteId)
  • Confirm bookings (returns booking = BookingDetail)
  • Retrieve booking details by bookingID
  • Cancel bookings by bookingID

Hotel catalog and static content are not aggregator MCP tools. Use the Content API (and its own MCP, if enabled).

JSON field names match the aggregator proto/REST contract. There are no aliases (accessIds, bookingReference, flattened quote optionRefId).

Architecture Overview

AI Agent / LLM

MCP Client (Vercel AI SDK HTTP transport, LangChain, etc.)

MCP Server (Streamable HTTP, stateless)

Bundleport Booking Services

Provider Integrations
  • MCP Tools translate natural language requests into structured booking operations
  • Adapters map MCP tool parameters to the same proto used by REST
  • Shared Services keep pricing, booking, and audit rules consistent across REST and MCP

Available Tools

Five tools, in funnel order:

  1. availability — Search hotel availability. hotels are base codes unless hotelCodeProvider is set. Token-budget digest: results_table column 0 is id (search option id). Copy id into quote optionRefId.
  2. quote — Pricing and cancel policy. Input: optionRefId from search id. Output: optionQuote (optionRefId, status, price, acceptVCard, surcharges, cancelPolicy, remarks[]) plus quoteId.
  3. book — Confirm a booking. Input: optionQuote.optionRefId after a successful quote. Book from search id only when there is no RATE_TYPE remark containing RECHECK and that connection allows book-from-search. Output: booking with reference.bookingID.
  4. bookingDetail — Load an existing booking. Input: bookingID = booking.reference.bookingID. Output envelope: booking + errors/warnings.
  5. cancel — Cancel a booking. Input: bookingID. Output: cancelReference + errors/warnings.

Quote status is STATUS_TYPE_OK or STATUS_TYPE_RQ. Booking status is BOOK_STATUS_TYPE_*. Never invent PENDING / CONFIRMED.

settings.connectionCodes is required on tools that hit providers. paymentMode on quote/book maps to additionalData.paymentMode (MERCHANT or DIRECT_ONLY).

Key Features

  • AI-optimized availability: Digest truncates options (top 5 for one hotel, one per hotel otherwise) to reduce tokens. Column 0 is still proto id.
  • Stateless Streamable HTTP: Each call is independent. Copy identifiers between tools; the server does not keep a session.
  • Error handling: Structured errors[] plus MCP isError when the payload has errors. Extra hints may appear on error responses and must not contradict proto names.
  • Same Price shape as REST: net, gross, suggested, markupGross, binding, markupBindinggross is not markupGross.

Use Cases

  • Conversational booking assistants: Chatbots that search, quote, and book through natural language
  • AI-powered travel agents: Agents that orchestrate the five-tool funnel
  • Multi-step workflows: search id → quote optionRefId → book optionQuote.optionRefId → cancel/detail bookingID

Getting Started

To use the aggregator MCP server, you'll need:

  1. MCP Server Endpoint: Streamable HTTP URL (https://api.connect.bundleport.com/mcp)
  2. MCP-Compatible Client: A client that speaks MCP Streamable HTTP (for Vercel AI SDK use transport.type: 'http', not SSE)
  3. Bundleport Credentials: API keys and connection codes configured for the providers you want to use

The aggregator MCP handler is stateless Streamable HTTP.

Install booking MCP

Streamable HTTP at the aggregator. Tools: availability, quote, book, bookingDetail, cancel. Same identifiers as REST. Set BUNDLEPORT_API_KEY in the environment; the install snippet uses ${env:BUNDLEPORT_API_KEY}. Do not commit sk_*.

MCP endpointhttps://api.connect.bundleport.com/mcp
{
  "mcpServers": {
    "bundleport-hotels": {
      "url": "https://api.connect.bundleport.com/mcp",
      "headers": {
        "Authorization": "ApiKey ${env:BUNDLEPORT_API_KEY}"
      }
    }
  }
}

Next Steps

  • Use with AI — Contract card, OpenAPI YAML, Cursor / ChatGPT / Claude recipes. MCP is for calling book, not for generating a client.
  • MCP Quickstart — Connect your first MCP client and run the booking flow
  • REST API Reference — Same operations over HTTP
  • Authentication — API key setup