booking-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_KEYS | No | JSON array of API key records for HTTP auth. | |
| LOG_LEVEL | No | Logging level. | INFO |
| READ_ONLY | No | Set to 'false' to enable write tools. | true |
| AUTH_TOKEN | No | Deprecated static token for full access. | |
| REDACT_PII | No | Set to 'false' to disable PII redaction in resources. | true |
| DATABASE_URL | No | PostgreSQL connection URL. | postgresql+psycopg://booking:booking@localhost:5432/booking |
| DB_POOL_SIZE | No | Database connection pool size. | 20 |
| SAMPLE_TIMEOUT | No | Timeout for client LLM sampling. | 30.0 |
| DB_MAX_OVERFLOW | No | Max connections beyond pool size. | 20 |
| DB_POOL_RECYCLE | No | Seconds to recycle idle connections. | 3600 |
| DB_POOL_TIMEOUT | No | Seconds to wait for a pooled connection. | 10 |
| STANDALONE_MODE | No | Must be 'true' to run seed scripts (create_all). | false |
| BOOKING_AGENT_URL | No | Base URL of booking-agent for workflow bridge. | |
| BOOKING_AGENT_TIMEOUT | No | HTTP timeout for workflow bridge calls. | 10.0 |
| DB_STATEMENT_TIMEOUT_MS | No | Per-query timeout in milliseconds. | 30000 |
| FORCE_WORKFLOW_FOR_SAMPLING | No | Redirect book_from_text to workflow bridge. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_availabilityA | Find staff who can do the service, are free at the slot, and (if coords given) within range. Same skill/free/geo filter the booking engine uses. |
| list_staffA | List active staff, optionally filtered by a skill. |
| daily_scheduleA | All appointments booked on a given date. |
| get_clientA | Look up a client by email with their contacts and saved preferences. Phone and address are masked by default (REDACT_PII=true); set false only for internal/admin tooling backed by a scoped token. |
| find_next_availableA | The first day from |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| book_cleaning | A natural-language booking request (e.g. to feed the booking agent). |
| summarize_schedule | Ask the model to summarize a day's schedule from the schedule resource. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| all_staff | All active staff (cleaners) with skills + home location. |
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: daily_schedule shows appointments, find_next_available finds next slot, get_client looks up client info, list_staff lists staff, search_availability finds matching staff. No overlapping functionality.
All tool names use snake_case, and most follow a verb_noun pattern (get_client, list_staff, search_availability). However, daily_schedule uses a noun_noun pattern, creating a minor inconsistency.
Five tools is an appropriate number for a booking server, covering core read operations without being excessive or insufficient.
The tool set lacks any mutating operations such as create_booking or update_appointment, making it impossible to complete a booking workflow. This is a significant gap for a booking server.