# Frappe_Assistant_Core
**Repository Path**: feesow/Frappe_Assistant_Core
## Basic Information
- **Project Name**: Frappe_Assistant_Core
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2026-03-27
- **Last Updated**: 2026-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Frappe Assistant Core
๐ง **LLM Integration Platform for ERPNext** - Give any Large Language Model the power to interact with your ERPNext system through standardized tools and protocols.
---
## ๐ What is Frappe Assistant Core?
**Infrastructure that connects LLMs to ERPNext.** Frappe Assistant Core works with the Model Context Protocol (MCP) to expose ERPNext functionality to any compatible Language Model, enabling:
- **๐ LLM-Agnostic Integration**: Works with Claude, GPT, custom models, or any MCP-compatible system
- **๐ One-Click Claude Setup**: Generate DXT files for instant Claude Desktop integration
- **๐ Enterprise Security**: ERPNext permissions, audit logging, and role-based access control
- **๐ ๏ธ 20+ Built-in Tools**: Document operations, search, reporting, analytics, and visualization
- **๐ Plugin Architecture**: Extensible framework for custom business logic and integrations
- **๐ Open Source**: AGPL-3.0 licensed - transparent, community-driven development
---
## โก Quick Installation
Get up and running in 3 steps:
```bash
# 1. Get the app
cd frappe-bench
bench get-app https://github.com/buildswithpaul/Frappe_Assistant_Core
# 2. Install on your site
bench --site [site-name] install-app frappe_assistant_core
```
**That's it!** Your ERPNext system is now accessible to any MCP-compatible LLM.
---
## ๐ฏ Core Components
### ๐ง **MCP Server Infrastructure**
Robust protocol handler that exposes ERPNext functionality through standardized tools.
### ๐ฆ **Client Integration Packages**
Ready-to-use integrations including DXT file generation for Claude Desktop setup.
### ๐ ๏ธ **21 Built-in Tools**
Document CRUD, search, reporting, analytics, Python execution, and visualization capabilities.

*Comprehensive tool set for complete ERPNext integration*
### ๐ **Plugin Architecture**
Extensible framework for custom tools, external app integration, and business-specific logic.

*Professional admin interface for plugin management and configuration*
### ๐ **OAuth 2.0 / OIDC Authentication**
Full OAuth 2.0 and OpenID Connect implementation with Dynamic Client Registration (RFC 7591), PKCE support, and standardized discovery endpoints for seamless integration with MCP Inspector and third-party tools.
### ๐ **Enterprise Security Layer**
Authentication, ERPNext permissions integration, audit logging, and role-based access.

