Frappe MCP Server

io.github.muthaniiPublished by GitHub account muthaniiv1.2.0Updated Oct 27, 2026

Interact with Frappe/ERPNext sites — document CRUD, search, and whitelisted method calls

VerifiedSTDIODesktop onlyDatabasesBusiness & Commerce

Overview

AI-generated overview

Connects an assistant to a Frappe/ERPNext site over its REST API for document CRUD, search, and whitelisted server-side method calls.

What you can do
  • Check connectivity and credentials against the site
  • Retrieve a single document by doctype and name
  • Search and list documents with filters
  • Create, update and delete documents
  • Call whitelisted server-side Python methods
When to use it
Useful when you work with a Frappe or ERPNext site and want an assistant to look up, edit or create records, or trigger server-side methods, without leaving the chat client.
Requirements
Runs locally as a stdio process via uvx, pip, or Docker. Needs FRAPPE_URL (base URL of the site), FRAPPE_API_KEY and FRAPPE_API_SECRET for token authentication, plus network access to the site. Optional FRAPPE_TIMEOUT (default 30) and FRAPPE_VERIFY_SSL (default true).
Before you install
Requires an API key and secret with the permissions of that user; the assistant can create, update and delete documents, and deletion is irreversible. frappe_run_method can invoke any whitelisted server-side method, so its effect depends entirely on the method named. Setting FRAPPE_VERIFY_SSL to false disables TLS certificate checks.

Installation

In SourceWeft

  1. Open Frappe MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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):

bash
FRAPPE_URL=https://your-site.com \FRAPPE_API_KEY=your-api-key \FRAPPE_API_SECRET=your-api-secret \  uvx frappe-mcp-server

With pip:

bash
pip install frappe-mcp-serverfrappe-mcp-server

With Docker (Docker Hub):

bash
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):

bash
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:

json
{  "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:

json
{  "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

bash
pip install -e .frappe-mcp

License

MIT — see LICENSE.


[frappe_mcp MCP server]

Source: README.md at commit e1f8986

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts