MCP server that exposes Floyd Engine scheduling and booking tools to AI agents. Built on the Model Context Protocol Streamable HTTP transport.
For the engine's API documentation, see the docs folder in the engine repo.
| Tool | Description |
|---|---|
floyd_get_available_slots |
Check available appointment times for a service |
floyd_hold_booking |
Place a temporary hold on a time slot |
floyd_confirm_booking |
Confirm a held booking (requires explicit user consent) |
floyd_cancel_booking |
Cancel a held or confirmed booking |
floyd_reschedule_booking |
Move a booking to a new time |
floyd_update_booking |
Update a booking's metadata |
floyd_get_booking |
Retrieve booking details and status |
pnpm install| Variable | Required | Default | Description |
|---|---|---|---|
FLOYD_BASE_URL |
No | http://localhost:4000/v1 |
Floyd Engine base URL |
PORT |
No | 3000 |
HTTP server port |
pnpm devMCP endpoint: POST /
Health check: GET /health
pnpm dev -- --stdioWhen the Floyd engine requires authentication, connecting agents provide their API key via:
Authorization: Bearer <token>header (preferred)?token=<value>query parameter
The API key is forwarded to the Floyd engine on each request. If the engine has auth disabled (e.g. self-hosted), no key is needed.
get_available_slots → hold_booking → confirm_booking
↘ cancel_booking
↘ reschedule_booking
↘ update_booking (metadata)
- Get slots — query available times, returns signed
slotIdtokens - Hold — reserve a slot using the
slotId(or explicit fields). Creates a booking inheldstate - Confirm — finalize the booking. Requires
userConfirmed: true - Cancel — release a held or confirmed booking
- Reschedule — move a booking to a new time, preserving its identity
- Update — attach or replace metadata (e.g. party size, special requests)
pnpm test # run tests
pnpm typecheck # type-check
pnpm lint # eslint
pnpm format # prettier
pnpm build # bundle with tsuppnpm build
pnpm startThe server handles SIGTERM/SIGINT for graceful shutdown. HTTP requests to the Floyd API have a 10-second timeout.