*Complete audit logging tracks all LLM interactions with your ERP data*
### ๐ **LLM-Agnostic Design**
Compatible with any MCP-enabled system - not locked to specific AI providers.
### Architecture Overview
```mermaid
graph TB
subgraph "LLM Layer"
Claude[Claude Desktop]
GPT[GPT/Custom LLM]
API[LLM via API]
Future[Future LLMs]
end
subgraph "Integration Layer"
MCP[MCP Protocol
JSON-RPC 2.0]
DXT[DXT File Generator
One-Click Setup]
Bridge[STDIO Bridge]
end
subgraph "Frappe Assistant Core"
Server[MCP Server
API Handler]
Registry[Tool Registry
20+ Tools]
subgraph "Plugin System"
CorePlugin[Core Plugin
Always Enabled]
DataSci[Data Science
Plugin]
Viz[Visualization
Plugin]
Custom[Custom
Plugins]
end
Security[Security Layer
Auth & Permissions]
Audit[Audit Trail
Logging System]
end
subgraph "ERPNext/Frappe"
Database[(ERPNext
Database)]
Docs[Documents
Customers, Sales, etc.]
Reports[Reports
Analytics]
Workflows[Workflows
Business Logic]
end
%% Connections
Claude --> MCP
GPT --> MCP
API --> MCP
Future --> MCP
Claude -.->|One-Click| DXT
DXT --> Bridge
Bridge --> Server
MCP --> Server
Server --> Registry
Registry --> CorePlugin
Registry --> DataSci
Registry --> Viz
Registry --> Custom
Server --> Security
Server --> Audit
CorePlugin --> Database
DataSci --> Database
Viz --> Database
Custom --> Database
Database --> Docs
Database --> Reports
Database --> Workflows
%% Styling
classDef llm fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef integration fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef core fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef plugin fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef erp fill:#fce4ec,stroke:#c2185b,stroke-width:2px
class Claude,GPT,API,Future llm
class MCP,DXT,Bridge integration
class Server,Registry,Security,Audit core
class CorePlugin,DataSci,Viz,Custom plugin
class Database,Docs,Reports,Workflows erp
```
## Data Flow Architecture
```mermaid
sequenceDiagram
participant U as User
participant C as Claude/LLM
participant M as MCP Server
participant T as Tool Registry
participant P as Plugin
participant E as ERPNext DB
U->>C: "Create customer Acme Corp"
C->>M: MCP Request: create_document
M->>T: Get tool: create_document
T->>P: Execute Core Plugin Tool
P->>E: frappe.get_doc().insert()
E-->>P: Document Created
P-->>T: Success Response
T-->>M: Tool Result
M-->>C: MCP Response
C-->>U: "Customer created successfully"
Note over M,E: All operations logged in audit trail
Note over M: Security & permissions enforced
```
## Plugin Architecture Detail
```mermaid
graph LR
subgraph "External Apps"
App1[Custom Frappe App]
App2[Industry-Specific App]
App3[Third-Party App]
end
subgraph "Tool Discovery"
Hooks[hooks.py
assistant_tools]
Scanner[Plugin Scanner]
Registry[Tool Registry]
end
subgraph "Core Plugins"
CoreP[Core Plugin
Document Operations]
DataP[Data Science Plugin
Python Execution]
VizP[Visualization Plugin
Charts & Dashboards]
end
subgraph "Runtime Management"
Manager[Plugin Manager]
Config[Plugin Configuration]
State[Enable/Disable State]
end
App1 --> Hooks
App2 --> Hooks
App3 --> Hooks
Hooks --> Scanner
Scanner --> Registry
CoreP --> Registry
DataP --> Registry
VizP --> Registry
Registry --> Manager
Manager --> Config
Manager --> State
classDef external fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef discovery fill:#f1f8e9,stroke:#388e3c,stroke-width:2px
classDef plugins fill:#fff8e1,stroke:#f57f17,stroke-width:2px
classDef management fill:#fce4ec,stroke:#c2185b,stroke-width:2px
class App1,App2,App3 external
class Hooks,Scanner,Registry discovery
class CoreP,DataP,VizP plugins
class Manager,Config,State management
```
## Security & Permissions Flow
```mermaid
graph TD
Request[LLM Request] --> Auth{Authenticated?}
Auth -->|No| Reject[Reject Request]
Auth -->|Yes| UserCheck{User Enabled?}
UserCheck -->|No| Reject
UserCheck -->|Yes| RoleCheck{Has Assistant Role?}
RoleCheck -->|No| Reject
RoleCheck -->|Yes| ToolPerm{Tool Allowed?}
ToolPerm -->|No| Reject
ToolPerm -->|Yes| DocPerm{ERPNext Permissions?}
DocPerm -->|No| Reject
DocPerm -->|Yes| Execute[Execute Tool]
Execute --> AuditLog[Log to Audit Trail]
Execute --> Response[Return Response]
classDef security fill:#ffebee,stroke:#d32f2f,stroke-width:2px
classDef success fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef reject fill:#fafafa,stroke:#757575,stroke-width:2px
class Auth,UserCheck,RoleCheck,ToolPerm,DocPerm security
class Execute,AuditLog,Response success
class Reject reject
```
## Integration Patterns
```mermaid
graph LR
subgraph "Pattern 1: Direct Claude Desktop"
CD[Claude Desktop]
DXT[DXT File]
STDIO[STDIO Bridge]
CD --> DXT --> STDIO
end
subgraph "Pattern 2: API Integration"
CustomLLM[Custom LLM App]
HTTP[HTTP API]
MCP_API[MCP Endpoint]
CustomLLM --> HTTP --> MCP_API
end
subgraph "Pattern 3: Webhook/Event"
External[External System]
Webhook[Webhook Endpoint]
Queue[Background Queue]
External --> Webhook --> Queue
end
subgraph "Frappe Assistant Core"
Core[MCP Server]
end
STDIO --> Core
MCP_API --> Core
Queue --> Core
classDef pattern1 fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef pattern2 fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
classDef pattern3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef core fill:#fce4ec,stroke:#c2185b,stroke-width:2px
class CD,DXT,STDIO pattern1
class CustomLLM,HTTP,MCP_API pattern2
class External,Webhook,Queue pattern3
class Core core
```
*Plugin-based architecture supports any MCP-compatible LLM*
---
## ๐ Getting Started
Ready to connect your LLM to ERPNext? Follow these simple steps:
### Step 1: Get Your MCP Endpoint URL
1. **Open FAC Admin Page**
- After installation, go to: **Desk โ Tools โ FAC Admin**
- Or navigate directly to: `https://your-site.com/app/fac-admin`
2. **Copy Your MCP Endpoint**
- On the FAC Admin page, you'll see your **MCP Endpoint URL**
- It looks like: `https://your-site.com/api/method/frappe_assistant_core.api.fac_endpoint.handle_mcp`
- Copy this URL - you'll need it in the next step

