Skip to content

Connectors · Accounting & finance

ERPNext (Frappe) MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ERPNext (Frappe) and the rest of your systems. It gives your agent 720 ERPNext (Frappe) actions (320 reads, 263 writes and 137 that wait for a confirmation) and holds the ERPNext (Frappe) credential itself, so the agent never does. It paces ERPNext (Frappe)'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: "erpnext.sales_invoice.list",  intent: "check which ERPNext (Frappe) account is connected"}# List Sales Invoice records · read · 1 upstream call
  • 720actionsin one signed file
  • 320readlook, never change
  • 263writecreate and update
  • 137wait for a yesdestructive, confirmed first

Set up

Connect ERPNext (Frappe) 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 ERPNext (Frappe).

    API key. 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_keyAPI Key of the ERPNext user actionlake acts as (User > Settings > API Access > Generate Keys)
    • api_secretAPI Secret shown once when the keys are generated
    • hostWhere your ERPNext (Frappe) lives: your host
    account { op: "connections.requirements", service: "erpnext" }
    # 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: "erpnext.sales_invoice.list" }# list sales invoice records · read · 1 upstream callcheck { action: "erpnext.sales_invoice.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

ERPNext (Frappe) at a glance

Sign-in
API key. 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_keyapi_secret
Setup fields
host
Limits we pace to
300 calls a minute, per connection
API covered
Frappe REST API v1 (/api/resource, /api/method) with v2 extras; ERPNext/Frappe version-15, at your ERPNext (Frappe) instance's API base URL, which you enter when connecting
Built from
ERPNext (Frappe)'s documentation, read 23 October 2026docs.frappe.ioGitHubGitHub
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
320 of 320 reads, for up to 5 minutes; a write clears what it affects
Shared entities
29, so ask can line ERPNext (Frappe) up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in ERPNext (Frappe).

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

  • 320readlook, never change
  • 263writecreate and update
  • 137destructivewait for a confirmation
  1. Client

    20

    10 read · 8 write · 2 destructive

    List documents (frappe.client.get_list) · Count documents · Attach a file to a document · Insert a document

  2. Sales order

    17

    9 read · 6 write · 2 destructive

    List Sales Order records · Create a Sales Order · Get a Sales Order · Update a Sales Order

  3. Delivery note

    13

    7 read · 4 write · 2 destructive

    Create a Delivery Note · List Delivery Note records · Get a Delivery Note · Draft an Installation Note from a Delivery Note

  4. Material request

    13

    7 read · 4 write · 2 destructive

    Create a Material Request · List Material Request records · Get a Material Request · Draft a Pick List from a Material Request

  5. Payment entry

    11

    6 read · 2 write · 3 destructive

    List Payment Entry records · Create a Payment Entry · Get a Payment Entry · Update a Payment Entry

  6. Purchase order

    11

    4 read · 5 write · 2 destructive

    List Purchase Order records · Create a Purchase Order · Get a Purchase Order · Update a Purchase Order

  7. Purchase receipt

    11

    5 read · 4 write · 2 destructive

    Create a Purchase Receipt · List Purchase Receipt records · Get a Purchase Receipt · Draft a Purchase Invoice from a Purchase Receipt

  8. Sales invoice

    11

    6 read · 3 write · 2 destructive

    List Sales Invoice records · Create a Sales Invoice · Get a Sales Invoice · Update a Sales Invoice

