Skip to main content
Glama

1Stay — Hotel Booking via MCP

The first MCP server that completes real hotel reservations inside AI conversations. Not search-and-redirect. Not affiliate links. A confirmed booking with a real confirmation number — where your loyalty points accrue and your elite status benefits apply.

Builders monetize every booking via Stripe Connect — set your own fee, get paid directly. Turn any AI agent into a revenue-generating travel assistant.

Built by Stayker (WPF Holdings, LLC), a licensed travel technology company built on proven travel distribution architecture. When you book through 1Stay, the hotel is the merchant of record — your stay is treated exactly like a direct booking.

npm version 1Stay Hotel Booking MCP server 1Stay-mcp MCP server

Quick Start

npx (fastest)

npx 1stay-mcp

Claude Desktop / ChatGPT / Cursor / Windsurf

Add to your MCP configuration:

{
  "mcpServers": {
    "1stay": {
      "url": "https://mcp.stayker.com/mcp"
    }
  }
}

Claude Code

claude mcp add 1stay --transport http https://mcp.stayker.com/mcp

Try It Now

Playground: 1stay.ai/playground — test all 8 tools in your browser, no setup required.

MCP Endpoint: https://mcp.stayker.com/mcp Protocol: Streamable HTTP | MCP SDK v1.27.1 | Latest protocol version 2025-11-25 Supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07

Related MCP server: @striderlabs/mcp-airbnb

Features

  • 300,000+ properties across 140+ countries — major chains, independents, boutiques

  • Real confirmation numbers — not affiliate links, not redirects

  • Loyalty program eligible — Hilton, Marriott, IHG points accrue, elite status applies

  • Stripe Connect monetization — builders set their own booking fee and get paid directly

  • Secure checkout — payment handled on PCI-compliant page, never in the AI conversation

  • Live rates — real-time pricing from travel distribution networks, not cached or scraped

Tools

Tool

Description

Annotations

search_hotels

Search hotels by location, dates, guests, and optional filters

readOnlyHint: true

get_hotel_details

Get room types, amenities, images, and live rates for a specific property

readOnlyHint: true

book_hotel

Create a reservation and receive a secure checkout URL

idempotentHint: true

lookup_booking

Look up a reservation with identity verification

readOnlyHint: true

resend_confirmation

Resend confirmation email to guest

openWorldHint: true

get_booking

Look up a reservation by booking ID or confirmation number

readOnlyHint: true

cancel_booking

Cancel an existing reservation

destructiveHint: true

search_tools

List available 1Stay tools, optionally filtered by keyword

readOnlyHint: true

For Builders — Monetize with Stripe Connect

1Stay lets developers and AI builders earn on every hotel booking their agent completes. Connect your Stripe account, set your booking service fee, and get paid directly when guests check out.

Get started: 1stay.ai/apply

Authentication

1Stay uses OAuth 2.0 authorization code flow. When connecting through Claude, the OAuth handshake is handled automatically. You'll need a valid 1Stay account to authenticate.

How Booking Works

1Stay uses a secure link handoff model for payment:

  1. Search and select happen inside the AI conversation

  2. Guest details (name, email) are collected in conversation to create the reservation

  3. Payment is completed on a secure, PCI-compliant checkout page — outside the AI layer

  4. Confirmation is delivered via email with your hotel confirmation number

Credit card and payment information never passes through the AI conversation. The checkout URL is valid for approximately 30 minutes.

Examples

Search hotels for an upcoming trip

User prompt: "I need a hotel in downtown Charlotte for May 7-10, two adults."

1Stay searches available properties, returns hotels with nightly rates, star ratings, and distance from city center. Ask follow-ups to narrow by price, brand, or amenities.

Get details and book a room

User prompt: "Show me room options, then book the king room."

1Stay retrieves live room types, rates, and cancellation policies. Provide guest name and email — 1Stay creates the reservation and returns a secure checkout URL.

Look up and manage a reservation

User prompt: "I need to look up my reservation — Amy Barker, amy@stayker.com"