*Get your MCP endpoint URL from the FAC Admin page*
### Step 2: Add MCP Server to Your LLM
Choose your LLM platform and follow the instructions:
#### ๐ท **Claude Desktop** (Recommended)
1. **In Claude Desktop**, click the settings icon (โ๏ธ) in the bottom left
2. Click **"Connectors"**
3. Click **"+ Add Custom Connector""** button
4. Fill in the details:
- **Name**: `Frappe Assistant Core` (or any name you prefer)
- **URL**: Paste your MCP endpoint URL from Step 1
5. Click **"Add"**

#### ๐ข **ChatGPT** (Plus Users Only)
> **Note**: Custom connectors are only available for ChatGPT Plus and above plan users with Developer Mode enabled
1. **In ChatGPT**, open the side panel
2. Go to **Connectors** menu
3. Click **"Create"** button
4. Fill in the connector details:
- **Name**: `Frappe Assistant Core` (or any name you prefer)
- **URL**: Paste your MCP endpoint URL from Step 1
5. Click **"Create"**

#### ๐ **Claude Web** (claude.ai)
1. **On Claude Web**, click your profile icon
2. Go to **Settings โ Integrations**
3. Click **"Add Custom Connector"**
4. Fill in:
- **Name**: `Frappe Assistant`
- **URL**: Paste your MCP endpoint URL from Step 1
5. Click **"Add"**
### Step 3: Authenticate & Connect
1. **Click "Connect"** in your LLM client
2. **You'll be redirected** to your Frappe login page
3. **Login** with your Frappe username and password
4. **Click "Authenticate"** to authorize the LLM to access your ERPNext data
5. **Done!** You'll be redirected back to your LLM

*Secure OAuth 2.0 authentication - login once, access anytime*
### Step 4: Start Using Your Tools!
Your LLM can now access ERPNext! Try these commands:
> "List all customers in the system"
> "Create a new customer called Acme Corp with email test@acme.com"
> "Show me this month's sales report"
> "What are the top 5 selling items?"
---
### ๐งช For Developers: MCP Inspector Testing
Want to test and debug your MCP server? Use the MCP Inspector tool:
**1. Enable CORS for Local Testing**
Add to your `site_config.json`:
```json
{
"oauth_cors_allowed_origins": "*"
}
```
Or in **Assistant Core Settings** โ OAuth tab โ **Allowed Public Client Origins**: `http://localhost:6274`
**2. Open MCP Inspector**
- Go to: http://localhost:6274/
- Select **"Streamable HTTP"** transport
- Enter your **MCP Endpoint URL** from FAC Admin
- Click **"Guided OAuth Flow"** and click **Continue** for each step
- Login when prompted
**3. Test Tools**
- Browse available tools
- Execute test calls
- Debug request/response data
- Monitor OAuth token flow

