# bluerails402 > DACH hotel discovery and live availability for AI agents, over MCP. Search the properties, then read real rooms, EUR prices and dated booking links from each hotel's own booking engine. EU publishers, ecommerce stores and SaaS companies are in the same registry over REST. Agents connect to the MCP endpoint at https://402.bluerails.com/mcp, which exposes one public tool and needs no API key: `list_hotels` finds properties and, when you pass a stay, prices them in the same call. The other verticals — publishers, ecommerce stores, SaaS companies — are served over the REST API below rather than as MCP tools, so an agent that only wants hotels does not pay to read their tool definitions first. ## Endpoints - [Full publisher list (inline)](https://402.bluerails.com/llms-full.txt): All active non-test publishers in one file. Includes name, slug, website, content types, tags, trust tier, traffic tier, USDC price per request, supported protocols, and EURAU settlement availability. - [OpenAPI 3.1 spec](https://402.bluerails.com/openapi.json): Machine-readable REST surface — `GET /api/hotels`, `GET /api/publishers`, `GET /api/ecommerce`, `GET /api/saas` and their `{slug}` detail routes, plus `POST /mcp`. Includes root-level `x-payment-info` extension per the MPP discovery draft. - [Sitemap](https://402.bluerails.com/sitemap.xml): One entry per active publisher detail page. ## MCP - Endpoint: https://402.bluerails.com/mcp (streamable HTTP, JSON-RPC 2.0) - 1 tool, public and read-only — no API key, no auth header - `list_hotels` — search DACH properties by place name, country, star rating; every property carries its `bookingUrl` where it has one - Pass `checkIn`, `checkOut` and `adults` in the SAME call and the answer splits in two: `priced` holds the hotels whose live rates were read — every room with its EUR price for the stay, its breakfast and cancellation terms, and a booking link carrying the guest's dates — and `unpriced` holds the rest with their plain links - One call answers "a hotel near X for these dates, with prices". There is no second tool to fan out to - `maxPricePerNight` FILTERS: `priced` holds only the hotels and rooms at or under the budget, and dearer hotels are returned only when not one fits, in `aboveBudget` - An EMPTY `priced` with an empty `aboveBudget` means the rates could not be read — unknown, NOT sold out. The links are still real; hand them over - Publishers, ecommerce and saas are REST-only: `GET /api/publishers`, `GET /api/ecommerce`, `GET /api/saas` ## Data attribution - Place names and coordinates behind the `city` search on `list_hotels` come from the [GeoNames geographical database](https://www.geonames.org/): _Place coordinates © GeoNames (geonames.org), CC-BY 4.0._ - Some property coordinates come from [OpenStreetMap](https://www.openstreetmap.org/): _Property coordinates © OpenStreetMap contributors, ODbL 1.0 (openstreetmap.org/copyright)._ ## Optional - [Agent card (A2A v1.0.0)](https://402.bluerails.com/.well-known/agent-card.json) - [MCP server card (SEP-1649)](https://402.bluerails.com/.well-known/mcp/server-card.json) - [VS Code MCP config](https://402.bluerails.com/.well-known/mcp.json)