Skip to main content
Glama
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_TOKEN as the Authorization header unless overridden

Related MCP server: ERPNext MCP Server

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"
      }
    }
  }
}

Available Tools

1 tool
frappe_apiC

Call any Frappe REST API endpoint via /api using configured token authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoGET
pathYesAPI path under /api, e.g. /resource/ToDo
queryNoQuery string values
bodyNoJSON request body
headersNoAdditional request headers

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions token authentication but doesn't disclose rate limits, error handling, response formats, or side effects (e.g., that DELETE methods are destructive). For a tool that can perform any REST operation, this lack of behavioral context is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for its purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no output schema, no annotations), the description is insufficient. It doesn't explain return values, error cases, or the scope of 'any Frappe REST API endpoint'. For a flexible, potentially destructive tool, more context is needed to ensure safe and correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema documents most parameters well. The description adds no parameter-specific information beyond implying the path is under '/api'. It doesn't explain parameter interactions or provide examples, so it meets the baseline but doesn't compensate for the 20% coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Call any Frappe REST API endpoint via /api using configured token authentication.' It specifies the verb ('Call'), resource ('Frappe REST API endpoint'), and authentication method. However, without sibling tools, it cannot distinguish from alternatives, so it doesn't reach a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, prerequisites, or specific contexts. It only states what the tool does, not when it's appropriate. This is a significant gap for a general-purpose API tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.1.0
    • First observedfrappe_api

TDQS

B3.1/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables interaction with Frappe Framework sites through comprehensive document operations, schema introspection, report generation, and method execution. Provides secure API-based access to create, read, update, and delete Frappe documents while supporting financial reporting and DocType management.
    24
    15
    ISC
  • A
    license
    B
    quality
    C
    maintenance
    Enables interaction with ERPNext instances via its REST API to manage documents, inventory, and reports. It supports full CRUD operations, submittable document workflows, and schema inspection through natural language.
    28
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Allows AI assistants to interact with Frappe applications through the official REST API, enabling document CRUD operations, schema handling, and detailed API instructions.
    143
    2
    ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielsebastianc/frappe-api-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server