Skip to content

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.

Tools: 1 delete, 4 irreversible, 11 write, 3 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
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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    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
  • 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.

      Matched text

      description: "...r has no Guest Logic account. After it, any other tool opens the sign-in for that e-mail. No s..."

      What this check looks for
    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".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "open": a word for a change.

      What this check looks for
    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.

6 warn
  • The description contains "any other tool", wording about other tools or servers.

    Matched text

    description: "...r has no Guest Logic account. After it, any other tool opens the sign-in for that e-mail. No s..."

    What this check looks for
  • The server marks "drop_link" read-only (readOnlyHint: true), and its own name, description or input give the class "destructive".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.

    What this check looks for
  • The server marks "drop_link" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "drop_link" says "drop": a word for removing or ending something.

    What this check looks for
  • Warnstays

    The server marks "stays" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "availability" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "tasks_waiting_on_me" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "open": a word for a change.

    What this check looks for

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/mcp
claude mcp add --transport http guest-logic https://guestlogic.ai/mcp

Run 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.

.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.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for ai.guestlogic/guest-logic
[![anlyon.dev](https://anlyon.dev/badge/ai.guestlogic/guest-logic.svg)](https://anlyon.dev/servers/ai.guestlogic/guest-logic)

Source: MCP Registry. Synced Nov 3, 2026, 13:17 UTC.