Guest Logic MCP
An official MCP server provided by Guest Logic LLC that allows AI assistants to autonomously set up and manage hotel property management systems. It enables agents to read reports, create rooms, set rates, and configure policies, with human approval required for finalization.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://guestlogic.ai/mcpWhat its tools do
25 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (10)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to guestlogic.ai ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Read bookings, room lists, and policies from current system reports
- Create company profile, rooms, rates, taxes, and policies
- Approve setup via email link after AI configuration
- Connect card payments and channel managers like Expedia
Source and maintenance
Protocol and capabilities
- Server
- guest-logic 1.1.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 25 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- 1 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
25 advertised
start_signup — Start a company (no account yet)
Creates the company in Guest Logic (a hotel in free test mode) and e-mails the owner one approval link. Use only when the owner has no Guest Logic account. The reply names everything still missing and the tool that fills each. No sign-in needed.
{
"type": "object",
"required": [
"owner_name",
"email",
"business_name",
"kind",
"tools"
],
"properties": {
"kind": {
"enum": [
"hotel",
"venue",
"bar",
"hr_only",
"other"
],
"type": "string",
"description": "What the business is"
},
"email": {
"type": "string",
"description": "Owner e-mail (becomes the sign-in)"
},
"tools": {
"type": "array",
"items": {
"enum": [
"pms",
"sales",
"hr"
],
"type": "string"
},
"minItems": 1,
"description": "The tools wanted; pms only with kind hotel"
},
"mobile": {
"type": "string",
"description": "Owner mobile number, if you have it; a hotel owner is asked at the approval link otherwise"
},
"website": {
"type": "string",
"description": "Company website"
},
"time_zone": {
"type": "string",
"description": "Time zone, e.g. America/New_York"
},
"legal_name": {
"type": "string",
"description": "Legal name of the company"
},
"owner_name": {
"type": "string",
"description": "Owner full name"
},
"business_name": {
"type": "string",
"description": "Company name: letters, digits, spaces and & ' . - only, up to 60 characters"
}
},
"additionalProperties": false
}{
"title": "Start a company (no account yet)",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}my_hotel — Your hotel
The hotel's details: name, address, phone, rooms, check-in and check-out, taxes, and whether it is in test mode. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Your hotel",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}setup_status — Setup checklist
Every fact this company needs, each Done, Missing, Needs us or Optional, with the tool that fills each missing one. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Setup checklist",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}set_company — Set the company details
The legal name, mailing address, billing e-mail, website and time zone. Send only what you have. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"address": {
"type": "object",
"required": [],
"properties": {
"zip": {
"type": "string",
"description": "ZIP code"
},
"city": {
"type": "string",
"description": "City"
},
"state": {
"type": "string",
"description": "State, two letters"
},
"street": {
"type": "string",
"description": "Street"
}
},
"additionalProperties": false
},
"website": {
"type": "string",
"description": "Website"
},
"time_zone": {
"type": "string",
"description": "Time zone, e.g. America/New_York"
},
"legal_name": {
"type": "string",
"description": "Legal name"
},
"billing_email": {
"type": "string",
"description": "Billing e-mail"
}
},
"additionalProperties": false
}{
"title": "Set the company details",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}set_venue — Set the event spaces
The event spaces and how many each holds, shown on quotes and the inquiry form. Replaces the list. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"notes": {
"type": "string",
"description": "Anything else about the spaces"
},
"spaces": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Space name"
},
"capacity": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
},
"maxItems": 50
}
},
"additionalProperties": false
}{
"title": "Set the event spaces",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}set_hiring — Set the hiring details
The positions hired for (shown on the company's careers page), the hiring e-mail and the hiring phone. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"positions": {
"type": "array",
"items": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Position"
},
"hiring_now": {
"type": "boolean"
}
},
"additionalProperties": false
},
"maxItems": 50
},
"hiring_email": {
"type": "string",
"description": "Hiring e-mail"
},
"hiring_phone": {
"type": "string",
"description": "Hiring phone"
}
},
"additionalProperties": false
}{
"title": "Set the hiring details",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}set_team — Invite the team
E-mails a sign-in to each team member, up to 25 a call. Reports the result per person. Needs the owner's sign-in.
{
"type": "object",
"required": [
"members"
],
"properties": {
"members": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "Full name"
},
"role": {
"enum": [
"employee",
"manager"
],
"type": "string"
},
"email": {
"type": "string",
"description": "E-mail"
},
"mobile": {
"type": "string",
"description": "Mobile"
}
},
"additionalProperties": false
},
"maxItems": 25,
"minItems": 1
}
},
"additionalProperties": false
}{
"title": "Invite the team",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}upload_file — Upload a file
For a PDF, picture or spreadsheet (up to 25 MB). Call with filename, content_type and size: you get an address to PUT the file to. After the PUT, call again with document_id: Guest Logic reads it and returns what was found. Types: PDF, PNG, JPEG, WebP, XLSX, XLS, CSV, TXT. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"description": "Bytes"
},
"filename": {
"type": "string",
"description": "File name"
},
"document_id": {
"type": "string",
"description": "From the first call, after the PUT"
},
"content_type": {
"type": "string",
"description": "e.g. application/pdf"
}
},
"additionalProperties": false
}{
"title": "Upload a file",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}request_go_live — Ask to go live
Files the request to go live once the legal name, address, billing e-mail and the owner's accepted agreement are in; otherwise names what is missing. The Guest Logic team presses the last button. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Ask to go live",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}upload_report — Upload a report
Sends one report's content as text (CSV, tab-separated or plain text, up to 4 MB) — read a PDF or spreadsheet first and send its rows. Guest Logic reads it and sets up what it can (rooms, room types, rates, taxes, stays). Returns what was found. Needs the owner's sign-in.
{
"type": "object",
"required": [
"filename",
"content"
],
"properties": {
"content": {
"type": "string",
"description": "The report as text"
},
"filename": {
"type": "string",
"description": "Name for the report, e.g. bookings.csv"
}
},
"additionalProperties": false
}{
"title": "Upload a report",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}submit_facts — Send rooms or stays you already read
Rooms and stays you already extracted, as rows. Guest Logic applies them by the same rules as an uploaded report. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"rooms": {
"type": "array",
"items": {
"type": "object",
"required": [
"room_number",
"room_type"
],
"properties": {
"floor": {
"type": "integer"
},
"building": {
"type": "string",
"description": "Building, if any"
},
"room_type": {
"type": "string",
"description": "Room type name or code"
},
"room_number": {
"type": "string",
"description": "Room number"
}
},
"additionalProperties": false
},
"maxItems": 2000
},
"stays": {
"type": "array",
"items": {
"type": "object",
"required": [
"confirmation",
"check_in",
"check_out",
"room_type"
],
"properties": {
"room": {
"type": "string",
"description": "Room number, if assigned"
},
"guest": {
"type": "string",
"description": "Guest name"
},
"total": {
"type": "number"
},
"adults": {
"type": "integer"
},
"source": {
"type": "string",
"description": "Booking source, e.g. Direct, Expedia"
},
"status": {
"type": "string",
"description": "Booked, cancelled, no-show…"
},
"check_in": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival YYYY-MM-DD"
},
"check_out": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure YYYY-MM-DD"
},
"room_type": {
"type": "string",
"description": "Room type"
},
"confirmation": {
"type": "string",
"description": "Their confirmation number"
},
"nightly_rate": {
"type": "number"
}
},
"additionalProperties": false
},
"maxItems": 5000
}
},
"additionalProperties": false
}{
"title": "Send rooms or stays you already read",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}confirm_facts — Confirm or change a step
Confirms or changes one setup step. step and values: hotel {name, phone, email} · taxes {state, tourism, other} as percentages · checkin {check_in, check_out} as HH:MM · policies {cancellation, deposit, noshow, pets, smoking} · room_types {CODE: {name, sleeps}} · rates {CODE: nightly rate} · rooms (confirm the room list) · ooo (no out-of-order rooms) · people (just the owner for now) · bookings (no bookings on hand). Needs the owner's sign-in.
{
"type": "object",
"required": [
"step"
],
"properties": {
"step": {
"enum": [
"hotel",
"taxes",
"checkin",
"policies",
"room_types",
"rates",
"rooms",
"ooo",
"people",
"bookings"
],
"type": "string"
},
"values": {
"type": "object",
"description": "The values for that step (see the description)"
}
},
"additionalProperties": false
}{
"title": "Confirm or change a step",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}load_stays — Load the stays
Loads the stays read from the reports into the hotel. First call without confirm to see the rows that need a decision; show them to the owner; then call with confirm true. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"confirm": {
"type": "boolean",
"description": "true to load"
}
},
"additionalProperties": false
}{
"title": "Load the stays",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}add_photo — Add a photo
Adds a picture from a public web address (PNG, JPEG or WebP, up to 10 MB) to the booking page: the hotel, or one room type. 40 a day while testing. Needs the owner's sign-in.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https address of the picture"
},
"cover": {
"type": "boolean",
"description": "true to make it the main photo"
},
"caption": {
"type": "string",
"description": "Short caption"
},
"room_type": {
"type": "string",
"description": "Room type code or name, for a room-type photo; leave out for the hotel"
}
},
"additionalProperties": false
}{
"title": "Add a photo",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}set_logo — Set the logo
Sets the company's logo from a public web address (PNG, JPEG or WebP, up to 10 MB). Needs the owner's sign-in.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https address of the logo"
}
},
"additionalProperties": false
}{
"title": "Set the logo",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}drop_link — Links to upload files by hand
The owner's links to drop files you cannot send as text (a scanned PDF) and to manage photos. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Links to upload files by hand",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}ask_us — Ask Guest Logic to connect something
Asks the Guest Logic team to connect card payments, Expedia and Booking.com, or to finish the whole setup by hand. Connected within 24 hours. Needs the owner's sign-in.
{
"type": "object",
"required": [
"what"
],
"properties": {
"note": {
"type": "string",
"description": "Anything the team should know"
},
"what": {
"enum": [
"cards",
"channels",
"white_glove"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Ask Guest Logic to connect something",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}invite_staff — Invite a staff member
E-mails a sign-in to an employee or a manager. Needs the owner's sign-in.
{
"type": "object",
"required": [
"email",
"full_name"
],
"properties": {
"role": {
"enum": [
"employee",
"manager"
],
"type": "string"
},
"email": {
"type": "string",
"description": "Their e-mail"
},
"full_name": {
"type": "string",
"description": "Their full name"
}
},
"additionalProperties": false
}{
"title": "Invite a staff member",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}stays — Stays in a date range
Stays touching a date range (up to 31 days): confirmation, guest, dates, room, type, status, rate, source. Up to 200 rows a call; use page for more. Needs the owner's sign-in.
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last night YYYY-MM-DD"
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First night YYYY-MM-DD"
},
"page": {
"type": "integer",
"minimum": 1
},
"status": {
"enum": [
"booked",
"inhouse",
"checkedout",
"cancelled",
"noshow"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Stays in a date range",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}stay — One stay
One stay by its confirmation number. Needs the owner's sign-in.
{
"type": "object",
"required": [
"confirmation"
],
"properties": {
"confirmation": {
"type": "string",
"description": "Confirmation number"
}
},
"additionalProperties": false
}{
"title": "One stay",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}availability — Rooms free each night
Rooms free each night by room type for a date range (up to 31 days). Needs the owner's sign-in.
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last night YYYY-MM-DD"
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First night YYYY-MM-DD"
}
},
"additionalProperties": false
}{
"title": "Rooms free each night",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}house_inventory — The house on one day
For one day: arrivals, departures, in house, rooms by housekeeping status, rooms out of order. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Day YYYY-MM-DD (default today)"
}
},
"additionalProperties": false
}{
"title": "The house on one day",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}list_automations — Automations
The company's automations: what each sends, when, and whether it is on. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Automations",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}automation_status — Recent automation runs
The last runs of the company's automations: when, result, error. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Recent automation runs",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}tasks_waiting_on_me — Tasks waiting on me
Open tasks on the signed-in person's Home board. Needs the owner's sign-in.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Tasks waiting on me",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}Prompts
1 advertised
set_up_my_hotel — Set up my company in Guest Logic
Everything to gather and the order to do it in, so the setup finishes in one go.
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 723 ms
- 95th percentile latency
- 723 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 723 ms · metadata changed · 25 tool(s), 1 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http guest-logic-mcp https://guestlogic.ai/mcpCodex
codex mcp add guest-logic-mcp --url https://guestlogic.ai/mcpCursor
{
"mcpServers": {
"guest-logic-mcp": {
"url": "https://guestlogic.ai/mcp"
}
}
}Cline
{
"mcpServers": {
"guest-logic-mcp": {
"type": "streamableHttp",
"url": "https://guestlogic.ai/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"guest-logic-mcp": {
"type": "http",
"url": "https://guestlogic.ai/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http guest-logic-mcp https://guestlogic.ai/mcpClaude Desktop
https://guestlogic.ai/mcpWindsurf
{
"mcpServers": {
"guest-logic-mcp": {
"serverUrl": "https://guestlogic.ai/mcp"
}
}
}Let your agent find its tools
Find servers like Guest Logic MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Guest Logic MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.