108 more areas · 613 actions
  • Document 10
  • Supplier quotation 10
  • Work order 10
  • Bom 9
  • Job card 9
  • Journal entry 9
  • Lead 9
  • Opportunity 9
  • Purchase invoice 9
  • Quotation 9
  • Request for quotation 9
  • Asset 8
  • Issue 8
  • Payment request 8
  • Pick list 8
  • POS invoice 8
  • Quality inspection 8
  • Stock entry 8
  • Stock reconciliation 8
  • Timesheet 8
  • User 8
  • Workflow 8
  • Asset movement 7
  • Bank transaction 7
  • Budget 7
  • Comment 7
  • Customer 7
  • Dunning 7
  • Production plan 7
  • Prospect 7
  • Shipment 7
  • Task 7
  • Address 6
  • Batch 6
  • Communication 6
  • Contact 6
  • Currency 6
  • Email template 6
  • Employee 6
  • Event 6
  • Item 6
  • Note 6
  • Project 6
  • Report 6
  • Warranty claim 6
  • Account 5
  • Accounting dimension 5
  • Activity type 5
  • Asset category 5
  • Bank 5
  • Bank account 5
  • Branch 5
  • Brand 5
  • Campaign 5
  • Company 5
  • Cost center 5
  • Currency exchange 5
  • Custom field 5
  • Customer group 5
  • Department 5
  • Designation 5
  • File 5
  • Fiscal year 5
  • Holiday list 5
  • Issue type 5
  • Item group 5
  • Item price 5
  • Item tax template 5
  • Location 5
  • Mode of payment 5
  • Operation 5
  • Payment terms template 5
  • Price list 5
  • Pricing rule 5
  • Print format 5
  • Product bundle 5
  • Purchase taxes and charges template 5
  • Role 5
  • Sales partner 5
  • Sales person 5
  • Sales taxes and charges template 5
  • Serial no 5
  • Subscription 5
  • Supplier 5
  • Supplier group 5
  • Tax category 5
  • Territory 5
  • Todo 5
  • Uom 5
  • Warehouse 5
  • Webhook 5
  • Workstation 5
  • Accounts 4
  • Doctype 4
  • Form 4
  • Tag 4
  • Assignment 3
  • Error log 3
  • Stock 3
  • Activity log 2
  • Bin 2
  • GL entry 2
  • Search 2
  • Stock ledger entry 2
  • Version 2
  • Auth 1
  • Method 1
  • System 1

Top actions

The ERPNext (Frappe) API, shaped for agents.

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

ActionWhat it doesEffectSame name in
erpnext.sales_invoice.listList Sales Invoice recordsList Sales Invoice records with fields, filters and sort.readfinance.invoice.list101 connectors
erpnext.payment_entry.listList Payment Entry recordsList Payment Entry records with fields, filters and sort.readfinance.payment.list75 connectors
erpnext.quotation.listList Quotation recordsList Quotation records with fields, filters and sort.readfinance.quote.list52 connectors
erpnext.purchase_order.listList Purchase Order recordsList Purchase Order records with fields, filters and sort.readfinance.purchase_order.list45 connectors
erpnext.contact.listList Contact recordsList Contact records with fields, filters and sort.readcrm.contact.list177 connectors
erpnext.customer.listList Customer recordsList Customer records with fields, filters and sort.readcrm.company.list162 connectors
erpnext.account.listList Account recordsList Account records with fields, filters and sort.readfinance.ledger_account.list36 connectors
erpnext.bank_account.listList Bank Account recordsList Bank Account records with fields, filters and sort.readfinance.bank_account.list35 connectors
erpnext.sales_invoice.createCreate a Sales InvoiceCreate a Sales Invoice document.writefinance.invoice.create74 connectors
erpnext.payment_entry.createCreate a Payment EntryCreate a Payment Entry document.writefinance.payment.create67 connectors
erpnext.quotation.createCreate a QuotationCreate a Quotation document.writefinance.quote.create52 connectors
erpnext.sales_invoice.deleteDelete a Sales InvoiceDelete a Sales Invoice by name.destructivefinance.invoice.delete56 connectors

Try it

Prompts to paste into Claude.

Each one names the ERPNext (Frappe) actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which ERPNext (Frappe) invoices are more than 30 days overdue? Group them by customer with the total owed.

    callserpnext.sales_invoice.list

  2. Writewrite

    Create a Sales Invoice in ERPNext (Frappe). Show me exactly what you will send before you save it.

    callserpnext.sales_invoice.create

  3. Across systemsread

    For each customer, how many invoices are in ERPNext (Frappe) and how many tickets in ConnectWise PSA?

    callserpnext.sales_invoice.listconnectwise_manage.tickets.list

Across your systems

ERPNext (Frappe), joined to the rest of your business.

One ask fetches from ERPNext (Frappe) 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 ERPNext (Frappe) and how many tickets in ConnectWise PSA?

    erpnext.sales_invoice.list + connectwise_manage.tickets.list, on crm.company · ConnectWise PSA

  • For each customer, how many invoices are in ERPNext (Frappe) and how many tickets in HubSpot CRM?

    erpnext.sales_invoice.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorsidentity.user 517crm.company 227crm.contact 192work.project 116commerce.product 109identity.role 107work.task 105finance.invoice 91
