Floyd

by floyd-run

2 144 downloads Not rated yet

About

Scheduling and booking engine for AI agents. Check availability, hold slots, and confirm appointments with two-phase booking and conflict-free resource management.

Explore

- Seven booking and scheduling tools for AI agents
- Streamable HTTP and stdio transport modes
- Booking lifecycle: hold, confirm, cancel, reschedule, update
- Signed slotId tokens for secure slot reservations
- Configurable API base URL and server port
- Graceful shutdown on SIGTERM/SIGINT

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 |

When the Floyd engine requires authentication, connecting agents provide their API key via:

1. Authorization: Bearer <token> header (preferred)
2. ?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.

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

| 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 |

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.

Tools

| 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 |

Setup

pnpm install

Environment variables

| Variable | Required | Default | Description |
| ---------------- | -------- | -------------------------- | ------------------ |
| FLOYD_BASE_URL | No | https://api.floyd.run/v1 | Floyd API base URL |
| PORT | No | 3000 | HTTP server port |

Usage

HTTP mode (Streamable HTTP)

pnpm dev

MCP endpoint: POST /
Health check: GET /health

Stdio mode

pnpm dev -- --stdio

Authentication

When the Floyd engine requires authentication, connecting agents provide their API key via:

1. Authorization: Bearer <token> header (preferred)
2. ?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.

Booking flow

get_available_slots → hold_booking → confirm_booking
                                   ↘ cancel_booking
                                   ↘ reschedule_booking
                                   ↘ update_booking (metadata)

1. Get slots — query available times, returns signed slotId tokens
2. Hold — reserve a slot using the slotId (or explicit fields). Creates a booking in held state
3. Confirm — finalize the booking. Requires userConfirmed: true
4. Cancel — release a held or confirmed booking
5. Reschedule — move a booking to a new time, preserving its identity
6. Update — attach or replace metadata (e.g. party size, special requests)

Development

pnpm test          # run tests
pnpm typecheck     # type-check
pnpm lint          # eslint
pnpm format        # prettier
pnpm build         # bundle with tsup

Production

pnpm build
pnpm start

The server handles SIGTERM/SIGINT for graceful shutdown. HTTP requests to the Floyd API have a 10-second timeout.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.