Frappe MCP Server
# Frappe MCP Server (Python + uv + Docker)
A modern, containerized Python implementation of the Model Context Protocol (MCP) server for Frappe Framework, built with FastMCP, uv for dependency management, and Docker for deployment.
## Features
- **Document Operations**: Full CRUD operations for Frappe documents
- **Schema Introspection**: DocType field definitions and structure analysis
- **Report Generation**: Query reports, financial statements, and data exports
- **Method Calling**: Execute whitelisted Frappe methods
- **Authentication**: Secure API key/secret authentication
## Quick Start
### Prerequisites
- Docker and Docker Compose
- Access to a Frappe site with API credentials
### Setup
```bash
git clone https://github.com/appliedrelevance/frappe_mcp_server_uv.git
cd frappe_mcp_server_uv
cp .env.example .env
# Edit .env with your Frappe credentials
docker-compose up -d frappe-mcp-server
```
## Available MCP Tools
### Document Operations
- `create_document`: Create new Frappe documents
- `get_document`: Retrieve document by DocType and name
- `update_document`: Update existing documents
- `delete_document`: Delete documents
- `list_documents`: Query documents with filters
- `call_method`: Execute whitelisted Frappe methods
### Schema Operations
- `get_doctype_schema`: Get complete DocType structure
- `get_field_options`: Get Link/Select field options
- `get_doctype_list`: List available DocTypes
- `get_frappe_usage_info`: Combined schema and usage information
### Report Operations
- `run_query_report`: Execute Frappe query reports
- `get_report_meta`: Get report metadata and structure
- `list_reports`: List available reports
- `run_doctype_report`: Generate DocType-based reports
- `get_financial_statements`: Access P&L, Balance Sheet, Cash Flow
### Helper Operations
- `ping`: Server health check
- `version`: Get server version information
- `validate_auth`: Check API credential status
## Development
```bash
# Install with development dependencies
uv sync --dev
# Run tests
uv run pytest
# Format code
uv run black src/ && uv run isort src/
```
## License
ISC License - see LICENSE file for details.TDQS
Scored across 24 tools
Most tools have distinct purposes, but there is some overlap between list_documents, run_doctype_report, and run_query_report, which could cause confusion in selecting the right tool for listing or reporting tasks. However, descriptions help clarify their specific uses, and other tools like create_document, update_document, and cancel_document are clearly differentiated.
Tool names follow a highly consistent verb_noun pattern throughout, such as create_document, update_document, list_documents, and get_doctype_schema. All tools use snake_case with clear, descriptive names, making them predictable and easy to understand without any deviations or mixed conventions.
With 24 tools, the count is slightly high but reasonable for a comprehensive Frappe server covering document management, reporting, and system operations. It includes core CRUD operations, financial statements, and utility tools, though it may feel heavy compared to simpler servers but aligns well with the domain's complexity.
The tool set provides complete coverage for Frappe document management, including full CRUD lifecycle (create, get, update, delete, submit, cancel, amend), schema exploration, reporting, and financial statements. There are no obvious gaps; agents can perform all essential operations without dead ends, supported by utility tools like ping and version.