1Stay verifies your identity and returns the confirmation number and booking summary in conversation. Ask to resend the confirmation email or cancel directly in conversation.

Coming Soon

  • Event-aware inventory — search and book around tournaments, weddings, and conferences with venue-based search and organizer tools

  • SMS concierge — opt-in post-booking updates and itinerary support via text

  • Multi-room coordination — group booking tools for teams, families, and event attendees

Support

About Stayker

Stayker is a travel technology company that powers hotel reservations for events, organizations, and brands. Built on proven travel distribution architecture — live worldwide inventory, no middlemen, no markups, no affiliate redirects. Hotels are the merchant of record on every booking.

Headquarters: Charlotte, NC

Build. Book. Connect.

License

Proprietary. © 2026 WPF Holdings, LLC. All rights reserved. See LICENSE.

Versions 1.1.0 and earlier were distributed under the MIT License and remain available under those terms to anyone who obtained them under that license.

Use of the hosted MCP endpoint at https://mcp.stayker.com/mcp is governed by the Stayker MCP Policy.


© 2026 WPF Holdings, LLC. All rights reserved.

Available Tools

8 tools
book_hotelA
Idempotent
Inspect

Book a hotel room. Returns a secure checkout URL where the guest completes payment. Do not collect credit card numbers, payment info, or billing details in conversation.

Guest pays the hotel directly. Their credit card statement shows the hotel name, not 1Stay. Hotel's own confirmation number. Loyalty points apply automatically. A 1Stay Booking Fee is added at checkout.

Requires rate_code from get_hotel_details (expires in approximately 15 minutes). If expired, call get_hotel_details again for a fresh code.

ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_idYesHotel ID from search or details
rate_codeYesRate code from get_hotel_details — you MUST call get_hotel_details first to get a valid rate_code before booking
check_inYesCheck-in date in YYYY-MM-DD format (e.g. 2026-05-06)
check_outYesCheck-out date in YYYY-MM-DD format (e.g. 2026-05-07)
guestsYesNumber of guests
guest_nameYesGuest full name
guest_emailYesGuest email for confirmation
external_reference_idNoYour unique reference ID for this booking (for idempotency and retrieval)

TDQS

A4.9/5.0
Behavior5/5

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

Annotations indicate idempotentHint=true and readOnlyHint=false. The description adds that payment is handled externally via checkout URL, no need to collect payment info, a booking fee is added, and loyalty points apply. No contradiction with annotations.

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

Conciseness5/5

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

The description is well-structured, front-loaded with the main action, and uses concise sentences without redundancy. Every part adds value.

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?

Given 8 parameters and no output schema, the description covers key behaviors: return type, payment flow, prerequisite, and idempotency. It is complete enough for correct tool invocation.

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 baseline is 3. The description adds context for external_reference_id (idempotency and retrieval) and mentions rate_code expiration. However, most parameters are adequately described in the schema.

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 clearly states 'Book a hotel room' and explains it returns a secure checkout URL. It distinguishes from siblings like cancel_booking and get_hotel_details by specifying the booking action and prerequisite (rate_code).

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?

Provides explicit instructions: do not collect payment info, requires rate_code from get_hotel_details which expires in ~15 min, and suggests calling get_hotel_details again if expired. Also mentions alternatives indirectly.

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

cancel_bookingA
DestructiveIdempotent
Inspect

Cancel a hotel reservation. This action cannot be undone.

Requires guest first name, last name, and hotel confirmation number.

Cancellation of non-refundable rates forfeits the full amount. The guest should be aware of the cancellation policy before this tool is called.

To change dates: the recommended pattern is to search and book new dates first, then cancel the original reservation. Canceling before securing a new booking risks losing the room.

Cancellation confirmation is emailed to the address on file.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameYesGuest first name on the reservation
last_nameYesGuest last name on the reservation
confirmation_numberYesHotel confirmation number

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate destructive and idempotent hints. The description adds critical context: the action cannot be undone, non-refundable rates forfeit full amount, and confirmation is emailed. This goes beyond annotations without contradiction.

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

