AI

MCP Server

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.

Language
Go 1.24+
License
MIT
Protocol
MCP (stdio · HTTP)
LLMs
Any OpenAI-compatible
Auth
OAuth2 · API key · sid
QUICKSTART
Install
# 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
// claude_desktop_config.json{  "mcpServers": {    "erpnext": {      "command": "/path/to/bin/frappe-mcp-server-stdio",      "args": ["--config", "/path/to/config.yaml"]    }  }}
Ask something
# 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"?

What MCP Server gives you

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.

Bring your own model

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.

Generic across DocTypes

Tools operate on any ERPNext DocType, standard or custom, so a bespoke doctype is queryable the day you create it.

Analytics and aggregations

SUM, COUNT, AVG and TOP N queries plus native ERPNext report execution — 'top 10 customers by revenue' returns a table, not a paragraph.

Graph-backed code intelligence

FrappeForge indexes controllers, client scripts, schema links and hooks into Neo4j, so an assistant can answer questions about your implementation, not just your data.

Privacy-first option

Point it at a local Ollama instance and business data never leaves your network, while the MCP interface stays identical.

Under the hood

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.

Read the source

Frequently asked questions

Which AI clients can use it?

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.

Does my ERP data get sent to a third-party model provider?

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.

How is access controlled?

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.

Does it work with custom DocTypes?

Yes. The tools are generic over doctypes rather than hardcoded to ERPNext's standard set, so custom doctypes are queryable without writing new tools.

Running MCP Server in production?

We 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