← 返回 Skills 市场
ravana-indus

Frappe MCP

作者 Pathurjan Wijeyasekara · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
773
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install erpnext-frappe
功能描述
Pre-defined business workflows combining multiple MCP tools for CRM, sales, purchase, inventory, project, payments, and utility tasks in ERPNext.
使用说明 (SKILL.md)

Business Claw Skills

High-level business workflows that combine multiple MCP tools into reusable, executable skills for ERPNext.

Overview

Skills are pre-defined workflows stored as JSON files in definitions/. Each skill defines:

  • Triggers: Natural language patterns that activate the skill
  • Tools: MCP tools to execute in sequence
  • Input Schema: Required and optional parameters
  • Workflow Steps: Ordered execution plan with variable substitution
  • Guardrails: Validation rules for safe execution
  • Output Template: Formatted response message

Available Skills

CRM Skills

Skill Description Category
create_customer Create a new customer with contact and address crm
create_lead Register a new lead crm
create_supplier Add a new supplier crm

Sales Skills

Skill Description Category
create_sales_order Create a sales order sales
create_quotation Create a quotation sales
create_invoice Generate sales invoice sales
complete_sales_workflow Full Quotation → SO → Invoice → Payment sales

Purchase Skills

Skill Description Category
create_purchase_order Create a purchase order purchase

Inventory Skills

Skill Description Category
create_item Create new item in inventory inventory
stock_entry Record stock movements inventory

Project Skills

Skill Description Category
create_project Create a new project project

Financial Skills

Skill Description Category
process_payment Record payment entry payments

Utility Skills

Skill Description Category
search_records Search across DocTypes utility
bulk_operation Bulk create/update/delete utility
generic_task Flexible multi-step workflow utility

Usage

Loading Skills

from bc_skills import get_available_skills, load_skill

# List all available skills
skills = get_available_skills()
print(skills)  # ['create_customer', 'create_sales_order', ...]

# Load a specific skill
skill = load_skill("create_customer")

Executing Skills

from bc_skills.loader import execute_skill

result = execute_skill(
    name="create_customer",
    context={
        "customer_name": "ACME Corp",
        "customer_type": "Company",
        "customer_group": "Commercial",
        "email": "[email protected]"
    },
    user="Administrator"
)

print(result)

Trigger Examples

Skills respond to natural language triggers:

Trigger Phrase Skill
"create customer" create_customer
"add customer" create_customer
"new customer" create_customer
"complete sales workflow" complete_sales_workflow
"full sales process" complete_sales_workflow
"process order to payment" complete_sales_workflow
"create sales order" create_sales_order
"generate invoice" create_invoice

Skill Definition Schema

{
  "name": "skill_name",
  "version": "1.0.0",
  "description": "What the skill does",
  "author": "Business Claw Team",
  "category": "crm|sales|purchase|inventory|project|payments|utility",
  
  "triggers": [
    "trigger phrase 1",
    "trigger phrase 2"
  ],
  
  "tools": [
    {
      "name": "tool_name",
      "description": "What it does",
      "required": true
    }
  ],
  
  "input_schema": {
    "type": "object",
    "properties": {
      "param_name": {
        "type": "string",
        "description": "Parameter description",
        "enum": ["option1", "option2"]
      }
    },
    "required": ["required_param"]
  },
  
  "workflow": {
    "steps": [
      {
        "step": "step_name",
        "tool": "tool_to_call",
        "arguments": {
          "doctype": "DocType",
          "data": {
            "field": "${variable}"
          }
        }
      }
    ]
  },
  
  "guardrails": {
    "rule_name": true
  },
  
  "output_template": "Formatted output {{variable}}"
}

Variable Substitution

Workflow steps support ${variable} substitution from execution context:

{
  "step": "create_order",
  "tool": "create_document",
  "arguments": {
    "doctype": "Sales Order",
    "data": {
      "customer": "${customer_id}",
      "items": "${items}"
    }
  }
}

Creating Custom Skills

  1. Create a JSON file in definitions/
  2. Define triggers, tools, input schema, and workflow
  3. Use the SkillLoader to load and execute

Example custom skill structure:

{
  "name": "my_custom_skill",
  "version": "1.0.0",
  "description": "My custom workflow",
  "category": "utility",
  "triggers": ["my trigger"],
  "tools": [
    {"name": "get_doctype_meta", "required": true},
    {"name": "create_document", "required": true}
  ],
  "input_schema": {
    "type": "object",
    "properties": {
      "param1": {"type": "string"}
    },
    "required": ["param1"]
  },
  "workflow": {
    "steps": [
      {
        "step": "step1",
        "tool": "get_doctype_meta",
        "arguments": {"doctype": "Item"}
      }
    ]
  },
  "output_template": "Result: {{result}}"
}