Conciseness5/5

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

Five sentences with clear front-loading of purpose. Each sentence adds value, with no redundancy or fluff. Well-organized.

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?

Given no output schema and moderate complexity, the description covers cancellation policy, consequences, and best practices for date changes. It is complete for agent guidance.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description lists required fields but does not add extra detail beyond what the schema provides (e.g., format, examples).

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 clearly states it cancels a hotel reservation, listing required fields. It distinguishes from sibling tools like book_hotel and get_booking by focusing solely on cancellation.

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?

Explicitly mentions when to use (cancellation), warns about non-refundable rate forfeiture, and provides an alternative pattern for date changes to avoid losing the room. Also advises ensuring guest awareness of cancellation policy.

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

get_bookingA
Read-only
Inspect

Look up a reservation by booking ID (stk_bk_xxxx) or hotel confirmation number. Returns full booking details including hotel, dates, guest info, rate, and status.

Developer-level lookup tool with no identity verification. For guest-facing reservation lookups, use lookup_booking which enforces identity verification before returning any data.

ParametersJSON Schema
NameRequiredDescriptionDefault
booking_idYesBooking ID (e.g. stk_bk_xxxx) or confirmation number

TDQS

A4.7/5.0
Behavior5/5

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

Annotations show readOnlyHint=true, destructiveHint=false. Description adds behavioral context: 'no identity verification' and lists return fields. No contradiction.

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

Conciseness5/5

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

Two concise sentences for main purpose, one sentence for usage guidance. No fluff, front-loaded with key information.

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?

Single parameter, no output schema, but description covers what is returned, parameter format, and provides alternative tool. Fully adequate for the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with description for booking_id. Description merely restates the parameter's purpose and gives example format, adding minimal value beyond schema.

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 clearly states 'Look up a reservation by booking ID (stk_bk_xxxx) or hotel confirmation number. Returns full booking details...' It specifies the verb 'look up', the resource 'reservation', and lists return fields. It also distinguishes from sibling 'lookup_booking' by noting identity verification.

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?

Explicitly says 'Developer-level lookup tool with no identity verification' and directs to 'use lookup_booking which enforces identity verification' for guest-facing lookups.

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

get_hotel_detailsA
Read-only
Inspect

Get rates and room details for a specific hotel. Returns room types, live rates, amenities, cancellation policies, and rate_codes required by book_hotel.

Guest pays the hotel directly. Rates shown are what the hotel charges. A 1Stay Booking Fee is added at checkout. Loyalty points eligible.

Room type notes: "Run of house" means the hotel assigns the room at check-in. "Suite" at select-service brands usually means a larger room with a sofa, not a separate bedroom. Non-refundable rates are cheaper but cannot be changed or canceled.

ParametersJSON Schema
NameRequiredDescriptionDefault
hotel_idYesHotel ID from search results
check_inYesCheck-in date in YYYY-MM-DD format (e.g. 2026-05-06)
check_outYesCheck-out date in YYYY-MM-DD format (e.g. 2026-05-07)
guestsNoNumber of guests (default 2)
roomsNoNumber of rooms (default 1)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context: payment flows (guest pays hotel, 1Stay fee added), loyalty points eligibility, and room type clarifications (run-of-house, suite definition). No contradiction with annotations.

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?

Description is brief, front-loaded with main purpose, and uses separate paragraphs for payment and room notes. Each sentence adds value, though the room type explanations could be slightly trimmed. No wasted words.

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?

Despite lacking an output schema, the description lists all return elements (room types, rates, amenities, policies, rate_codes) and adds payment and eligibility context. For a simple 5-parameter tool, this is comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with each parameter descriptively named. The description adds no extra meaning beyond the schema for parameters; it only reiterates date format and defaults, which the schema already includes. Baseline 3 is appropriate.

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 clearly states the tool retrieves rates and room details for a specific hotel, enumerating return fields (room types, live rates, amenities, cancellation policies, rate_codes) and explicitly linking rate_codes to the sibling tool book_hotel, which distinguishes it from search_hotels and booking tools.

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

