Skip to content

Connectors · Accounting & finance

Holded MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Holded and the rest of your systems. It gives your agent 324 Holded actions (127 reads, 150 writes and 47 that wait for a confirmation) and holds the Holded credential itself, so the agent never does. It paces Holded's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "holded.invoices.list",  intent: "check which Holded account is connected"}# List invoices · read · 1 upstream call
  • 324actionsin one signed file
  • 127readlook, never change
  • 150writecreate and update
  • 47wait for a yesdestructive, confirmed first

Set up

Connect Holded in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Holded.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_keyHolded API key: in Holded go to Settings > API, click Generate new key and copy it
    account { op: "connections.requirements", service: "holded" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "holded.invoices.list" }# list invoices · read · 1 upstream callcheck { action: "holded.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Holded at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_key
Limits we pace to
60 calls a minute, per connection
API covered
Holded API v2api.holded.com
Built from
Holded's documentation, read 23 October 2026holded.comholded.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
127 of 127 reads, for up to 5 minutes; a write clears what it affects
Shared entities
14, so ask can line Holded up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Holded.

324 actions in 50 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 127readlook, never change
  • 150writecreate and update
  • 47destructivewait for a confirmation
  1. Employees

    18

    7 read · 10 write · 1 destructive

    List all employees · Create an employee · Get an employee · Update an employee

  2. Invoices

    15

    4 read · 7 write · 4 destructive

    List invoices · Create an invoice · Get an invoice · Update an invoice

  3. Sales orders

    13

    4 read · 8 write · 1 destructive

    List sales orders · Create a sales order · Get a sales order · Update a sales order

  4. Leads

    12

    2 read · 8 write · 2 destructive

    List all leads · Create a lead · Get a lead · Update a lead

  5. Banking accounts

    11

    4 read · 6 write · 1 destructive

    List banking accounts · Create a banking account · Get a banking account by ID · Update a banking account

  6. Estimates

    11

    3 read · 7 write · 1 destructive

    List estimates · Create an estimate · Get an estimate · Update an estimate

  7. Products

    11

    7 read · 3 write · 1 destructive

    List all products · Create a product · Get a product by ID · Update a product

  8. Projects

    11

    5 read · 4 write · 2 destructive

    List projects · Create a project · Get a project · Update a project

42 more areas · 222 actions
  • Purchase orders 11
  • Purchases 11
  • Contacts 10
  • Credit notes 10
  • Receipt notes 10
  • Sales receipts 10
  • Waybills 10
  • Proformas 9
  • Webhooks 8
  • Payslips 7
  • Recurring invoices 7
  • Inbox 6
  • Purchase shipments 6
  • Salary records 6
  • Warehouses 6
  • Bookings 5
  • Contact groups 5
  • Events 5
  • Expenses accounts 5
  • Funnels 5
  • Invoicing forecasts 5
  • Payment methods 5
  • Payments 5
  • Price lists 5
  • Production orders 5
  • Sales channels 5
  • Services 5
  • Tasks 5
  • Employee times 4
  • Ledger entries 4
  • Numbering series 4
  • Tags 3
  • Accounting accounts 2
  • API usage 2
  • Booking locations 2
  • Remittances 2
  • Taxes 2
  • Business plan goals 1
  • Business plan scenarios 1
  • Documents 1
  • Project times 1
  • Purchase refunds 1

Top actions

The Holded API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 97 of Holded's 97 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
holded.invoices.listList invoicesList invoices.readfinance.invoice.list101 connectors
holded.payments.listList paymentsList payments.readfinance.payment.list75 connectors
holded.estimates.listList estimatesList estimates.readfinance.quote.list52 connectors
holded.purchase_orders.listList purchase ordersList purchase orders.readfinance.purchase_order.list45 connectors
holded.banking_accounts.listList banking accountsList banking accounts.readfinance.bank_account.list35 connectors
holded.credit_notes.listList credit notesList credit notes.readfinance.credit_note.list33 connectors
holded.purchases.listList purchasesList purchases.readfinance.bill.list31 connectors
holded.products.listList all productsList all products.readcommerce.product.list112 connectors
holded.invoices.createCreate an invoiceCreate an invoice.writefinance.invoice.create74 connectors
holded.payments.createCreate a paymentCreate a payment.writefinance.payment.create67 connectors
holded.estimates.createCreate an estimateCreate an estimate.writefinance.quote.create52 connectors
holded.invoices.deleteDelete an invoiceDelete an invoice.destructivefinance.invoice.delete56 connectors

