Server data from the Official MCP Registry
Interact with Frappe/ERPNext sites — document CRUD, search, and whitelisted method calls
About
Interact with Frappe/ERPNext sites — document CRUD, search, and whitelisted method calls
Security Report
This is a well-architected Frappe MCP server with strong authentication, proper input validation, and clear permission scoping. The server requires API credentials (token-based auth via environment variables), implements URL-safe path encoding to prevent traversal attacks, and provides comprehensive tool documentation. Minor code quality observations around broad exception handling and logging do not materially impact security. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity). Package verification found 1 issue.
5 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: FRAPPE_URL
Environment variable: FRAPPE_API_KEY
Environment variable: FRAPPE_API_SECRET
Environment variable: FRAPPE_VERIFY_SSL
Environment variable: FRAPPE_TIMEOUT
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-muthanii-frappe-mcp": {
"env": {
"FRAPPE_URL": "your-frappe-url-here",
"FRAPPE_API_KEY": "your-frappe-api-key-here",
"FRAPPE_TIMEOUT": "your-frappe-timeout-here",
"FRAPPE_API_SECRET": "your-frappe-api-secret-here",
"FRAPPE_VERIFY_SSL": "your-frappe-verify-ssl-here"
},
"args": [
"frappe-mcp-server"
],
"command": "uvx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
Frappe MCP Server
mcp-name: io.github.muthanii/frappe_mcp
A Model Context Protocol (MCP) server for Frappe Framework. Connect Claude Desktop, VS Code Copilot, and other MCP clients to any Frappe/ERPNext site via its REST API.
Where to get it
| Distribution | Reference | Page |
|---|---|---|
| PyPI | frappe-mcp-server | pypi.org/project/frappe-mcp-server |
| Docker Hub | muthanii/frappe-mcp | hub.docker.com/r/muthanii/frappe-mcp |
| GitHub Container Registry | ghcr.io/muthanii/frappe-mcp | ghcr package |
| MCP Registry | io.github.muthanii/frappe_mcp | registry API |
| Glama | — | glama.ai/mcp/servers/muthanii/frappe_mcp |
| Source | — | github.com/muthanii/frappe_mcp |
Features
- Document CRUD — get, create, update, delete Frappe doctypes
- Search — full-text and filtered document search
- Remote method calls — invoke any server-side Python method
- Authentication — API key + secret (token-based auth)
- Docker-first — single
docker runcommand, no Python install needed
Quick start
With uvx (no install):
FRAPPE_URL=https://your-site.com \
FRAPPE_API_KEY=your-api-key \
FRAPPE_API_SECRET=your-api-secret \
uvx frappe-mcp-server
With pip:
pip install frappe-mcp-server
frappe-mcp-server
With Docker (Docker Hub):
docker run -i --rm \
-e FRAPPE_URL=https://your-site.com \
-e FRAPPE_API_KEY=your-api-key \
-e FRAPPE_API_SECRET=your-api-secret \
muthanii/frappe-mcp
With Docker (GHCR):
docker run -i --rm \
-e FRAPPE_URL=https://your-site.com \
-e FRAPPE_API_KEY=your-api-key \
-e FRAPPE_API_SECRET=your-api-secret \
ghcr.io/muthanii/frappe-mcp
Available tools
Every tool ships MCP tool annotations and a declared outputSchema, so a client can tell read tools from destructive ones before calling them.
| Tool | Description | Access | Destructive | Idempotent |
|---|---|---|---|---|
frappe_ping | Check connectivity and credentials | read-only | no | yes |
frappe_get_doc | Retrieve a single document by doctype + name | read-only | no | yes |
frappe_search_docs | Search/list documents with filters | read-only | no | yes |
frappe_create_doc | Create a new document | write | no | no |
frappe_update_doc | Update an existing document | write | yes | yes |
frappe_delete_doc | Delete a document — irreversible | write | yes | no |
frappe_run_method | Call a whitelisted server-side method | write | yes | no |
frappe_run_method is marked destructive because its effect is determined entirely by the method you name.
Configuration
| Environment variable | Required | Description |
|---|---|---|
FRAPPE_URL | Yes | Base URL of your Frappe site (e.g. https://erp.example.com) |
FRAPPE_API_KEY | Yes | Frappe API key |
FRAPPE_API_SECRET | Yes | Frappe API secret |
FRAPPE_VERIFY_SSL | No | Set to false to skip TLS verification (default: true) |
FRAPPE_TIMEOUT | No | Request timeout in seconds (default: 30) |
MCP client config
Add this to your claude_desktop_config.json or Copilot config.
Via uvx:
{
"mcpServers": {
"frappe": {
"command": "uvx",
"args": ["frappe-mcp-server"],
"env": {
"FRAPPE_URL": "https://your-site.com",
"FRAPPE_API_KEY": "your-api-key",
"FRAPPE_API_SECRET": "your-api-secret"
}
}
}
}
Via Docker:
{
"mcpServers": {
"frappe": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "FRAPPE_URL",
"-e", "FRAPPE_API_KEY",
"-e", "FRAPPE_API_SECRET",
"muthanii/frappe-mcp"
],
"env": {
"FRAPPE_URL": "https://your-site.com",
"FRAPPE_API_KEY": "your-api-key",
"FRAPPE_API_SECRET": "your-api-secret"
}
}
}
}
Local development
pip install -e .
frappe-mcp
License
MIT — see LICENSE.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