ask
ask {  intent: "for each customer, how many invoices are in ERPNext (Frappe) and how many tickets in ConnectWise PSA",  steps: [    { action: "erpnext.sales_invoice.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 ERPNext (Frappe)

Destructive actions wait for a yes.

137 ERPNext (Frappe) actions are destructive. The first 10:

  • Delete a Sales Invoiceerpnext.sales_invoice.delete
  • Delete a Payment Entryerpnext.payment_entry.delete
  • Delete a Contacterpnext.contact.delete
  • Delete a Quotationerpnext.quotation.delete
  • Delete a Customererpnext.customer.delete
  • Delete a Purchase Ordererpnext.purchase_order.delete
  • Delete an Accounterpnext.account.delete
  • Delete a Purchase Invoiceerpnext.purchase_invoice.delete
  • Delete a Journal Entryerpnext.journal_entry.delete
  • Delete a Usererpnext.user.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.

doerpnext.sales_invoice.deleteconfirm_policy: human

Delete a Sales Invoice?

intent: the user asked me to delete a Sales Invoice

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

Cost

What ERPNext (Frappe) costs on actionlake.

Every ERPNext (Frappe) action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call ERPNext (Frappe) 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 720 ERPNext (Frappe) actions
  • 720actions pageeach page of a long list is one call
  • 320reads 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 ERPNext (Frappe) action.

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

Client20
  • erpnext.client.attach_fileAttach a file to a documentwrite
  • erpnext.client.get_countCount documentsread
  • erpnext.client.get_listList documents (frappe.client.get_list)read
  • erpnext.client.insertInsert a documentwrite
  • erpnext.client.bulk_updateBulk update documentswrite
  • erpnext.client.cancelCancel a document (frappe.client.cancel)destructive
  • and 14 more in this area
Sales order17
  • erpnext.sales_order.createCreate a Sales Orderwrite
  • erpnext.sales_order.getGet a Sales Orderread
  • erpnext.sales_order.listList Sales Order recordsread
  • erpnext.sales_order.updateUpdate a Sales Orderwrite
  • erpnext.sales_order.cancelCancel a Sales Orderdestructive
  • erpnext.sales_order.close_manyClose or re-open sales orderswrite
  • and 11 more in this area
Delivery note13
  • erpnext.delivery_note.createCreate a Delivery Notewrite
  • erpnext.delivery_note.getGet a Delivery Noteread
  • erpnext.delivery_note.listList Delivery Note recordsread
  • erpnext.delivery_note.map_installation_noteDraft an Installation Note from a Delivery Noteread
  • erpnext.delivery_note.cancelCancel a Delivery Notedestructive
  • erpnext.delivery_note.deleteDelete a Delivery Notedestructive
  • and 7 more in this area
Material request13
  • erpnext.material_request.createCreate a Material Requestwrite
  • erpnext.material_request.getGet a Material Requestread
  • erpnext.material_request.listList Material Request recordsread
  • erpnext.material_request.map_pick_listDraft a Pick List from a Material Requestread
  • erpnext.material_request.cancelCancel a Material Requestdestructive
  • erpnext.material_request.deleteDelete a Material Requestdestructive
  • and 7 more in this area
Payment entry11
  • erpnext.payment_entry.createCreate a Payment Entrywrite
  • erpnext.payment_entry.getGet a Payment Entryread
  • erpnext.payment_entry.listList Payment Entry recordsread
  • erpnext.payment_entry.updateUpdate a Payment Entrywrite
  • erpnext.payment_entry.cancelCancel a Payment Entrydestructive
  • erpnext.payment_entry.deleteDelete a Payment Entrydestructive
  • and 5 more in this area
Purchase order11
  • erpnext.purchase_order.createCreate a Purchase Orderwrite
  • erpnext.purchase_order.getGet a Purchase Orderread
  • erpnext.purchase_order.listList Purchase Order recordsread
  • erpnext.purchase_order.updateUpdate a Purchase Orderwrite
  • erpnext.purchase_order.cancelCancel a Purchase Orderdestructive
  • erpnext.purchase_order.close_manyClose or re-open purchase orderswrite
  • and 5 more in this area
Purchase receipt11
  • erpnext.purchase_receipt.createCreate a Purchase Receiptwrite
  • erpnext.purchase_receipt.getGet a Purchase Receiptread
  • erpnext.purchase_receipt.listList Purchase Receipt recordsread
  • erpnext.purchase_receipt.map_purchase_invoiceDraft a Purchase Invoice from a Purchase Receiptread
  • erpnext.purchase_receipt.cancelCancel a Purchase Receiptdestructive
  • erpnext.purchase_receipt.deleteDelete a Purchase Receiptdestructive
  • and 5 more in this area
Sales invoice11
  • erpnext.sales_invoice.createCreate a Sales Invoicewrite
  • erpnext.sales_invoice.getGet a Sales Invoiceread
  • erpnext.sales_invoice.listList Sales Invoice recordsread
  • erpnext.sales_invoice.updateUpdate a Sales Invoicewrite
  • erpnext.sales_invoice.cancelCancel a Sales Invoicedestructive
  • erpnext.sales_invoice.deleteDelete a Sales Invoicedestructive
  • and 5 more in this area
Document10
  • erpnext.document.createCreate a document of any DocTypewrite
  • erpnext.document.getGet a document of any DocTyperead
  • erpnext.document.listList documents of any DocTyperead
  • erpnext.document.updateUpdate a document of any DocTypewrite
  • erpnext.document.cancelCancel a document of any DocTypedestructive
  • erpnext.document.copyGet a copy of a document (API v2)read
  • and 4 more in this area
Supplier quotation10
  • erpnext.supplier_quotation.createCreate a Supplier Quotationwrite
  • erpnext.supplier_quotation.getGet a Supplier Quotationread
  • erpnext.supplier_quotation.listList Supplier Quotation recordsread
  • erpnext.supplier_quotation.map_purchase_invoiceDraft a Purchase Invoice from a Supplier Quotationread
  • erpnext.supplier_quotation.cancelCancel a Supplier Quotationdestructive
  • erpnext.supplier_quotation.deleteDelete a Supplier Quotationdestructive
  • and 4 more in this area
Work order10
  • erpnext.work_order.closeClose a work orderwrite
  • erpnext.work_order.createCreate a Work Orderwrite
  • erpnext.work_order.getGet a Work Orderread
  • erpnext.work_order.listList Work Order recordsread
  • erpnext.work_order.cancelCancel a Work Orderdestructive
  • erpnext.work_order.deleteDelete a Work Orderdestructive
  • and 4 more in this area
Bom9
  • erpnext.bom.createCreate a BOMwrite
  • erpnext.bom.getGet a BOMread
  • erpnext.bom.itemsList BOM materialsread
  • erpnext.bom.listList BOM recordsread
  • erpnext.bom.cancelCancel a BOMdestructive
  • erpnext.bom.deleteDelete a BOMdestructive
  • and 3 more in this area
Job card9
  • erpnext.job_card.createCreate a Job Cardwrite
  • erpnext.job_card.getGet a Job Cardread
  • erpnext.job_card.listList Job Card recordsread
  • erpnext.job_card.map_material_requestDraft a Material Request from a Job Cardread
  • erpnext.job_card.cancelCancel a Job Carddestructive
  • erpnext.job_card.deleteDelete a Job Carddestructive
  • and 3 more in this area
Journal entry9
  • erpnext.journal_entry.createCreate a Journal Entrywrite
  • erpnext.journal_entry.getGet a Journal Entryread
  • erpnext.journal_entry.listList Journal Entry recordsread
  • erpnext.journal_entry.updateUpdate a Journal Entrywrite
  • erpnext.journal_entry.cancelCancel a Journal Entrydestructive
  • erpnext.journal_entry.default_bank_cash_accountGet the default bank or cash accountread
  • and 3 more in this area
Lead9
  • erpnext.lead.createCreate a Leadwrite
  • erpnext.lead.getGet a Leadread
  • erpnext.lead.listList Lead recordsread
  • erpnext.lead.updateUpdate a Leadwrite
  • erpnext.lead.add_to_prospectAdd a lead to a prospectwrite
  • erpnext.lead.deleteDelete a Leaddestructive
  • and 3 more in this area
Opportunity9
  • erpnext.opportunity.createCreate an Opportunitywrite
  • erpnext.opportunity.getGet an Opportunityread
  • erpnext.opportunity.listList Opportunity recordsread
  • erpnext.opportunity.updateUpdate an Opportunitywrite
  • erpnext.opportunity.deleteDelete an Opportunitydestructive
  • erpnext.opportunity.map_customerDraft a Customer from an Opportunityread
  • and 3 more in this area
Purchase invoice9
  • erpnext.purchase_invoice.createCreate a Purchase Invoicewrite
  • erpnext.purchase_invoice.getGet a Purchase Invoiceread
  • erpnext.purchase_invoice.listList Purchase Invoice recordsread
  • erpnext.purchase_invoice.updateUpdate a Purchase Invoicewrite
  • erpnext.purchase_invoice.cancelCancel a Purchase Invoicedestructive
  • erpnext.purchase_invoice.deleteDelete a Purchase Invoicedestructive
  • and 3 more in this area
Quotation9
  • erpnext.quotation.createCreate a Quotationwrite
  • erpnext.quotation.getGet a Quotationread
  • erpnext.quotation.listList Quotation recordsread
  • erpnext.quotation.updateUpdate a Quotationwrite
  • erpnext.quotation.cancelCancel a Quotationdestructive
  • erpnext.quotation.deleteDelete a Quotationdestructive
  • and 3 more in this area
Request for quotation9
  • erpnext.request_for_quotation.createCreate a Request for Quotationwrite
  • erpnext.request_for_quotation.getGet a Request for Quotationread
  • erpnext.request_for_quotation.listList Request for Quotation recordsread
  • erpnext.request_for_quotation.map_supplier_quotation_from_rfqDraft a Supplier Quotation from a Request for Quotationread
  • erpnext.request_for_quotation.cancelCancel a Request for Quotationdestructive
  • erpnext.request_for_quotation.deleteDelete a Request for Quotationdestructive
  • and 3 more in this area
Asset8
  • erpnext.asset.createCreate an Assetwrite
  • erpnext.asset.getGet an Assetread
  • erpnext.asset.listList Asset recordsread
  • erpnext.asset.updateUpdate an Assetwrite
  • erpnext.asset.cancelCancel an Assetdestructive
  • erpnext.asset.deleteDelete an Assetdestructive
  • and 2 more in this area
Issue8
  • erpnext.issue.createCreate an Issuewrite
  • erpnext.issue.getGet an Issueread
  • erpnext.issue.listList Issue recordsread
  • erpnext.issue.updateUpdate an Issuewrite
  • erpnext.issue.deleteDelete an Issuedestructive
  • erpnext.issue.map_taskDraft a Task from an Issueread
  • and 2 more in this area
Payment request8
  • erpnext.payment_request.createCreate a Payment Requestwrite
  • erpnext.payment_request.getGet a Payment Requestread
  • erpnext.payment_request.listList Payment Request recordsread
  • erpnext.payment_request.makeCreate a payment requestwrite
  • erpnext.payment_request.cancelCancel a Payment Requestdestructive
  • erpnext.payment_request.deleteDelete a Payment Requestdestructive
  • and 2 more in this area
Pick list8
  • erpnext.pick_list.createCreate a Pick Listwrite
  • erpnext.pick_list.getGet a Pick Listread
  • erpnext.pick_list.listList Pick List recordsread
  • erpnext.pick_list.map_delivery_noteDraft a Delivery Note from a Pick Listread
  • erpnext.pick_list.cancelCancel a Pick Listdestructive
  • erpnext.pick_list.deleteDelete a Pick Listdestructive
  • and 2 more in this area
POS invoice8
  • erpnext.pos_invoice.createCreate a POS Invoicewrite
  • erpnext.pos_invoice.getGet a POS Invoiceread
  • erpnext.pos_invoice.listList POS Invoice recordsread
  • erpnext.pos_invoice.map_sales_returnDraft a POS Invoice (return) from a POS Invoiceread
  • erpnext.pos_invoice.cancelCancel a POS Invoicedestructive
  • erpnext.pos_invoice.deleteDelete a POS Invoicedestructive
  • and 2 more in this area
Quality inspection8
  • erpnext.quality_inspection.createCreate a Quality Inspectionwrite
  • erpnext.quality_inspection.getGet a Quality Inspectionread
  • erpnext.quality_inspection.listList Quality Inspection recordsread
  • erpnext.quality_inspection.map_copyDraft a Quality Inspection from a Quality Inspectionread
  • erpnext.quality_inspection.cancelCancel a Quality Inspectiondestructive
  • erpnext.quality_inspection.deleteDelete a Quality Inspectiondestructive
  • and 2 more in this area
Stock entry8
  • erpnext.stock_entry.createCreate a Stock Entrywrite
  • erpnext.stock_entry.getGet a Stock Entryread
  • erpnext.stock_entry.listList Stock Entry recordsread
  • erpnext.stock_entry.map_stock_in_entryDraft a Stock Entry (in-transit receipt) from a Stock Entryread
  • erpnext.stock_entry.cancelCancel a Stock Entrydestructive
  • erpnext.stock_entry.deleteDelete a Stock Entrydestructive
  • and 2 more in this area
Stock reconciliation8
  • erpnext.stock_reconciliation.createCreate a Stock Reconciliationwrite
  • erpnext.stock_reconciliation.getGet a Stock Reconciliationread
  • erpnext.stock_reconciliation.itemsGet items for a stock countread
  • erpnext.stock_reconciliation.listList Stock Reconciliation recordsread
  • erpnext.stock_reconciliation.cancelCancel a Stock Reconciliationdestructive
  • erpnext.stock_reconciliation.deleteDelete a Stock Reconciliationdestructive
  • and 2 more in this area
Timesheet8
  • erpnext.timesheet.createCreate a Timesheetwrite
  • erpnext.timesheet.getGet a Timesheetread
  • erpnext.timesheet.listList Timesheet recordsread
  • erpnext.timesheet.updateUpdate a Timesheetwrite
  • erpnext.timesheet.cancelCancel a Timesheetdestructive
  • erpnext.timesheet.deleteDelete a Timesheetdestructive
  • and 2 more in this area
User8
  • erpnext.user.createCreate a Userwrite
  • erpnext.user.getGet a Userread
  • erpnext.user.listList User recordsread
  • erpnext.user.updateUpdate a Userwrite
  • erpnext.user.all_rolesList all rolesread
  • erpnext.user.current_rolesList the API user's rolesread
  • and 2 more in this area
Workflow8
  • erpnext.workflow.applyApply a workflow actionwrite
  • erpnext.workflow.bulk_approveApply a workflow action in bulkwrite
  • erpnext.workflow.createCreate a Workflowwrite
  • erpnext.workflow.listList Workflow recordsread
  • erpnext.workflow.deleteDelete a Workflowdestructive
  • erpnext.workflow.getGet a Workflowread
  • and 2 more in this area

Asset movement 7Bank transaction 7Budget 7Comment 7Customer 7Dunning 7Production plan 7Prospect 7Shipment 7Task 7Address 6Batch 6Communication 6Contact 6Currency 6Email template 6Employee 6Event 6Item 6Note 6Project 6Report 6Warranty claim 6Account 5Accounting dimension 5Activity type 5Asset category 5Bank 5Bank account 5Branch 5Brand 5Campaign 5Company 5Cost center 5Currency exchange 5Custom field 5Customer group 5Department 5Designation 5File 5Fiscal year 5Holiday list 5Issue type 5Item group 5Item price 5Item tax template 5Location 5Mode of payment 5Operation 5Payment terms template 5Price list 5Pricing rule 5Print format 5Product bundle 5Purchase taxes and charges template 5Role 5Sales partner 5Sales person 5Sales taxes and charges template 5Serial no 5Subscription 5Supplier 5Supplier group 5Tax category 5Territory 5Todo 5Uom 5Warehouse 5Webhook 5Workstation 5Accounts 4Doctype 4Form 4Tag 4Assignment 3Error log 3Stock 3Activity log 2Bin 2GL entry 2Search 2Stock ledger entry 2Version 2Auth 1Method 1System 1

This index shows a sample of each area. All 720 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The ERPNext (Frappe) MCP server, answered.

Is there an ERPNext (Frappe) MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 720 ERPNext (Frappe) actions across client, sales order, delivery note and material request, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ERPNext (Frappe).

What do I need to connect ERPNext (Frappe)?

API Key of the ERPNext user actionlake acts as (User > Settings > API Access > Generate Keys) and API Secret shown once when the keys are generated. Plus your host. The free call account { op: "connections.requirements", service: "erpnext" } lists exactly what to paste.

Can an AI agent delete or change things in ERPNext (Frappe)?

Only if its key allows it, and only with an explicit confirmation. 137 ERPNext (Frappe) actions are destructive, including delete a Sales Invoice, delete a Payment Entry and delete a Contact. 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 ERPNext (Frappe) API limit?

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

What does an ERPNext (Frappe) action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (720 ERPNext (Frappe) actions page). Cache hits, searches, dry runs and calls ERPNext (Frappe) 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 ERPNext (Frappe) API does it cover?

The Frappe REST API v1 (/api/resource, /api/method) with v2 extras; ERPNext/Frappe version-15 at your ERPNext (Frappe) instance's API base URL, which you enter when connecting. It is built from ERPNext (Frappe)'s documentation as read on 23 October 2026. 720 actions in 116 areas, each one in the signed service file (version 1.0.0).

Can I combine ERPNext (Frappe) with my other systems?

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

Does actionlake keep my ERPNext (Frappe) 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 ERPNext (Frappe) 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 ERPNext (Frappe) today.

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