Skip to main content
Glama
ERPNext MCP Server

ERPNext MCP Server

by jagmohan0908

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 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

Related MCP server: Frappe MCP Server

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

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>

Available Tools

6 tools
create_documentB

Create a new document in ERPNext

Inputs: data (required), doctype (required).

get_doctype_fieldsB

Get fields list for a specific DocType

Inputs: doctype (required).

get_doctypesA

Get a list of all available DocTypes

Inputs: no named parameters.

get_documentsA

Get a list of documents for a specific doctype

Inputs: doctype (required), limit, fields, filters.

run_reportC

Run an ERPNext report

Inputs: report_name (required), filters.

update_documentC

Update an existing document in ERPNext

Inputs: data (required), name (required), doctype (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct aspect: listing doctypes, fetching fields, retrieving documents, creating, updating, and running reports. There is no overlap between these operations.

    Naming Consistency4/5

    All tools use a verb_noun pattern (get_, create_, update_, run_), but pluralization is inconsistent: get_doctypes and get_documents are plural, while get_doctype_fields, create_document, and update_document use singular forms.

    Tool Count5/5

    With 6 tools, the server is well-scoped and covers core ERPNext interactions without unnecessary bloat. Each tool has a clear purpose.

    Completeness3/5

    The set covers create, read (list), and update, but lacks a delete_document operation. Also, get_documents only implies listing, with no explicit get by ID, which may require workarounds. Reports add some breadth.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Allows AI assistants to interact with Frappe applications through the official REST API, enabling document CRUD operations, schema handling, and detailed API instructions.
      271 npm
      2
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI models to securely interact with Frappe Framework/ERPNext instances, supporting document CRUD, RPC methods, file management, workflows, reporting, and more via the Model Context Protocol.
      271 npm
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with ERPNext data and functionality through the Model Context Protocol, including document CRUD, report running, and API method calls.
      MIT