Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Pre-defined business workflows combining multiple MCP tools for CRM, sales, purchase, inventory, project, payments, and utility tasks in ERPNext.
Pre-defined business workflows combining multiple MCP tools for CRM, sales, purchase, inventory, project, payments, and utility tasks in ERPNext.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
High-level business workflows that combine multiple MCP tools into reusable, executable skills for ERPNext.
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
SkillDescriptionCategorycreate_customerCreate a new customer with contact and addresscrmcreate_leadRegister a new leadcrmcreate_supplierAdd a new suppliercrm
SkillDescriptionCategorycreate_sales_orderCreate a sales ordersalescreate_quotationCreate a quotationsalescreate_invoiceGenerate sales invoicesalescomplete_sales_workflowFull Quotation โ SO โ Invoice โ Paymentsales
SkillDescriptionCategorycreate_purchase_orderCreate a purchase orderpurchase
SkillDescriptionCategorycreate_itemCreate new item in inventoryinventorystock_entryRecord stock movementsinventory
SkillDescriptionCategorycreate_projectCreate a new projectproject
SkillDescriptionCategoryprocess_paymentRecord payment entrypayments
SkillDescriptionCategorysearch_recordsSearch across DocTypesutilitybulk_operationBulk create/update/deleteutilitygeneric_taskFlexible multi-step workflowutility
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")
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": "contact@acme.com" }, user="Administrator" ) print(result)
Skills respond to natural language triggers: Trigger PhraseSkill"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
{ "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}}" }
Workflow steps support ${variable} substitution from execution context: { "step": "create_order", "tool": "create_document", "arguments": { "doctype": "Sales Order", "data": { "customer": "${customer_id}", "items": "${items}" } } }
Create a JSON file in definitions/ Define triggers, tools, input schema, and workflow 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}}" }
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
Frappe/ERPNext environment bc_mcp module for tool routing JSON or YAML skill definitions
MIT
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.