MCP server for Frappe/ERPNext development with AI assistance for DocTypes, bench commands, and APIs
SaferSkills independently audited Frappe Dev MCP Server (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
npm install npm run buildSet 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.
The server now supports SSE transport for use with GitHub Copilot Chat:
npm run build
npm run ssehttp://localhost:3000/sseAdd 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"
}
}
}
}Run the server directly:
node dist/index.jsCreates 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)Executes bench commands for Frappe development.
Parameters:
command: Bench command to executesite: Site name (optional)cwd: Working directory (optional)Gets the directory structure of a Frappe app.
Parameters:
app_name: Name of the Frappe appCreates 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 endpointRuns database migration for a Frappe site.
Parameters:
site: Site name to migrateInstalls a Frappe app on a site.
Parameters:
app_name: Name of the app to installsite: Site nameCreates a new Frappe app.
Parameters:
app_name: Name of the new apptitle: Title of the apppublisher: Publisher namedescription: App description (optional){
"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
}
]
}{
"command": "migrate",
"site": "my_site.local"
}To modify the server:
src/ directorynpm run build to compile TypeScriptnpm run dev for development modeMIT License - see LICENSE file for details
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.