erpnext-fast-mcp-server
Enables generic CRUD operations on ERPNext/Frappe DocTypes via MCP tools, allowing users to interact with ERPNext data like documents, reports, and schema through natural language commands.
README
erpnext-fast-mcp-server
A FastMCP server that exposes generic ERPNext / Frappe DocType operations as MCP tools, so any MCP-compatible client (Claude Desktop, Claude Code, etc.) can read and write data in an ERPNext site over its REST API.
Tools
get_document(doctype, name)— fetch a single documentlist_documents(doctype, filters, fields, order_by, limit, limit_start)— search/list documentscreate_document(doctype, data)— create a documentupdate_document(doctype, name, data)— update fields on a documentdelete_document(doctype, name)— delete a documentget_doctype_meta(doctype)— fetch a DocType's field/schema definitionget_count(doctype, filters)— count documents matching filtersrun_report(report_name, filters)— run a Query/Script report
These are generic, so they work against any DocType (Customer, Sales Invoice, Item, Stock Entry, etc.) without hardcoding business objects.
Setup
-
Install dependencies (using uv):
uv sync -
Get API credentials from your Frappe/ERPNext site: User → API Access → Generate Keys. Copy the API Key and API Secret shown (the secret is only displayed once).
-
Copy
.env.exampleto.envand fill in your values:cp .env.example .envFRAPPE_URL=https://your-site.frappe.cloud FRAPPE_API_KEY=your-api-key FRAPPE_API_SECRET=your-api-secret.envis git-ignored — never commit real credentials. -
Run the server directly to check it starts:
uv run erpnext-mcp
Using with Claude Desktop / Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"erpnext": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/erpnext-fast-mcp-server", "erpnext-mcp"],
"env": {
"FRAPPE_URL": "https://your-site.frappe.cloud",
"FRAPPE_API_KEY": "your-api-key",
"FRAPPE_API_SECRET": "your-api-secret"
}
}
}
}
Alternatively, keep credentials only in .env (not in the client config) and
omit the env block above — python-dotenv will load .env from the
project directory at startup.
Security notes
- Never commit
.envor hardcode API keys/secrets in source. - Scope the Frappe user's role/permissions to the minimum needed — the MCP tools inherit whatever permissions the API key's user has on the site.
delete_documentis irreversible; consider removing it from the tool list if you don't want an MCP client to be able to delete records.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.