/ Каталог / Песочница / Frappe_Assistant_Core
● Сообщество buildswithpaul ⚡ Сразу

Frappe_Assistant_Core

автор buildswithpaul · buildswithpaul/Frappe_Assistant_Core

Expose your ERPNext instance to Claude through 21 tools — documents, reports, analytics, even Python execution — with OAuth and role-based permissions.

Frappe Assistant Core installs inside your Frappe/ERPNext bench and speaks MCP to LLM clients. Document CRUD, search, reporting, Python execution, and chart generation are all gated by your existing ERPNext role permissions, and OAuth means each user logs in under their own account.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

frappe-assistant-core.replay ▶ готово
0/0

Установка

Выберите клиент

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "frappe-assistant-core": {
      "command": "uvx",
      "args": [
        "Frappe_Assistant_Core"
      ],
      "_inferred": true
    }
  }
}

Откройте Claude Desktop → Settings → Developer → Edit Config. Перезапустите после сохранения.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "frappe-assistant-core": {
      "command": "uvx",
      "args": [
        "Frappe_Assistant_Core"
      ],
      "_inferred": true
    }
  }
}

Cursor использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "frappe-assistant-core": {
      "command": "uvx",
      "args": [
        "Frappe_Assistant_Core"
      ],
      "_inferred": true
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "frappe-assistant-core": {
      "command": "uvx",
      "args": [
        "Frappe_Assistant_Core"
      ],
      "_inferred": true
    }
  }
}

Тот же формат, что и Claude Desktop. Перезапустите Windsurf для применения.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "frappe-assistant-core",
      "command": "uvx",
      "args": [
        "Frappe_Assistant_Core"
      ]
    }
  ]
}

Continue использует массив объектов серверов, а не map.

~/.config/zed/settings.json
{
  "context_servers": {
    "frappe-assistant-core": {
      "command": {
        "path": "uvx",
        "args": [
          "Frappe_Assistant_Core"
        ]
      }
    }
  }
}

Добавьте в context_servers. Zed перезагружается автоматически.

claude mcp add frappe-assistant-core -- uvx Frappe_Assistant_Core

Однострочная команда. Проверить: claude mcp list. Удалить: claude mcp remove.

Сценарии использования

Реальные сценарии: Frappe_Assistant_Core

Ask business questions against ERPNext in plain English

👤 Founders, ops leads, finance teams ⏱ ~15 min beginner

Когда использовать: You want sales / inventory / AR numbers without clicking through ERPNext reports or waiting for the analyst.

Предварительные требования
  • ERPNext site with Frappe Assistant Core installedbench get-app + bench install-app frappe_assistant_core
  • User account with appropriate read roles — Use your own login; permissions follow
Поток
  1. Connect Claude Desktop via OAuth
    Connect to my ERPNext MCP endpoint at https://erp.example.com/api/method/frappe_assistant_core.mcp✓ Скопировано
    → OAuth login completes; Claude lists available tools
  2. Ask a business question
    What's my total sales this month broken down by customer group? Compare to last month.✓ Скопировано
    → Claude runs report tool and returns comparison
  3. Drill into an anomaly
    Customer group 'Wholesale' dropped 40%. Show me the top 10 customers in that group and their YoY sales.✓ Скопировано
    → Ranked list with actionable insight

Итог: Answers to finance/ops questions in seconds without leaving your chat client.

Подводные камни
  • Claude hallucinates a Doctype name that doesn't exist in your customization — Always ask it to list available Doctypes first, then reference by exact name
  • Python execution tool runs unsanitized code against your DB — Disable the execute_python_code tool for non-admin users via role permissions
Сочетать с: notion

Create or update documents in bulk from a brief

👤 ERPNext implementation consultants, data migrators ⏱ ~20 min intermediate

Когда использовать: You have a spreadsheet or paragraph of data that needs to land in ERPNext as multiple Docs (Items, Customers, Suppliers).

Предварительные требования
  • Write permission on the target Doctype — Via the role assigned to your user
Поток
  1. Describe what to create
    I have these 15 new suppliers [paste table]. Create them as Supplier records with country, currency, and tax category set.✓ Скопировано
    → Claude proposes the records, asks to confirm before writing
  2. Confirm then execute
    Looks good, proceed. Report any validation errors per row.✓ Скопировано
    → Row-by-row create report with any errors
  3. Verify in ERPNext
    List the Suppliers I just created along with their creation date to confirm.✓ Скопировано
    → Matching list of 15

