Holded MCP server
Holded in any MCP client, through Memtro: Holded does not publish this server. Memtro's Holded connector reads Holded 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
Read Holded: sales invoices and purchases with what is paid and pending, contacts, payments, CRM leads and funnels, projects, tasks and project time. When you ask, can create a task on a project, a contact, a CRM lead or event, a note or task on a lead, move a lead to another stage, create, approve and email an invoice, record a payment on one, and create and email an estimate. Nothing is deleted.
Reads
holded_list_invoicesList Holded sales invoices: number, contact, issue and due dates, status, totals and what is paid or still pending (money as decimal strings).holded_list_purchasesList Holded purchases (supplier invoices): number, contact, issue and due dates, status, totals and what is paid or still pending…holded_list_contactsList Holded contacts (clients, suppliers, leads): name, type, email, phone, tax id and address.holded_list_paymentsList Holded payments and collections: amount, contact, date, bank account and status.holded_list_leadsList Holded CRM leads (deals): name, contact, value, potential, stage, funnel, due date and status.holded_list_projectsList Holded projects with their status.holded_list_tasksList Holded project tasks, open or done.holded_list_project_timesList time logged on Holded projects: project, person, duration in hours, date, description, approved and cost.holded_list_funnelsList Holded CRM funnels with their stages (id, name, deal probability).
Acts, when you ask
These change something in Holded. 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.
holded_create_invoiceCreates a sales invoice in Holded for an existing contact, with the line items given.holded_approve_invoiceApproves (issues) a draft Holded invoice: it gets its approval date and becomes an official document.holded_send_invoiceEmails a Holded invoice to the addresses given, from the account's sender address and email template…holded_record_invoice_paymentRecords a payment received against a Holded invoice (money in the books): the amount is deducted from what is pending…holded_create_estimateCreates an estimate (quote) in Holded for an existing contact, with the line items given.holded_send_estimateEmails a Holded estimate to the addresses given, from the account's sender address and email template…holded_update_lead_stageMoves a Holded CRM lead to another stage of its funnel.holded_update_lead_taskRenames a task on a Holded CRM lead.holded_create_eventCreates a CRM event (a call, meeting or task) in Holded, optionally on a contact or lead.holded_create_taskCreates a task on a Holded project.holded_create_contactCreates a new contact in Holded (a client, supplier, debtor, creditor or lead).holded_create_leadCreates a new CRM lead (deal) in Holded for an existing contact, in a sales funnel.holded_create_lead_noteAdds a note to a Holded CRM lead.holded_create_lead_taskAdds a task (to-do) to a Holded CRM lead.
Connect it
First connect Holded on Dashboard → Connections, then add Memtro to your client once. The Holded 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 Holded 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
- › Which sales invoices are overdue, and how much is still pending?
- › What has Acme been billed this year?
- › What is in the sales pipeline, and which leads are due this month?
- › How many hours have been logged on the Northwind website project this month?
- › Record a payment of 1,200 euros against invoice F240031 from BigCo
Questions
- Is this an official Holded MCP server?
- No. It is Memtro's MCP server with Memtro's Holded connector behind it: the connector reads Holded through its API with the credentials you connect on Dashboard → Connections, and Holded 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 Holded?
- Only when you ask, and only what it has been granted: create a task on a Holded project; create a contact in Holded; create a CRM lead in Holded; add a note to a Holded lead; add a task to a Holded lead; create a sales invoice for a contact (a draft unless the account auto-approves); approve (issue) a draft invoice; email an invoice to the recipients named; record a payment against an invoice; create an estimate (quote) for a contact; email an estimate to the recipients named; move a CRM lead to another stage; rename a task on a CRM lead; create a CRM event (call, meeting), inviting participants only when named. 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.