erpnext-mcp-server
The ERPNext MCP Server is a TypeScript-based server that facilitates integration with the ERPNext/Frappe API using the Model Context Protocol. It offers functionalities such as document access and management, report execution, and authentication tools for AI assistants to interact with ERPNext's data and functions.
ERPNext MCP Server
A Model Context Protocol server for ERPNext integration
This is a TypeScript-based MCP server that provides integration with ERPNext/Frappe API. It enables AI assistants to interact with ERPNext data and functionality through the Model Context Protocol.
Features
Resources
- Access ERPNext documents via
erpnext://{doctype}/{name}
URIs - JSON format for structured data access
Tools
authenticate_erpnext
- Authenticate with ERPNext using username and passwordget_documents
- Get a list of documents for a specific doctypecreate_document
- Create a new document in ERPNextupdate_document
- Update an existing document in ERPNextrun_report
- Run an ERPNext reportget_doctype_fields
- Get fields list for a specific DocTypeget_doctypes
- Get a list of all available DocTypes
Configuration
The server requires the following environment variables:
ERPNEXT_URL
- The base URL of your ERPNext instanceERPNEXT_API_KEY
(optional) - API key for authenticationERPNEXT_API_SECRET
(optional) - API secret for authentication
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"erpnext": {
"command": "node",
"args": ["/path/to/erpnext-server/build/index.js"],
"env": {
"ERPNEXT_URL": "http://your-erpnext-instance.com",
"ERPNEXT_API_KEY": "your-api-key",
"ERPNEXT_API_SECRET": "your-api-secret"
}
}
}
}
To use with Claude in VSCode, add the server config to:
On MacOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
On Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
Usage Examples
Authentication
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>authenticate_erpnext</tool_name>
<arguments>
{
"username": "your-username",
"password": "your-password"
}
</arguments>
</use_mcp_tool>
Get Customer List
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_documents</tool_name>
<arguments>
{
"doctype": "Customer"
}
</arguments>
</use_mcp_tool>
Get Customer Details
<access_mcp_resource>
<server_name>erpnext</server_name>
<uri>erpnext://Customer/CUSTOMER001</uri>
</access_mcp_resource>
Create New Item
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_document</tool_name>
<arguments>
{
"doctype": "Item",
"data": {
"item_code": "ITEM001",
"item_name": "Test Item",
"item_group": "Products",
"stock_uom": "Nos"
}
}
</arguments>
</use_mcp_tool>
Get Item Fields
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_doctype_fields</tool_name>
<arguments>
{
"doctype": "Item"
}
</arguments>
</use_mcp_tool>