erpnext-mcp
Provides tools to interact with an ERPNext instance via its REST API, enabling management of DocTypes such as Customer, Sales Invoice, Item, and Task with configurable access control and memory-safe list queries.
Connects to a Frappe-based ERPNext instance, either self-hosted or on Frappe Cloud, for secure API integration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@erpnext-mcplist the last 10 sales invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ERPNext MCP Server
A robust, asynchronous Model Context Protocol (MCP) server that securely connects LLMs to your ERPNext instance (Self-Hosted or Frappe Cloud) via its REST API.
Features
High Performance: Uses
httpx.AsyncClientwith connection pooling to handle fast, concurrent LLM tool calls without blocking.Configurable Access Control (Zoho-style): Enforces a strict
config.jsonwhitelist for DocTypes and API Methods to prevent LLMs from hallucinating destructive actions.Memory Safety: Hard-caps all list queries to 1000 records to prevent massive JSON payloads from crashing your server.
Universal Deployment: Run it locally (stdio) for personal R&D, or deploy it as an SSE Web Server (Server-Sent Events) via Docker for SaaS-like remote access.
Related MCP server: Frappe Assistant Core
Architecture & Security
1. Configuration (config.json)
By default, the server will reject any request unless it explicitly matches your configuration file.
{
"readable_doctypes": ["Customer", "Sales Invoice", "Item", "Task"],
"writable_doctypes": ["Customer", "Task"],
"deletable_doctypes": [],
"allowed_methods": ["erpnext.projects.doctype.task.task.set_status"],
"mcp_tokens": [
"YOUR_SECURE_CLIENT_TOKEN_1",
"YOUR_SECURE_CLIENT_TOKEN_2"
]
}2. API Key Best Practices
Do NOT use a System Manager's API Key. Create a dedicated "MCP Service User" in ERPNext and assign it a heavily restricted role (e.g., Read/Write only for Sales, Support, or specific modules).
Local Installation (Personal Use / R&D)
Set your environment variables:
ERPNEXT_URLERPNEXT_API_KEYERPNEXT_API_SECRET
Install dependencies:
pip install -e .Connect Claude Desktop (
claude_desktop_config.json):{ "mcpServers": { "erpnext": { "command": "/path/to/your/venv/bin/erpnext-mcp", "env": { "ERPNEXT_URL": "https://your-site.com", "ERPNEXT_API_KEY": "your_api_key", "ERPNEXT_API_SECRET": "your_api_secret" } } } }
Production VPS Deployment (SSE / SaaS Mode)
If you are hosting this on a VPS (like an Oracle ARM instance) to allow external clients to connect over the internet:
Docker Compose: The included
docker-compose.ymlwill run the server in SSE mode on port8000.docker compose up -dReverse Proxy (Caddy / Nginx): You must place this container behind a reverse proxy.
Expose the container via a domain (e.g.,
mcp.extrotechs.com).The server enforces token authentication via the
TokenAuthAndRateLimitMiddleware. Clients must send anAuthorization: Bearer YOUR_TOKENheader connecting to the SSE stream.
Internal vs External Routing:
If deploying on the same VPS as your Frappe instance, set
ERPNEXT_URL=http://frontend:8080(or whatever the docker-compose internal network URL is) to bypass the public internet and improve speed.If connecting to an external client's Frappe Cloud instance, use their public URL.
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Related MCP Servers
- AlicenseBqualityFmaintenanceThis 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.6117MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that enables LLMs to interact with ERPNext/Frappe sites for document CRUD, search, reports, workflows, and analytics, respecting user permissions and logging all actions.308AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceModel Context Protocol (MCP) server for ERPNext - manage timesheets, leave applications, projects, and software releases via Claude, Gemini, or any MCP-compatible AI assistant.10 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.164 npmISC