Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the apaleo in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Hotel operations in the apaleo cloud property management system: properties, rooms and room types, rate plans and rates, availability and offers, bookings, reservations and guests, groups, folios, payments, invoices, maintenance, housekeeping and performance reports. Creates bookings, assigns rooms and checks guests in and out. Connects as an app with OAuth2 client credentials; cancellations and no-shows install switched off.
Try asking
Example prompts for apaleo
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → apaleo, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
apaleo + Gemini
Hotel operations in the apaleo cloud property management system: properties, rooms and room types, rate plans and rates, availability and offers, bookings, reservations and guests, groups, folios, payments, invoices, maintenance, housekeeping and performance reports. Creates bookings, assigns rooms and checks guests in and out. Connects as an app with OAuth2 client credentials; cancellations and no-shows install switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
APALEO_CLIENT_ID, APALEO_CLIENT_SECRET
Step 1 — Get credentials
Setting up takes about 5 minutes. You need an apaleo account with access to Apps. There is no browser sign-in: the connector authenticates as an app with the OAuth2 client credentials grant.
- In apaleo open Apps > Connected apps > Add a custom app (or on apaleo.dev register an OAuth simple client with client credentials).
- Give the app the permissions the team needs. For reading, for example
properties.read,unitgroups.read,units.read,rateplans.read,rates.read,services.read,companies.read,availability.read,offers.read,reservations.read,groups.read,blocks.read,folios.read,payments.read,invoices.read,maintenances.readandreports.read; for the writesreservations.create,reservations.manage,reservations.assign-unit,maintenances.createandoperations.change-room-state. Leave out the write permissions for a read-only connector. - Copy the client id into
APALEO_CLIENT_IDand the client secret intoAPALEO_CLIENT_SECRET. The secret is shown only once; if it is lost, create a new one in the app. - Install the connector and run
apaleo_list_propertiesto check the connection.
The connector gets a token from https://identity.apaleo.com/connect/token and renews it every hour. Every call runs as the custom app with its permissions; a permission the app lacks answers 403.
What it reads:
- Inventory and rates: properties (hotels), unit groups (room types), units (rooms) with condition and maintenance, rate plans, prices per night with restrictions (
apaleo_list_rates), services (extras such as breakfast or parking), cancellation policies and companies (corporate accounts). - Availability and offers: rooms left per room type and night (
apaleo_get_unit_group_availability), rooms free for a whole stay (apaleo_get_unit_availability), rooms that can be assigned to a reservation, andapaleo_get_offers, the bookable rate plans with prices for one stay. - Bookings and reservations:
apaleo_list_reservationswithtext_search(name, email, reservation id) anddate_filterArrival, Departure or Stay together withfromandto;apaleo_count_reservationscounts without loading them. Bookings, reservation services, groups and blocks. Guests are part of reservations (primaryGuest, additionalGuests) and bookings (booker). - Billing: folios (guest bills, found by
reservation_ids), folio payments and invoices. - Operations and reports: maintenance windows, property performance (occupancy, ADR, RevPAR), revenues by account with net, gross and VAT (for a period of at most one year) and arriving reservations per day of a month.
What it writes:
- Bookings:
apaleo_create_bookingwith the ratePlanId and one timeSlice per night taken fromapaleo_get_offers.apaleo_update_bookingandapaleo_update_reservationtake JSON Patch operations such as[{"op": "replace", "path": "/comment", "value": "Late arrival"}].apaleo_amend_reservationchanges arrival, departure, number of guests, rate plan and price per night. - Front desk:
apaleo_assign_unit(apaleo picks a free room) orapaleo_assign_specific_unit,apaleo_unassign_units,apaleo_check_in_reservation(undo withapaleo_revert_check_in) andapaleo_check_out_reservation, which posts all open charges on the folio and only works when the departure is not later than tomorrow. - Housekeeping and maintenance:
apaleo_set_unit_conditions(Clean, CleanToBeInspected, Dirty) andapaleo_create_maintenance(OutOfService, OutOfOrder, OutOfInventory).
Bookings, check-ins and check-outs change the live hotel, so the AI shows you what it is about to change and waits for your yes.
Switched off at install: apaleo_cancel_reservation (the cancellation fee of the rate plan's policy applies, and a canceled reservation cannot be reactivated) and apaleo_set_reservation_no_show (posts the no-show fee to the folio and cannot be reverted). An admin switches them on when the team needs them.
Data formats: ids are readable codes: a property MUC, a unit group MUC-DBL, a unit MUC-101, a rate plan MUC-FLEX-DBL, a booking ABCDEF, its reservations ABCDEF-1 and ABCDEF-2, a folio ABCDEF-1-1. Money is {"amount": 120.0, "currency": "EUR"} in major units; a reservation's balance is negative when the guest still owes money. Dates are YYYY-MM-DD; times are ISO 8601 with the property's UTC offset. A night belongs to the business day it starts on; to is included for availability and performance, excluded for the revenues report. Reservation status is Confirmed, InHouse, CheckedOut, Canceled or NoShow. Filters with several values are comma-separated without spaces (status: Confirmed,InHouse), and expand adds embedded objects (expand: booker,assignedUnits).
Paging: lists take page_number (from 1) and page_size (up to 500) and return the total in count. A page past the end answers 204 No Content, which means there is nothing more.
Common errors: 401 means a wrong client id or secret or an expired token. 403 means a permission missing on the custom app. 404 is an unknown id. 422 is a business rule, for example a check-in before the arrival day, no unit assigned or a sold-out offer, with the reason in messages. 429 is the rate limit.
The connector does not post charges or payments, does not create invoices, does not change rate plans, prices or inventory, and does not manage apaleo users or apps.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Gemini
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Gemini CLI reads MCP servers from ~/.gemini/settings.json (on Windows %USERPROFILE%\.gemini\settings.json). Add:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart
gemini. - Run
/mcpinside Gemini CLI (orgemini mcp listin your shell):anythingmcpshould show as connected. - Start prompting: Gemini CLI can now call the
apaleotools.
Available tools
| Tool | What it does |
|---|---|
apaleo_list_properties | List the properties (hotels) of the account with id, code, name, address, time zone, currency and status (Test or Live) |
apaleo_get_property | One property with address, company and bank details, time zone, currency, payment terms, check-in and check-out times and description |
apaleo_list_unit_groups | List unit groups (room types and other sellable unit kinds) with code, name, member count, max persons, rank and type |
apaleo_get_unit_group | One unit group with its description, max persons, member count and type |
apaleo_list_units | List units (rooms) with name, unit group, max persons, status (isOccupied, condition Clean, CleanToBeInspected or Dirty, maintenance) and… |
apaleo_get_unit | One unit (room) with its unit group, status, condition, maintenance and attributes |
apaleo_list_rate_plans | List rate plans with code, name, unit group, channel codes, cancellation and no-show policy, minimum guarantee and whether they are derived… |
apaleo_get_rate_plan | One rate plan with its pricing rule, restrictions, policies, included services and channels |
apaleo_list_rates | Prices of one rate plan per time slice (night) in a period: the gross price, restrictions (min and max length of stay, closed, closed on… |
apaleo_list_services | List services (extras such as breakfast or parking, and services included in rate plans) with code, name, default gross price, pricing unit… |
apaleo_list_cancellation_policies | List cancellation policies with name, description, the period before arrival in which a fee applies and the fee |
apaleo_list_companies | List companies (corporate accounts) with code, name, address, tax id and the rate plans and corporate codes they can book |
apaleo_get_unit_group_availability | Availability per unit group and night for a property: units available to sell, house count, occupied units, blocked units and maintenance |
apaleo_get_unit_availability | Units (rooms) that are free during the whole period, optionally of one unit group or in one housekeeping condition |
apaleo_list_available_units_for_reservation | Units that can be assigned to a reservation for its stay (or for part of it), for choosing a room before apaleo_assign_specific_unit |
apaleo_get_offers | Bookable offers for one stay: for each rate plan and unit group the total gross amount, the price per night (timeSlices), available units… |
apaleo_list_bookings | List bookings (the booker plus one or more reservations). text_search finds a booker by last name, first name, email or company |
apaleo_get_booking | One booking with the booker, payment account, comments and its reservations |
apaleo_list_reservations | List reservations with status, arrival and departure, adults, primary guest, unit group, assigned unit, rate plan, total gross amount… |
apaleo_count_reservations | Number of reservations matching the same filters as apaleo_list_reservations, without loading them (for example how many arrivals tomorrow) |
apaleo_get_reservation | One reservation with primary and additional guests, booker, stay, unit group, assigned units, rate plan, prices per night, services… |
apaleo_list_reservation_services | Services booked for a reservation (included and extras) with dates, count and gross amount |
apaleo_list_groups | List group bookings with name, booker, property, blocks and status. text_search looks in group name, booker name, email and company |
apaleo_get_group | One group booking with its booker, comments, payment account, property and blocks |
apaleo_list_blocks | List blocks (room allotments of groups) with unit group, rate plan, period, blocked and picked-up units and status (Tentative, Definite… |
apaleo_list_folios | List folios (guest bills) with debitor, reservation, booking, balance, status (Open or Closed) and type |
apaleo_get_folio | One folio with its charges, transitory charges, payments, allowances, balance, related invoices and allowed actions |
apaleo_list_folio_payments | Payments posted on a folio with method, amount, status and time |
apaleo_list_invoices | List invoices (metadata only) with number, date, recipient, folio, reservation, total, outstanding payment and status (FullyPaid, Unpaid… |
apaleo_get_invoice | One invoice with recipient, lines, taxes, payments and totals |
apaleo_list_maintenances | List maintenance windows of units: OutOfService (still sellable but flagged), OutOfOrder (not sellable) or OutOfInventory, with period and… |
apaleo_get_property_performance_report | Property performance per period: occupancy, ADR (average daily rate), RevPAR, sold and available units and revenues, optionally per… |
apaleo_get_revenues_report | Revenues of a property by account (accommodation, food and beverages, other) with net and gross amounts and VAT, for a period of at most… |
apaleo_get_arrivals_report | Number of arriving reservations per day in one month for a property, for staffing plans |
apaleo_create_booking | Create a booking with one or more reservations |
apaleo_update_booking | Change booking fields with JSON Patch operations: replace the booker (the whole object), or add, replace or remove the comment, booker… |
apaleo_update_reservation | Change reservation fields with JSON Patch operations: replace the primary guest (the whole object), add, replace or remove additional… |
apaleo_amend_reservation | Change the stay of a reservation: arrival, departure, number of guests and the rate plan and price per night |
apaleo_assign_unit | Let apaleo pick and assign a free unit (room) of the reserved unit group to a reservation |
apaleo_assign_specific_unit | Assign a given unit (room) to a reservation, for the whole stay or part of it |
apaleo_unassign_units | Remove the assigned units (rooms) from a reservation, for example before assigning another room |
apaleo_check_in_reservation | Check in a Confirmed reservation that has a unit assigned: status becomes InHouse and the check-in time is set |
apaleo_revert_check_in | Undo the check-in of a reservation (status back to Confirmed), for a check-in done by mistake |
apaleo_check_out_reservation | Check out an InHouse reservation: status becomes CheckedOut and all open charges on the folio are posted |
apaleo_cancel_reservation | Cancel a Confirmed reservation whose arrival is in the future: status becomes Canceled; the cancellation fee of the rate plan's policy… |
apaleo_set_reservation_no_show | Mark a reservation whose guest did not arrive as NoShow |
apaleo_create_maintenance | Create a maintenance window for a unit: OutOfService (flagged but sellable), OutOfOrder (not sellable) or OutOfInventory (removed from the… |
apaleo_set_unit_conditions | Set the housekeeping condition of one or more units, for example after cleaning |
Example prompts
- "Which reservations arrive today at MUC, and which of them still have no room assigned?"
- "How many double rooms are still free next Friday and Saturday, and what does the flexible rate cost for both nights?"
- "Show me occupancy, ADR and RevPAR for last month compared with the month before."
- "Assign a clean room to reservation ABCDEF-1 and check the guest in."
- "Mark rooms MUC-101 to MUC-105 as clean and put MUC-210 out of order until Monday because of a broken shower."
FAQ
Where does Gemini CLI look for MCP servers? In ~/.gemini/settings.json for your user, or in .gemini/settings.json inside a project. gemini mcp list shows each server and whether it connects.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?