protogrid

Search / io.github.leo9/hoteluse

HotelUse - Hotel Metasearch

R0· no sign-in

Compare hotel prices, room options and booking providers with live HotelUse searches.

v1.0.1 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality88good
Trust80of 100
Uptime, 30 days100%
Latency p50632 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "hoteluse": {
      "type": "http",
      "url": "https://www.hoteluse.dev/mcp/search"
    }
  }
}
claude mcp add --transport http hoteluse https://www.hoteluse.dev/mcp/search
[mcp_servers.hoteluse]
url = "https://www.hoteluse.dev/mcp/search"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hoteluse": {
      "type": "remote",
      "url": "https://www.hoteluse.dev/mcp/search",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "hoteluse": {
      "type": "http",
      "url": "https://www.hoteluse.dev/mcp/search"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hoteluse&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LmhvdGVsdXNlLmRldi9tY3Avc2VhcmNoIn0%3D"
}
{
  "servers": {
    "hoteluse": {
      "type": "http",
      "url": "https://www.hoteluse.dev/mcp/search"
    }
  }
}
{
  "mcpServers": {
    "hoteluse": {
      "httpUrl": "https://www.hoteluse.dev/mcp/search"
    }
  }
}
extensions:
  "hoteluse":
    enabled: true
    name: "hoteluse"
    type: streamable_http
    uri: "https://www.hoteluse.dev/mcp/search"
    timeout: 300

Quality 88 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene94 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length3 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations3 of 3 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,418 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

3 tools, about 4,418 tokens to load them all · tool set 5b594b92d466 · checked 2026-11-14 07:03 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 80 / 100

no-repository
provenance45
liveness100
freshness100
hygiene80

+website +reachable +uptime-100% +updated-16d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://www.hoteluse.dev/mcp/search streamable-httpnoneyes100%632 ms2025-11-252026-11-14

Tools (3)

