Frappe/ERPNext MCP Server
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., "@Frappe/ERPNext MCP ServerCreate a DocType called Customer with fields name and email"
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.
Frappe/ERPNext MCP Server
A Model Context Protocol (MCP) server that provides AI assistance for Frappe/ERPNext development. This server offers tools to help with creating DocTypes, running bench commands, managing apps, and other Frappe development tasks.
Features
DocType Creation: Automatically generate DocType JSON definitions and Python controllers
Bench Commands: Execute bench commands for development workflows
App Management: Create, install, and manage Frappe apps
API Endpoints: Generate custom API endpoints
Database Operations: Run migrations and database management
App Structure Analysis: Get detailed app directory structures
Related MCP server: MCP Task
Installation
Clone or download this repository
Install dependencies:
npm installBuild the server:
npm run build
Configuration
Set the FRAPPE_PATH environment variable to point to your Frappe bench directory:
export FRAPPE_PATH="/path/to/your/frappe/bench"If not set, it defaults to /Users/mac/ERPNext/mkahawa.
Usage
With GitHub Copilot Chat (SSE Transport)
The server now supports SSE transport for use with GitHub Copilot Chat:
Build and run the SSE server:
npm run build npm run sseThe server will be automatically discovered by GitHub Copilot Chat at
http://localhost:3000/sse
With Claude Desktop (Stdio Transport)
Add the following configuration to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"frappe-dev": {
"command": "node",
"args": ["/Users/mac/ERPNext/mkahawa/frappe-mcp-server/dist/index.js"],
"env": {
"FRAPPE_PATH": "/Users/mac/ERPNext/mkahawa"
}
}
}
}With other MCP clients
Run the server directly:
node dist/index.jsAvailable Tools
frappe_create_doctype
Creates a new Frappe DocType with JSON definition and Python controller.
Parameters:
app_name: Name of the Frappe appdoctype_name: Name of the DocTypemodule: Module where DocType belongsfields: Array of field definitionsis_submittable: Whether the DocType is submittable (default: false)is_child: Whether this is a child DocType (default: false)
frappe_run_bench_command
Executes bench commands for Frappe development.
Parameters:
command: Bench command to executesite: Site name (optional)cwd: Working directory (optional)
frappe_get_app_structure
Gets the directory structure of a Frappe app.
Parameters:
app_name: Name of the Frappe app
frappe_create_api_endpoint
Creates a custom API endpoint for a Frappe app.
Parameters:
app_name: Name of the Frappe appendpoint_name: Name of the API endpointmethod: HTTP method (get, post, put, delete) (default: get)code: Python code for the API endpoint
frappe_migrate_database
Runs database migration for a Frappe site.
Parameters:
site: Site name to migrate
frappe_install_app
Installs a Frappe app on a site.
Parameters:
app_name: Name of the app to installsite: Site name
frappe_create_app
Creates a new Frappe app.
Parameters:
app_name: Name of the new apptitle: Title of the apppublisher: Publisher namedescription: App description (optional)
Example Usage
Creating a DocType
{
"app_name": "my_app",
"doctype_name": "Customer Order",
"module": "Orders",
"fields": [
{
"fieldname": "customer",
"label": "Customer",
"fieldtype": "Link",
"options": "Customer",
"reqd": true
},
{
"fieldname": "order_date",
"label": "Order Date",
"fieldtype": "Date",
"reqd": true
},
{
"fieldname": "total_amount",
"label": "Total Amount",
"fieldtype": "Currency",
"reqd": true
}
]
}Running Bench Commands
{
"command": "migrate",
"site": "my_site.local"
}Development
To modify the server:
Edit files in the
src/directoryRun
npm run buildto compile TypeScriptTest with
npm run devfor development mode
Requirements
Node.js 18+
Frappe/ERPNext bench environment
Access to Frappe bench commands
License
MIT License - see LICENSE file for details
This server cannot be deployed
Maintenance
Related MCP Connectors
Build and manage Chipp AI apps: prompts, knowledge, custom actions, and chat with your apps.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with ERPNext/Frappe instances through the REST API, allowing document management, report execution, and DocType operations using natural language.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with any ERPNext instance through comprehensive CRUD operations, advanced permissions, and a web chat interface.1MIT
- AlicenseBqualityDmaintenanceIntegrates with ERPNext/Frappe API to enable AI assistants to create, read, update, and list documents, run reports, and authenticate via the Model Context Protocol.6MIT
- 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