Integration · MODEL CONTEXT PROTOCOL

rakeshgangwar erpnext server

Connect AI assistants to your ERPNext instance via the Model Context Protocol (MCP) using the official Frappe API.

WHAT IT CONNECTS

What rakeshgangwar erpnext server gives an AI Agent

  • Access ERPNext documents via `erpnext://{doctype}/{name}` URIs
  • JSON format for structured data access
  • `authenticate_erpnext` - Authenticate with ERPNext using username and password
  • `get_documents` - Get a list of documents for a specific doctype
  • `create_document` - Create a new document in ERPNext
  • `update_document` - Update an existing document in ERPNext
  • `run_report` - Run an ERPNext report
  • `get_doctype_fields` - Get fields list for a specific DocType
  • `get_doctypes` - Get a list of all available DocTypes
  • `ERPNEXT_URL` - The base URL of your ERPNext instance
  • `ERPNEXT_API_KEY` (optional) - API key for authentication
  • `ERPNEXT_API_SECRET` (optional) - API secret for authentication

SECURITY

An MCP listing is not a security review

An MCP server may receive model context, credentials, local files, or permission to call external systems. Review its code, requested environment variables, network behavior, package provenance, and maintenance status before connecting it to an agent.

README

Repository documentation

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

  • get_doctypes - Get a list of all available DocTypes
  • get_doctype_fields - Get fields list for a specific DocType
  • get_documents - Get a list of documents for a specific doctype
  • get_document - Get a single document by name, including all child tables
  • create_document - Create a new document in ERPNext
  • update_document - Update an existing document in ERPNext
  • delete_document - Permanently delete a document
  • submit_document - Submit a document (set docstatus to 1)
  • cancel_document - Cancel a submitted document (set docstatus to 2)
  • call_method - Call an ERPNext/Frappe whitelisted server-side API method
  • run_report - Run an ERPNext report

Configuration

The server requires the following environment variables:

  • ERPNEXT_URL - The base URL of your ERPNext instance
  • ERPNEXT_API_KEY (optional) - API key for authentication
  • ERPNEXT_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

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>
View README on GitHub

COMMUNITY

Save, rate, and discuss

Loading community data…