wacrm ships a Model Context Protocol server so you can drive your CRM from AI assistants — Claude Desktop, Claude Code, Cursor, and any other MCP client — in natural language:
"How many conversations are still open today?" "Show the last five messages with +1 415 555 0123." "Send the
order_updatetemplate to that contact."
It lives in mcp-server/ and is published to npm as
wacrm-mcp. Under the hood
it's a thin wrapper over the public API, so every
request is authenticated and scoped by your instance exactly like any
other API call.
-
Create an API key in the dashboard: Settings → API keys. Grant only the scopes your assistant needs (a read-only assistant only needs the
*:readscopes). -
Add the server to your MCP client config:
That's read-only — the safe default. To let the assistant change
data or send messages, add "WACRM_ENABLE_WRITES": "true" (and
"WACRM_ENABLE_BROADCASTS": "true" for mass sends) to env.
- Reads (always on):
whoami, contacts (list/get), conversations (list/get), messages (list), broadcast status. - Writes (opt-in): send a message, create/update a contact.
- Broadcasts (opt-in): launch a template broadcast — requires an
explicit
confirmand is marked destructive.
Because sending WhatsApp messages is a real side effect, the server is read-only until you opt in, layered on top of the API key's own scopes. Give an assistant a read-only key and read-only config and it physically cannot send anything. See the server README for the full tool list and safety model.
{ "mcpServers": { "wacrm": { "command": "npx", "args": ["-y", "wacrm-mcp"], "env": { "WACRM_BASE_URL": "https://crm.example.com", "WACRM_API_KEY": "wacrm_live_xxxxxxxxxxxxxxxxxxxxxxxx" } } } }