app.g-guest/g-guest
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Book a table, appointment or class at a real local business. Instant confirmation, no API key.
| Author | app.g-guest |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1820 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"g-guest": {
"url": "https://g-guest.app/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
searchSearch bookable businesses on G-Guest by name or slug. Returns ids you can pass to fetch or to the booking tools.
Parameters:
query(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
fetchFetch full details for one business id returned by search: services, hours, timezone and how to book it.
Parameters:
id(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_businessLook up a business on G-Guest: services, opening hours, timezone and maximum party size. Call this first if you only know the slug.
Parameters:
slug(required) — string — Business identifier, e.g. "demo".
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_availabilityList bookable time slots for a business on a given date and party size. Offer the guest only slots where available is true.
Parameters:
slug(required) — stringdate(required) — string — YYYY-MM-DD, in the venue's local calendar.party_size(required) — integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_bookingCreate 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. If it is pending_payment, the venue takes a prepayment: show the guest the payment_url, and do not say it is booked until it is paid.
Parameters:
slug(required) — stringstart(required) — string — The slot's `start` value, copied exactly as check_availability returned it.party_size(required) — integername(required) — stringemail(required) — stringphone(required) — stringnotes— stringsource— string — Which assistant is booking. Defaults to other_ai. proof_video is our own channel: bookings made while filming a proof clip.language— string — The guest's language as an ISO 639-1 code: en, nl, de, fr, es, it, id or bg. The confirmation, the reminders and the manage page are sent in it. Defaults to English.idempotency_key— string — Retry safety: pick any unique string for this booking attempt and reuse it on retries. The same key always returns the same booking, never a duplicate.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_bookingLook 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, pending_payment (with payment_url while it can be paid), 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.
Parameters:
booking_id(required) — string — The booking_id create_booking returned, or the id in the guest's manage link.manage_token(required) — string — The token from the same booking's manage link. If the guest only has the link, take the token from its ?token= parameter.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cancel_bookingCancel 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.
Parameters:
booking_id(required) — string — The booking_id create_booking returned, or the id in the guest's manage link.manage_token(required) — string — The token from the same booking's manage link (its ?token= parameter).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
request_listingAsk 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.
Parameters:
business_name(required) — string — The business's own name, as its owner writes it.city(required) — string — City and country, e.g. "Canggu, Indonesia".business_type(required) — string — The closest category.contact_email(required) — string — Email of the owner or manager who asked. The reply goes here.message— string — Anything the owner wants the team to know: languages, seats, how bookings are taken today. Up to 500 characters.website— string — The business website or Instagram page, if it has one.contact_name— string — Who asked, so the reply can address them by name.contact_phone— string — Phone with country code, optional.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.