Skip to main content
Glama

G-Guest MCP server

Book a table, an appointment or a place in a class at a real local business, from an AI assistant, with no API key and no account.

G-Guest is the booking system those businesses run on. This server exposes it to assistants over MCP: find a venue, read its real availability, and create a booking that is confirmed instantly and appears in the venue's own panel.

Endpoint · https://g-guest.app/api/mcp Transport · streamable HTTP (JSON-RPC 2.0 over POST) Auth · none. Reading and booking are open; a booking must carry the guest's name, phone and email.

Tools

Tool

What it does

search

Find bookable businesses by name or slug

fetch

Full details for one business: services, hours, how to book

get_business

The same card, by slug

check_availability

Real bookable slots for a date and party size

create_booking

A real, confirmed reservation

Exact schemas: tools.json, generated from the live endpoint, not written by hand.

Related MCP server: vitta-mcp

Guest languages

The booking page, the confirmation, the reminders and the manage page speak the guest's language. Pass it on create_booking as language (ISO 639-1): en, nl, de, fr, es, it, id or bg. Defaults to English. The venue's own words (its name, dishes, class names) are never translated.

Two ways to connect

By URL, if your client speaks streamable HTTP. Point it at https://g-guest.app/api/mcp. Nothing to install.

By command, if your client expects a local stdio server, which is what Claude Desktop and Cursor configs usually want:

{
  "mcpServers": {
    "g-guest": {
      "command": "npx",
      "args": ["-y", "g-guest-mcp"]
    }
  }
}

That command runs the small proxy in this repository. It forwards every call to the hosted endpoint and hands the answer back unchanged: no booking logic runs on your machine, and no key is needed. GGUEST_MCP_URL overrides the endpoint if you are pointing at something else.

The tool list is not written into the proxy. It asks the live server for it at start-up, so the wrapper cannot fall behind the service; with no network it falls back to the tools.json in this repository, which is generated from that same endpoint.

Try it without installing anything

curl -s -X POST https://g-guest.app/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

A live demo venue is demo-studio (a pilates studio) and demo (a restaurant). Booking against those is real but harmless: they are ours.

Adding it to an assistant

  • Claude, Codex, and custom agents: point them at the endpoint. Nothing to install.

  • ChatGPT: add it as a connector (developer mode). Step-by-step, with what we have actually tested and what we have not: https://g-guest.app/ai

Honesty about what this is

Every venue reachable here is a paying or trialling customer of G-Guest, and a booking made through this server is a real reservation that a real business will honour. There is no marketplace in the middle and no commission on the booking.

We list only what we have tested ourselves. https://g-guest.app/ai says which assistants have actually created a confirmed booking here, and on what date.

Where the code lives

The booking engine is not here and never will be. Availability, slot arithmetic, the guest list, everything that decides whether a table can be sold: that lives inside the G-Guest application and stays there.

What this repository does hold is the stdio proxy in src/, about a hundred lines whose entire job is to pass JSON-RPC through and return the reply as it came. It exists because a good half of the clients and directories expect a command to run rather than a URL to call, and because a sandbox has to be able to build and introspect the server without reaching our infrastructure.

tools.json is regenerated from the live endpoint. If the two ever disagree, the live endpoint is right.

Made by G-Lab Studio.

Available Tools

8 tools
cancel_bookingAInspect

Cancel an upcoming booking and release its slot to other guests. Identified like check_booking: booking_id plus manage_token. Confirm with the guest before calling; the cancellation is immediate and this server cannot undo it, the guest would simply book again. The venue is notified exactly as for a cancellation from the manage link. Safe to retry: cancelling a booking that is already cancelled returns the same result, not an error. A booking whose start time has passed cannot be cancelled and returns an error saying so. To move a booking to another time, cancel it and create a new one.

Inputs: booking_id (required), manage_token (required).

check_availabilityBInspect

List bookable time slots for a business on a given date and party size. Offer the guest only slots where available is true.

Inputs: date (required), slug (required), party_size (required).

check_bookingAInspect

Look up one existing booking so the guest can confirm when and where it is. Identify it with the booking_id and manage_token that create_booking returned; both also sit in the guest's confirmation email as the manage link, /booking/<booking_id>?token=<manage_token>. Returns the business, the local date and time with its timezone, party size, service and status: confirmed, pending_confirmation, cancelled, or for past bookings completed or no_show. Never returns the guest's name, email or phone. A wrong or missing token is refused without revealing whether the booking exists.

Inputs: booking_id (required), manage_token (required).

create_bookingAInspect

Create a real reservation. Use a start value returned by check_availability. Never invent guest details. Ask the person for their real name, email and phone first. If the result status is pending_confirmation, show the guest the confirmation_url.

Inputs: name (required), slug (required), email (required), phone (required), +6 more.

fetchAInspect

Fetch full details for one business id returned by search: services, hours, timezone and how to book it.

Inputs: id (required).

get_businessAInspect

Look up a business on G-Guest: services, opening hours, timezone and maximum party size. Call this first if you only know the slug.

Inputs: slug (required).

request_listingAInspect

Ask G-Guest to list a business that is not on it yet. Use it when the person you are helping runs a restaurant, cafe, bar, salon, spa, studio or clinic and wants reservations that assistants can make. Nothing is published by this call: the request reaches the G-Guest team as a lead, a person reviews it and contacts the business, and only then is anything set up. The owner's or manager's email is required, because the reply comes by email; a phone is optional extra. Do not call it for a guest who merely wants to book somewhere, and never submit a business without its owner's or manager's say-so. Returns a receipt with a reference id; no timeline is promised.

Inputs: city (required), business_name (required), business_type (required), contact_email (required), +4 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools map cleanly to distinct operations—availability, existing booking lookup, cancellation, business discovery, and onboarding. The only real ambiguity is between fetch and get_business, which both return business details and are differentiated mainly by id versus slug.

    Naming Consistency4/5

    create_booking, cancel_booking, check_availability, check_booking, get_business, and request_listing follow a clear verb_noun pattern. fetch and search are bare verbs, so two tools break the pattern, but overall the naming is still readable and predictable.

    Tool Count5/5

    8 tools is well-scoped for a booking assistant: discovery, availability, booking lifecycle, and onboarding each have coverage. No tool feels redundant or superfluous.

    Completeness4/5

    The booking lifecycle is covered end-to-end via availability, create, check, and cancel, with moving a booking explicitly handled by cancel-and-recreate. Business discovery and listing-request flows are present, though there is no in-server update or confirmation action; the confirmation_url is delegated to the guest, so minor gaps remain.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables customers and AI agents to check restaurant table availability and create bookings, returning confirmations or nearby alternative times when a slot is full, with atomic capacity control and idempotent handling.
      -
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI agents to look up businesses, find free appointment slots, book, list and cancel appointments at salons, barbershops, nail and brow studios and clinics. Works read-only without a customer login by returning a pre-filled booking link, and can also run against a built-in demo with sample businesses.
      5
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to answer a small business's customer questions from its own FAQs and order data, list upcoming open appointment times in the business's time zone, and book one of those offered slots with staff notification. Free for the first 1,000 businesses, using fast rule-based FAQ matching rather than free-form generation.
      3
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to discover availability, place expiring holds, and confirm or cancel appointments for connected booking businesses, with idempotent retries and explicit user consent.
      1
      Apache 2.0