EspoCRM MCP server
EspoCRM in any MCP client, through Memtro: EspoCRM does not publish this server. Memtro's EspoCRM connector reads EspoCRM 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
EspoCRM, the open-source CRM: list, filter and read accounts, contacts, leads, opportunities, cases, tasks, meetings or any custom entity, a record's related records and its stream. Can create, update or delete a record, relate records to each other or unrelate them, and post to a record's stream.
Reads
espocrm_list_recordsList and filter EspoCRM records of one entity type: Account, Contact, Lead, Opportunity, Case, Task, Meeting, Call, Document…espocrm_get_recordOne EspoCRM record by entity type and id, with all its fields (address fields left out; phone numbers only with include_phone).espocrm_list_relatedRecords linked to an EspoCRM record through one of its links, e.g. Account → opportunities, contacts, cases, tasks; Opportunity → contacts.espocrm_record_streamThe stream of one EspoCRM record, newest first: posts, notes, status changes, emails and who did them.
Acts, when you ask
These change something in EspoCRM. 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.
espocrm_create_recordCreate an EspoCRM record of the given entity type with the attributes given (lowerCamelCase, e.g. Contact {firstName, lastName, emailAddress…espocrm_update_recordChange fields on an existing EspoCRM record.espocrm_delete_recordDelete an EspoCRM record.espocrm_post_notePost a note to an EspoCRM record's stream (Account, Contact, Lead, Opportunity, Case and so on).espocrm_link_recordsRelate an EspoCRM record to up to 50 others through one of its links, e.g. Account → contacts or opportunities, Opportunity → contacts…espocrm_unlink_recordsRemove the relationship between an EspoCRM record and up to 50 related records through one of its links.
Connect it
First connect EspoCRM on Dashboard → Connections, then add Memtro to your client once. The EspoCRM 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 EspoCRM 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
- › What's the latest on the Acme opportunity?
- › Which open opportunities are past their close date?
- › What cases has Brightwave Ltd raised this quarter?
- › Post a note on the BigCo account that the renewal call moved to Thursday
- › Create a task for Dan Fletcher to send the Northwind quote by Friday
Questions
- Is this an official EspoCRM MCP server?
- No. It is Memtro's MCP server with Memtro's EspoCRM connector behind it: the connector reads EspoCRM through its API with the credentials you connect on Dashboard → Connections, and EspoCRM 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 EspoCRM?
- Only when you ask, and only what it has been granted: create a record of any entity the API user's role allows (not users, roles, settings or emails); update a record's fields (the values sent replace the old ones); delete a record; post a note to a record's stream; relate a record to others through a link; remove the relationship between records. 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.