Skip to content

Booking MCP server

The booking flow as MCP tools, so any MCP-compatible AI assistant or agent can find venues, get quotes, negotiate, and book on a buyer's behalf, always within each venue's pricing and negotiating rules. It runs the same engine as the Booking API, with no API key required.

Connect

Environment URL (SSE transport)
Production https://groupsales-mcp-production.up.railway.app/sse
Sandbox https://groupsales-mcp-sandbox.up.railway.app/sse

Add the URL as a custom connector in Claude, or point any MCP client that supports SSE at it. For example, with the Python SDK:

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

async def main():
    url = "https://groupsales-mcp-sandbox.up.railway.app/sse"
    async with sse_client(url) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([tool.name for tool in tools.tools])

asyncio.run(main())

Tools

Tool What it does
search_venues List venues available for group bookings, with location, to narrow the search.
identify Identify the buyer by email. Call it first; later tools need the same email.
qualify_group Check whether a group is large enough for a group booking.
find_availability Find bookable options with capacity for the group, optionally by date and venue.
request_quotes Send one request to every matching venue and collect a quote from each to compare.
get_quote Get a demand-priced quote for one option. A preview only: nothing is committed.
make_counter_offer Answer price pushback with a counter-offer on an existing quote.
confirm_booking Commit a quote as a booking. Returns pending_approval if the venue must sign off.

Flows

One venue. A buyer negotiating with a single venue:

identify → qualify_group → find_availability → get_quote
→ make_counter_offer (optional) → confirm_booking

Many venues. A planner comparing venues side by side:

identify → request_quotes → pick a quote
→ make_counter_offer (optional) → confirm_booking

What the agent can and can't commit

  • get_quote and request_quotes are previews. Venues see nothing until confirm_booking is called.
  • Prices come from each venue's configured price band and live demand, never from the model.
  • If a quote needs a deposit, the result says so (deposit_required, deposit_amount, deposit_refundable). Relay those figures to the buyer as returned.
  • Deals outside a venue's rules come back as pending_approval and wait for a staff decision rather than booking automatically.