Developer · MCP
MCP server
Give AI agents the same powers as the REST API. SimpleDock exposes a Model Context Protocol endpoint so Claude, ChatGPT, Grok, Cursor, and other clients can read availability and manage appointments as tools.
Connect an assistantEndpoint & auth
The MCP server speaks Streamable HTTP at a single URL. Add it to your client and it signs in with OAuth: SimpleDock opens in your browser, you approve, and you're connected. There's no key to create or paste.
https://simpledock.ai/api/v1/mcpThe connection acts as you, so it can only do what your role allows: Dock Staff can read the schedule and mark trucks arrived, completed, or no-show; Schedulers can also book and manage appointments; and Admins can change location setup. Read tools need read scopes, the mark_arrived and set_status actions need appointments:receive, other appointment changes need appointments:write (which includes appointments:receive), and setup tools need locations:write. Disconnect an app anytime in Settings → AI assistants.
Scripts and clients without OAuth can send an API key instead (every plan): Authorization: Bearer sd_live_… from Settings → API. Keys created before the setup tools existed don't include locations:write; create a new key to use them.
Connect a client
One-click install:
Or pick your client:
# claude.ai, Claude Desktop, and the mobile apps
# 1. Customize → Connectors → Add custom connector
# (Team/Enterprise: an owner adds it under Organization settings → Connectors)
# 2. Paste this URL, click Add, then Connect and approve in SimpleDock:
https://simpledock.ai/api/v1/mcp401 pointing at /.well-known/oauth-protected-resource. Clients discover the authorization server there and register with a Client ID Metadata Document or Dynamic Client Registration. Logins use PKCE, and tokens are bound to this server, last an hour, and refresh automatically.Available tools
Twelve tools. Reads are separate from writes, so read tools carry readOnlyHint: true and clients can run them without asking. Write tools group related changes behind an actionargument; each action is listed in the tool's description with the scope it needs.
Read:
get_locations— locations, and withviewa location'sappointment_types(call this first to get IDs),doors, fullsetup,booking_questions, orbooking_pagesearch_appointments— filter by location, status, and date range (paginated), or fetch one byappointmentIdget_availability— open slots for a type and dateget_analytics— per-location counts by status and type (Pro)get_account_status— whether the owner has confirmed their email, what waits until they do, and each location's booking page URL
Appointments:
create_appointment— book an appointmentupdate_appointment—reschedule,approveorrejecta pending request,cancel,check_in(the driver is on track or running late),mark_arrived(the truck is at the dock; starts dwell time),set_status(completed or no-show withappointments:receive; confirmed withappointments:write), oredit_details
Location setup:
manage_location—createa facility;set_upsettings, weekly hours, appointment types, and doors in one call, matched by name (returns the booking-page checklist);update_details(name, address, timezone, booking-page URL);update_notifications(alert address, carrier emails, driver check-in texts);add_closed_dates/remove_closurefor holidays and shutdownsmanage_appointment_type—create/update: length, notice, buffers, activemanage_door—create/update: doors, the types they take, and their own hoursmanage_booking_question—create/update/deletethe extra questions carriers answer (Pro)
Account:
manage_account—resend_verification_email(the owner confirms by clicking the link),invite_memberas Admin, Scheduler, or Dock Staff (needs the owner's email confirmed), orcreate_webhookto send appointment events to anhttps://URL (Pro; copy the signing secret from Settings → Integrations)
API keys are created in Settings → API. The owner confirms their email by clicking the link in it. Appointment actions map to REST endpoints, except mark_arrived. Booking questions, notification settings, and invite_member are MCP-only for now. All run the same validation and org-scoping. Results come back as JSON text and as structuredContent. 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.
Version 2.0.0 of the server replaced 38 single-purpose tools with these twelve. Calling an old name returns an error that names its replacement.