Bluerails Hotels

com.bluerails由 bluerails.com 發布官方發布者v1.0.0更新於 Nov 5, 2026

Live hotel search and booking for AI agents in DACH, the UK and 10 US cities.

已驗證Streamable HTTP可網頁執行位置與生活商業與電商

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理在德國、奧地利、瑞士、英國及 10 個美國城市搜尋並查詢飯店價格,再預訂選中的房源。

可以做什麼
  • 搜尋與報價飯店:在支援的地區尋找住宿,並在同一次呼叫中取得住宿價格,需提供入住日、退房日、成人數與每晚最高價格。
  • 預訂房間:傳入搜尋結果中的 offer ID 即可預訂任一房源,該 ID 已包含飯店、房型、費率方案、住宿期間與價格。
適用情境
適合讓助理協助使用者在 DACH 地區、英國或所列美國城市尋找並預訂住宿,包括比較含價格的選項,並在同一段對話中完成預訂。
執行需求
遠端 streamable HTTP 端點;未宣告任何套件、環境變數或標頭。搜尋工具必須提供入住與退房日期、成人數以及每晚最高價格。
安裝前請注意
預訂工具會依傳入的 offer ID 建立真實預訂,呼叫前應確認使用者的選擇與細節。搜尋工具在四項必填參數不齊全時不會回傳結果。未宣告身分驗證,使用前應確認預訂如何歸屬與付款。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Bluerails Hotels,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.bluerails%2Fhotels/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "bluerails-hotels": {
      "type": "http",
      "url": "https://402.bluerails.com/mcp"
    }
  }
}

工具

2

list_hotels

Search hotel properties in Germany, Austria, Switzerland, the United Kingdom and the United States, and price them for a stay in the same call. ASK BEFORE YOU SEARCH. Four things are required and this tool answers nothing without them: `checkIn`, `checkOut`, `adults` and `maxPricePerNight`. "Hotels in Berlin for a couple" is not yet a search — it names a place and a party and nothing else, so ask which nights they want, who is coming — adults AND any children, by age — and roughly what they want to spend, in ONE message, and search once they answer. Never fill these in for them: dates you chose are not their dates, and a budget read off "cheap" or off a star rating hides the very hotels they could have afforded. A call missing any of them comes back with no rows and a `hint` naming what is still to be asked. PLACES. Pass `city` with any place name we cover to get properties around it, nearest first, each with `distanceKm` — despite the name it takes a place of any size, so a village, a resort or a borough ("Silvaplana", "Wals", "Zell am See", "Brooklyn") works as well as a city. `radius` is a value with its unit — {"value": 10, "unit": "mi"} — so you never have to convert; it defaults to 20 km and may not exceed 100 km. Prefer `city` over `query` for place-based searches: it understands about 151,800 places and returns neighbouring towns, whereas `query` only matches words in a name or description. An unresolvable place name returns `placeNotRecognised` — that means the NAME was not understood, not that the place has no hotels. When a radius returns nothing you get `nearestBeyondRadiusKm` so you can widen deliberately rather than guess. SOMEWHERE SMALLER THAN A TOWN — A STREET, A LANDMARK, A STATION, A DISTRICT — GOES IN `coordinates`, NOT `city`. Sent as a `city`, such a name is either refused or resolved to a different place of the same name, which comes back as a confident answer about somewhere else. Estimate the point yourself, pair it with a small `radius`,

輸入參數citylimitquerystyleadultsradiuscheckIncountryofferIdcheckOutcurrencylanguage另有 5 個

hotel_reserve

Book a hotel room. Works for ANY offer `list_hotels` gave you an `offerId` for — there is no separate check to make first, so pass the offer the guest chose. Pass that offer’s `offerId` exactly as you were given it — it names the hotel, room, rate, stay and price, which is why none of those are separate arguments. It expires after 30 minutes; if it has expired or the hotel has raised the price since, nothing is booked — get a fresh one by calling `list_hotels` with that same `offerId`, which re-prices just that room rather than showing the guest the whole property again. TWO OUTCOMES, and the reply tells you which. `confirmationNumber` means the room is booked: give the guest the number and tell them they pay the hotel at the desk — nothing has been charged. `paymentUrl` means the room is NOT held yet: give the guest that link to pay, their card is HELD rather than charged, and the booking is placed once they have paid. Set `acceptedTerms` only after the guest has agreed to book this rate. Show them that rate’s cancellation terms where `list_hotels` gave any; where its `cancelTerms` was null we hold none, so say so and that the hotel’s own terms apply, then set it once they agree on that basis — a blank is NOT a reason to refuse the booking. Ask the guest for their own phone number and billing address — the hotel puts them on the reservation and uses them to reach the guest. Never invent them. If a call comes back ambiguous, do NOT call again — a reservation may already exist.

輸入參數offerId必填guestCity必填guestEmail必填guestPhone必填guestPostal必填guestStreet必填guestCountry必填acceptedTerms必填guestLastName必填guestStreetNoguestGivenName必填guestSalutation

版本歷史

1
  1. v1.0.0最新Nov 5, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。