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
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.
- Access ERPNext documents via
erpnext://{doctype}/{name}URIs - JSON format for structured data access
get_doctypes- Get a list of all available DocTypesget_doctype_fields- Get fields list for a specific DocTypeget_documents- Get a list of documents for a specific doctypeget_document- Get a single document by name, including all child tablescreate_document- Create a new document in ERPNextupdate_document- Update an existing document in ERPNextdelete_document- Permanently delete a documentsubmit_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 methodrun_report- Run an ERPNext report
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
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchTo 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
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 inspectorThe Inspector will provide a URL to access debugging tools in your browser.
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_documents</tool_name>
<arguments>
{
"doctype": "Customer"
}
</arguments>
</use_mcp_tool>
<access_mcp_resource>
<server_name>erpnext</server_name>
<uri>erpnext://Customer/CUSTOMER001</uri>
</access_mcp_resource>
<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>
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_doctype_fields</tool_name>
<arguments>
{
"doctype": "Item"
}
</arguments>
</use_mcp_tool>
COMMUNITY