Итог: Bulk data entry completed in minutes without CSV import tool friction.

Подводные камни
  • Claude creates duplicate records if natural keys aren't checked — Tell it to search for existing records before each create

Expose your custom Frappe app's logic as MCP tools

👤 Frappe/ERPNext developers ⏱ ~45 min advanced

Когда использовать: You have a custom app with domain logic (e.g. loan amortization, manufacturing BOM exploder) and want LLMs to call it directly.

Предварительные требования
  • A Frappe custom app — Standard bench new-app
Поток
  1. Register a tool in your app's hooks.py
    Walk me through adding a custom MCP tool in my app acme_lending that computes loan amortization, based on the Frappe Assistant Core plugin spec.✓ Скопировано
    → Concrete hooks.py snippet + tool function
  2. Reload and verify
    How do I reload Frappe Assistant Core to pick up the new tool, and how do I confirm it shows up in Claude?✓ Скопировано
    bench restart + tool listing check

Итог: Your domain logic is now callable from any MCP client, no separate API to build.

Подводные камни
  • Tool logs sensitive fields into audit log — Mark fields as no_copy or mask in the tool response

Комбинации

Сочетайте с другими MCP — эффект x10

frappe-assistant-core + notion

Run monthly ERPNext P&L, post summary to Notion for the leadership weekly

Run our monthly P&L report in ERPNext for last month, summarize top 3 variances vs plan, and create a Notion page in 'Finance Weekly'.✓ Скопировано
frappe-assistant-core + filesystem

Export ERPNext report to CSV/Markdown for offline sharing

Run Sales by Customer report for Q1, save as /reports/sales-q1.csv.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
get_document doctype: str, name: str Fetch a specific ERPNext document by primary key 1 DB read
get_list doctype: str, filters?: obj, fields?: str[], limit?: int List/search documents of a Doctype with filters 1 DB query
create_document doctype: str, data: obj Insert a new document — respects validation 1 DB write + hooks
update_document doctype, name, data Patch fields on an existing doc 1 DB write
run_report report_name: str, filters?: obj Execute a saved Frappe Query/Script/Report Builder report variable
execute_python_code code: str Run arbitrary Python in the Frappe context — ADMIN ONLY, disable for regular users unbounded
get_chart_data chart_name / config Render a Frappe Dashboard chart as data 1 aggregation query

Стоимость и лимиты

Во что обходится

Квота API
Bounded by your ERPNext site's capacity — treat MCP calls like web UI calls
Токенов на вызов
List queries 500-3000 tokens; single Doc reads 200-800
Деньги
Free — AGPL-3.0. Cost is whatever you pay for ERPNext hosting.
Совет
Always pass fields to get_list — fetching a full Sales Invoice with all child tables can blow through 10k tokens per row.

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: Whatever role permissions the user already has in ERPNext
Хранение учётных данных: OAuth token stored by MCP client; rotate in ERPNext User settings
Исходящий трафик: Direct from your ERPNext site to the LLM provider you've connected
Никогда не давайте: System Manager to the OAuth app unless genuinely needed Enable `execute_python_code` for non-admin users

Устранение неполадок

Частые ошибки и исправления

OAuth redirect fails / invalid_client

Confirm the OAuth client is registered in ERPNext > OAuth Client and redirect URIs match your MCP client's callback exactly.

Проверить: Check `bench log` and the OAuth Client record
Tool says 'Permission denied' for a Doctype

The logged-in user lacks read/write role. Grant the appropriate role in User permissions.

Проверить: Try the same operation in the ERPNext web UI
Custom plugin tool not appearing

Run bench restart and ensure the app is installed on the site and hooks.py exposes the tool correctly.

Проверить: List tools from Claude — your custom tool should be present
ChatGPT custom connector rejects the endpoint

ChatGPT custom connectors require ChatGPT Plus with Developer Mode. Claude Desktop is more forgiving.

Альтернативы

Frappe_Assistant_Core в сравнении

АльтернативаКогда использоватьКомпромисс
Direct REST API + custom MCP wrapperYou only need 2-3 operations and don't want to install a Frappe appYou build and maintain the wrapper yourself
Odoo MCPYou're on Odoo instead of ERPNextDifferent ERP, different Doctypes

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills