Developer Docs
Give your AI agent live DACH hotel availability: search ~82,000 properties, then read real rooms, EUR prices and a dated booking link from each hotel's own booking engine.
Connect to Claude
Add Bluerails402 as a connector — no local config file needed. In Claude, go to Settings → Connectors → Add custom connector and enter the endpoint:
https://402.bluerails.com/mcpClaude discovers the server automatically via 402.bluerails.com/.well-known/mcp.json.
Authentication
None. list_hotels is public and read-only, so the connector above works immediately with no API key and no sign-in prompt. The other verticals — publishers, ecommerce stores, SaaS companies — are served over the REST API rather than as MCP tools; see openapi.json.
Tool reference
One tool. list_hotels searches DACH properties and, when you pass a stay, prices them in the same call.
list_hotels
Search DACH hotel properties, and price them for a stay in the same call. Pass city with any place name — a village or resort works as well as a city — and results come back nearest first with distanceKm. Add checkIn, checkOut and adults and the answer splits in two: priced holds the hotels whose live rates were read, every room with its EUR price for the whole stay and a booking link carrying the dates; unpriced holds the rest with their plain links. limit is the total across both groups. maxPricePerNight filters: priced then holds only the hotels and rooms at or under the budget, and dearer hotels come back only when not one fits, in aboveBudget. An empty priced alongside an empty aboveBudget means the rates could NOT be read — unknown, never sold out.
Signature
list_hotels(city?: string, radius?: { value: number, unit: string }, query?: string, country?: string, starRating?: string, checkIn?: string, checkOut?: string, adults?: number, childrenAges?: number[], maxPricePerNight?: number, page?: number, limit?: number) → { priced?: PricedHotel[], aboveBudget?: PricedHotel[], unpriced: Hotel[], total?: number }Example call
list_hotels({ city: "Bremen", radius: { value: 10, unit: "km" }, checkIn: "2026-09-20", checkOut: "2026-09-22", adults: 2, limit: 5 })Example response
{
"stay": { "checkIn": "2026-09-20", "checkOut": "2026-09-22", "adults": 2, "children": 0 },
"priced": [
{
"slug": "achat-hotel-bremen-city-bremen",
"name": "ACHAT Hotel Bremen City",
"distanceKm": 0.9,
"stayTotalEur": 229.75,
"pricePerNightEur": 114.88,
"rooms": [
{
"name": "Frühbucher Bonus",
"eurPrice": 229.75,
"breakfastIncluded": false,
"cancelTerms": "80% (183.80 EUR)",
"soldOut": false,
"bookingUrl": "https://402.bluerails.com/go/8goygZYaYxGV1JRn"
}
],
"bookingUrl": "https://402.bluerails.com/go/nZHa_yWHnGnszi_2",
"datesApplied": true,
"partyApplied": true
}
],
"unpriced": [
{
"slug": "hotel-zur-post-bremen",
"name": "Hotel Zur Post",
"tags": ["de", "bremen", "3-star"],
"distanceKm": 1.4,
"bookingUrl": "https://402.bluerails.com/go/PzgwEe-XBkzzgIfh",
"datesApplied": false,
"partyApplied": false
}
],
"total": 22
}