ERPNext MCP Server
MCP (Model Context Protocol) server for ERPNext ERP. Manage CRM leads, opportunities, customers, projects, tasks, timesheets, and sales directly from Claude Code.
Tools
CRM - Leads
- list_leads -- List leads filtered by status or source
- get_lead -- Get lead details by ID
- create_lead -- Create a new CRM lead
- update_lead -- Update lead status or notes
CRM - Opportunities
- list_opportunities -- List opportunities filtered by status
- get_opportunity -- Get opportunity details
CRM - Customers
- list_customers -- List all customers
- get_customer -- Get customer details
Projects
- list_projects -- List projects filtered by status
- get_project -- Get project details with tasks
- create_project -- Create a new project
- create_task -- Create a task in a project
- update_task -- Update task status or priority
Timesheets
- list_timesheets -- List timesheets, optionally by project
- add_timesheet -- Add a time entry for a project
Sales
- list_quotations -- List sales quotations/offers
- list_sales_orders -- List sales orders
General
- search -- Global search across ERPNext doctypes
- get_dashboard -- ERPNext dashboard KPIs (leads, opportunities, projects)
Setup
cd erpnext-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Configure
cp run-mcp.sh.example run-mcp.sh
chmod +x run-mcp.sh
# Edit run-mcp.sh and set your ERPNext credentials
Environment Variables
| Variable | Required | Description |
|---|---|---|
ERPNEXT_URL | Yes | ERPNext instance URL (e.g., https://erp.example.com) |
ERPNEXT_API_KEY | Yes | API key (Setup > Integrations > API Access) |
ERPNEXT_API_SECRET | Yes | API secret |
Claude Code Configuration
Add to ~/.mcp.json:
{
"mcpServers": {
"erpnext": {
"command": "/path/to/erpnext-mcp/run-mcp.sh",
"type": "stdio"
}
}
}
License
MIT -- see LICENSE