ERPNext MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ERPNEXT_URL | Yes | The URL of your ERPNext instance (e.g., https://your-erpnext-instance.com) | |
| ERPNEXT_API_KEY | Yes | Your ERPNext API key | |
| ERPNEXT_API_SECRET | Yes | Your ERPNext API secret |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_documentsB | List documents of a given DocType with optional filtering, sorting and pagination. |
| get_documentA | Get a single document by DocType and name. |
| create_documentC | Create a new document. |
| update_documentB | Update an existing document. |
| delete_documentC | Delete a document. |
| run_reportC | Execute an ERPNext report. |
| get_countA | Get document count for a DocType with optional filters. |
| get_list_with_summaryA | Get a list of documents along with total count. |
| submit_documentB | Submit a submittable document (e.g. Sales Invoice). |
| cancel_documentB | Cancel a submitted document. |
| run_methodC | Call a server-side method (whitelisted API). |
| list_doctypesA | List all available DocType names. |
| search_linkC | Search for link field values (autocomplete). |
| get_doctype_metaA | Get field definitions for a DocType. |
| get_stock_balanceA | Get real-time stock balance from Bin (exact match on item_code). ⚠️ 此工具對 item_code 做精確比對。回傳空陣列代表「找不到對應 Bin 紀錄」,
可能是真的零庫存,也可能是 item_code 拼錯或缺少公司前綴(例如系統實際是
|
| get_item_priceA | Get item prices from Item Price records (exact match on item_code). ⚠️ 對 item_code 做精確比對;空結果可能是 item_code 不存在或無價單。
不確定品項代碼時,先用 |
| make_mapped_docC | Create a new document mapped from an existing one (document conversion). Common methods:
|
| get_party_balanceB | Get outstanding balance for a Customer or Supplier. |
| get_stock_ledgerA | Get stock ledger entries (inventory transaction history; exact match on item_code). ⚠️ 對 item_code 做精確比對;查不到時改用 |
| find_itemsA | Fuzzy-search Item across name / item_name / item_code (OR like %keyword%). 用途:把使用者口語化的關鍵字(原廠型號、品名片段、部分代碼)解析成系統實際的
建議用法:先 |
| get_item_detailsA | Get full item info (master + stock balance + prices) by exact name or fuzzy keyword. 一次回完整資料,避免 AI 為了查一個品項要連打 3~4 支工具。 解析順序:
|
| upload_file_from_urlA | Upload a file to ERPNext from a URL. |
| upload_fileC | Upload a local file to ERPNext. |
| list_filesC | List files in ERPNext, optionally filtered by attachment. |
| get_file_urlB | Get the full download URL for a file. |
| download_fileB | Download a file's content from ERPNext. |
| get_supplier_detailsB | Get complete supplier details including address, phone, and contacts. |
| get_customer_detailsB | Get complete customer details including address, phone, and contacts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools are nominal but there are several overlapping fetch utilities: list_documents, get_list_with_summary, and get_count all surface document lists/counts, and get_item_details overlaps with get_stock_balance, get_item_price, and find_items. The descriptions add helpful disambiguation notes, but an agent could still misselect when a single response includes both full-item details and stock-specific lookups.
Tool names follow a consistent snake_case verb_noun pattern throughout: list_documents, get_document, create_document, update_document, delete_document, submit_document, cancel_document, upload_file, download_file. Even composite names like get_list_with_summary and make_mapped_doc stay within the same pattern, so the naming is predictable.
At 28 tools, this server exceeds the 25+ threshold where tool count becomes a heavy burden. The count also inflates the surface area because several tools are near-duplicates of generic document access: get_count, get_list_with_summary, get_document, and list_documents could likely be consolidated.
The tool set gives strong lifecycle coverage for the ERPNext domain: generic DocType CRUD, submit/cancel, report execution, run_method, mapped document conversion, stock/item lookups, party balance and details, plus upload/download file support. There are no major dead ends and the generic document tools plus whitelisted run_method fill most edge cases.