Prepare the server locally
Run this once before adding it to Claude Code.
git clone https://github.com/danielsebastianc/frappe-api-mcp.git
cd frappe-api-mcp
npm installRegister it in Claude Code
claude mcp add -e "FRAPPE_BASE_URL=${FRAPPE_BASE_URL}" -e "FRAPPE_AUTH_TOKEN=${FRAPPE_AUTH_TOKEN}" frappe-api -- node /path/to/your/folder/mcp/frappe-api-server.mjsReplace any placeholder paths in the command with the real path on your machine.
FRAPPE_BASE_URLFRAPPE_AUTH_TOKENMake your agent remember this setup
frappe-api's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Supports standard HTTP methods: GET, POST, PUT, PATCH, DELETE
- Exposes a unified frappe_api tool for all REST interactions
- Handles authentication via Authorization headers
- Enables natural language interaction with site data
Tools 1
frappe_apiCalls Frappe REST endpoints under /api to perform CRUD operations.Environment Variables
FRAPPE_BASE_URLrequiredThe base URL of your Frappe/ERPNext siteFRAPPE_AUTH_TOKENrequiredThe authorization token for API accessTry it
Original README from danielsebastianc/frappe-api-mcp
frappe-api-mcp
Model Context Protocol (MCP) server that exposes a single frappe_api tool to call Frappe REST endpoints under /api.
What it provides
- Tool name:
frappe_api - Methods:
GET,POST,PUT,PATCH,DELETE - Input:
path(required),method,query,body,headers - Auth: uses
FRAPPE_AUTH_TOKENas theAuthorizationheader unless overridden
Requirements
- Node.js 18+
- A reachable Frappe/ERPNext site
Local setup
git clone https://github.com/danielsebastianc/frappe-api-mcp.git
cd frappe-api-mcp
npm install
cp .env.example .env
Set these environment variables before running:
FRAPPE_BASE_URL(example:http://localhost:8000)FRAPPE_AUTH_TOKEN(example:token api_key:api_secret)
Run
npm start
Test
npm test
OpenCode MCP config example
Do not put real secrets in committed config files. Prefer environment injection.
{
"mcp": {
"frappe_api": {
"type": "local",
"command": ["node", "/path/to/your/folder/mcp/frappe-api-server.mjs"],
"environment": {
"FRAPPE_BASE_URL": "http://localhost:8000",
"FRAPPE_AUTH_TOKEN": "token api_key:api_secret"
}
}
}
}