Natural language over your ERP
Ask for open projects, a specific customer, or pending tasks in plain English from any MCP client — no report builder, no saved filters.
AI
AI bridge for ERPNext
ERPNext MCP Server connects Frappe applications to AI assistants over the Model Context Protocol. Ask questions in plain English from Cursor, Claude Desktop or Open WebUI, run aggregations and ERPNext reports, and introspect your codebase through a Neo4j-backed graph — all behind OAuth2.
# Install the stdio binary for MCP clientscurl -fsSL https://raw.githubusercontent.com/vyogotech/frappe-mcp-server/main/install.sh | bash # Installs to ~/.local/bin/frappe-mcp-server-stdiocp config.yaml.example config.yaml// claude_desktop_config.json{ "mcpServers": { "erpnext": { "command": "/path/to/bin/frappe-mcp-server-stdio", "args": ["--config", "/path/to/config.yaml"] } }}# From Cursor or Claude Desktop@erpnext List all open projects@erpnext Show me top 5 customers by revenue@erpnext Run Sales Analytics report # Codebase intelligence@erpnext ff_get_hooks What hooks are registered for "Sales Invoice"?Ask for open projects, a specific customer, or pending tasks in plain English from any MCP client — no report builder, no saved filters.
Works with any OpenAI-compatible API through a three-field config: base_url, api_key, model. Ollama, OpenAI, Together.ai, Groq, OpenRouter, LocalAI and LM Studio all work.
Tools operate on any ERPNext DocType, standard or custom, so a bespoke doctype is queryable the day you create it.
SUM, COUNT, AVG and TOP N queries plus native ERPNext report execution — 'top 10 customers by revenue' returns a table, not a paragraph.
FrappeForge indexes controllers, client scripts, schema links and hooks into Neo4j, so an assistant can answer questions about your implementation, not just your data.
Point it at a local Ollama instance and business data never leaves your network, while the MCP interface stays identical.
A Go implementation of the Model Context Protocol that speaks both stdio and HTTP, handles OAuth2 token caching, and maps Frappe document schemas into tool definitions an LLM can call without ever seeing your credentials.
Any MCP-compatible client. It is tested with Cursor IDE, Claude Desktop and Open WebUI, and exposes an HTTP chat API for anything that cannot speak MCP directly.
Only if you configure one. The LLM endpoint is a three-field config, so pointing it at a local Ollama model keeps every query and result inside your own network.
Through standard Frappe authentication — OAuth2 with token caching, API keys, or session cookies. The server acts as the authenticated user, so Frappe's own permission model decides what the assistant can read or change.
Yes. The tools are generic over doctypes rather than hardcoded to ERPNext's standard set, so custom doctypes are queryable without writing new tools.
AI in the Awesome Bar
Turns Frappe's global search into a natural-language assistant that respects permissions.
ExploreDomain-driven Frappe services
A Python framework for carving secure, multi-tenant services out of the Frappe monolith.
ExploreMulti-tenancy on a single site
A Frappe app that lets one site serve many tenants, isolated by row instead of by database.
ExploreWe build and maintain these tools, and we help teams adopt them. Tell us what you are trying to ship and we will tell you honestly whether this is the right piece.
Talk to the team