MCP server that exposes Floyd scheduling and booking tools to AI agents. Built on the Model Context Protocol Streamable HTTP transport.
For full API documentation, see docs.floyd.run.
| 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 | https://api.floyd.run/v1 |
Floyd API 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.