Guest Logic
ai.guestlogic/guest-logicguestlogic.aistreamable-httpv1.0.0Scanned
Hotel PMS: set up your property from your assistant, then read stays, rooms and availability.
19 tools: 1 can delete or cancel things, 4 do something that can't be undone, 11 change things and 3 only read.
- Reads private data · 0
- Reads text others write · 0
- Can send data out · 5
- 6 findings
Anlyon alternative
16 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
19 tools
Deletes or cancels 1Claude Code: deny
drop_linkThe owner's links to drop files you cannot send as text (a scanned PDF) and to manage photos.2 findings
Why it is in this group
- The name "drop_link" says "drop": a word for removing or ending something.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "drop_link" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.
- Warn
The server marks "drop_link" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.
Description, as the server wrote it 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.
Annotations the server declares
- title: Links to upload files by hand
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Can't be undone 4Claude Code: ask
availabilityRooms free each night by room type for a date range (up to 31 days).Can send data out1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Rooms free each night by room type for a date range (up to 31 days). Needs the owner's sign-in.
Annotations the server declares
- title: Rooms free each night
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
invite_staffE-mails a sign-in to a front-desk employee or a manager.Can send data outNo findings
Why it is in this group
- The name "invite_staff" says "invite": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "invite_staff" says "invite": it sends or publishes something to other people.
Description, as the server wrote it E-mails a sign-in to a front-desk employee or a manager. Needs the owner's sign-in.
Annotations the server declares
- title: Invite a staff member
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
staysStays touching a date range (up to 31 days): confirmation, guest, dates, room, type, status, rate, source.Can send data out1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "stays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Stays in a date range
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
upload_reportSends 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.No findings
Why it is in this group
- The name "upload_report" says "upload": a word for a change.
- The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Upload a report
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
Changes things 11Claude Code: ask
add_photoAdds 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.Can send data outNo findings
Why it is in this group
- The name "add_photo" says "add": a word for a change.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote 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.
Annotations the server declares
- title: Add a photo
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
ask_usAsks the Guest Logic team to connect card payments, Expedia and Booking.com, or to finish the whole setup by hand.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Ask Guest Logic to connect something
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
confirm_factsConfirms or changes one setup step.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Confirm or change a step
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
house_inventoryFor one day: arrivals, departures, in house, rooms by housekeeping status, rooms out of order.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it For one day: arrivals, departures, in house, rooms by housekeeping status, rooms out of order. Needs the owner's sign-in.
Annotations the server declares
- title: The house on one day
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
load_staysLoads the stays read from the reports into the hotel.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Load the stays
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
my_hotelThe hotel's details: name, address, phone, rooms, check-in and check-out, taxes, and whether it is in test mode.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Your hotel
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
set_logoSets the hotel's logo from a public web address (PNG, JPEG or WebP, up to 10 MB).Can send data outNo findings
Why it is in this group
- The name "set_logo" says "set": a word for a change.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Sets the hotel's logo from a public web address (PNG, JPEG or WebP, up to 10 MB). Needs the owner's sign-in.
Annotations the server declares
- title: Set the logo
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
start_signupCreates the hotel in Guest Logic in free test mode.1 finding
Why it is in this group
- The name "start_signup" says "start": a word for a change.
Findings
- Warn
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...r has no Guest Logic account. After it, any other tool opens the sign-in for that e-mail. No s..."
Description, as the server wrote it 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.
Annotations the server declares
- title: Start a hotel (no account yet)
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
- idempotentHint: false
stayOne stay by its confirmation number.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it One stay by its confirmation number. Needs the owner's sign-in.
Annotations the server declares
- title: One stay
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
submit_factsRooms and stays you already extracted, as rows.No findings
Why it is in this group
- The name "submit_facts" says "submit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Send rooms or stays you already read
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
tasks_waiting_on_meOpen tasks on the signed-in person's Home board.1 finding
Why it is in this group
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "tasks_waiting_on_me" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "open": a word for a change.
Description, as the server wrote it Open tasks on the signed-in person's Home board. Needs the owner's sign-in.
Annotations the server declares
- title: Tasks waiting on me
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Only reads 3Show 3 read-only tools
automation_statusThe last runs of the hotel's automations: when, result, error.No findings
Why it is in this group
- The name "automation_status" says "status": a word for reading.
Description, as the server wrote it The last runs of the hotel's automations: when, result, error. Needs the owner's sign-in.
Annotations the server declares
- title: Recent automation runs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_automationsThe hotel's automations: what each sends, when, and whether it is on.No findings
Why it is in this group
- The name "list_automations" says "list": a word for reading.
Description, as the server wrote it The hotel's automations: what each sends, when, and whether it is on. Needs the owner's sign-in.
Annotations the server declares
- title: Automations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
setup_statusThe 12 setup steps: done or open, what was found for each, what needs a decision, and the reports already read.No findings
Why it is in this group
- The name "setup_status" says "status": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Setup checklist
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out5
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Warnstart_signup
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...r has no Guest Logic account. After it, any other tool opens the sign-in for that e-mail. No s..."
- Warndrop_link
The server marks "drop_link" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.
- Warndrop_link
The server marks "drop_link" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.
- Warnstays
The server marks "stays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
- Warnavailability
The server marks "availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
The server marks "tasks_waiting_on_me" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "open": a word for a change.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http guest-logic https://guestlogic.ai/mcpclaude mcp add --transport http guest-logic https://guestlogic.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__guest-logic__setup_status",
"mcp__guest-logic__list_automations",
"mcp__guest-logic__automation_status"
],
"ask": [
"mcp__guest-logic__start_signup",
"mcp__guest-logic__my_hotel",
"mcp__guest-logic__upload_report",
"mcp__guest-logic__submit_facts",
"mcp__guest-logic__confirm_facts",
"mcp__guest-logic__load_stays",
"mcp__guest-logic__add_photo",
"mcp__guest-logic__set_logo",
"mcp__guest-logic__ask_us",
"mcp__guest-logic__invite_staff",
"mcp__guest-logic__stays",
"mcp__guest-logic__stay",
"mcp__guest-logic__availability",
"mcp__guest-logic__house_inventory",
"mcp__guest-logic__tasks_waiting_on_me"
],
"deny": [
"mcp__guest-logic__drop_link"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as guest-logic. Review it before you use it.
Capability tags behind 5 rules
- mcp__guest-logic__add_photo outbound
- mcp__guest-logic__set_logo outbound
- mcp__guest-logic__invite_staff outbound
- mcp__guest-logic__stays outbound
- mcp__guest-logic__availability outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/ai.guestlogic/guest-logic/verify?hash=f5c8d4b1053d44bf3a194f4f545472dc5e899072b4c8cc9945e8149caff4b93e" | jq -e '.changed == false'Pinned hash f5c8d4b1053d, from Nov 3, 2026, 13:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/ai.guestlogic/guest-logic/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/ai.guestlogic/guest-logic)Source: MCP Registry. Synced Nov 3, 2026, 13:17 UTC.