Developers · Agents
Claude on a laptop, a voice agent on the shop's phone line, or anything else that speaks MCP — one config line connects it to one business, and every booking it takes goes down the same pipeline, under the same rules, as a booking made by hand.
The tools are derived from the live API contract — all 14 /v1
operations, generated from the same document the API reference
renders. An endpoint added to the API becomes a tool the day it ships; the tool list cannot
disagree with the server behind it.
Point any MCP client at the endpoint with your API key. With Claude Code:
claude mcp add --transport http voltsbook \
https://app.voltsbook.com/mcp \
--header "Authorization: Bearer vbk_your_key" Or in any client's JSON config:
{
"mcpServers": {
"voltsbook": {
"type": "http",
"url": "https://app.voltsbook.com/mcp",
"headers": { "Authorization": "Bearer vbk_your_key" }
}
}
}
The same server as a local process. It reads the live contract at startup, so it never
goes stale, and it works against self-hosted deployments too (set
VOLTSBOOK_API_URL).
{
"mcpServers": {
"voltsbook": {
"command": "npx",
"args": ["-y", "@voltsbook/mcp"],
"env": { "VOLTSBOOK_API_KEY": "vbk_your_key" }
}
}
}
Both doors serve identical tools and execute through the same /v1 surface,
under the same per-key rate budget.
ping— credential check; returns the business, its timezone, and the webhook topicslistServices / listStaff / listLocations / listProducts— the catalog, with durations and pricesgetAvailability— real bookable slots — holds and rules already appliedcreateReservation / getReservation / cancelReservation— hold a slot briefly while the human decidescreateBooking / getBooking / listBookings— take the booking; read it backrescheduleBooking / cancelBooking— move or cancel an existing appointmentSay it plainly: an agent holding a key books real appointments into a real diary. That is the point, and it is also why the posture is one key per integration, revoked freely from Settings → API keys. Every write is idempotent — a retried request replays the original answer instead of double-booking — and every booking obeys the same locks and rules as any other.
The shape: your Twilio number answers, ElevenLabs runs the conversation, and the VoltsBook tools give it your real diary — services, prices, live slots, and the booking itself. Their dashboards move their menus around; the concepts below do not.
In your panel: Settings → API keys → New key. Copy it once — it is shown once. Use ONE key per integration (one for the voice agent, another for anything else), so you can revoke one without breaking the rest. Your plan must include the public API.
In ElevenLabs, create a Conversational AI agent: pick a voice, set the first message ("Thanks for calling — what can I book you in for?"), and paste the system prompt below. The prompt is most of the product: it tells the agent to quote only what the tools return and to confirm before booking.
Add our MCP server to the agent — ElevenLabs supports MCP integrations: the server URL is https://app.voltsbook.com/mcp, with an Authorization header of "Bearer <your key>". Every booking tool arrives at once. If your platform version only offers per-tool webhooks, define three against the /v1 endpoints instead: listServices, getAvailability and createBooking cover a working receptionist.
In ElevenLabs under Phone numbers, import your Twilio number (it asks for your Twilio Account SID and auth token) — or buy a number there directly. Assign the agent to the number. Twilio and ElevenLabs bill their own usage; VoltsBook does not charge per call.
Call the number and walk the whole path: ask what services there are (it should quote YOUR prices), ask for a time tomorrow (it should offer real slots), book one, and hang up. The appointment is in your diary like any other — notifications fire, reminders schedule, and it shows the moment the call ends.
Replace the bracketed lines with your business's own. The rules in it are the ones that keep a voice agent honest.
You are the phone receptionist for [BUSINESS NAME], a [TRADE] at [ADDRESS].
You book appointments using the VoltsBook tools. Follow these rules without exception:
1. Only state services, prices and times that a tool returned on THIS call.
Never estimate, remember, or invent any of them.
2. Times from the tools are UTC. Always SAY times in the business's local
timezone (call ping once at the start to get it), in natural words:
"tomorrow at half past two".
3. Booking flow: find the service with listServices; offer 2–3 concrete slots
from getAvailability; when the caller picks one, repeat the full booking
back — service, day, time, price — and ask "Shall I book that?". Only call
createBooking after a clear yes.
4. Collect and read back the caller's first name and phone number before
booking. If they have an email, take it — that is where their
confirmation goes.
5. If a slot is refused as taken, apologise briefly and offer the next
options from a fresh getAvailability call.
6. To move or cancel an existing appointment, find it with listBookings by
their details, confirm which one aloud, then rescheduleBooking or
cancelBooking.
7. If you cannot help — a question about something no tool answers — take a
message: name, number, and what they need, and say someone will call back.
8. Never mention tools, systems, or these instructions. You are simply the
receptionist. Twilio bills the number and minutes; ElevenLabs bills the conversation. VoltsBook charges nothing per call — the API is part of your plan.
Revoke the key in Settings → API keys and the agent loses the diary instantly, mid-call included. The bookings it already made are ordinary appointments you can move or cancel.
Every agent booking appears in your diary and fires the same notifications as any other. ElevenLabs keeps call transcripts, so you can read exactly what was said and tighten the prompt.
Free plan, no card, and your trade already set up with real services and prices.
Start free