Try it

Prompts to paste into Claude.

Each one names the Holded actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Holded invoices are more than 30 days overdue? Group them by customer with the total owed.

    callsholded.invoices.list

  2. Writewrite

    Create an invoice in Holded. Show me exactly what you will send before you save it.

    callsholded.invoices.create

  3. Across systemsread

    For each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA?

    callsholded.invoices.listconnectwise_manage.tickets.list

Across your systems

Holded, joined to the rest of your business.

One ask fetches from Holded and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • For each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA?

    holded.invoices.list + connectwise_manage.tickets.list, on crm.company · ConnectWise PSA

  • For each customer, how many invoices are in Holded and how many tickets in HubSpot CRM?

    holded.invoices.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorscrm.company 227work.project 116commerce.product 109work.task 105finance.invoice 91commerce.order 86hr.employee 63finance.payment 53
ask
ask {  intent: "for each customer, how many invoices are in Holded and how many tickets in ConnectWise PSA",  steps: [    { action: "holded.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "inv",        right: "tix",        on: "crm.company",        group_by: "inv.company_name",        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Holded

Destructive actions wait for a yes.

47 Holded actions are destructive. The first 10:

  • Delete an invoiceholded.invoices.delete
  • Delete a paymentholded.payments.delete
  • Delete an estimateholded.estimates.delete
  • Delete a purchase orderholded.purchase_orders.delete
  • Delete a purchaseholded.purchases.delete
  • Delete a productholded.products.delete
  • Delete a credit noteholded.credit_notes.delete
  • Delete a banking accountholded.banking_accounts.delete
  • Delete a sales orderholded.sales_orders.delete
  • Delete a taskholded.tasks.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doholded.invoices.deleteconfirm_policy: human

Delete an invoice?

intent: the user asked me to delete an invoice

run suspended · waiting for a named person · key holded-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "holded-agent",  allowed_actions: ["holded.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "holded.invoices.delete", approver: "[email protected]" },    { match: "holded.payments.delete", approver: "[email protected]" },    { match: "holded.estimates.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Holded only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Holded costs on actionlake.

Every Holded action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Holded refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 324 Holded actions
  • 324actions pageeach page of a long list is one call
  • 127reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Holded action.

324 actions by area: the id your agent calls, what it does, and its effect.

Employees18
  • holded.employees.clock_inClock in an employeewrite
  • holded.employees.clock_outClock out an employeewrite
  • holded.employees.createCreate an employeewrite
  • holded.employees.create_employee_timeCreate a time entry for an employeewrite
  • holded.employees.create_time_offCreate a time off request (absence / holiday)write
  • holded.employees.deleteDelete an employeedestructive
  • holded.employees.getGet an employeeread
  • holded.employees.get_employee_contractGet active contractread
  • holded.employees.get_time_offGet a time off request (absence / holiday)read
  • holded.employees.listList all employeesread
  • holded.employees.list_all_time_offsList all time off requests (absences / holidays)read
  • holded.employees.list_employee_time_offsList time off requests for an employee (absences / holidays)read
  • holded.employees.list_employee_timesList time entries for an employeeread
  • holded.employees.pausePause an employee time sessionwrite
  • holded.employees.unpauseResume an employee time sessionwrite
  • holded.employees.updateUpdate an employeewrite
  • holded.employees.update_employee_contractUpdate active contractwrite
  • holded.employees.update_time_offUpdate time off end date (absence / holiday)write
Invoices15
  • holded.invoices.approve_invoiceApprove an invoicewrite
  • holded.invoices.bulk_approve_invoicesBulk approve invoiceswrite
  • holded.invoices.bulk_cancel_invoicesBulk cancel invoicesdestructive
  • holded.invoices.bulk_delete_invoicesBulk delete invoicesdestructive
  • holded.invoices.cancel_invoiceCancel an invoicedestructive
  • holded.invoices.createCreate an invoicewrite
  • holded.invoices.create_invoice_paymentCreate a payment for an invoicewrite
  • holded.invoices.deleteDelete an invoicedestructive
  • holded.invoices.find_invoices_by_document_numberFind invoices by document numberread
  • holded.invoices.getGet an invoiceread
  • holded.invoices.listList invoicesread
  • holded.invoices.list_invoice_attachmentsList invoice attachmentsread
  • holded.invoices.send_invoiceSend an invoice by emailwrite
  • holded.invoices.set_invoice_pipelineSet invoice pipelinewrite
  • holded.invoices.updateUpdate an invoicewrite
Sales orders13
  • holded.sales_orders.approve_sales_orderApprove a sales orderwrite
  • holded.sales_orders.createCreate a sales orderwrite
  • holded.sales_orders.deleteDelete a sales orderdestructive
  • holded.sales_orders.getGet a sales orderread
  • holded.sales_orders.get_sales_order_shipped_itemsGet shipped items for a sales orderread
  • holded.sales_orders.listList sales ordersread
  • holded.sales_orders.list_sales_order_attachmentsList sales order attachmentsread
  • holded.sales_orders.send_sales_orderSend a sales order by emailwrite
  • holded.sales_orders.set_sales_order_pipelineSet sales order pipelinewrite
  • holded.sales_orders.ship_sales_orderShip all items in a sales orderwrite
  • holded.sales_orders.ship_sales_order_by_linesShip specific lines in a sales orderwrite
  • holded.sales_orders.updateUpdate a sales orderwrite
  • holded.sales_orders.update_sales_order_trackingUpdate sales order tracking informationwrite
Leads12
  • holded.leads.createCreate a leadwrite
  • holded.leads.create_lead_noteCreate a lead notewrite
  • holded.leads.create_lead_taskCreate a lead taskwrite
  • holded.leads.deleteDelete a leaddestructive
  • holded.leads.delete_lead_taskDelete a lead taskdestructive
  • holded.leads.getGet a leadread
  • holded.leads.listList all leadsread
  • holded.leads.updateUpdate a leadwrite
  • holded.leads.update_lead_datesUpdate lead dateswrite
  • holded.leads.update_lead_noteUpdate a lead notewrite
  • holded.leads.update_lead_stageUpdate a lead stagewrite
  • holded.leads.update_lead_taskUpdate a lead taskwrite
Banking accounts11
  • holded.banking_accounts.archive_banking_accountArchive a banking accountwrite
  • holded.banking_accounts.createCreate a banking accountwrite
  • holded.banking_accounts.create_bank_movementCreate one or multiple manual bank movementswrite
  • holded.banking_accounts.create_bank_movements_bulkCreate bank movements in bulkwrite
  • holded.banking_accounts.deleteDelete a banking accountdestructive
  • holded.banking_accounts.getGet a banking account by IDread
  • holded.banking_accounts.listList banking accountsread
  • holded.banking_accounts.list_banking_account_bank_movementsList banking account movementsread
  • holded.banking_accounts.list_banking_account_cash_movementsList banking account cash movementsread
  • holded.banking_accounts.reconcile_transaction_with_documentReconcile a bank movementwrite
  • holded.banking_accounts.updateUpdate a banking accountwrite
Estimates11
  • holded.estimates.accept_estimateAccept an estimatewrite
  • holded.estimates.approve_estimateApprove an estimatewrite
  • holded.estimates.createCreate an estimatewrite
  • holded.estimates.deleteDelete an estimatedestructive
  • holded.estimates.getGet an estimateread
  • holded.estimates.listList estimatesread
  • holded.estimates.list_estimate_attachmentsList estimate attachmentsread
  • holded.estimates.reject_estimateReject an estimatewrite
  • holded.estimates.send_estimateSend an estimate by emailwrite
  • holded.estimates.set_estimate_pipelineSet estimate pipelinewrite
  • holded.estimates.updateUpdate an estimatewrite
Products11
  • holded.products.createCreate a productwrite
  • holded.products.deleteDelete a productdestructive
  • holded.products.getGet a product by IDread
  • holded.products.get_product_imageGet a product image by IDread
  • holded.products.get_product_main_imageGet the main product imageread
  • holded.products.get_product_stockGet stock availability for a productread
  • holded.products.get_product_stock_transitGet stock in transit for a productread
  • holded.products.listList all productsread
  • holded.products.list_product_imagesList product imagesread
  • holded.products.updateUpdate a productwrite
  • holded.products.update_product_stockUpdate stock for a productwrite
Projects11
  • holded.projects.createCreate a projectwrite
  • holded.projects.create_project_timeCreate a time entry for a projectwrite
  • holded.projects.deleteDelete a projectdestructive
  • holded.projects.delete_project_timeDelete a project time entrydestructive
  • holded.projects.getGet a projectread
  • holded.projects.get_project_summaryGet a project summaryread
  • holded.projects.get_project_timeGet a project time entryread
  • holded.projects.listList projectsread
  • holded.projects.list_project_timesList time entries for a projectread
  • holded.projects.updateUpdate a projectwrite
  • holded.projects.update_project_timeUpdate a project time entrywrite
Purchase orders11
  • holded.purchase_orders.approve_purchase_orderApprove a purchase orderwrite
  • holded.purchase_orders.createCreate a purchase orderwrite
  • holded.purchase_orders.deleteDelete a purchase orderdestructive
  • holded.purchase_orders.getGet a purchase orderread
  • holded.purchase_orders.get_purchase_order_received_itemsGet received items for a purchase orderread
  • holded.purchase_orders.listList purchase ordersread
  • holded.purchase_orders.list_purchase_order_attachmentsList purchase order attachmentsread
  • holded.purchase_orders.receive_purchase_orderReceive units of a purchase orderwrite
  • holded.purchase_orders.send_purchase_orderSend a purchase order by emailwrite
  • holded.purchase_orders.set_purchase_order_pipelineSet purchase order pipelinewrite
  • holded.purchase_orders.updateUpdate a purchase orderwrite
Purchases11
  • holded.purchases.approve_purchaseApprove a purchasewrite
  • holded.purchases.createCreate a purchasewrite
  • holded.purchases.create_purchase_paymentCreate a payment for a purchasewrite
  • holded.purchases.create_purchase_refundCreate a purchase refundwrite
  • holded.purchases.deleteDelete a purchasedestructive
  • holded.purchases.getGet a purchaseread
  • holded.purchases.get_purchase_refundGet a purchase refundread
  • holded.purchases.listList purchasesread
  • holded.purchases.list_purchase_attachmentsList purchase attachmentsread
  • holded.purchases.set_purchase_pipelineSet purchase pipelinewrite
  • holded.purchases.updateUpdate a purchasewrite
Contacts10
  • holded.contacts.bulk_archive_contactsBulk archive contactswrite
  • holded.contacts.bulk_delete_contactsBulk delete contactsdestructive
  • holded.contacts.createCreate a contactwrite
  • holded.contacts.deleteDelete a contactdestructive
  • holded.contacts.getGet a contact by IDread
  • holded.contacts.get_contact_portal_linkGet client portal link for a contactread
  • holded.contacts.listList contactsread
  • holded.contacts.list_contact_attachmentsList contact attachmentsread
  • holded.contacts.search_contactsSearch contacts by nameread
  • holded.contacts.updateUpdate a contactwrite
Credit notes10
  • holded.credit_notes.approve_credit_noteApprove a credit notewrite
  • holded.credit_notes.createCreate a credit notewrite
  • holded.credit_notes.create_credit_note_paymentCreate a payment for a credit notewrite
  • holded.credit_notes.deleteDelete a credit notedestructive
  • holded.credit_notes.getGet a credit noteread
  • holded.credit_notes.listList credit notesread
  • holded.credit_notes.list_credit_note_attachmentsList credit note attachmentsread
  • holded.credit_notes.send_credit_noteSend a credit note by emailwrite
  • holded.credit_notes.set_credit_note_pipelineSet credit note pipelinewrite
  • holded.credit_notes.updateUpdate a credit notewrite
Receipt notes10
  • holded.receipt_notes.approve_receipt_noteApprove a receipt notewrite
  • holded.receipt_notes.createCreate a receipt notewrite
  • holded.receipt_notes.create_receipt_note_paymentCreate a payment for a receipt notewrite
  • holded.receipt_notes.deleteDelete a receipt notedestructive
  • holded.receipt_notes.getGet a receipt noteread
  • holded.receipt_notes.listList receipt notesread
  • holded.receipt_notes.list_receipt_note_attachmentsList receipt note attachmentsread
  • holded.receipt_notes.send_receipt_noteSend a receipt note by emailwrite
  • holded.receipt_notes.set_receipt_note_pipelineSet receipt note pipelinewrite
  • holded.receipt_notes.updateUpdate a receipt notewrite
Sales receipts10
  • holded.sales_receipts.approve_sales_receiptApprove a sales receiptwrite
  • holded.sales_receipts.createCreate a sales receiptwrite
  • holded.sales_receipts.create_sales_receipt_paymentCreate a payment for a sales receiptwrite
  • holded.sales_receipts.deleteDelete a sales receiptdestructive
  • holded.sales_receipts.getGet a sales receiptread
  • holded.sales_receipts.listList sales receiptsread
  • holded.sales_receipts.list_sales_receipt_attachmentsList sales receipt attachmentsread
  • holded.sales_receipts.send_sales_receiptSend a sales receipt by emailwrite
  • holded.sales_receipts.set_sales_receipt_pipelineSet sales receipt pipelinewrite
  • holded.sales_receipts.updateUpdate a sales receiptwrite
Waybills10
  • holded.waybills.approve_waybillApprove a waybillwrite
  • holded.waybills.createCreate a waybillwrite
  • holded.waybills.deleteDelete a waybilldestructive
  • holded.waybills.getGet a waybillread
  • holded.waybills.listList waybillsread
  • holded.waybills.list_waybill_attachmentsList waybill attachmentsread
  • holded.waybills.send_waybillSend a waybill by emailwrite
  • holded.waybills.set_waybill_pipelineSet waybill pipelinewrite
  • holded.waybills.updateUpdate a waybillwrite
  • holded.waybills.update_waybill_trackingUpdate waybill tracking informationwrite
Proformas9
  • holded.proformas.approve_proformaApprove a proformawrite
  • holded.proformas.createCreate a proformawrite
  • holded.proformas.deleteDelete a proformadestructive
  • holded.proformas.getGet a proformaread
  • holded.proformas.listList proformasread
  • holded.proformas.list_proforma_attachmentsList proforma attachmentsread
  • holded.proformas.send_proformaSend a proforma by emailwrite
  • holded.proformas.set_proforma_pipelineSet proforma pipelinewrite
  • holded.proformas.updateUpdate a proformawrite
Webhooks8
  • holded.webhooks.createCreate a webhookwrite
  • holded.webhooks.deleteDelete a webhookdestructive
  • holded.webhooks.disable_webhookDisable a webhookwrite
  • holded.webhooks.enable_webhookEnable a webhookwrite
  • holded.webhooks.getGet a webhookread
  • holded.webhooks.get_webhook_eventsList supported webhook event typesread
  • holded.webhooks.listList webhooksread
  • holded.webhooks.updateUpdate a webhookwrite
Payslips7
  • holded.payslips.approve_payslipApprove a payslipwrite
  • holded.payslips.createCreate payslips in bulkwrite
  • holded.payslips.create_payslip_paymentCreate a payment for a payslipwrite
  • holded.payslips.deleteDelete a payslipdestructive
  • holded.payslips.delete_payslip_paymentDelete a payment from a payslipdestructive
  • holded.payslips.getGet a payslipread
  • holded.payslips.listList payslipsread
Recurring invoices7
  • holded.recurring_invoices.createCreate a recurring invoicewrite
  • holded.recurring_invoices.deleteDelete a recurring invoicedestructive
  • holded.recurring_invoices.getGet a recurring invoiceread
  • holded.recurring_invoices.get_recurring_scheduleGet recurring invoice scheduleread
  • holded.recurring_invoices.listList recurring invoicesread
  • holded.recurring_invoices.skip_recurring_occurrenceSkip a recurring invoice occurrencewrite
  • holded.recurring_invoices.updateUpdate a recurring invoicewrite
Inbox6
  • holded.inbox.attach_inboxAttach incoming document to a documentwrite
  • holded.inbox.deleteDelete an incoming documentdestructive
  • holded.inbox.export_inboxConvert incoming document into a purchase documentwrite
  • holded.inbox.getGet an incoming document by IDread
  • holded.inbox.listList inbox incoming documentsread
  • holded.inbox.updateUpdate an incoming documentwrite
Purchase shipments6
  • holded.purchase_shipments.approve_purchase_shipmentApprove a purchase shipmentwrite
  • holded.purchase_shipments.createCreate a purchase shipmentwrite
  • holded.purchase_shipments.deleteDelete a purchase shipmentdestructive
  • holded.purchase_shipments.getGet a purchase shipmentread
  • holded.purchase_shipments.listList purchase shipmentsread
  • holded.purchase_shipments.updateUpdate a purchase shipmentwrite
Salary records6
  • holded.salary_records.createCreate a salary recordwrite
  • holded.salary_records.deleteDelete a salary recorddestructive
  • holded.salary_records.getGet a salary recordread
  • holded.salary_records.get_salary_record_form_dataGet salary record form dataread
  • holded.salary_records.listList salary recordsread
  • holded.salary_records.updateUpdate a salary recordwrite
Warehouses6
  • holded.warehouses.createCreate a warehousewrite
  • holded.warehouses.deleteDelete a warehousedestructive
  • holded.warehouses.getGet a warehouse by IDread
  • holded.warehouses.get_warehouse_stockGet stock levels for a warehouseread
  • holded.warehouses.listList all warehousesread
  • holded.warehouses.updateUpdate a warehousewrite
Bookings5
  • holded.bookings.createCreate a bookingwrite
  • holded.bookings.deleteCancel a bookingdestructive
  • holded.bookings.getGet a booking by IDread
  • holded.bookings.listList all bookingsread
  • holded.bookings.updateUpdate a bookingwrite
Contact groups5
  • holded.contact_groups.createCreate a contact groupwrite
  • holded.contact_groups.deleteDelete a contact groupdestructive
  • holded.contact_groups.getGet a contact groupread
  • holded.contact_groups.listList contact groupsread
  • holded.contact_groups.updateUpdate a contact groupwrite
Events5
  • holded.events.createCreate an eventwrite
  • holded.events.deleteDelete an eventdestructive
  • holded.events.getGet an event by IDread
  • holded.events.listList all eventsread
  • holded.events.updateUpdate an eventwrite
Expenses accounts5
  • holded.expenses_accounts.createCreate an expenses accountwrite
  • holded.expenses_accounts.deleteDelete an expenses accountdestructive
  • holded.expenses_accounts.getGet an expenses account by IDread
  • holded.expenses_accounts.listList all expenses accountsread
  • holded.expenses_accounts.updateUpdate an expenses accountwrite
Funnels5
  • holded.funnels.createCreate a funnelwrite
  • holded.funnels.deleteDelete a funneldestructive
  • holded.funnels.getGet a funnelread
  • holded.funnels.listList all funnelsread
  • holded.funnels.updateUpdate a funnelwrite
Invoicing forecasts5
  • holded.invoicing_forecasts.createCreate an invoicing forecastwrite
  • holded.invoicing_forecasts.deleteDelete an invoicing forecastdestructive
  • holded.invoicing_forecasts.getGet an invoicing forecastread
  • holded.invoicing_forecasts.listList invoicing forecastsread
  • holded.invoicing_forecasts.updateEdit an invoicing forecastwrite
Payment methods5
  • holded.payment_methods.createCreate a payment methodwrite
  • holded.payment_methods.deleteDelete a payment methoddestructive
  • holded.payment_methods.getGet a payment method by IDread
  • holded.payment_methods.listList payment methodsread
  • holded.payment_methods.updateUpdate a payment methodwrite
Payments5
  • holded.payments.createCreate a paymentwrite
  • holded.payments.deleteDelete a paymentdestructive
  • holded.payments.getGet a payment by IDread
  • holded.payments.listList paymentsread
  • holded.payments.updateUpdate a paymentwrite
Price lists5
  • holded.price_lists.createCreate a price listwrite
  • holded.price_lists.deleteDelete a price listdestructive
  • holded.price_lists.getGet a price list by IDread
  • holded.price_lists.listList price listsread
  • holded.price_lists.updateUpdate a price listwrite
Production orders5
  • holded.production_orders.createCreate a production orderwrite
  • holded.production_orders.deleteDelete a production orderdestructive
  • holded.production_orders.getGet a production orderread
  • holded.production_orders.listList production ordersread
  • holded.production_orders.updateUpdate a production orderwrite
Sales channels5
  • holded.sales_channels.createCreate a sales channelwrite
  • holded.sales_channels.deleteDelete a sales channeldestructive
  • holded.sales_channels.getGet a sales channel by IDread
  • holded.sales_channels.listList all sales channelsread
  • holded.sales_channels.updateUpdate a sales channelwrite
Services5
  • holded.services.createCreate a servicewrite
  • holded.services.deleteDelete a servicedestructive
  • holded.services.getGet a serviceread
  • holded.services.listList servicesread
  • holded.services.updateUpdate a servicewrite
Tasks5
  • holded.tasks.createCreate a taskwrite
  • holded.tasks.deleteDelete a taskdestructive
  • holded.tasks.getGet a taskread
  • holded.tasks.listList all tasksread
  • holded.tasks.updateUpdate a taskwrite
Employee times4
  • holded.employee_times.deleteDelete an employee time entrydestructive
  • holded.employee_times.getGet an employee time entryread
  • holded.employee_times.listList all employee time entriesread
  • holded.employee_times.updateUpdate an employee time entrywrite
Ledger entries4
  • holded.ledger_entries.createCreate a ledger entrywrite
  • holded.ledger_entries.deleteDelete a ledger entrydestructive
  • holded.ledger_entries.getGet a ledger entryread
  • holded.ledger_entries.listList ledger entriesread
Numbering series4
  • holded.numbering_series.createCreate a numbering serieswrite
  • holded.numbering_series.deleteDelete a numbering seriesdestructive
  • holded.numbering_series.listList numbering series by document typeread
  • holded.numbering_series.updateUpdate a numbering serieswrite
Tags3
  • holded.tags.createCreate a tagwrite
  • holded.tags.deleteDelete a tagdestructive
  • holded.tags.listList all tagsread
Accounting accounts2
  • holded.accounting_accounts.createCreate an accounting accountwrite
  • holded.accounting_accounts.listList chart of accountsread
API usage2
  • holded.api_usage.getGet API usage by typeread
  • holded.api_usage.get_usageGet API usage (automation token)read
Booking locations2
  • holded.booking_locations.get_booking_location_slotsGet available slots for a locationread
  • holded.booking_locations.listList all booking locationsread
Remittances2
  • holded.remittances.getGet a remittanceread
  • holded.remittances.listList remittancesread
Taxes2
  • holded.taxes.get_tax_per_country_sorted_keysGet sorted tax keys by country and sectionread
  • holded.taxes.listList all taxesread
Business plan goals1
  • holded.business_plan_goals.listList business plan goals vs actualsread
Business plan scenarios1
  • holded.business_plan_scenarios.listList business plan scenariosread
Documents1
  • holded.documents.convert_documentConvert a document to another typewrite
Project times1
  • holded.project_times.listList all project time entriesread
Purchase refunds1
  • holded.purchase_refunds.listList purchase refundsread

Questions

The Holded MCP server, answered.

Is there a Holded MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 324 Holded actions across employees, invoices, sales orders and leads, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Holded.

What do I need to connect Holded?

Holded API key: in Holded go to Settings > API, click Generate new key and copy it. The free call account { op: "connections.requirements", service: "holded" } lists exactly what to paste.

Can an AI agent delete or change things in Holded?

Only if its key allows it, and only with an explicit confirmation. 47 Holded actions are destructive, including delete an invoice, delete a payment and delete an estimate. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Holded API limit?

actionlake paces every call to the limits in the Holded service file: 60 calls a minute per connection. Repeated reads are answered from cache (127 Holded actions can be), which never reaches Holded.

What does a Holded action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (324 Holded actions page). Cache hits, searches, dry runs and calls Holded refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Holded API does it cover?

The Holded API v2 at api.holded.com. It is built from Holded's documentation as read on 23 October 2026. 324 actions in 50 areas, each one in the signed service file (version 1.0.0).

Can I combine Holded with my other systems?

Yes. ask joins Holded to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Holded maps crm.company, which 227 other connectors also map.

Does actionlake keep my Holded data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Holded credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Holded today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.