create_expense
Create a new expense record for a listing in Guesty.
Run a short-let portfolio from the chat window — reservations, calendars, pricing, guest messages, tasks and reviews — across a Guesty account.
LABSCO SUMMARY
Version 0.11.3 opened everything: reservation, listing, calendar and pricing writes, guest messaging and the property-health tools all run with no license key. That makes this a management surface, not only a reporting one — an agent can change prices and message guests, so settle which of those you want it doing first. Two notes from the author are worth carrying: Guesty's reservations endpoint returns only future data, so historical questions go through the calendar instead, and the server runs in production on the author's own rental portfolio.
A client for a Guesty property-management account, with write and guest-messaging tools alongside the reads as of version 0.11.3.
A Guesty account with API access, on the Professional plan or higher, and an API application with the open-api scope, created under Settings, API in the Guesty dashboard — the client ID and secret go in GUESTY_CLIENT_ID and GUESTY_CLIENT_SECRET. Run it with npx guesty-mcp-server over stdio. No license key is needed: GUESTY_MCP_LICENSE_KEY is optional and changes nothing.
One command plus credentials — npx guesty-mcp-server, then supply credentials
USE CASES
Filter reservations by date and listing rather than opening the Guesty calendar.
Search by guest name, email or confirmation code, then read the guest's profile.
Revenue and payouts on one side, recorded expenses on the other, with the owner statement on top.
Occupancy over a date range per listing, alongside revenue aggregated across all of them.
Read the tasks against the arrivals rather than checking two systems.
Reviews from every connected channel in one place, with the channel list beside them.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
create_expenseCreate a new expense record for a listing in Guesty.
create_reservationCreate a new reservation/booking in Guesty. Use for direct bookings from your website.
create_reservation_noteAdd an internal note to a reservation visible only to the property management team.
create_taskCreate a cleaning or maintenance task for a listing.
create_webhookRegister a new webhook to receive event notifications from Guesty.
delete_webhookDelete a registered webhook by ID.
get_account_infoGet current Guesty account information and subscription details.
get_automation_rulesList automation and workflow rules configured in Guesty.
get_calendarFetch calendar availability and pricing for a listing over a date range.
get_calendar_blocksGet blocked dates and their reasons for a listing over a date range.
get_channelsList connected booking channels (Airbnb, VRBO, Booking.com, etc.) and their status.
get_conversationsFetch guest conversations/messages from Guesty. Get message history for a reservation or listing.
get_custom_fieldsFetch custom fields configured for listings or reservations.
get_expensesFetch operational expenses tracked in Guesty.
get_financialsFetch financial data including revenue, payouts, and reservation financials.
get_guest_by_idGet detailed guest profile by guest ID.
get_guestsFetch guest database/profiles. Search by name or email.
get_license_infoShow current license tier, available tools, and upgrade information.
get_listingFetch details about a specific property listing or all listings.
get_listing_occupancyCalculate occupancy rate for a listing over a date range.
get_listing_pricingGet pricing details for a listing including base price, weekly/monthly discounts, and extra fees.
get_maintenance_alertsList or filter open maintenance alerts for a specific property or across the whole portfolio. Supports severity filtering and active-only (unresolved) filtering. IoT-sourced today; future Phase will merge Guesty-native task alerts.
get_owner_statementsFetch owner revenue statements/reports for properties.
get_photosFetch photos for a specific listing including URLs, captions, and sort order.
get_property_healthAggregate health signal per property: IoT device status + overall IoT state, current reservation status, 50-review average score, and last-clean timestamp. Single-call snapshot for ops dashboards. Sub-fetches that fail degrade gracefully (null value + error note).
get_readiness_scoreCalculate a 0-100 Physical Readiness Score for a property before guest check-in. Evaluates temperature, leak detection, door lock, humidity, critical alerts, and baseline photos.
get_reservation_financialsGet detailed financial breakdown for a specific reservation including payments, charges, and adjustments.
get_reservationsFetch reservations from Guesty. Filter by date range, listing, status, or guest name.
get_revenue_summaryGet aggregated revenue summary across all or specific listings for a date range.
get_reviewsFetch guest reviews for your properties from all channels.
get_supported_languagesGet supported languages configured for a listing.
get_tasksFetch cleaning and maintenance tasks from Guesty.
get_webhooksList all registered webhooks for your Guesty account.
respond_to_reviewPost a response to a guest review.
search_reservationsSearch reservations by guest name, email, or confirmation code.
send_guest_messageSend a message to a guest in a Guesty conversation.
submit_checkout_photosAccept post-checkout photo uploads and log them to the property's maintenance/cleaning record. Photos are queued for downstream inspection workflows (Phase 2 vision comparison).
update_calendarBlock or unblock dates, set minimum nights, or update availability for a listing.
update_listingUpdate listing details such as title, description, amenities, min nights, and max guests.
update_listing_pricingUpdate pricing for a listing — base price, cleaning fee, extra person fee, and discounts.
update_photosReplace or reorder photos for a listing. Provide the full array of photos in desired order.
update_pricingUpdate the base price for a listing on specific dates or the default base price.
update_reservationUpdate reservation details such as status, dates, guest info, or add notes.
BEFORE YOU INSTALL
43 tools when we connected. All free. Version 0.11.3 has one more than we saw when we connected, 44 in all: 25 that read your Guesty account, 14 that change it or message guests, 4 property-health tools, plus get_license_info, which reports the server's own licensing state and makes no Guesty API call.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 43 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx guesty-mcp-server{
"mcpServers": {
"guesty": {
"command": "npx",
"args": [
"-y",
"guesty-mcp-server"
],
"env": {
"GUESTY_CLIENT_ID": "<YOUR_GUESTY_CLIENT_ID>",
"GUESTY_CLIENT_SECRET": "<YOUR_GUESTY_CLIENT_SECRET>"
}
}
}
}Add this to your project's .mcp.json. In the Guesty dashboard, create an API application with the open-api scope under Settings → API; <YOUR_GUESTY_CLIENT_ID> and <YOUR_GUESTY_CLIENT_SECRET> are its Client ID and Client Secret.