Skip to content

Signed: FAC — every action on the record

Talk to your ERP.It writes back — in your books, on the record.

FAC is an open-source MCP server for Frappe and ERPNext. Point Claude, Cursor, or ChatGPT at your ERP — 30 tools, OAuth-scoped, every call inside your Frappe permissions, every action journaled.

The life of one request

Five entries, one posting.

  1. The ask

    You ask, in plain language, from Claude, Cursor, or ChatGPT — "mark this invoice as paid" or "which customers are overdue past 60 days?"

  2. OAuth 2.0 + PKCE

    The model signs in as a real user — Authorization Code flow, dynamic client registration, automatic token refresh.

  3. Your roles, your rows

    Every tool call is scoped to that user's Frappe and ERPNext permissions. Can't see it in the Desk? Can't see it through FAC.

  4. The approval gate

    FAC Chat only

    A human with the right role can review a write before it lands, and approve or reject it. This gate is a FAC Chat feature — over the open-source MCP server, this step doesn't run: a write executes immediately, inside the caller's Frappe permissions (see the tool index below for exactly which calls mutate data).

  5. Assistant Audit Log

    Caller, tool, arguments, result — every call posted to the record. The books balance because nothing skips the journal.

Two ways in

The free MCP server

Bring your own LLM

Self-hosted, free forever. Connect any MCP-ready client to your Frappe data — you bring the model, nothing leaves your stack.

claude_desktop_config.json
{
  "mcpServers": {
    "erpnext": { "url": "https://your-site.com/mcp" }
  }
}
Connect a client →

FAC Chat + FAC Cloud

Chat, inside Frappe

Shipped in FAC 3.0: a chat widget on every Desk page and a full-screen SPA at /copilot — streaming, memory, RAG and workflows on one managed FAC Cloud subscription. On top of everything the free MCP server already does, every write pauses for a human's approval before it lands.

statuslive in FAC 3.0
writespause for approval before they land
widgetevery Desk page
/copilotfull-screen chat
billingone subscription, all models
Read about FAC Chat →

30 tools, one journal

Everything posts through the same ledger.

Every call runs as the signed-in user, inside their roles and permissions, and lands in the Assistant Audit Log. Tools tagged writes change records immediately — FAC Chat adds an approval gate in front of them.

Read

01get_document
02list_documents
03search_documents
04chatgpt_search
05chatgpt_fetch
06get_doctype_info
07report_list
08report_requirements
09get_pending_approvals
10list_user_dashboards

Write

11create_documentwrites
12update_documentwrites
13delete_documentwrites
14document_actionwrites
15run_workflowwrites

Reports & analysis

16generate_report
17run_python_code
18run_database_query
19analyze_business_data
20extract_file_content

Dashboards

21create_dashboardwrites
22create_dashboard_chartwrites

Browser & messaging

23send_emailwrites
24generate_documentwrites
25browser_get_form_data
26browser_get_page_context
27browser_capture_diagnostics
28browser_navigate_to
29browser_take_screenshot
30browser_wait_for_page

Install

Two ways to run it.

Self-hosted

bench
bench get-app https://github.com/buildswithpaul/Frappe_Assistant_Core --branch main
bench --site your-site.local install-app frappe_assistant_core
Full installation guide →

Managed

Skip the server entirely — one click from the Frappe Cloud marketplace installs and updates FAC for you, free of cost.

Install on Frappe Cloud →