Frappe MCP Server

Registre officiel Recherche et web

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

Que pouvez-vous faire avec Frappe MCP Server ?

  • 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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package frappe-mcp-server
Claude Code
claude mcp add frappe-mcp-server -e 'FRAPPE_URL=<FRAPPE_URL>' -e 'FRAPPE_API_KEY=<your frappe_api_key>' -e 'FRAPPE_API_SECRET=<your frappe_api_secret>' -e 'FRAPPE_VERIFY_SSL=true' -e 'FRAPPE_TIMEOUT=30' -- uvx frappe-mcp-server==1.2.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "frappe-mcp-server": {
            "command": "uvx",
            "args": [
                "frappe-mcp-server==1.2.0"
            ],
            "env": {
                "FRAPPE_URL": "<FRAPPE_URL>",
                "FRAPPE_API_KEY": "<your frappe_api_key>",
                "FRAPPE_API_SECRET": "<your frappe_api_secret>",
                "FRAPPE_VERIFY_SSL": "true",
                "FRAPPE_TIMEOUT": "30"
            }
        }
    }
}

Variables d'environnement

  • FRAPPE_URL obligatoire Base URL of your Frappe/ERPNext site, e.g. https://your-site.erpnext.com
  • FRAPPE_API_KEY obligatoire secret Frappe API key for token-based authentication
  • FRAPPE_API_SECRET obligatoire secret Frappe API secret paired with the API key
  • FRAPPE_VERIFY_SSL Set to 'false' to skip TLS certificate verification. Defaults to 'true'.
  • FRAPPE_TIMEOUT Per-request timeout in seconds. Defaults to 30.
OCI package docker.io/muthanii/frappe-mcp:1.2.0
Claude Code
claude mcp add frappe-mcp-server -e 'FRAPPE_URL=<FRAPPE_URL>' -e 'FRAPPE_API_KEY=<your frappe_api_key>' -e 'FRAPPE_API_SECRET=<your frappe_api_secret>' -e 'FRAPPE_VERIFY_SSL=true' -e 'FRAPPE_TIMEOUT=30' -- docker run -i --rm docker.io/muthanii/frappe-mcp:1.2.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "frappe-mcp-server": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "docker.io/muthanii/frappe-mcp:1.2.0"
            ],
            "env": {
                "FRAPPE_URL": "<FRAPPE_URL>",
                "FRAPPE_API_KEY": "<your frappe_api_key>",
                "FRAPPE_API_SECRET": "<your frappe_api_secret>",
                "FRAPPE_VERIFY_SSL": "true",
                "FRAPPE_TIMEOUT": "30"
            }
        }
    }
}

Variables d'environnement

  • FRAPPE_URL obligatoire Base URL of your Frappe/ERPNext site, e.g. https://your-site.erpnext.com
  • FRAPPE_API_KEY obligatoire secret Frappe API key for token-based authentication
  • FRAPPE_API_SECRET obligatoire secret Frappe API secret paired with the API key
  • FRAPPE_VERIFY_SSL Set to 'false' to skip TLS certificate verification. Defaults to 'true'.
  • FRAPPE_TIMEOUT Per-request timeout in seconds. Defaults to 30.
OCI package ghcr.io/muthanii/frappe-mcp:1.2.0
Claude Code
claude mcp add frappe-mcp-server -e 'FRAPPE_URL=<FRAPPE_URL>' -e 'FRAPPE_API_KEY=<your frappe_api_key>' -e 'FRAPPE_API_SECRET=<your frappe_api_secret>' -e 'FRAPPE_VERIFY_SSL=true' -e 'FRAPPE_TIMEOUT=30' -- docker run -i --rm ghcr.io/muthanii/frappe-mcp:1.2.0
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "frappe-mcp-server": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/muthanii/frappe-mcp:1.2.0"
            ],
            "env": {
                "FRAPPE_URL": "<FRAPPE_URL>",
                "FRAPPE_API_KEY": "<your frappe_api_key>",
                "FRAPPE_API_SECRET": "<your frappe_api_secret>",
                "FRAPPE_VERIFY_SSL": "true",
                "FRAPPE_TIMEOUT": "30"
            }
        }
    }
}

Variables d'environnement

  • FRAPPE_URL obligatoire Base URL of your Frappe/ERPNext site, e.g. https://your-site.erpnext.com
  • FRAPPE_API_KEY obligatoire secret Frappe API key for token-based authentication
  • FRAPPE_API_SECRET obligatoire secret Frappe API secret paired with the API key
  • FRAPPE_VERIFY_SSL Set to 'false' to skip TLS certificate verification. Defaults to 'true'.
  • FRAPPE_TIMEOUT Per-request timeout in seconds. Defaults to 30.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Frappe MCP Server
  2. Where to get it
  3. Features
  4. Quick start
  5. Available tools
  6. Configuration
  7. MCP client config
  8. Local development
  9. License

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

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.


Questions fréquentes

Qu'est-ce que Frappe MCP Server ?

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

Comment installer Frappe MCP Server ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add frappe-mcp-server -e 'FRAPPE_URL=<FRAPPE_URL>' -e 'FRAPPE_API_KEY=<your frappe_api_key>' -e 'FRAPPE_API_SECRET=<your frappe_api_secret>' -e 'FRAPPE_VERIFY_SSL=true' -e 'FRAPPE_TIMEOUT=30' -- uvx frappe-mcp-server==1.2.0. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Frappe MCP Server ?

Oui. Il attend FRAPPE_URL, FRAPPE_API_KEY, FRAPPE_API_SECRET, à renseigner dans sa configuration.

Frappe MCP Server est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient Frappe MCP Server ?

Il est publié par muthanii. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.