Skip to main content
Glama
realtycalendar-web-mcp

realtycalendar-web-mcp

by stek29

Check availability

check_availability
Read-onlyIdempotent

Check hotel room availability for stay dates and guest counts; see free, busy, held, or closed rooms by category, occupancy, prices, and booking rules.

Instructions

Rooms of the user's hotel in RealtyCalendar for a stay: per category which rooms are free, busy, on hold or closed, occupancy (загрузка), the price of the stay for the number of guests, and the booking rules for the dates: minimum stay (минимальный срок), no check-in / no check-out days. A room is bookable only if it is empty AND its category has capacity every night (unassigned bookings use capacity without a room): answer from bookable_rooms and stay_rules, not empty_rooms. Mention holds (заявки) on free rooms. Not for finding a booking: use list_bookings. Not for the user's own calendar, free time or meetings, staff schedules, other hotels or travel plans. Dates: today is in every result; stays are nights (check_out = departure day); a week is Monday to Sunday; "на выходные" = Friday and Saturday nights; a date without a year is the next one, or the last one when the user asks about the past. Say which dates you used.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "check_in": "<check_in>",
      "check_out": "<check_out>"
    },
    "name": "check_availability"
  }
}

Input Schema

NameRequiredDescriptionDefault
roomNoRoom (номер) title like "22" or "22-й", or its id; implies its category
detailNosummary = per category; rooms = also each room night by night with guests (что занято, кто где). Default: rooms when room or category is given
guestsNoOnly categories that take at least this many guests; doesn't change the price
categoryNoCategory (тип номера): id, number ("02") or title words; all matching categories are used. Words or a stem are enough: "улучшен", "двухмест", "коттедж".
check_inYesArrival day, YYYY-MM-DD (hotel-local)
check_outYesDeparture day, YYYY-MM-DD; after check_in, at most 62 nights. One night on X: X+1; for the rules of a day, too

Output Schema

NameRequiredDescriptionDefault
todayYes
nightsYes
check_inYes
currencyYes
check_outYes
categoriesYes
today_weekdayYes
check_in_weekdayYes
check_out_weekdayYes
matched_categoriesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, so the description's added value is semantic: it explains that a room is bookable only when empty AND its category has capacity every night, that unassigned bookings consume capacity without a room, and that the agent must answer from bookable_rooms and stay_rules rather than empty_rooms. That is a non-obvious behavioral rule an agent could easily get wrong, plus a reminder to surface holds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and the bookable-vs-empty rule are front-loaded, and most sentences earn their place. It is dense though, with Russian glosses and a fairly long exclusion list that adds bulk for a single-tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter, read-only availability query with an output schema and full annotation coverage, the description supplies everything needed to call it correctly: scope, date semantics, the bookability rule, and sibling routing. Return-value details can be left to the output schema, and the description does not need to repeat them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds genuine meaning for the date parameters by defining how ambiguous dates resolve (next occurrence, or the last one for past queries) and what a 'weekend' means. It does not add much for room/category/guests beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete verb and resource (room availability for a stay in RealtyCalendar) and enumerates exactly what comes back: per-category free/busy/on-hold/closed rooms, occupancy, price for the guest count, and booking rules. It is immediately distinguishable from list_bookings and from personal-calendar tooling, which it explicitly rules out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-not guidance with named alternatives ('Not for finding a booking: use list_bookings', plus exclusions for the user's calendar, staff schedules, other hotels), and it spells out date conventions ('на выходки' = Friday and Saturday nights, yearless dates resolve forward except for past queries) and instructs the agent to state which dates it used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.