🤖
Frappe MCP
Pre-defined business workflows combining multiple MCP tools for CRM, sales, purchase, inventory, project, payments, and utility tasks in ERPNext.
安全通过
💬Prompt
技能说明
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": "contact@acme.com"
},
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
- Create a JSON file in
definitions/ - Define triggers, tools, input schema, and workflow
- Use the
SkillLoaderto 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-SkillLoaderclass manages skill loading and executiondefinitions/- JSON files containing skill definitions- Skills use the
ToolRouterto execute MCP tools in sequence - Guardrails provide validation before skill execution
Requirements
- Frappe/ERPNext environment
bc_mcpmodule for tool routing- JSON or YAML skill definitions
License
MIT
如何使用「Frappe MCP」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Frappe MCP」技能完成任务
- 结果即时呈现,支持继续对话优化