Skip to main content
Glama
danielsebastianc

frappe-api-mcp

README.md
# 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_TOKEN` as the `Authorization` header unless overridden

## Requirements

- Node.js 18+
- A reachable Frappe/ERPNext site

## Local setup

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

```bash
npm start
```

## Test

```bash
npm test
```

## OpenCode MCP config example

Do not put real secrets in committed config files. Prefer environment injection.

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

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clearly defined purpose of calling any Frappe REST API endpoint, leaving no room for confusion or misselection.

Naming Consistency5/5

Since there is only one tool, naming consistency is inherently perfect. The tool name 'frappe_api' follows a clear and appropriate pattern that matches the server's purpose, with no other tools to compare against or create inconsistency.

Tool Count2/5

A single tool is too few for a server with the broad scope implied by 'frappe-api-mcp', which suggests a comprehensive API interface. While the tool is flexible, the lack of specialized tools for common operations (e.g., CRUD on specific resources) makes the surface feel thin and underdeveloped for the domain.

Completeness2/5

The tool set is severely incomplete for the apparent domain of Frappe API interactions. With only a generic 'call any endpoint' tool, there are significant gaps in coverage—no dedicated tools for common operations like creating, reading, updating, or deleting specific resources, which will likely cause agent failures due to lack of structured guidance.

Maintenance

ActivityInactive
ResponsivenessNo issues