*MCP Inspector provides visual testing and debugging for developers*
---
### ๐ Advanced Integration
For custom applications, advanced OAuth flows, or programmatic integration, see our comprehensive guides:
- **[MCP StreamableHTTP Guide](docs/architecture/MCP_STREAMABLEHTTP_GUIDE.md)** - Complete OAuth + MCP implementation
- **[OAuth Setup Guide](docs/getting-started/oauth/oauth_setup_guide.md)** - Detailed OAuth configuration
- **[API Reference](docs/api/API_REFERENCE.md)** - All endpoints and protocols
- **[Development Guide](docs/development/DEVELOPMENT_GUIDE.md)** - Build custom integrations
---
## ๐ Documentation
**[๐ Complete Documentation Index](docs/README.md)** - Browse all documentation organized by category
### ๐ Quick Start Guides
| Guide | Description |
|-------|-------------|
| [Getting Started](docs/getting-started/GETTING_STARTED.md) | Complete setup guide for new users |
| [Claude Desktop Quick Start](docs/getting-started/QUICK_START_CLAUDE_DESKTOP.md) | Connect Claude Desktop in 5 minutes |
| [Migration Guide](docs/getting-started/MIGRATION_GUIDE.md) | **New!** Migrate from STDIO to OAuth |
| [OAuth Quick Start](docs/getting-started/oauth/oauth_quick_start.md) | OAuth 2.0 setup in 2 minutes |
### ๐๏ธ Architecture & Technical
| Guide | Description |
|-------|-------------|
| [Architecture Overview](docs/architecture/ARCHITECTURE.md) | System design and plugin architecture |
| [MCP StreamableHTTP Guide](docs/architecture/MCP_STREAMABLEHTTP_GUIDE.md) | **New!** OAuth + StreamableHTTP integration |
| [Technical Documentation](docs/architecture/TECHNICAL_DOCUMENTATION.md) | Complete technical reference |
| [Performance Guide](docs/architecture/PERFORMANCE.md) | Optimization and monitoring |
### ๐ API Reference
| Guide | Description |
|-------|-------------|
| [API Reference](docs/api/API_REFERENCE.md) | MCP protocol endpoints and OAuth APIs |
| [Tool Reference](docs/api/TOOL_REFERENCE.md) | Complete catalog of all 21 available tools |
| [OAuth Setup Guide](docs/getting-started/oauth/oauth_setup_guide.md) | Comprehensive OAuth configuration |
### ๐ ๏ธ Development
| Guide | Description |
|-------|-------------|
| [Development Guide](docs/development/DEVELOPMENT_GUIDE.md) | Create custom tools and plugins |
| [External App Development](docs/development/EXTERNAL_APP_DEVELOPMENT.md) | Tools in your Frappe apps (recommended) |
| [Plugin Development](docs/development/PLUGIN_DEVELOPMENT.md) | Build internal plugins |
| [Test Case Creation](docs/development/TEST_CASE_CREATION_GUIDE.md) | Testing patterns and best practices |
---
## ๐ข Integration Scenarios
- **Business Users + Claude**: Natural language ERP operations through Claude Desktop
- **Developers + Custom LLMs**: Build AI-powered business applications with ERPNext data
- **System Integrators**: Deploy LLM-ERP solutions for clients across industries
- **AI Companies**: Add ERPNext capabilities to existing AI products and services
- **Enterprise Teams**: Create department-specific AI tools with custom plugins
---
## ๐ Why Choose Frappe Assistant Core?
โ
**LLM-Agnostic** - Not locked to any specific AI provider or model
โ
**Production Ready** - Enterprise-grade security, permissions, and audit logging
โ
**One-Click Setup** - DXT file generation for instant Claude Desktop integration
โ
**20+ Built-in Tools** - Comprehensive ERPNext functionality out of the box
โ
**Plugin Architecture** - Unlimited extensibility for custom business logic
โ
**Open Source** - AGPL-3.0 licensed with transparent, community-driven development
---
## ๐ค Contributing
We welcome contributions! This is an open source project under AGPL-3.0.
1. Fork the repository
2. Create a feature branch
3. Add tests for new functionality
4. Submit a pull request
See [Contributing Guidelines](Contributing.md) for detailed instructions.
---
## ๐ License & Support
**License**: AGPL-3.0 - Free for commercial use with source code transparency
**Community Support**: [GitHub Issues](https://github.com/buildswithpaul/Frappe_Assistant_Core/issues) and [Discussions](https://github.com/buildswithpaul/Frappe_Assistant_Core/discussions)
**Enterprise Support**: Need custom development or priority support? Contact us at jypaulclinton@gmail.com
---
**๐ Ready to give LLMs access to your ERPNext data? [Get started now!](#-quick-installation)**
*Built with โค๏ธ by the community, for developers and businesses integrating AI with ERP systems.*