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。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。