All developer docs

Developer · MCP

MCP server

Give AI agents the same powers as the REST API. SimpleDock exposes a Model Context Protocol endpoint so Claude, Cursor, and other clients can read availability and manage appointments as tools.

Create an API key

Endpoint & auth

The MCP server speaks Streamable HTTP at a single URL and authenticates with the same Pro API key as the REST API:

HTTP
https://simpledock.ai/api/v1/mcp

Pass your key as a Bearer token. Tools are scoped to the key — read tools need read scopes, write tools need appointments:write.

Connect a client

Pick your client below. Most take the server URL and your key directly; a few (like Claude Desktop) run a small bridge command instead, shown in their tab. Swap sd_live_your_key_here for your real key.

Claude Code
# Flags go before the server name.
claude mcp add --transport http simpledock https://simpledock.ai/api/v1/mcp \
  --header "Authorization: Bearer sd_live_your_key_here"
Keep your key out of shared configs
Committing a config to version control? Reference an environment variable instead of pasting the secret. Claude Code expands ${SIMPLEDOCK_API_KEY} inside a .mcp.json header, opencode resolves {env:SIMPLEDOCK_API_KEY}, and Codex reads the token from bearer_token_env_var = "SIMPLEDOCK_API_KEY".
claude.ai on the web is not supported yet
The web Add custom connector dialog authenticates only through OAuth, and the SimpleDock MCP server uses a static API key. There is nowhere to paste your sd_live_… key, so the connector cannot authenticate. Use Claude Desktop or Claude Code with your key instead.

Available tools

  • list_locations — list dock locations
  • list_doors — list a location's doors
  • list_appointment_types — types and their custom fields (call this first to get IDs)
  • get_availability — open slots for a type and date
  • list_appointments — filter by location, status, and date range (paginated)
  • get_appointment — fetch one by id
  • get_analytics — per-location counts by status and type
  • create_appointment — book an appointment
  • update_appointment_details — edit carrier/driver/reference fields
  • reschedule_appointment — move time/door
  • set_appointment_status — mark confirmed / completed / no-show
  • approve_appointment / reject_appointment — resolve pending
  • check_in_appointment — record driver arrival
  • cancel_appointment — cancel

Each tool maps to a REST endpoint and runs the same validation and org-scoping. Tool errors carry a machine-readable code (e.g. not_found, conflict) in structuredContent so agents can branch without parsing prose. See the REST API guide for field details.