POST /v1/mcp and delegates to the same service as its REST counterpart, so the behaviour, validation, and tenancy rules documented across these pages apply unchanged.
The Scope column is the scope your token needs. Without it the tool still appears in tools/list, and the call fails with INSUFFICIENT_SCOPE — see how scopes are enforced.
Tools marked 🔴 delete data permanently.
Contacts
Read and write the people on the other side of your channels. See the Contacts endpoints for the full field reference.CRM
The full pipeline: customers, tickets, tasks, notes. See the CRM overview for how the entities relate.Customers
Tickets
Tasks
Notes
Knowledge
Retrieval and authoring against the tenant knowledge base. See the Knowledge overview.Messaging
Everything under/v1/messages. Every send tool takes an optional channel (whatsapp, whatsapp_qr, instagram, messenger; defaults to whatsapp) plus channel_id or phone_number_id to pick the concrete channel. Free-form sends only work inside the 24-hour window; outside it, only keebai_send_template gets through.
WhatsApp Flows
In-chat forms. See the Flows guide for the full lifecycle.Media
Uploading and downloading the binary itself is REST-only —
POST /v1/media/upload is multipart and GET /v1/media/{id}/download returns raw bytes, and neither fits a JSON tool call.Ecommerce
Read-only access to the catalog, carts, and sales. See the ecommerce overview for how the records relate — a cart is not a draft sale.There are no write tools here. Creating a sale or pushing a product goes through the platform integration, not the API.
Loyalty
Points, stamps, and wallet cards. See the loyalty overview for the data model — in particular that there is no reward entity and that balances are a projection, not a sum of the ledger.Scheduling
Branches, services, professionals, availability, and appointments. See the scheduling overview for the booking model — in particular that an appointment lands inpending, and that reading a slot does not hold it.
Arguments keep the REST names: the availability and list tools take
serviceId, branchId, and professionalId like the query strings they mirror, while keebai_scheduling_appointment_create takes branch_id, service_id, and start_time like the request body. Dates are YYYY-MM-DD and times HH:mm, both in the branch’s timezone. The appointment id is a UUID, not an ObjectId.
Agents
Read and write the configuration of the agents themselves: their goal, the sections of their prompt, the funnel, and the webhook tools they can call. Twenty-five tools, all onagents:read or agents:write.
Not exposed as tools
Templates, channels, webhooks, tenants, and setup links have no MCP tools yet. Use the REST API for those. CRM events are not tools either, and that one is on purpose rather than pending. Emitting an event is a system-of-record write from a system that knows something happened — an order closed, a delivery completed. A model deciding to emit one is a model asserting a fact it cannot verify. CallPOST /v1/webhook/events from the system that owns the fact.
Keebai’s own agents can emit events, through an internal tool gated by an
ai_triggerable flag you set per event type in the portal. That flag defaults to off and does not apply to this MCP server, which is your agent talking to the API, not Keebai’s agent talking to itself..pkpass has no tool either, for the same reason as media download: it is a file, not JSON. The Apple link tool covers the same use case.