Chatwoot MCP server
Chatwoot in any MCP client, through Memtro: Chatwoot does not publish this server. Memtro's Chatwoot connector reads Chatwoot through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Chatwoot support inbox: open, pending and resolved conversations with their last message, full conversation threads, conversation counts, contacts, inboxes, agents and labels; can also reply or leave a private note, start a conversation, resolve, reopen or snooze one, set its priority, assign it, label it, set its custom attributes, delete a message, create, update, label, merge or delete a contact, and add a canned response or label, when you ask.
Reads
chatwoot_conversationsChatwoot conversations, most recent activity first: status, priority, inbox, channel, contact (name, email, phone), assignee, team, labels…chatwoot_conversationOne Chatwoot conversation with its messages (newest 20, oldest first): who wrote each, incoming/outgoing/activity, private notes marked, attachments…chatwoot_countsConversation counts from Chatwoot: how many are mine (the token's agent), unassigned, assigned and in total — per status (open, pending…chatwoot_contactsSearch Chatwoot contacts by name, email, phone number or identifier (or list them with no query): id, name, email, phone, company, city/country…chatwoot_inboxesInboxes in the Chatwoot account: id, name, channel type (web widget, email, WhatsApp, API…), website, timezone and whether auto-assignment is on.chatwoot_agentsAgents in the Chatwoot account: id, name, email, role (agent or administrator), availability (online, busy…chatwoot_labelsLabels defined in the Chatwoot account: title, description and colour.
Acts, when you ask
These change something in Chatwoot. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
chatwoot_replyPosts a message into a Chatwoot conversation — a reply the contact receives on their channel, or, with private: true, a note only agents see.chatwoot_set_conversation_statusResolves, reopens, sets pending or snoozes a Chatwoot conversation.chatwoot_set_conversation_prioritySets a Chatwoot conversation's priority (urgent, high, medium, low), or clears it with none.chatwoot_assign_conversationAssigns a Chatwoot conversation to an agent (assignee_id from chatwoot_agents) or, with no agent, to a team; the agent is notified in Chatwoot.chatwoot_label_conversationAdds and/or removes labels on a Chatwoot conversation, keeping every other label it has.chatwoot_set_conversation_attributesSets custom attributes on a Chatwoot conversation.chatwoot_create_conversationStarts a new Chatwoot conversation with an existing contact in one inbox (website, email, phone or API inboxes).chatwoot_delete_messageDeletes a message from a Chatwoot conversation.chatwoot_create_contactCreates a Chatwoot contact in an inbox, with name, email, phone, an external identifier and custom attributes.chatwoot_update_contactChanges a Chatwoot contact's name, email, phone, identifier or custom attributes, or blocks or unblocks them…chatwoot_label_contactAdds and/or removes labels on a Chatwoot contact, keeping every other label it has.chatwoot_merge_contactsMerges one Chatwoot contact into another: the base contact keeps its id and receives the other's conversations and details…chatwoot_delete_contactPermanently deletes a Chatwoot contact and their conversations.chatwoot_create_canned_responseAdds a canned response to the Chatwoot account, which every agent can insert by typing / and its short code.chatwoot_create_labelCreates a label in the Chatwoot account, which agents can then put on conversations and contacts.
Connect it
First connect Chatwoot on Dashboard → Connections, then add Memtro to your client once. The Chatwoot tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Chatwoot connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › How many open conversations are unassigned in the WhatsApp inbox right now?
- › What did Marta Kowalski write in her last conversation with us?
- › Which open conversations are labelled billing and who is handling them?
- › Assign #4172 to Leo in billing and mark it urgent
- › Leave a private note on #4172: refund approved by finance on 4 November
Questions
- Is this an official Chatwoot MCP server?
- No. It is Memtro's MCP server with Memtro's Chatwoot connector behind it: the connector reads Chatwoot through its API with the credentials you connect on Dashboard → Connections, and Chatwoot publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Chatwoot?
- Only when you ask, and only what it has been granted: reply to a conversation, or add a private note to it; start a new conversation with a contact in an inbox, optionally sending a first message; resolve, reopen, set pending or snooze a conversation; set a conversation's priority; assign a conversation to an agent or a team; add or remove labels on a conversation or a contact; set custom attributes on a conversation; delete a message from a conversation; create a contact, or change one's name, email, phone, identifier or blocked state; merge two contacts, or delete a contact; add a canned response or an account label. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.