Usage Guidelines3/5

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

The description implies when to use (before booking, to get rate_codes) but does not explicitly state when not to use or compare with alternatives like search_hotels for listing hotels. The sibling list exists but no direct guidance in description.

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

lookup_bookingA
Read-only
Inspect

Look up a reservation by verifying the guest's identity. Returns the confirmation number and booking summary in conversation.

Required before calling:

  1. Guest full name (first and last)

  2. At least one verification factor: email address used when booking, hotel confirmation number, or last 4 digits of the card used to book (check-in date also required for card verification)

Do not call this tool without the guest's full name and at least one verification factor. If the guest cannot provide any verification factor, their reservation cannot be looked up — this is for the security of their booking.

To resend the confirmation email, use resend_confirmation after verifying identity with this tool. To cancel, use cancel_booking.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameYesGuest first name on the reservation
last_nameYesGuest last name on the reservation
confirmation_numberNoHotel confirmation number
emailNoEmail address used when booking
last_four_cardNoLast 4 digits of the card used to book
check_in_dateNoCheck-in date (YYYY-MM-DD) — required with last_four_card

TDQS

A5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context beyond the annotations, including the identity verification process, required prerequisites, and that it returns confirmation number and booking summary. No contradictions with annotations.

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

Conciseness5/5

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

The description is concise and well-structured. The first sentence conveys the core purpose, followed by clear prerequisite bullet points and then related tool references. Every sentence adds value, and the information is front-loaded.

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?

The description is complete for the tool's complexity: it covers all six parameters, explains the verification requirements, and states the return value (confirmation number and booking summary). No output schema is present, but the description adequately sets expectations.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds significant meaning: it explains that first_name and last_name are required, and at least one of confirmation_number, email, or last_four_card (with check_in_date) must be provided as a verification factor. This goes beyond the schema's field 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 clearly states the tool's purpose: 'Look up a reservation by verifying the guest's identity. Returns the confirmation number and booking summary.' It specifies the action (look up) and resource (reservation), and distinguishes from sibling tools like cancel_booking and resend_confirmation by mentioning them as alternatives.

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?

The description provides explicit when-to-use and when-not-to-use guidance: it lists prerequisites (guest full name and at least one verification factor) and states that if the guest cannot provide any verification, the reservation cannot be looked up. It also mentions alternatives: use resend_confirmation after identity verification or cancel_booking.

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

resend_confirmationAInspect

Resend a hotel reservation confirmation email. Use after verifying the guest's identity with lookup_booking.

