mcpField
F
Frappe MCP Server

Frappe MCP Server

Local
github.comBusiness & Marketing1Updated 13w ago

About Frappe MCP Server

Frappe MCP Server connects MCP clients to Frappe and ERPNext sites through their REST APIs. It supports document operations, search, and calls to whitelisted server-side methods.

Key features

  1. 01Create, read, update, and delete documents
  2. 02Full-text and filtered search
  3. 03Call whitelisted server-side methods
  4. 04Token-based API authentication
  5. 05Tool annotations and output schemas

Use cases

  1. 01Retrieving Frappe or ERPNext documents
  2. 02Searching records with filters
  3. 03Creating or updating site records
  4. 04Invoking whitelisted Python methods

MCP support

Exposes Frappe site operations as MCP tools for clients. Available tools include document CRUD, search, connectivity checks, and whitelisted method calls.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"muthanii-frappe": {
"command": "uvx",
"args": [
"frappe-mcp-server"
],
"env": {
"FRAPPE_URL": "<FRAPPE_URL>",
"FRAPPE_API_KEY": "<FRAPPE_API_KEY>",
"FRAPPE_API_SECRET": "<FRAPPE_API_SECRET>",
"FRAPPE_VERIFY_SSL": "<FRAPPE_VERIFY_SSL>",
"FRAPPE_TIMEOUT": "<FRAPPE_TIMEOUT>"
}
}
}
}
Run commanduvx frappe-mcp-server
Environment variables to set
FRAPPE_URLBase URL of your Frappe/ERPNext site, e.g. https://your-site.erpnext.com
FRAPPE_API_KEYSecretFrappe API key for token-based authentication
FRAPPE_API_SECRETSecretFrappe API secret paired with the API key
FRAPPE_VERIFY_SSLSet to 'false' to skip TLS certificate verification. Defaults to 'true'.
FRAPPE_TIMEOUTPer-request timeout in seconds. Defaults to 30.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypifrappe-mcp-server1.2.0
ocidocker.io/muthanii/frappe-mcp:1.2.0
ocighcr.io/muthanii/frappe-mcp:1.2.0

Tools

7

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

Frappe MCP Server

PyPI Python Docker Hub Docker pulls GHCR MCP Registry License

frappe_mcp 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

DistributionReferencePage
PyPIfrappe-mcp-serverpypi.org/project/frappe-mcp-server
Docker Hubmuthanii/frappe-mcphub.docker.com/r/muthanii/frappe-mcp
GitHub Container Registryghcr.io/muthanii/frappe-mcpghcr package
MCP Registryio.github.muthanii/frappe_mcpregistry 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 run command, 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.

ToolDescriptionAccessDestructiveIdempotent
frappe_pingCheck connectivity and credentialsread-onlynoyes
frappe_get_docRetrieve a single document by doctype + nameread-onlynoyes
frappe_search_docsSearch/list documents with filtersread-onlynoyes
frappe_create_docCreate a new documentwritenono
frappe_update_docUpdate an existing documentwriteyesyes
frappe_delete_docDelete a document — irreversiblewriteyesno
frappe_run_methodCall a whitelisted server-side methodwriteyesno

frappe_run_method is marked destructive because its effect is determined entirely by the method you name.

Configuration

Environment variableRequiredDescription
FRAPPE_URLYesBase URL of your Frappe site (e.g. https://erp.example.com)
FRAPPE_API_KEYYesFrappe API key
FRAPPE_API_SECRETYesFrappe API secret
FRAPPE_VERIFY_SSLNoSet to false to skip TLS verification (default: true)
FRAPPE_TIMEOUTNoRequest 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.


frappe_mcp MCP server

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.