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/mcpdo { 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.
- 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 - 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 generatedhostWhere your ERPNext (Frappe) lives: your host
account { op: "connections.requirements", service: "erpnext" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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
Client
2010 read · 8 write · 2 destructive
List documents (frappe.client.get_list) · Count documents · Attach a file to a document · Insert a document
Sales order
179 read · 6 write · 2 destructive
List Sales Order records · Create a Sales Order · Get a Sales Order · Update a Sales Order
Delivery note
137 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
Material request
137 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
Payment entry
116 read · 2 write · 3 destructive
List Payment Entry records · Create a Payment Entry · Get a Payment Entry · Update a Payment Entry
Purchase order
114 read · 5 write · 2 destructive
List Purchase Order records · Create a Purchase Order · Get a Purchase Order · Update a Purchase Order
Purchase receipt
115 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
Sales invoice
116 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
erpnext.sales_invoice.listList Sales Invoice records | List Sales Invoice records with fields, filters and sort. | read | finance.invoice.list101 connectors |
erpnext.payment_entry.listList Payment Entry records | List Payment Entry records with fields, filters and sort. | read | finance.payment.list75 connectors |
erpnext.quotation.listList Quotation records | List Quotation records with fields, filters and sort. | read | finance.quote.list52 connectors |
erpnext.purchase_order.listList Purchase Order records | List Purchase Order records with fields, filters and sort. | read | finance.purchase_order.list45 connectors |
erpnext.contact.listList Contact records | List Contact records with fields, filters and sort. | read | crm.contact.list177 connectors |
erpnext.customer.listList Customer records | List Customer records with fields, filters and sort. | read | crm.company.list162 connectors |
erpnext.account.listList Account records | List Account records with fields, filters and sort. | read | finance.ledger_account.list36 connectors |
erpnext.bank_account.listList Bank Account records | List Bank Account records with fields, filters and sort. | read | finance.bank_account.list35 connectors |
erpnext.sales_invoice.createCreate a Sales Invoice | Create a Sales Invoice document. | write | finance.invoice.create74 connectors |
erpnext.payment_entry.createCreate a Payment Entry | Create a Payment Entry document. | write | finance.payment.create67 connectors |
erpnext.quotation.createCreate a Quotation | Create a Quotation document. | write | finance.quote.create52 connectors |
erpnext.sales_invoice.deleteDelete a Sales Invoice | Delete a Sales Invoice by name. | destructive | finance.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.
- Readread
Which ERPNext (Frappe) invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
erpnext.sales_invoice.list - Writewrite
Create a Sales Invoice in ERPNext (Frappe). Show me exactly what you will send before you save it.
calls
erpnext.sales_invoice.create - Across systemsread
For each customer, how many invoices are in ERPNext (Frappe) and how many tickets in ConnectWise PSA?
calls
erpnext.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, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in ERPNext (Frappe) and how many tickets in HubSpot CRM?
erpnext.sales_invoice.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
identity.user 517crm.company 227crm.contact 192work.project 116commerce.product 109identity.role 107work.task 105finance.invoice 91ask { 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"] } } ]}Governance for ERPNext (Frappe)
Destructive actions wait for a yes.
137 ERPNext (Frappe) actions are destructive. The first 10:
- Delete a Sales Invoice
erpnext.sales_invoice.delete - Delete a Payment Entry
erpnext.payment_entry.delete - Delete a Contact
erpnext.contact.delete - Delete a Quotation
erpnext.quotation.delete - Delete a Customer
erpnext.customer.delete - Delete a Purchase Order
erpnext.purchase_order.delete - Delete an Account
erpnext.account.delete - Delete a Purchase Invoice
erpnext.purchase_invoice.delete - Delete a Journal Entry
erpnext.journal_entry.delete - Delete a User
erpnext.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.
Delete a Sales Invoice?
intent: the user asked me to delete a Sales Invoice
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]" } ]}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
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 documentwriteerpnext.client.get_countCount documentsreaderpnext.client.get_listList documents (frappe.client.get_list)readerpnext.client.insertInsert a documentwriteerpnext.client.bulk_updateBulk update documentswriteerpnext.client.cancelCancel a document (frappe.client.cancel)destructive- and 14 more in this area
Sales order17
erpnext.sales_order.createCreate a Sales Orderwriteerpnext.sales_order.getGet a Sales Orderreaderpnext.sales_order.listList Sales Order recordsreaderpnext.sales_order.updateUpdate a Sales Orderwriteerpnext.sales_order.cancelCancel a Sales Orderdestructiveerpnext.sales_order.close_manyClose or re-open sales orderswrite- and 11 more in this area
Delivery note13
erpnext.delivery_note.createCreate a Delivery Notewriteerpnext.delivery_note.getGet a Delivery Notereaderpnext.delivery_note.listList Delivery Note recordsreaderpnext.delivery_note.map_installation_noteDraft an Installation Note from a Delivery Notereaderpnext.delivery_note.cancelCancel a Delivery Notedestructiveerpnext.delivery_note.deleteDelete a Delivery Notedestructive- and 7 more in this area
Material request13
erpnext.material_request.createCreate a Material Requestwriteerpnext.material_request.getGet a Material Requestreaderpnext.material_request.listList Material Request recordsreaderpnext.material_request.map_pick_listDraft a Pick List from a Material Requestreaderpnext.material_request.cancelCancel a Material Requestdestructiveerpnext.material_request.deleteDelete a Material Requestdestructive- and 7 more in this area
Payment entry11
erpnext.payment_entry.createCreate a Payment Entrywriteerpnext.payment_entry.getGet a Payment Entryreaderpnext.payment_entry.listList Payment Entry recordsreaderpnext.payment_entry.updateUpdate a Payment Entrywriteerpnext.payment_entry.cancelCancel a Payment Entrydestructiveerpnext.payment_entry.deleteDelete a Payment Entrydestructive- and 5 more in this area
Purchase order11
erpnext.purchase_order.createCreate a Purchase Orderwriteerpnext.purchase_order.getGet a Purchase Orderreaderpnext.purchase_order.listList Purchase Order recordsreaderpnext.purchase_order.updateUpdate a Purchase Orderwriteerpnext.purchase_order.cancelCancel a Purchase Orderdestructiveerpnext.purchase_order.close_manyClose or re-open purchase orderswrite- and 5 more in this area
Purchase receipt11
erpnext.purchase_receipt.createCreate a Purchase Receiptwriteerpnext.purchase_receipt.getGet a Purchase Receiptreaderpnext.purchase_receipt.listList Purchase Receipt recordsreaderpnext.purchase_receipt.map_purchase_invoiceDraft a Purchase Invoice from a Purchase Receiptreaderpnext.purchase_receipt.cancelCancel a Purchase Receiptdestructiveerpnext.purchase_receipt.deleteDelete a Purchase Receiptdestructive- and 5 more in this area
Sales invoice11
erpnext.sales_invoice.createCreate a Sales Invoicewriteerpnext.sales_invoice.getGet a Sales Invoicereaderpnext.sales_invoice.listList Sales Invoice recordsreaderpnext.sales_invoice.updateUpdate a Sales Invoicewriteerpnext.sales_invoice.cancelCancel a Sales Invoicedestructiveerpnext.sales_invoice.deleteDelete a Sales Invoicedestructive- and 5 more in this area
Document10
erpnext.document.createCreate a document of any DocTypewriteerpnext.document.getGet a document of any DocTypereaderpnext.document.listList documents of any DocTypereaderpnext.document.updateUpdate a document of any DocTypewriteerpnext.document.cancelCancel a document of any DocTypedestructiveerpnext.document.copyGet a copy of a document (API v2)read- and 4 more in this area
Supplier quotation10
erpnext.supplier_quotation.createCreate a Supplier Quotationwriteerpnext.supplier_quotation.getGet a Supplier Quotationreaderpnext.supplier_quotation.listList Supplier Quotation recordsreaderpnext.supplier_quotation.map_purchase_invoiceDraft a Purchase Invoice from a Supplier Quotationreaderpnext.supplier_quotation.cancelCancel a Supplier Quotationdestructiveerpnext.supplier_quotation.deleteDelete a Supplier Quotationdestructive- and 4 more in this area
Work order10
erpnext.work_order.closeClose a work orderwriteerpnext.work_order.createCreate a Work Orderwriteerpnext.work_order.getGet a Work Orderreaderpnext.work_order.listList Work Order recordsreaderpnext.work_order.cancelCancel a Work Orderdestructiveerpnext.work_order.deleteDelete a Work Orderdestructive- and 4 more in this area
Bom9
erpnext.bom.createCreate a BOMwriteerpnext.bom.getGet a BOMreaderpnext.bom.itemsList BOM materialsreaderpnext.bom.listList BOM recordsreaderpnext.bom.cancelCancel a BOMdestructiveerpnext.bom.deleteDelete a BOMdestructive- and 3 more in this area
Job card9
erpnext.job_card.createCreate a Job Cardwriteerpnext.job_card.getGet a Job Cardreaderpnext.job_card.listList Job Card recordsreaderpnext.job_card.map_material_requestDraft a Material Request from a Job Cardreaderpnext.job_card.cancelCancel a Job Carddestructiveerpnext.job_card.deleteDelete a Job Carddestructive- and 3 more in this area
Journal entry9
erpnext.journal_entry.createCreate a Journal Entrywriteerpnext.journal_entry.getGet a Journal Entryreaderpnext.journal_entry.listList Journal Entry recordsreaderpnext.journal_entry.updateUpdate a Journal Entrywriteerpnext.journal_entry.cancelCancel a Journal Entrydestructiveerpnext.journal_entry.default_bank_cash_accountGet the default bank or cash accountread- and 3 more in this area
Lead9
erpnext.lead.createCreate a Leadwriteerpnext.lead.getGet a Leadreaderpnext.lead.listList Lead recordsreaderpnext.lead.updateUpdate a Leadwriteerpnext.lead.add_to_prospectAdd a lead to a prospectwriteerpnext.lead.deleteDelete a Leaddestructive- and 3 more in this area
Opportunity9
erpnext.opportunity.createCreate an Opportunitywriteerpnext.opportunity.getGet an Opportunityreaderpnext.opportunity.listList Opportunity recordsreaderpnext.opportunity.updateUpdate an Opportunitywriteerpnext.opportunity.deleteDelete an Opportunitydestructiveerpnext.opportunity.map_customerDraft a Customer from an Opportunityread- and 3 more in this area
Purchase invoice9
erpnext.purchase_invoice.createCreate a Purchase Invoicewriteerpnext.purchase_invoice.getGet a Purchase Invoicereaderpnext.purchase_invoice.listList Purchase Invoice recordsreaderpnext.purchase_invoice.updateUpdate a Purchase Invoicewriteerpnext.purchase_invoice.cancelCancel a Purchase Invoicedestructiveerpnext.purchase_invoice.deleteDelete a Purchase Invoicedestructive- and 3 more in this area
Quotation9
erpnext.quotation.createCreate a Quotationwriteerpnext.quotation.getGet a Quotationreaderpnext.quotation.listList Quotation recordsreaderpnext.quotation.updateUpdate a Quotationwriteerpnext.quotation.cancelCancel a Quotationdestructiveerpnext.quotation.deleteDelete a Quotationdestructive- and 3 more in this area
Request for quotation9
erpnext.request_for_quotation.createCreate a Request for Quotationwriteerpnext.request_for_quotation.getGet a Request for Quotationreaderpnext.request_for_quotation.listList Request for Quotation recordsreaderpnext.request_for_quotation.map_supplier_quotation_from_rfqDraft a Supplier Quotation from a Request for Quotationreaderpnext.request_for_quotation.cancelCancel a Request for Quotationdestructiveerpnext.request_for_quotation.deleteDelete a Request for Quotationdestructive- and 3 more in this area
Asset8
erpnext.asset.createCreate an Assetwriteerpnext.asset.getGet an Assetreaderpnext.asset.listList Asset recordsreaderpnext.asset.updateUpdate an Assetwriteerpnext.asset.cancelCancel an Assetdestructiveerpnext.asset.deleteDelete an Assetdestructive- and 2 more in this area
Issue8
erpnext.issue.createCreate an Issuewriteerpnext.issue.getGet an Issuereaderpnext.issue.listList Issue recordsreaderpnext.issue.updateUpdate an Issuewriteerpnext.issue.deleteDelete an Issuedestructiveerpnext.issue.map_taskDraft a Task from an Issueread- and 2 more in this area
Payment request8
erpnext.payment_request.createCreate a Payment Requestwriteerpnext.payment_request.getGet a Payment Requestreaderpnext.payment_request.listList Payment Request recordsreaderpnext.payment_request.makeCreate a payment requestwriteerpnext.payment_request.cancelCancel a Payment Requestdestructiveerpnext.payment_request.deleteDelete a Payment Requestdestructive- and 2 more in this area
Pick list8
erpnext.pick_list.createCreate a Pick Listwriteerpnext.pick_list.getGet a Pick Listreaderpnext.pick_list.listList Pick List recordsreaderpnext.pick_list.map_delivery_noteDraft a Delivery Note from a Pick Listreaderpnext.pick_list.cancelCancel a Pick Listdestructiveerpnext.pick_list.deleteDelete a Pick Listdestructive- and 2 more in this area
POS invoice8
erpnext.pos_invoice.createCreate a POS Invoicewriteerpnext.pos_invoice.getGet a POS Invoicereaderpnext.pos_invoice.listList POS Invoice recordsreaderpnext.pos_invoice.map_sales_returnDraft a POS Invoice (return) from a POS Invoicereaderpnext.pos_invoice.cancelCancel a POS Invoicedestructiveerpnext.pos_invoice.deleteDelete a POS Invoicedestructive- and 2 more in this area
Quality inspection8
erpnext.quality_inspection.createCreate a Quality Inspectionwriteerpnext.quality_inspection.getGet a Quality Inspectionreaderpnext.quality_inspection.listList Quality Inspection recordsreaderpnext.quality_inspection.map_copyDraft a Quality Inspection from a Quality Inspectionreaderpnext.quality_inspection.cancelCancel a Quality Inspectiondestructiveerpnext.quality_inspection.deleteDelete a Quality Inspectiondestructive- and 2 more in this area
Stock entry8
erpnext.stock_entry.createCreate a Stock Entrywriteerpnext.stock_entry.getGet a Stock Entryreaderpnext.stock_entry.listList Stock Entry recordsreaderpnext.stock_entry.map_stock_in_entryDraft a Stock Entry (in-transit receipt) from a Stock Entryreaderpnext.stock_entry.cancelCancel a Stock Entrydestructiveerpnext.stock_entry.deleteDelete a Stock Entrydestructive- and 2 more in this area
Stock reconciliation8
erpnext.stock_reconciliation.createCreate a Stock Reconciliationwriteerpnext.stock_reconciliation.getGet a Stock Reconciliationreaderpnext.stock_reconciliation.itemsGet items for a stock countreaderpnext.stock_reconciliation.listList Stock Reconciliation recordsreaderpnext.stock_reconciliation.cancelCancel a Stock Reconciliationdestructiveerpnext.stock_reconciliation.deleteDelete a Stock Reconciliationdestructive- and 2 more in this area
Timesheet8
erpnext.timesheet.createCreate a Timesheetwriteerpnext.timesheet.getGet a Timesheetreaderpnext.timesheet.listList Timesheet recordsreaderpnext.timesheet.updateUpdate a Timesheetwriteerpnext.timesheet.cancelCancel a Timesheetdestructiveerpnext.timesheet.deleteDelete a Timesheetdestructive- and 2 more in this area
User8
erpnext.user.createCreate a Userwriteerpnext.user.getGet a Userreaderpnext.user.listList User recordsreaderpnext.user.updateUpdate a Userwriteerpnext.user.all_rolesList all rolesreaderpnext.user.current_rolesList the API user's rolesread- and 2 more in this area
Workflow8
erpnext.workflow.applyApply a workflow actionwriteerpnext.workflow.bulk_approveApply a workflow action in bulkwriteerpnext.workflow.createCreate a Workflowwriteerpnext.workflow.listList Workflow recordsreaderpnext.workflow.deleteDelete a Workflowdestructiveerpnext.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.