Hotel PMS: set up your property from your assistant, then read stays, rooms and availability.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Public https address of the picture
true to make it the main photo
Short caption
Room type code or name, for a room-type photo; leave out for the hotel
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http guest-logic https://guestlogic.ai/mcp
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.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public https address of the picture |
| cover | boolean | true to make it the main photo |
| caption | string | Short caption |
| room_type | string | Room type code or name, for a room-type photo; leave out for the hotel |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| note | string | Anything the team should know |
| what* | string |
{
"type": "object",
"required": [
"what"
],
"properties": {
"note": {
"type": "string",
"description": "Anything the team should know"
},
"what": {
"enum": [
"cards",
"channels",
"white_glove"
],
"type": "string"
}
},
"additionalProperties": false
}The last runs of the hotel's automations: when, result, error. Needs the owner's sign-in.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Rooms free each night by room type for a date range (up to 31 days). Needs the owner's sign-in.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last night YYYY-MM-DD |
| from* | string | First night YYYY-MM-DD |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| step* | string | |
| values | object | The values for that step (see the description) |
{
"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
}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.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}For one day: arrivals, departures, in house, rooms by housekeeping status, rooms out of order. Needs the owner's sign-in.
| Argument | Type | Description |
|---|---|---|
| date | string | Day YYYY-MM-DD (default today) |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Day YYYY-MM-DD (default today)"
}
},
"additionalProperties": false
}E-mails a sign-in to a front-desk employee or a manager. Needs the owner's sign-in.
| Argument | Type | Description |
|---|---|---|
| role | string | |
| email* | string | Their e-mail |
| full_name* | string | Their full name |
{
"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
}The hotel's automations: what each sends, when, and whether it is on. Needs the owner's sign-in.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| confirm | boolean | true to load |
{
"type": "object",
"required": [],
"properties": {
"confirm": {
"type": "boolean",
"description": "true to load"
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Sets the hotel's logo from a public web address (PNG, JPEG or WebP, up to 10 MB). Needs the owner's sign-in.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public https address of the logo |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https address of the logo"
}
},
"additionalProperties": false
}The 12 setup steps: done or open, what was found for each, what needs a decision, and the reports already read. Needs the owner's sign-in.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Creates the hotel in Guest Logic in free test mode. Use only when the owner has no Guest Logic account. After it, any other tool opens the sign-in for that e-mail. No sign-in needed.
| Argument | Type | Description |
|---|---|---|
| email* | string | Owner e-mail (becomes the sign-in) |
| mobile* | string | Owner mobile number |
| hotel_name* | string | Hotel name |
| owner_name* | string | Owner full name |
{
"type": "object",
"required": [
"owner_name",
"mobile",
"email",
"hotel_name"
],
"properties": {
"email": {
"type": "string",
"description": "Owner e-mail (becomes the sign-in)"
},
"mobile": {
"type": "string",
"description": "Owner mobile number"
},
"hotel_name": {
"type": "string",
"description": "Hotel name"
},
"owner_name": {
"type": "string",
"description": "Owner full name"
}
},
"additionalProperties": false
}One stay by its confirmation number. Needs the owner's sign-in.
| Argument | Type | Description |
|---|---|---|
| confirmation* | string | Confirmation number |
{
"type": "object",
"required": [
"confirmation"
],
"properties": {
"confirmation": {
"type": "string",
"description": "Confirmation number"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to* | string | Last night YYYY-MM-DD |
| from* | string | First night YYYY-MM-DD |
| page | integer | |
| status | string |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| rooms | array | |
| stays | array |
{
"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
}Open tasks on the signed-in person's Home board. Needs the owner's sign-in.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| content* | string | The report as text |
| filename* | string | Name for the report, e.g. bookings.csv |
{
"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
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 3, 2026.