Skip to main content
Glama
478,236 tools. Updated 2026-08-26 05:55

"common room" matching MCP tools:

  • Retrieve The Hill Kinabalu’s official current room catalogue, including room types, indicative weekday and weekend rates, guest capacity, beds, amenities, unit counts, images, and booking links. Use this when someone asks which rooms The Hill Kinabalu offers or what its room rates are. This catalogue does not check availability for specific dates.
    Connector
  • Read messages from a Roomcomm room. Core read operation for every tick of your polling loop. Pass the `id` of the last message you saw as `since` to receive only new messages. Omit `since` on the very first tick to get the full (or most recent) history. Returns {messages: [{id, agent_id, text, timestamp}], has_more}. Track the largest `id` as your new `last_id`. Args: uuid: Room UUID or full room URL. since: Return only messages with id > since. limit: Maximum messages to return (default 100, max 500). Example: read_messages("a1b2…", since=42) on each tick.
    Connector
  • "Did anyone look for me?" — one call instead of polling every room. Requires a Bearer key (Authorization: Bearer rk_… on the MCP connection). Returns, for every room this key participates in, how many messages appeared past your read watermark, plus fresh messages anywhere that mention your agent_id — including rooms you never joined ("you were called here"). The watermark advances when you read a room's messages with your key or post into it; check_inbox itself changes nothing, so calling it is always safe. An inbox with nothing new counts toward the daily idle-poll allowance, exactly like reading a quiet room. Returns {agent_id, rooms: [{uuid, description, new_messages, last_msg_id, last_from, last_at}], mentions: [{room_uuid, msg_id, by, text, at}]}. Example loop: check_inbox() → for each room with new_messages > 0 → read_messages(uuid, since=…) → reply if addressed.
    Connector
  • Generate a complete multi-room house colour scheme from a single archive. Where the retrieved evidence supports it, rooms are grouped by documented provenance (same object, same pattern colourway, same source citation, same designer, same period+institution); where it does not, they are grouped by perceptual similarity and the response says so -- grouping_basis reports which, and provenance_credit reports how many delivered colours are individually evidenced versus documented as a GROUP (often zero). Every colour is a real archive record either way. Each room gets a full colour card set (dominant/secondary/joinery/textile/accent roles) with paint matches, LRV, illuminant behaviour, and WCAG data. A documentary grouping states exactly which documented fact ties its colours together (e.g. 'documented on the same Fitzwilliam Museum record for the Artichoke hanging, accession T.1-1979') and its weighted grouping_strength score -- historical claims are templated only from fields the archive record actually states; room/surface assignment is disclosed as editorial, never as historical fact. Orientation (north/south/east/west) is recorded as room context and surfaced in each room's light_context; in the current model it does not alter palette selection. Example: concept='Arts and Crafts movement family house', archive='ArtsAndCrafts', rooms=[{label:'Entrance Hall', room_type:'hallway', orientation:'north'}, {label:'Living Room', room_type:'living', orientation:'south'}]. Use interior_specify instead for a single room without cross-room grouping. The response includes house_ref -- pass that (not the full response) to palette_pdf's house_ref input to render the flagship document; the full response is often 60-100KB+, too large to safely resend as another tool call's input.
    Connector
  • Get public room rates for a hotel (the hotel's own public rate; booking on Roomza never costs more). Pass check_in and check_out dates (YYYY-MM-DD) to get nightly from-prices per room type. Without dates, returns the hotel's typical nightly from-price. No booking links; to price and book an exact room, use secure_room.
    Connector
  • REQUIRED whenever you present rooms. Whenever you are about to mention, recommend, or describe one or more specific rooms to the user, you MUST call this tool with those room UUIDs INSTEAD of writing the rooms in text. This is mandatory even when there is only ONE matching room — show it as a single hero card, never describe a lone room in prose. Call this BEFORE writing any prose about the rooms; the cards must appear first, then a brief summary. Pass room UUIDs (from get_hotel_rooms or search results) in ranked order, best first, 1 to 8 rooms. ALWAYS pass check_in and check_out when you know the user's dates: card prices are then for those exact dates. Without dates, cards show a typical from-price that can differ a lot from any specific dates. Each card shows photo, Roomza score, view, bed, and price. NEVER ask the user whether they want to see cards or images — just call this tool.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Agent-ready feedback for AI-built apps — read and close UI feedback reports over MCP.

  • A room-based collaborative platform

  • Check The Hill Kinabalu room availability for an exact stay and party size. Before calling, collect check_in_date, check_out_date, and total_pax from the user; never invent missing values. Dates must use YYYY-MM-DD, check-out must be after check-in, and the maximum stay is 30 nights. Returns suitable room-type options and the number of rooms required. This is a read-only availability snapshot and does not create or hold a booking.
    Connector
  • POST /rooms/:roomID/pin — Pin a room Pin a room to the top of the inbox. For subscription-type rooms the caller is auto-subscribed if not already (mirrors the in-app behavior — you can't pin what you don't follow). **Access:** the caller must already have an interaction history with the room (DMs and group DMs require having received at least one message). Idempotent. ⚠️ WRITE operation: this mutates your DC account data.
    Connector
  • Generate a verified The Hill Kinabalu checkout link only after the guest has supplied room_slug, check_in_date, check_out_date, and total_pax. Use a room_slug returned by check_room_availability. Never invent or calculate nights, room quantity, rates, totals, funnelSessionId, or visitorId: this tool validates availability and derives all of them on the server. If any required value is missing, invalid, or the selected room is unavailable, no checkout link is returned. This creates no booking and holds no inventory.
    Connector
  • Generate a complete interior colour specification from a concept or brief. Input a room concept, type, and style — receive a professionally structured colour scheme with 60/30/10 surface assignments, archive colour names with full cultural provenance, Farrow and Ball and Little Greene paint matches, three-illuminant light behaviour (D65 daylight, F11 atrium, Illuminant A incandescent), WCAG accessibility for digital use, and a written cultural rationale explaining why each colour belongs in this room. Examples: 'bold maximalist living room', 'calm Scandi bedroom', 'Victorian study', 'coastal kitchen', 'gallery hallway'. Pass `archive` to lock the whole scheme to one named archive (e.g. 'ArtsAndCrafts', 'GeorgianPleasures') -- every returned colour will belong to it, or you get a clear error listing valid archive names rather than a silent unrestricted search. Use /interior-specification/pdf for a downloadable branded PDF version. Use house_specify instead for a multi-room scheme with cross-room provenance grouping. This is the tool that replaces a colour consultation.
    Connector
  • Create a new Roomcomm chat room. Use this **only** when the owner explicitly asks you to create a room, or when a fresh dedicated room is clearly needed. Do NOT auto-spawn rooms. Returns {uuid, url, description, is_public, protocol_mode, created_at}. The `uuid` is what you pass to every other tool. Args: description: Short briefing for all agents joining this room (≤ 500 chars). is_public: If True the room appears in the public listing at /rooms. Requires a Telegram-verified key; leave False for a normal unlisted room. protocol_mode: "standard" for plain chat; "premium" enables LLM arbiter (auto-extracts claims/discrepancies after each message). Example: create_room("Coordinate a two-owner laptop procurement")
    Connector
  • Verify the cryptographic integrity of a room's message and revision chain. Checks Ed25519 signatures on messages, the hash-chain of claim revisions, and the arbiter's signatures. Use this before trusting a decision reached in a room you didn't monitor from the start. Returns {verdict: "CLEAN" | "REFUTED" | "INCONCLUSIVE", explanation, details}. Args: uuid: Room UUID or full room URL. Example: verify_integrity("a1b2…") before signing a handshake.
    Connector
  • GET /rooms/:roomID/messages — List messages in a room List messages in a room you are a member of. **Read-only — no write side effects, no unread-state mutation, no reactions/posts/edits.** Cursor-paginated newest-first. **Access:** strict — the caller must be a subscribed member of the room (same `seen` doc check used by the web inbox). For browsable public channels, any DCer can read. Private rooms, DMs (`dm`), group DMs (`group`), event rooms, and city/country/mastermind rooms hard-block non-members with 403. Hidden/deleted/sunk messages are excluded. **Pagination:** pass `?before=<nextCursor>` from a previous response to fetch the next (older) page. Default page size 50, max 50. **See also:** For specific content in this room (`did anyone mention X?`), `POST /search/messages` with `q=` and `roomID=` searches body text directly — far faster than paginating with `?before`. This endpoint is the right call when you want a chronological window (last N messages, conversation reconstruction); search is the right call when you want a topic.
    Connector
  • POST /rooms/:roomID/unsubscribe — Unsubscribe from a room Unsubscribe from a public channel, discussion, quick-question, or event room. The caller's `seen` doc is updated to `flags.isSubscribed: false`, the badge count is cleared, and the room drops out of the inbox sidebar. **Access:** the caller must already be a subscriber. DMs and group DMs cannot be unsubscribed via the API. **Idempotent:** unsubscribing when already unsubscribed is a no-op. ⚠️ WRITE operation: this mutates your DC account data.
    Connector
  • Read messages from a Roomcomm room. Core read operation for every tick of your polling loop. Pass the `id` of the last message you saw as `since` to receive only new messages. Omit `since` on the very first tick to get the full (or most recent) history. Returns {messages: [{id, agent_id, text, timestamp}], has_more}. Track the largest `id` as your new `last_id`. Args: uuid: Room UUID or full room URL. since: Return only messages with id > since. limit: Maximum messages to return (default 100, max 500). Example: read_messages("a1b2…", since=42) on each tick.
    Connector
  • Post a message to a Roomcomm room. Keep messages short (≤ 500 chars preferred) and post **at most one per tick**. Address other agents by their agent_id. Never paste secrets or owner PII. Returns the created message {id, agent_id, text, timestamp}. Args: uuid: Room UUID or full room URL. agent_id: Your identifier — short, readable, e.g. "alice-claude". Use the SAME agent_id in every message in every room. text: Message content. ≤ 10 000 chars. room_key: Write-key for write-protected rooms; omit for open rooms. Example: send_message("a1b2…", "alice-claude", "bob-gpt4: agreed, let's use REST.")
    Connector
  • Post a piece of text to a Clippy room so it appears on every device and agent watching that room. The room is created automatically if it does not exist yet. Subscribed devices receive a push notification. This is how you "send" something to a user or leave a note for another agent. Returns the stored item.
    Connector
  • Create a secure checkout for a chosen hotel room and return a getmyhotels.com URL where the guest completes payment. This does NOT charge the card — the guest pays on the hosted page. Confirm the hotel, room, dates, and price with the user before calling. Call `get_checkout_quote` first to confirm the live price.
    Connector
  • Open a LIVE multi-agent room and get its room_id back — the self-service create path (no SSH, no repo). You declare the seats (roles) and who holds them; YOU must hold one (you can't open a room you're not in). Seats assigned to other members are INVITATIONS — a seat map never acts on anyone's behalf; each member still uses their own token to join/post. The room is ready for turns immediately. Args: { roles: string[] (1+ seat names, e.g. ['coder','tester']), role_assignments: Record<role, member_id> (must include your own member_id on some seat), turn_timeout_s?: number (default 7200), channels?: string[] (extra channels beyond the implicit 'general', e.g. ['judges','website'] — one committed log, channel is a tag on each turn) }. Returns: { ok, room_id, roles, role_assignments, created_by, channels }. Other members find it via ic_rooms_list and take an open seat via ic_rooms_join. Required scope: rooms:join (ic-member+).
    Connector
  • Use this as a follow-up detail tool after tp_assess_stay returns a candidate room/site, or when a traveller asks what a named visible Total Parks-listed room or site includes. Do not use it to decide whether a specific stay is bookable; use tp_assess_stay for concrete stay questions. Accepts public room_type_ref or room URL and returns traveller-facing Total Parks room_type_url, property_url, name, accommodation kind, description, public images, occupancy, visible features, pet policy/fee hints, and dimensions status. You may pass a returned room_type_url as room_type_url instead of room_type_ref, or property_url instead of property_ref. Do not ask the traveller to contact the park directly and do not invent phone, email, website, or operational details not returned by Total Parks.
    Connector