Sends the full confirmation to the email address on file. If the guest needs it sent to a different email (typo on original, or can't access it), provide updated_email.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmation_numberYesHotel confirmation number
updated_emailNoIf provided, send confirmation to this email instead of the one on file. Use when guest typo'd their email at booking or can't access the original email.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations (readOnlyHint: false, destructiveHint: false, openWorldHint: true) indicate a non-read, non-destructive but open-world operation. The description reinforces this by stating it sends an email and explains the email address handling. It adds context beyond annotations by specifying the side effect of sending and the optional re-routing.

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

Conciseness5/5

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

The description is concise with three sentences, front-loaded with the main purpose, and includes necessary usage details without extraneous information. Every sentence adds value.

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 simple two-parameter tool with no output schema, the description covers the primary use case, explains the optional parameter, and mentions a prerequisite tool (lookup_booking). It is sufficiently complete for an agent to use correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds practical use-case detail for updated_email (typo or inaccessible email), which is helpful but not essential beyond the schema. Baseline 3 is appropriate.

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 clearly states the tool's action ('Resend a hotel reservation confirmation email') and the specific resource (confirmation email). It also distinguishes from sibling tools by instructing to use after verifying identity with lookup_booking, providing a clear sequential context.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool after looking up the guest's identity, and explains when to use the updated_email parameter (typo or inaccessible email). While it doesn't list alternative tools for when not to use it, the context is clear enough for an agent.

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

search_hotelsA
Read-only
Inspect

Search and book hotels by location and dates. Returns available properties with nightly rates across major brands, boutique, and independent hotels.

Guest pays the hotel directly. Hotel's own confirmation number. Loyalty points apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYesCity, address, venue, or landmark (e.g. 'Nashville, TN' or 'Times Square, NYC'). Required for all searches.
latitudeNoLatitude — must be provided together with longitude
longitudeNoLongitude — must be provided together with latitude
check_inYesCheck-in date in YYYY-MM-DD format (e.g. 2026-05-06). Must be today or later.
check_outYesCheck-out date in YYYY-MM-DD format (e.g. 2026-05-07). Must be after check_in.
guests_per_roomNoGuests per room (default 2)
roomsNoNumber of rooms (default 1)
radiusNoSearch radius in miles (default 25, max 100)
chain_codeNoTwo-letter hotel chain filter. MC=Marriott, HH=Hilton, HI=IHG, YX=Hyatt, BW=Best Western, WY=Wyndham, EL=Choice. Omit for boutique, independent, or unbranded searches.
currencyNoCurrency code (default USD)
max_resultsNoMax hotels to return, max 15 (default 10)
search_idNoSearch ID from previous results — pass with cursor for next page
cursorNoPagination cursor from previous search response

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing that the guest pays the hotel directly, the hotel provides the confirmation number, and loyalty points apply. This contextualizes the search results beyond the safety profile, though it does not cover rate limits or auth requirements.

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

Conciseness5/5

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

The description is three sentences: the first clearly states the function and output, the second and third provide behavioral context about payment and loyalty. It is front-loaded, concise, and every sentence adds value without redundancy.

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

Completeness4/5

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

Given the tool has 13 parameters and no output schema, the description covers core functionality and payment details. It does not mention pagination behavior even though cursor/search_id parameters exist, nor does it explain default values for guests_per_room or rooms. However, annotations and schema fill some gaps, making it fairly complete for a search tool.

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

Parameters3/5

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

Schema coverage is 100%, with detailed parameter descriptions (e.g., chain_code, radius, pagination fields). The description adds payment context but does not elaborate on parameter usage beyond what the schema provides. Baseline score of 3 is appropriate since schema does the heavy lifting.

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 clearly states the tool searches and books hotels by location and dates, and returns available properties with nightly rates across various brands, distinguishing it from sibling tools like book_hotel (for actual booking) or get_hotel_details (for specific details). It uses specific verbs ('Search and book') and resources ('hotels'), making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description implies usage for searching hotels by location and dates, but does not explicitly state when to use this tool versus alternatives like book_hotel or get_hotel_details. It provides context about what it returns but no direct exclusions or scenario comparisons. Clear but could be more explicit.

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

search_toolsA
Read-only
Inspect

List available 1Stay hotel booking tools. Filter by keyword: search, book, cancel, details. Omit keyword to list all tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordNoKeyword to filter tools (e.g. 'book', 'search', 'cancel'). Omit to list all tools.

TDQS

A4.7/5.0
Behavior5/5

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

Description and annotations align perfectly. Annotations indicate readOnlyHint: true and destructiveHint: false, and the description adds that the tool lists and filters tools. No contradictions, and the behavior is fully disclosed.

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

Conciseness5/5

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

Single sentence with no unnecessary words. Front-loaded purpose and immediately actionable. Every word earns its place.

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 simple list tool with one optional parameter and no output schema, the description is fully adequate. It tells the agent exactly what the tool does and how to use it.

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 baseline 3. The description adds value by providing examples of acceptable keyword values and stating the effect of omitting keyword, going beyond the schema description.

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 clearly states it lists available 1Stay hotel booking tools and can filter by keyword. It distinguishes itself from sibling tools like book_hotel and cancel_booking by being a meta-tool for discovery.

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

Usage Guidelines4/5

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

Provides explicit guidance on filtering by keyword with examples ('search, book, cancel, details') and says to omit keyword to list all. Lacks explicit when-not-to-use or alternatives, but given its meta-purpose, the context is clear.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.2.0
    • Addedlookup_booking
    • Addedresend_confirmation
    • Removedretrieve_booking
    • Changedsearch_hotels1 field changed
      • changedInput schema / properties / chain_code / description
        Previous value: -"Filter by hotel chain code (e.g. 'MC' for Marriott, 'HH' for Hilton)"New value: +"Two-letter hotel chain filter. MC=Marriott, HH=Hilton, HI=IHG, YX=Hyatt, BW=Best Western, WY=Wyndham, EL=Choice. Omit for boutique, independent, or unbranded searches."
  2. 4 tool updatesv1.0.2
    • Changedbook_hotel2 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date (YYYY-MM-DD)"New value: +"Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)"
      • changedInput schema / properties / check_out / description
        Previous value: -"Check-out date (YYYY-MM-DD)"New value: +"Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
    • Changedget_hotel_details2 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date (YYYY-MM-DD)"New value: +"Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)"
      • changedInput schema / properties / check_out / description
        Previous value: -"Check-out date (YYYY-MM-DD)"New value: +"Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
    • Changedretrieve_booking1 field changed
      • addedInput schema / properties / updated_email
        Added value: +{
        +  "description": "If provided and identity is verified, send confirmation to this email instead of the one on file. Use when guest typo'd their email at booking or can't access the original email.",
        +  "type": "string"
        +}
    • Changedsearch_hotels6 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date (YYYY-MM-DD)"New value: +"Check-in date in YYYY-MM-DD format (e.g. 2026-05-06). Must be today or later."
      • changedInput schema / properties / check_out / description
        Previous value: -"Check-out date (YYYY-MM-DD)"New value: +"Check-out date in YYYY-MM-DD format (e.g. 2026-05-07). Must be after check_in."
      • changedInput schema / properties / latitude / description
        Previous value: -"Latitude — skip geocoding if provided with longitude"New value: +"Latitude — must be provided together with longitude"
      • changedInput schema / properties / location / description
        Previous value: -"City, address, venue, or landmark. Required unless latitude/longitude provided."New value: +"City, address, venue, or landmark (e.g. 'Nashville, TN' or 'Times Square, NYC'). Required for all searches."
      • changedInput schema / properties / longitude / description
        Previous value: -"Longitude — skip geocoding if provided with latitude"New value: +"Longitude — must be provided together with latitude"
      • changedInput schema / required
        Previous value: -[
        -  "check_in",
        -  "check_out"
        -]New value: +[
        +  "location",
        +  "check_in",
        +  "check_out"
        +]
  3. 7 tool updatesv1.0.0
    • First observedbook_hotel
    • First observedcancel_booking
    • First observedget_booking
    • First observedget_hotel_details
    • First observedretrieve_booking
    • First observedsearch_hotels
    • First observedsearch_tools

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: search_hotels finds properties, get_hotel_details retrieves rates, book_hotel creates bookings, cancel_booking removes them, lookup_booking and get_booking retrieve booking info with different access levels, resend_confirmation emails confirmations, and search_tools lists available tools. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., book_hotel, cancel_booking, search_hotels). The naming is predictable and uniform across the entire set.

Tool Count5/5

With 8 tools, the server covers the main hotel booking workflow (search, details, book, cancel, lookup, resend) plus a meta-tool for discovery. This is well-scoped and not excessive or insufficient for the domain.

Completeness3/5

The core operations are covered (search, read, create, delete), but there is no tool to modify an existing booking. The documentation suggests a workaround (re-book then cancel), which is an obvious gap. A modify/update tool is missing, reducing completeness.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search, browse, and book hotels from a database of 2 million properties worldwide. Provides comprehensive hotel search capabilities with location lookup, filtering by amenities, detailed property information, and integrated booking functionality.
    6
    22
    1
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search, compare, and book hotels with real-time pricing and availability, supporting multiple location types, star ratings, and price filters.
    8
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search and book hotels globally with real-time pricing and inventory from over 2 million properties.
    81
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/STAYKER-COM/1Stay-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server