# Frappe Dev MCP Server (npm · frappe-dev-mcp-server)

MCP server for Frappe/ERPNext development with AI assistance for DocTypes, bench commands, and APIs

- Trust score: 56/100 (low)
- Change this week: −12
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `frappe-dev-mcp-server`: 56/100 (this document), [markdown](https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server.md), [page](https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `frappe-dev-mcp-server`
- Version: `1.0.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 70/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.6.1, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (52 of 53), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 44/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 268 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 1431 tokens (~49/item across 29 items; 29 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 96% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add sajmustafake-frappe-dev-mcp-server -- npx -y frappe-dev-mcp-server
```

### Codex

```bash
codex mcp add sajmustafake-frappe-dev-mcp-server -- npx -y frappe-dev-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sajmustafake-frappe-dev-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "frappe-dev-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sajmustafake-frappe-dev-mcp-server --command npx --arg -y --arg frappe-dev-mcp-server
```

### Hermes

```yaml
mcp_servers:
  sajmustafake-frappe-dev-mcp-server:
    command: "npx"
    args: ["-y", "frappe-dev-mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "sajmustafake-frappe-dev-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "frappe-dev-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 56, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 52, +44)

- [security regression] Known CVEs: unverified → fail
- [security regression] Provenance: unverified → fail
- [security improvement] CVE-2026-14257 no longer affects this package
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] MCP protocol: unverified → fail
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 8, +3)

- [functional improvement] Dependency health: unverified → partial

### 2026-07-31 (score 5, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −62)

- [security regression] Install scripts: pass → unverified
- [security regression] Provenance: fail → unverified
- [security regression] Known CVEs: fail → unverified
- [security regression] Malware scan: pass → unverified
- [security improvement] CVE-2025-66414 no longer affects this package
- [security improvement] CVE-2026-14257 no longer affects this package
- [functional regression] Maintenance: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] License: pass → unverified
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-07-27 (score 68, +24)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 44)

First indexed and scored.

## MCP tools (29)

### `frappe_create_doctype` (~95 tokens)

Create a new Frappe DocType with JSON definition and Python controller

Input parameters:

- `app_name` (string, required): Name of the Frappe app
- `doctype_name` (string, required): Name of the DocType
- `fields` (array, required): Array of field definitions
- `is_child` (boolean)
- `is_submittable` (boolean)
- `module` (string, required): Module where DocType belongs

### `frappe_run_bench_command` (~53 tokens)

Execute bench commands for Frappe development

Input parameters:

- `command` (string, required): Bench command to execute
- `cwd` (string): Working directory (optional)
- `site` (string): Site name (optional)

### `frappe_get_app_structure` (~35 tokens)

Get the structure of a Frappe app

Input parameters:

- `app_name` (string, required): Name of the Frappe app

### `frappe_create_api_endpoint` (~70 tokens)

Create a custom API endpoint for a Frappe app

Input parameters:

- `app_name` (string, required): Name of the Frappe app
- `code` (string, required): Python code for the API endpoint
- `endpoint_name` (string, required): Name of the API endpoint
- `method` (string)

### `frappe_migrate_database` (~30 tokens)

Run database migration for Frappe apps

Input parameters:

- `site` (string, required): Site name to migrate

### `frappe_install_app` (~42 tokens)

Install a Frappe app on a site

Input parameters:

- `app_name` (string, required): Name of the app to install
- `site` (string, required): Site name

### `frappe_create_app` (~59 tokens)

Create a new Frappe app

Input parameters:

- `app_name` (string, required): Name of the new app
- `description` (string): App description
- `publisher` (string, required): Publisher name
- `title` (string, required): Title of the app

### `frappe_create_document` (~52 tokens)

Create a new Frappe document

Input parameters:

- `data` (object, required): Document data as key-value pairs
- `doctype` (string, required): DocType of the document
- `site` (string, required): Site name

### `frappe_get_document` (~54 tokens)

Retrieve a Frappe document by DocType and name

Input parameters:

- `doctype` (string, required): DocType of the document
- `name` (string, required): Name of the document
- `site` (string, required): Site name

### `frappe_update_document` (~60 tokens)

Update an existing Frappe document

Input parameters:

- `data` (object, required): Updated document data
- `doctype` (string, required): DocType of the document
- `name` (string, required): Name of the document
- `site` (string, required): Site name

### `frappe_delete_document` (~49 tokens)

Delete a Frappe document

Input parameters:

- `doctype` (string, required): DocType of the document
- `name` (string, required): Name of the document
- `site` (string, required): Site name

### `frappe_list_documents` (~62 tokens)

List Frappe documents with optional filters

Input parameters:

- `doctype` (string, required): DocType to list
- `filters` (object): Filters as key-value pairs
- `limit` (number): Maximum number of results
- `site` (string, required): Site name

### `frappe_call_method` (~56 tokens)

Execute a whitelisted Frappe method

Input parameters:

- `args` (array): Arguments for the method
- `method` (string, required): Method path (e.g., 'frappe.client.get')
- `site` (string): Site name

### `frappe_get_doctype_schema` (~47 tokens)

Get the complete schema/structure of a Frappe DocType

Input parameters:

- `doctype` (string, required): Name of the DocType
- `site` (string, required): Site name

### `frappe_get_field_options` (~52 tokens)

Get options for Link/Select fields in a DocType

Input parameters:

- `doctype` (string, required): DocType name
- `fieldname` (string, required): Field name
- `site` (string, required): Site name

### `frappe_get_doctype_list` (~29 tokens)

List all available DocTypes in the system

Input parameters:

- `site` (string, required): Site name

### `frappe_get_frappe_usage_info` (~34 tokens)

Get combined schema and usage information for Frappe development

Input parameters:

- `site` (string, required): Site name

### `frappe_run_query_report` (~49 tokens)

Execute a Frappe query report

Input parameters:

- `filters` (object): Report filters
- `report_name` (string, required): Name of the query report
- `site` (string, required): Site name

### `frappe_get_report_meta` (~40 tokens)

Get metadata for a Frappe report

Input parameters:

- `report_name` (string, required): Name of the report
- `site` (string, required): Site name

### `frappe_list_reports` (~25 tokens)

List available Frappe reports

Input parameters:

- `site` (string, required): Site name

### `frappe_run_doctype_report` (~53 tokens)

Generate a report based on a DocType

Input parameters:

- `doctype` (string, required): DocType for the report
- `filters` (object): Filters for the report
- `site` (string, required): Site name

### `frappe_get_financial_statements` (~66 tokens)

Get financial statements (P&L, Balance Sheet, Cash Flow)

Input parameters:

- `company` (string, required): Company name
- `fiscal_year` (string): Fiscal year
- `site` (string, required): Site name
- `statement_type` (string, required): Type of financial statement

### `frappe_generate_frappe_ui_component` (~66 tokens)

Generate a Vue component using frappe-ui components

Input parameters:

- `component_name` (string, required): Name of the component
- `component_type` (string, required): Type of frappe-ui component
- `content` (string): Component content/template
- `props` (object): Component props

### `frappe_generate_vue_page` (~52 tokens)

Generate a Vue page with frappe-ui layout

Input parameters:

- `components` (array): List of components to include
- `page_name` (string, required): Name of the page
- `route` (string, required): Route path

### `frappe_get_vue_component_tree` (~30 tokens)

Get the Vue component tree structure (simulated)

Input parameters:

- `page` (string, required): Page name

### `frappe_create_ui_block` (~57 tokens)

Create UI blocks using frappe-ui and Tailwind CSS patterns

Input parameters:

- `block_type` (string, required): Type of UI block to create
- `customization` (string): Specific customization requirements
- `theme` (string): Theme for the block

### `frappe_inspire_ui_block` (~44 tokens)

Generate creative UI blocks inspired by modern design patterns

Input parameters:

- `framework` (string): Target framework
- `inspiration` (string, required): Description of the inspiration or use case

### `frappe_refine_ui_block` (~44 tokens)

Refine and improve existing UI blocks

Input parameters:

- `existing_code` (string, required): Existing UI block code to refine
- `improvements` (string, required): What improvements to make

### `frappe_get_ui_templates` (~26 tokens)

Get available UI templates and patterns

Input parameters:

- `category` (string): Template category

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server#diagnostics

## Score history

- 2026-08-03: 56
- 2026-08-02: 52
- 2026-08-01: 8
- 2026-07-31: 5
- 2026-07-30: 6
- 2026-07-28: 68
- 2026-07-27: 68
- 2026-07-26: 44

## Links

- npm package: https://www.npmjs.com/package/frappe-dev-mcp-server
- Socket report: https://socket.dev/npm/package/frappe-dev-mcp-server
- Repository: https://github.com/SajmustafaKe/frappe-dev-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/sajmustafake-frappe-dev-mcp-server/frappe-dev-mcp-server