Architecture

  • loader.py - SkillLoader class manages skill loading and execution
  • definitions/ - JSON files containing skill definitions
  • Skills use the ToolRouter to execute MCP tools in sequence
  • Guardrails provide validation before skill execution

Requirements

  • Frappe/ERPNext environment
  • bc_mcp module for tool routing
  • JSON or YAML skill definitions

License

MIT

安全使用建议
This skill is internally coherent for ERPNext automation and only contains JSON workflow definitions and usage instructions. Before installing, confirm: (1) the agent identity that will run these workflows has appropriately limited ERPNext permissions (especially for bulk delete/update and run_custom_method actions); (2) guardrails (confirmation for deletes, max batch sizes, permission validation) are enforced by the host platform at runtime; (3) test in a staging environment first. Also note the skill's source/homepage is unknown — that is a provenance risk (not an internal inconsistency): if you want to trust it long-term, ask the publisher for origin and maintenance information.
功能分析
Type: OpenClaw Skill Name: erpnext-frappe Version: 1.0.0 The `definitions/generic_task.json` skill is highly suspicious due to its broad capabilities and the inclusion of a 'custom' action that directly calls `run_doc_method` with user-controlled `doctype`, `name`, `method`, and `args`. This design creates a severe prompt injection vulnerability, potentially leading to Remote Code Execution (RCE) or arbitrary data manipulation within the ERPNext/Frappe environment if an attacker can craft inputs to the AI agent. Additionally, `definitions/bulk_operation.json` allows bulk create, update, delete, import, and export operations on any DocType, which, while having some guardrails, presents a significant risk for mass data manipulation or exfiltration if not rigorously controlled by underlying permissions.
能力评估
Purpose & Capability
Name/description, SKILL.md usage examples, and the 16 JSON workflow definitions all describe ERPNext/Frappe document workflows (CRM, sales, purchase, inventory, projects, payments, utilities). The required artifacts (JSON definitions referencing tools like create_document, get_doctype_meta, get_document, etc.) are appropriate for an ERPNext workflow skill.
Instruction Scope
SKILL.md is instruction-only and references included JSON definitions; it does not ask the agent to read unrelated system files or environment variables. However, some definitions (generic_task, bulk_operation, complete_sales_workflow) expose broad capabilities: dynamic doctype discovery, bulk create/update/delete, and run_doc_method/run_custom_method. Those are coherent for an ERP automation utility but are powerful and should be permitted only when the executing agent identity has appropriate ERPNext permissions and confirmations (guardrails are present in the JSON, e.g., require_confirmation_for_delete, validate_permissions).
Install Mechanism
Instruction-only skill with no install spec and no code files to execute on install; nothing is downloaded or written to disk by the skill bundle itself.
Credentials
The skill declares no required environment variables, credentials, or config paths. The workflows call platform tools (create_document, get_document, etc.) — this is expected; the skill itself does not request unrelated credentials. Note: those platform tools will use whichever ERPNext credentials the agent already has, so credential scope should be reviewed before granting the agent ERP access.
Persistence & Privilege
always is false, no install steps, and the skill does not request persistent system-wide privileges or attempt to modify other skills. Autonomous invocation is allowed by platform default but is not set by the skill to an elevated value.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install erpnext-frappe
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /erpnext-frappe 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of Business Claw Skills for ERPNext-Frappe: - Introduces a modular skill system for high-level ERP business workflows. - Provides pre-defined skills for CRM, Sales, Purchase, Inventory, Project, Financial, and Utility categories. - Skills defined as JSON files with triggers, tools, input schemas, workflows, guardrails, and output templates. - Supports natural language triggers for executing workflows. - Includes documentation on loading, executing, customizing, and defining skills. - Requires Frappe/ERPNext environment and the bc_mcp module.
元数据
Slug erpnext-frappe
版本 1.0.0
许可证
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Frappe MCP 是什么?

Pre-defined business workflows combining multiple MCP tools for CRM, sales, purchase, inventory, project, payments, and utility tasks in ERPNext. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 773 次。

如何安装 Frappe MCP?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install erpnext-frappe」即可一键安装,无需额外配置。

Frappe MCP 是免费的吗?

是的,Frappe MCP 完全免费(开源免费),可自由下载、安装和使用。

Frappe MCP 支持哪些平台?

Frappe MCP 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Frappe MCP?

由 Pathurjan Wijeyasekara(@ravana-indus)开发并维护,当前版本 v1.0.0。

💬 留言讨论