1Stay Hotel Booking
The 1StayHotel Booking server enables real hotel search, reservations, and post-booking management within AI conversations, connecting to 250,000+ properties across 140+ countries with live rates and secure payment handling.
Search Hotels (
search_hotels): Find hotels worldwide by location, dates, and number of guests. Filter by hotel chain (Marriott, Hilton, Hyatt, IHG, etc.), search radius, and paginate through results.Get Hotel Details (
get_hotel_details): Retrieve room types, live rates, amenities, cancellation policies, and rate codes for a specific property.Book a Hotel (
book_hotel): Create a reservation using a rate code from hotel details. Returns a secure checkout URL for payment on a PCI-compliant page — credit card data never enters the AI conversation. Loyalty points and elite status benefits apply automatically.Look Up a Reservation (
get_booking): Retrieve full booking details by confirmation number or booking ID — hotel, dates, guest info, rate, and status (developer/API-level tool).Retrieve & Resend Confirmation (
retrieve_booking): Find a guest reservation with identity verification and resend the confirmation email.Cancel a Booking (
cancel_booking): Cancel an existing reservation by providing guest name and confirmation number, with warnings about non-refundable rates.List Available Tools (
search_tools): Discover all supported tools, optionally filtered by keyword (e.g., 'search', 'book', 'cancel').
Allows searching for Hilton hotel properties, retrieving live room rates, amenities, and cancellation policies, and initiating reservations that are eligible for loyalty points and elite status benefits.
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.
Quick Start
npx (fastest)
npx 1stay-mcpClaude 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/mcpTry 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 by location, dates, guests, and optional filters |
|
| Get room types, amenities, images, and live rates for a specific property |
|
| Create a reservation and receive a secure checkout URL |
|
| Look up a reservation with identity verification |
|
| Resend confirmation email to guest |
|
| Look up a reservation by booking ID or confirmation number |
|
| Cancel an existing reservation |
|
| List available 1Stay tools, optionally filtered by keyword |
|
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:
Search and select happen inside the AI conversation
Guest details (name, email) are collected in conversation to create the reservation
Payment is completed on a secure, PCI-compliant checkout page — outside the AI layer
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
Privacy & Legal
Privacy policy: stayker.com/legal/privacy
MCP data policy: stayker.com/legal/mcp-policy
Support
Chat: stayker.com/service
Docs: 1stay.ai
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 toolsbook_hotelAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hotel_id | Yes | Hotel ID from search or details | |
| rate_code | Yes | Rate code from get_hotel_details — you MUST call get_hotel_details first to get a valid rate_code before booking | |
| check_in | Yes | Check-in date in YYYY-MM-DD format (e.g. 2026-05-06) | |
| check_out | Yes | Check-out date in YYYY-MM-DD format (e.g. 2026-05-07) | |
| guests | Yes | Number of guests | |
| guest_name | Yes | Guest full name | |
| guest_email | Yes | Guest email for confirmation | |
| external_reference_id | No | Your unique reference ID for this booking (for idempotency and retrieval) |
TDQS
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.
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.
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.
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.
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.
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_bookingADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | Yes | Guest first name on the reservation | |
| last_name | Yes | Guest last name on the reservation | |
| confirmation_number | Yes | Hotel confirmation number |
TDQS
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.
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.
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.
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.
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.
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_bookingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| booking_id | Yes | Booking ID (e.g. stk_bk_xxxx) or confirmation number |
TDQS
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.
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.
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.
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.
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.
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_detailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hotel_id | Yes | Hotel ID from search results | |
| check_in | Yes | Check-in date in YYYY-MM-DD format (e.g. 2026-05-06) | |
| check_out | Yes | Check-out date in YYYY-MM-DD format (e.g. 2026-05-07) | |
| guests | No | Number of guests (default 2) | |
| rooms | No | Number of rooms (default 1) |
TDQS
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.
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.
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.
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.
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.
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_bookingARead-onlyInspect
Look up a reservation by verifying the guest's identity. Returns the confirmation number and booking summary in conversation.
Required before calling:
Guest full name (first and last)
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.
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | Yes | Guest first name on the reservation | |
| last_name | Yes | Guest last name on the reservation | |
| confirmation_number | No | Hotel confirmation number | |
| No | Email address used when booking | ||
| last_four_card | No | Last 4 digits of the card used to book | |
| check_in_date | No | Check-in date (YYYY-MM-DD) — required with last_four_card |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation_number | Yes | Hotel confirmation number | |
| updated_email | No | If 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
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.
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.
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.
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.
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.
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_hotelsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | City, address, venue, or landmark (e.g. 'Nashville, TN' or 'Times Square, NYC'). Required for all searches. | |
| latitude | No | Latitude — must be provided together with longitude | |
| longitude | No | Longitude — must be provided together with latitude | |
| check_in | Yes | Check-in date in YYYY-MM-DD format (e.g. 2026-05-06). Must be today or later. | |
| check_out | Yes | Check-out date in YYYY-MM-DD format (e.g. 2026-05-07). Must be after check_in. | |
| guests_per_room | No | Guests per room (default 2) | |
| rooms | No | Number of rooms (default 1) | |
| radius | No | Search radius in miles (default 25, max 100) | |
| chain_code | No | 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. | |
| currency | No | Currency code (default USD) | |
| max_results | No | Max hotels to return, max 15 (default 10) | |
| search_id | No | Search ID from previous results — pass with cursor for next page | |
| cursor | No | Pagination cursor from previous search response |
TDQS
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.
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.
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.
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.
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.
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_toolsARead-onlyInspect
List available 1Stay hotel booking tools. Filter by keyword: search, book, cancel, details. Omit keyword to list all tools.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | Keyword to filter tools (e.g. 'book', 'search', 'cancel'). Omit to list all tools. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.2.0- Added
lookup_booking - Added
resend_confirmation - Removed
retrieve_booking - Changed
search_hotels1 field changed- changed
Input schema / properties / chain_code / descriptionPrevious 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."
4 tool updates
v1.0.2- Changed
book_hotel2 fields changed- changed
Input schema / properties / check_in / descriptionPrevious value: -"Check-in date (YYYY-MM-DD)"New value: +"Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)" - changed
Input schema / properties / check_out / descriptionPrevious value: -"Check-out date (YYYY-MM-DD)"New value: +"Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
- Changed
get_hotel_details2 fields changed- changed
Input schema / properties / check_in / descriptionPrevious value: -"Check-in date (YYYY-MM-DD)"New value: +"Check-in date in YYYY-MM-DD format (e.g. 2026-05-06)" - changed
Input schema / properties / check_out / descriptionPrevious value: -"Check-out date (YYYY-MM-DD)"New value: +"Check-out date in YYYY-MM-DD format (e.g. 2026-05-07)"
- Changed
retrieve_booking1 field changed- added
Input schema / properties / updated_emailAdded 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" +}
- Changed
search_hotels6 fields changed- changed
Input schema / properties / check_in / descriptionPrevious 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." - changed
Input schema / properties / check_out / descriptionPrevious 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." - changed
Input schema / properties / latitude / descriptionPrevious value: -"Latitude — skip geocoding if provided with longitude"New value: +"Latitude — must be provided together with longitude" - changed
Input schema / properties / location / descriptionPrevious 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." - changed
Input schema / properties / longitude / descriptionPrevious value: -"Longitude — skip geocoding if provided with latitude"New value: +"Longitude — must be provided together with latitude" - changed
Input schema / requiredPrevious value: -[ - "check_in", - "check_out" -]New value: +[ + "location", + "check_in", + "check_out" +]
7 tool updates
v1.0.0- First observed
book_hotel - First observed
cancel_booking - First observed
get_booking - First observed
get_hotel_details - First observed
retrieve_booking - First observed
search_hotels - First observed
search_tools
TDQS
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.
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.
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.
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
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
AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.
Booking gateway for AI agents — discover events, movies & hotels, hand off to partner checkout.
Book hotels over MCP. Pay over x402. 3M+ properties in 200+ countries, USDC on Base.
Travel & commerce intelligence for AI agents: search, book & price-track hotels, events, retail.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.6221ISC
- AlicenseNot gradedqualityDmaintenanceMCP server for Airbnb — lets AI agents search listings, check availability, manage reservations, and book stays via browser automation.19MIT

DIDA Hotel MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, compare, and book hotels with real-time pricing and availability, supporting multiple location types, star ratings, and price filters.8MIT
Dida Hotel MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and book hotels globally with real-time pricing and inventory from over 2 million properties.81MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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