get_hotelread-onlyGet undated facts for one identified or named hotel: address, photos, descriptions, star classification, sourced guest ratings, consecutive positive review count, facilities, pet/parking policies and timezone. Optional fee amounts may be absent in the catalog. Accepts the exact HotelUse hotel_id from a previous result, or hotel_name and destination. A unique, confident match is required. A full hotel name may be used without a destination; add the destination when ambiguous. No stay dates, availability, live prices or room-level offers are included. Supply exactly one hotel_id or hotel_name. Omit unknown optional values; do not send null. Resolve a hotel follow-up by name or position against the most recent relevant ordered search list. Copy its hotel_id exactly; if unavailable, use hotel_name and destination. Ask only if the hotel is ambiguous. For room options or current room prices call get_room_rates directly, passing search_quote_session_id from that search to preserve its stay and preferences. The first get_room_rates response includes all returned room groups and every provider minimum in room_groups. For all room options and prices, use that complete list after one call; do not paginate raw supplier offers or re-query the same stay. The raw_offer_page count describes supplier rate plans, not additional room types. Users can expand room cards locally without another price query. For undated amenities, policies or other hotel facts call get_hotel directly. Do not repeat a destination search before either hotel-specific tool. Existing returned prices may be explained without refreshing when no new search or current quote is requested.
get_room_ratesread-onlyGet one identified or named hotel’s room options and provider prices for explicit hotel-local dates (including today), or date_intent: tonight, and occupancy. Tonight is resolved server-side in the hotel time zone. Accepts the exact HotelUse hotel_id from search_hotels, or hotel_name and destination when the ID is unavailable; destination is optional but helps disambiguation. A unique hotel match is required. Returns server-grouped room types, rate terms and full-stay provider prices in a separate Room options view. Provider price links open external booking pages; no reservation is made. Providing search_quote_session_id inherits omitted dates, occupancy, currency, language, residency and rate filters from that exact search. Explicit itinerary changes create a new quote; the search device is preserved. Supply exactly one hotel_id or hotel_name. Supply check_in/check_out, date_intent, or an existing search_quote_session_id for room quotes. All returned room groups are included in the first response; no room pagination is needed. Omit unknown optional values; do not send null. Resolve a hotel follow-up by name or position against the most recent relevant ordered search list. Copy its hotel_id exactly; if unavailable, use hotel_name and destination. Ask only if the hotel is ambiguous. For room options or current room prices call get_room_rates directly, passing search_quote_session_id from that search to preserve its stay and preferences. The first get_room_rates response includes all returned room groups and every provider minimum in room_groups. For all room options and prices, use that complete list after one call; do not paginate raw supplier offers or re-query the same stay. The raw_offer_page count describes supplier rate plans, not additional room types. Users can expand room cards locally without another price query. For undated amenities, policies or other hotel facts call get_hotel directly. Do not repeat a destination search before either hotel-specific tool. Existing returned prices may be explained without refreshing when no new search or current quote is requested.
search_hotelsread-onlySearch a destination or latitude/longitude (with country) for explicit hotel-local dates (including today), or date_intent: tonight. Tonight is resolved server-side in the destination time zone, never UTC. Returns hotel summaries and the lowest eligible full-stay total from Expedia, Booking, Agoda and Brek, with direct provider booking links. Search starts at a 20 km core radius, expanding to 40 km then 60 km while fewer than 50 matching static candidates exist, within the same tool call and deadline. Explicit max_distance_km disables expansion. Providers are queried once after the final candidate scope is chosen. Default order is nearest 5 km distance bands first, then greatest Brek price advantage over the cheapest other provider in each band. The advantage uses comparable full-stay totals in the same currency; missing comparisons go last within their band. Preserve the returned hotel order unless the user requests another sort. Supports star ranges or exact stars, guest-review minimum and review count, facilities, property types, distance and full-stay price budgets. Hotel and rate filters can be combined; budgets cover all nights and requested rooms, including mandatory taxes and fees. Guest scores and hotel star classifications have separate filters. no_matching_offer means prices/terms failed the requested filters, not sold out. Room types and room-level rate plans are not included. No HotelUse account or API credits required. Device detection is automatic with a desktop fallback. For a fresh search supply destination or latitude/longitude with country, and either check_in/check_out or date_intent. Search pagination accepts only quote_session_id and cursor. Omit unknown optional values; do not send null. On follow-ups that change destination, dates, guests, hotel/rate filters or sort, call search_hotels again once with the updated criteria and preserve unchanged itinerary/preferences from the latest relevant search. Do not filter or reorder an earlier result page and present it as a new destination search: that page may omit matching hotels. For nearest, closest, or distance order use sort: distance_asc. The geographic_scope.radius_km value is the search radius, never any hotel’s distance. Per-hotel distance_meters is measured from the destination center. For cheapest hotels use sort: stay_total_asc. For "4-star only" use hotel_filters.star_ratings: [4]; for "4- and 5-star only" use [4,5], not star_rating_min: 4 (which includes 4.5). Never broaden explicit criteria silently. Omit providers unless the user requests specific providers; the server handles occupancy support. A successful partial response is the result of this search: show the returned prices and do not automatically repeat the search to fill missing provider quotes. An explicit user refresh calls the tool again. Pagination with quote_session_id/cursor is only for unchanged criteria.

Schemas: list_tools.

Similar MCP servers

More from io.github.leo9

Official server.json
{
  "name": "io.github.leo9/hoteluse",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "tools": [
        "search_hotels",
        "get_room_rates",
        "get_hotel"
      ],
      "contact": {
        "name": "Jianyu Li",
        "email": "[email protected]"
      },
      "readOnly": true,
      "publisher": "PageOne Lab, Inc.",
      "usageNotes": "Search hotels, inspect hotel facts and compare grouped room options and provider prices. Use future stay dates for live availability. Booking and payment happen on the selected provider website. HotelUse may earn commissions from affiliate links; prices and availability can change.",
      "documentation": "https://www.hoteluse.dev/docs/",
      "privacyPolicy": "https://www.hoteluse.dev/privacy.html",
      "authentication": "none"
    }
  },
  "icons": [
    {
      "src": "https://www.hoteluse.dev/favicon.svg"
    }
  ],
  "title": "HotelUse - Hotel Metasearch",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.hoteluse.dev/mcp/search",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "websiteUrl": "https://www.hoteluse.dev/docs/",
  "description": "Compare hotel prices, room options and booking providers with live HotelUse searches."
}