ATAbooking MCP
An MCP server that allows AI agents to search for hotel stays, check real-time availability, and book directly with hotels for a 5% fee. It provides tools to find stays by criteria, retrieve details, and confirm bookings via email codes.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://atabooking.com/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (3)
Can change data (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to atabooking.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for hotel stays by location, dates, and budget
- Check real-time room availability at specific hotels
- Book a hotel room directly with the property
- Confirm a held booking using an emailed code
Source and maintenance
Protocol and capabilities
- Server
- atabooking 0.1.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
search_stays — Search stays
Find hotels with a room free for the dates and guests. Returns each stay's cheapest fitting room with a quote (price, ATA fee 5%, typical 15-20% OTA cut). Demo hotels are marked demo: true. Results come in pages: when more_results is true, call search_stays again with the same arguments plus cursor: next_cursor to get the rest. Nothing is left out.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"place",
"check_in",
"check_out",
"guests"
],
"properties": {
"place": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "City, area, country or hotel name, e.g. 'Bangkok' or 'Gamla Stan'"
},
"wants": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 20,
"description": "Nice-to-haves, e.g. ['pool','beach','quiet']; ranks matches first"
},
"cursor": {
"type": "string",
"maxLength": 400,
"minLength": 1,
"description": "next_cursor from the previous page of this same search, to get the next page"
},
"guests": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Number of guests in one room"
},
"check_in": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival date, YYYY-MM-DD"
},
"check_out": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure date, YYYY-MM-DD"
},
"max_price_per_night": {
"type": "number",
"maximum": 1000000,
"description": "Budget per night in the hotel's currency (EUR in the demo)",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_stay — Get stay details
Rooms, prices, what's included, check-in/out times and cancellation terms for one stay. Demo hotels are marked demo: true.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"stay_id"
],
"properties": {
"guests": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"stay_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 100,
"minLength": 1,
"description": "stay_id from search_stays"
},
"check_in": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: with check_out, adds availability and a quote per room"
},
"check_out": {
"$ref": "#/properties/check_in"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_availability — Check availability
Re-check one room for exact dates and guests right before booking. Returns available yes/no and the live quote. Demo hotels are marked demo: true.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"stay_id",
"room_id",
"check_in",
"check_out",
"guests"
],
"properties": {
"guests": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"room_id": {
"$ref": "#/properties/stay_id"
},
"stay_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 100,
"minLength": 1
},
"check_in": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"check_out": {
"$ref": "#/properties/check_in"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}book_direct — Book direct with the hotel
Places a 15-minute HOLD on the room and emails the guest a 6-digit code. Nothing is booked and nothing reaches the hotel until the guest confirms. After calling, tell the guest: check your email (the result shows the masked address), then either read the code back to you (call confirm_booking) or click Confirm in the email. Send an idempotency_key and reuse it if you retry. Confirm name, email, dates and price with the guest before calling. Demo hotels (demo: true) confirm at once and send no email.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"stay_id",
"room_id",
"check_in",
"check_out",
"guests",
"guest_name",
"guest_email"
],
"properties": {
"agent": {
"type": "string",
"maxLength": 120,
"description": "Name of the AI agent/app placing the request"
},
"notes": {
"type": "string",
"maxLength": 1000,
"description": "Requests for the hotel, e.g. late arrival"
},
"guests": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"room_id": {
"$ref": "#/properties/stay_id"
},
"stay_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]+$",
"maxLength": 100,
"minLength": 1
},
"check_in": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"check_out": {
"$ref": "#/properties/check_in"
},
"guest_name": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"guest_email": {
"type": "string",
"format": "email",
"maxLength": 254
},
"guest_phone": {
"type": "string",
"maxLength": 40
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 128,
"minLength": 8,
"description": "One per booking attempt (8-128 of A-Z a-z 0-9 _ -). Reuse it on retries to get the same hold back."
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}confirm_booking — Confirm a held booking
Confirm a held booking with the 6-digit code the guest received by email. Only use a code the guest gave you. Five wrong codes cancel the hold. Confirming twice returns the same booking.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hold_id",
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 20,
"minLength": 1,
"description": "The 6-digit code from the guest's email"
},
"hold_id": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "hold_id from book_direct"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-02: 4 of 4 checks answered
- 2026-11-03: 4 of 4 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 687 ms
- 95th percentile latency
- 687 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 687 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http atabooking-mcp https://atabooking.com/mcpCodex
codex mcp add atabooking-mcp --url https://atabooking.com/mcpCursor
{
"mcpServers": {
"atabooking-mcp": {
"url": "https://atabooking.com/mcp"
}
}
}Cline
{
"mcpServers": {
"atabooking-mcp": {
"type": "streamableHttp",
"url": "https://atabooking.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"atabooking-mcp": {
"type": "http",
"url": "https://atabooking.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http atabooking-mcp https://atabooking.com/mcpClaude Desktop
{
"mcpServers": {
"atabooking-mcp": {
"url": "https://atabooking.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"atabooking-mcp": {
"serverUrl": "https://atabooking.com/mcp"
}
}
}Let your agent find its tools
Find servers like ATAbooking MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run ATAbooking MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.