ERPNext MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ERPNext MCP Servercreate a new customer named Acme Corp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ERPNext MCP Server
A Model Context Protocol server for ERPNext integration with comprehensive custom application development capabilities
This is a TypeScript-based MCP server that provides comprehensive integration with ERPNext/Frappe API. It enables AI assistants to interact with ERPNext data and functionality through the Model Context Protocol, including the ability to create custom DocTypes, child tables, modules, dashboards, workflows, scripts, webhooks, reports, charts, webpages, and much more.
Features
Resources
Access ERPNext documents via
erpnext://{doctype}/{name}URIsJSON format for structured data access
DocType metadata and field definitions
Tools
Data Operations
get_documents- Get a list of documents for a specific doctypecreate_document- Create a new document in ERPNextupdate_document- Update an existing document in ERPNextdelete_document- Delete a document by doctype and nameclone_document- Clone a document (optionally override fields)run_report- Run an ERPNext report
Bulk Operations
bulk_create_documents- Bulk create documentsbulk_update_documents- Bulk update documentsbulk_delete_documents- Bulk delete documents
Export/Import
export_documents- Export documents as JSONimport_documents- Import documents from JSON
Search & Filtering
search_documents- Advanced search for documents
DocType Management
get_doctypes- Get a list of all available DocTypesget_doctype_fields- Get fields list for a specific DocTypeget_doctype_meta- Get detailed metadata for a DocType including field definitionscreate_doctype- Create a new DocType in ERPNext with enhanced field supportcreate_smart_doctype- Create a new DocType with automatic dependency resolution (child tables and link validation)create_child_table- Create a new child table DocType specifically designed for parent-child relationshipsadd_child_table_to_doctype- Add a child table field to an existing DocType
Smart Tools (Enhanced Performance & Validation)
create_smart_workflow- Create a new Workflow with automatic DocType validation and state managementcreate_smart_server_script- Create a new Server Script with automatic validation and dependency checkingcreate_smart_client_script- Create a new Client Script with automatic DocType validation and enhanced error handlingcreate_smart_webhook- Create a new Webhook with automatic validation and security featurescreate_smart_report- Create a new Report with automatic DocType validation and query optimizationcreate_smart_dashboard- Create a new Dashboard with automatic chart and report integrationbulk_smart_create_documents- Bulk create documents with validation, error handling, and progress trackingsmart_import_documents- Import documents with validation, conflict resolution, and detailed reporting
Custom Application Creation
create_module- Create a new Module in ERPNextcreate_dashboard- Create a new Dashboard in ERPNextcreate_workflow- Create a new Workflow in ERPNextcreate_server_script- Create a new Server Script in ERPNextcreate_client_script- Create a new Client Script in ERPNextcreate_webhook- Create a new Webhook in ERPNextcreate_hook- Create a new Hook (custom app hook) in ERPNextcreate_report- Create a new Report in ERPNextcreate_chart- Create a new Chart in ERPNextcreate_webpage- Create a new Web Page in ERPNext
Validation & Testing
validate_doctype- Validate a DocType definition (basic checks)validate_workflow- Validate a Workflow definition (basic checks)validate_script- Validate a script definition (basic checks)preview_script- Preview a script (syntax check only)lint_script- Lint a script (syntax check only)test_script- Test a script (syntax check only)
Versioning & History
get_document_history- Get version history for a documentrollback_document- Rollback a document to a previous version
Scaffolding
scaffold_app- Scaffold a new custom app (returns structure)scaffold_module- Scaffold a new module (returns structure)
UI Schema Generation
generate_form_schema- Generate a form schema for a DocTypegenerate_dashboard_schema- Generate a dashboard schema for a Dashboard
Permissions & Sharing
get_permissions- Get permissions for a DocTypeset_permissions- Set permissions for a DocTypesmart_set_permissions- Set permissions for a DocType with enhanced validation and error handlingshare_document- Share a document with a user
Notifications & Automation
create_notification- Create a notification/alertcreate_scheduled_job- Create a scheduled job
Documentation Generation
generate_doctype_docs- Generate documentation for a DocTypegenerate_workflow_docs- Generate documentation for a Workflow
Integrations
register_integration- Register a new integration servicemanage_integration- Update/manage an integration service
✨ New in this Version
Smart Tools Suite: Enhanced tools with automatic validation, dependency resolution, and detailed error reporting
create_smart_workflow- Workflow creation with DocType validation and state managementcreate_smart_server_script- Server script creation with validation and dependency checkingcreate_smart_client_script- Client script creation with DocType validationcreate_smart_webhook- Webhook creation with URL validation and security featurescreate_smart_report- Report creation with DocType validation and query optimizationcreate_smart_dashboard- Dashboard creation with automatic chart integrationbulk_smart_create_documents- Bulk document creation with validation and progress trackingsmart_import_documents- Document import with conflict resolution strategies
Smart DocType Creation: Automatic dependency resolution for child tables and link validation
Enhanced Error Handling: Detailed error messages with actionable suggestions for the agent
Automatic Permission Setting: Administrator permissions (RWCD) are automatically set for new DocTypes
Complete Custom Application Development: Create modules, dashboards, workflows, scripts, webhooks, reports, charts, and webpages
Advanced CRUD Operations: Full create, read, update, delete, clone, and bulk operations
Export/Import Capabilities: Export and import documents as JSON
Validation & Testing: Validate and test DocTypes, workflows, and scripts
Versioning & History: Track document changes and rollback to previous versions
Scaffolding: Generate app and module structures
UI Schema Generation: Auto-generate form and dashboard schemas
Permissions Management: Get, set, and share document permissions
Notifications & Automation: Create notifications and scheduled jobs
Documentation Generation: Auto-generate documentation for DocTypes and workflows
Integration Management: Register and manage external integrations
Automatic Field Management: Required fields are automatically added to DocTypes and child tables
DocType Reloading: Automatic reloading of DocTypes after creation to apply changes immediately
Related MCP server: ERPNext MCP Server
Configuration
The server requires the following environment variables:
ERPNEXT_URL- The base URL of your ERPNext instanceERPNEXT_API_KEY(optional) - API key for authenticationERPNEXT_API_SECRET(optional) - API secret for authentication
Development
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchInstallation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"erpnext": {
"command": "node",
"args": ["/path/to/erpnext-server/build/index.js"],
"env": {
"ERPNEXT_URL": "http://your-erpnext-instance.com",
"ERPNEXT_API_KEY": "your-api-key",
"ERPNEXT_API_SECRET": "your-api-secret"
}
}
}
}To use with Claude in VSCode, add the server config to:
On MacOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
On Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspectorThe Inspector will provide a URL to access debugging tools in your browser.
Usage Examples
Basic Data Operations
Get Customer List
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_documents</tool_name>
<arguments>
{
"doctype": "Customer"
}
</arguments>
</use_mcp_tool>Create New Item
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_document</tool_name>
<arguments>
{
"doctype": "Item",
"data": {
"item_code": "ITEM001",
"item_name": "Test Item",
"item_group": "Products",
"stock_uom": "Nos"
}
}
</arguments>
</use_mcp_tool>Update Document
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>update_document</tool_name>
<arguments>
{
"doctype": "Item",
"name": "ITEM001",
"data": {
"item_name": "Updated Item Name"
}
}
</arguments>
</use_mcp_tool>Delete Document
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>delete_document</tool_name>
<arguments>
{
"doctype": "Item",
"name": "ITEM001"
}
</arguments>
</use_mcp_tool>Clone Document
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>clone_document</tool_name>
<arguments>
{
"doctype": "Item",
"name": "ITEM001",
"overrides": {
"item_code": "ITEM002",
"item_name": "Cloned Item"
}
}
</arguments>
</use_mcp_tool>Bulk Operations
Bulk Create Documents
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>bulk_create_documents</tool_name>
<arguments>
{
"doctype": "Item",
"docs": [
{
"item_code": "ITEM001",
"item_name": "Item 1",
"item_group": "Products"
},
{
"item_code": "ITEM002",
"item_name": "Item 2",
"item_group": "Products"
}
]
}
</arguments>
</use_mcp_tool>Bulk Update Documents
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>bulk_update_documents</tool_name>
<arguments>
{
"doctype": "Item",
"updates": [
{
"name": "ITEM001",
"data": { "item_name": "Updated Item 1" }
},
{
"name": "ITEM002",
"data": { "item_name": "Updated Item 2" }
}
]
}
</arguments>
</use_mcp_tool>Export/Import
Export Documents
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>export_documents</tool_name>
<arguments>
{
"doctype": "Customer",
"filters": { "customer_type": "Company" }
}
</arguments>
</use_mcp_tool>Import Documents
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>import_documents</tool_name>
<arguments>
{
"doctype": "Customer",
"docs": [
{
"customer_name": "New Customer 1",
"customer_type": "Company"
},
{
"customer_name": "New Customer 2",
"customer_type": "Individual"
}
]
}
</arguments>
</use_mcp_tool>Custom Application Creation
Create Module
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_module</tool_name>
<arguments>
{
"module_name": "Custom App",
"app_name": "custom_app",
"custom": 1
}
</arguments>
</use_mcp_tool>Create Dashboard
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_dashboard</tool_name>
<arguments>
{
"module": "Custom",
"name": "Sales Dashboard",
"charts": [
{
"chart_name": "Monthly Sales",
"chart_type": "Bar"
}
]
}
</arguments>
</use_mcp_tool>Create Workflow
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_workflow</tool_name>
<arguments>
{
"document_type": "Sales Order",
"workflow_name": "Sales Approval Workflow",
"states": [
{ "state": "Draft" },
{ "state": "Pending Approval" },
{ "state": "Approved" }
],
"transitions": [
{
"state": "Draft",
"action": "Submit",
"next_state": "Pending Approval"
},
{
"state": "Pending Approval",
"action": "Approve",
"next_state": "Approved"
}
]
}
</arguments>
</use_mcp_tool>Create Server Script
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_server_script</tool_name>
<arguments>
{
"script_type": "DocType Event",
"script": "def on_submit(doc, method):\n frappe.msgprint('Document submitted successfully')",
"reference_doctype": "Sales Order",
"name": "Sales Order Submit Script"
}
</arguments>
</use_mcp_tool>Create Client Script
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_client_script</tool_name>
<arguments>
{
"script": "frappe.ui.form.on('Sales Order', {\n refresh: function(frm) {\n console.log('Form refreshed');\n }\n});",
"dt": "Sales Order",
"view": "Form",
"enabled": 1
}
</arguments>
</use_mcp_tool>Create Webhook
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_webhook</tool_name>
<arguments>
{
"webhook_doctype": "Sales Order",
"webhook_url": "https://api.example.com/webhook",
"condition": "doc.docstatus == 1",
"request_headers": {
"Authorization": "Bearer token123"
}
}
</arguments>
</use_mcp_tool>Create Report
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_report</tool_name>
<arguments>
{
"report_name": "Sales Summary",
"ref_doctype": "Sales Order",
"report_type": "Query Report",
"is_standard": "No",
"json": {
"query": "SELECT * FROM `tabSales Order` WHERE docstatus = 1"
}
}
</arguments>
</use_mcp_tool>Create Chart
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_chart</tool_name>
<arguments>
{
"chart_name": "Sales Trend",
"chart_type": "Line",
"document_type": "Sales Order",
"data": {
"type": "line",
"data": {
"labels": ["Jan", "Feb", "Mar"],
"datasets": [{
"label": "Sales",
"data": [1000, 1500, 2000]
}]
}
}
}
</arguments>
</use_mcp_tool>Create Web Page
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_webpage</tool_name>
<arguments>
{
"title": "About Us",
"route": "about",
"content": "<h1>About Our Company</h1><p>Welcome to our company website.</p>",
"published": 1
}
</arguments>
</use_mcp_tool>Validation & Testing
Validate DocType
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>validate_doctype</tool_name>
<arguments>
{
"def": {
"name": "Test DocType",
"fields": [
{
"fieldname": "test_field",
"label": "Test Field",
"fieldtype": "Data"
}
]
}
}
</arguments>
</use_mcp_tool>Preview Script
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>preview_script</tool_name>
<arguments>
{
"def": {
"script": "function test() { console.log('Hello World'); }"
}
}
</arguments>
</use_mcp_tool>Permissions & Sharing
Get Permissions
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>get_permissions</tool_name>
<arguments>
{
"doctype": "Sales Order"
}
</arguments>
</use_mcp_tool>Share Document
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>share_document</tool_name>
<arguments>
{
"doctype": "Sales Order",
"name": "SO-001",
"user": "user@example.com",
"permlevel": 1
}
</arguments>
</use_mcp_tool>Documentation Generation
Generate DocType Documentation
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>generate_doctype_docs</tool_name>
<arguments>
{
"doctype": "Sales Order"
}
</arguments>
</use_mcp_tool>Scaffolding
Scaffold App
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>scaffold_app</tool_name>
<arguments>
{
"app_name": "my_custom_app"
}
</arguments>
</use_mcp_tool>Scaffold Module
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>scaffold_module</tool_name>
<arguments>
{
"module_name": "sales_management"
}
</arguments>
</use_mcp_tool>UI Schema Generation
Generate Form Schema
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>generate_form_schema</tool_name>
<arguments>
{
"doctype": "Sales Order"
}
</arguments>
</use_mcp_tool>Notifications & Automation
Create Notification
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_notification</tool_name>
<arguments>
{
"notificationDef": {
"name": "Sales Order Notification",
"subject": "New Sales Order Created",
"channel": "Email",
"event": "New"
}
}
</arguments>
</use_mcp_tool>Create Scheduled Job
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_scheduled_job</tool_name>
<arguments>
{
"jobDef": {
"name": "Daily Sales Report",
"method": "custom_app.report.generate_daily_sales",
"frequency": "Daily"
}
}
</arguments>
</use_mcp_tool>Integrations
Register Integration
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>register_integration</tool_name>
<arguments>
{
"integrationDef": {
"name": "Payment Gateway",
"service_type": "Payment",
"api_url": "https://api.paymentgateway.com"
}
}
</arguments>
</use_mcp_tool>Supported Field Types
The server supports all ERPNext field types including:
Data - Single line text
Text - Multi-line text
Select - Dropdown selection
Link - Reference to another DocType
Date - Date picker
Datetime - Date and time picker
Currency - Currency amount
Float - Decimal number
Int - Whole number
Check - Checkbox (0 or 1)
Table - Child table reference
Attach - File attachment
Color - Color picker
Code - Code editor
HTML Editor - Rich text editor
Password - Password field
Read Only - Display-only field
Error Handling
The server includes comprehensive error handling:
Detailed API error messages from ERPNext
Parameter validation
Authentication checks
Graceful fallbacks for missing data
Validation for custom objects before creation
Syntax checking for scripts
Advanced Features
Custom Application Development
This MCP server is designed to be a complete powerhouse for custom ERPNext application development. You can:
Create Custom Modules - Organize your custom functionality
Build Dashboards - Visualize data with charts and widgets
Design Workflows - Automate business processes
Write Scripts - Server-side and client-side automation
Set Up Webhooks - Integrate with external systems
Generate Reports - Create custom data analysis
Build Charts - Visual data representation
Create Web Pages - Custom web interfaces
Manage Permissions - Control access to custom objects
Generate Documentation - Auto-document your custom applications
Bulk Operations
Efficiently handle large datasets with bulk create, update, and delete operations.
Export/Import
Backup and migrate data between ERPNext instances or environments.
Validation & Testing
Ensure your custom objects are properly structured before deployment.
Versioning & History
Track changes and rollback to previous versions when needed.
For detailed information about the improvements and new features, see IMPROVEMENTS.md.
Smart DocType Creation
The create_smart_doctype tool provides intelligent DocType creation with automatic dependency resolution:
Features
Automatic Child Table Creation: Creates child table DocTypes before the main DocType
Link Validation: Verifies that Link fields reference existing DocTypes
Automatic Permissions: Sets Administrator permissions (RWCD) automatically
Detailed Feedback: Provides comprehensive information about what was created and any warnings
Error Recovery: Suggests solutions when dependencies fail
Example: Creating a Sales Order with Items
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_smart_doctype</tool_name>
<arguments>
{
"name": "Sales Order Enhanced",
"module": "Custom",
"fields": [
{
"fieldname": "customer",
"label": "Customer",
"fieldtype": "Link",
"options": "Customer",
"reqd": 1
},
{
"fieldname": "order_date",
"label": "Order Date",
"fieldtype": "Date",
"reqd": 1
},
{
"fieldname": "items",
"label": "Order Items",
"fieldtype": "Table",
"options": "Sales Order Items",
"reqd": 1
},
{
"fieldname": "delivery_address",
"label": "Delivery Address",
"fieldtype": "Link",
"options": "Address",
"reqd": 0
}
]
}
</arguments>
</use_mcp_tool>What happens automatically:
✅ Creates "Sales Order Items" child table if it doesn't exist
✅ Validates that "Customer" and "Address" DocTypes exist
✅ Sets Administrator permissions (Read, Write, Create, Delete)
✅ Creates the main "Sales Order Enhanced" DocType
✅ Reloads the DocType to apply all changes
Error Handling
The smart doctype creation provides detailed error information:
Missing Dependencies: Lists which DocTypes need to be created first
Permission Issues: Suggests checking Administrator role
Field Validation: Identifies invalid field configurations
Recovery Suggestions: Provides specific steps to resolve issues
When to Use Smart vs Basic Creation
Use
create_smart_doctypewhen:Creating DocTypes with child tables
Referencing other DocTypes with Link fields
Want automatic permission setting
Need detailed feedback and error recovery
Use
create_doctypewhen:Creating simple DocTypes without dependencies
Want manual control over the creation process
Creating child table DocTypes individually
Smart Tools Usage Examples
Smart Workflow Creation
Create a workflow with automatic validation and state management:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_smart_workflow</tool_name>
<arguments>
{
"document_type": "Sales Order",
"workflow_name": "Sales Approval Workflow",
"states": [
{
"state": "Draft",
"doc_status": "Draft",
"style": "background-color: #f0f0f0"
},
{
"state": "Pending Approval",
"doc_status": "Submitted",
"style": "background-color: #fff3cd"
},
{
"state": "Approved",
"doc_status": "Submitted",
"style": "background-color: #d4edda"
},
{
"state": "Rejected",
"doc_status": "Cancelled",
"style": "background-color: #f8d7da"
}
],
"transitions": [
{
"state": "Draft",
"action": "Submit for Approval",
"next_state": "Pending Approval"
},
{
"state": "Pending Approval",
"action": "Approve",
"next_state": "Approved"
},
{
"state": "Pending Approval",
"action": "Reject",
"next_state": "Rejected"
}
],
"send_email_alert": 1,
"is_active": 1
}
</arguments>
</use_mcp_tool>Smart Server Script Creation
Create a server script with automatic validation:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_smart_server_script</tool_name>
<arguments>
{
"script_type": "DocType Event",
"reference_doctype": "Sales Order",
"event": "after_save",
"script": "if doc.status == 'Approved':\n frappe.msgprint('Sales Order has been approved!')\n # Send notification to customer\n frappe.sendmail(\n recipients=[doc.customer_email],\n subject='Your order has been approved',\n message='Your sales order has been approved and is being processed.'\n )",
"name": "Sales Order Approval Notification"
}
</arguments>
</use_mcp_tool>Smart Dashboard Creation
Create a dashboard with automatic chart integration:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_smart_dashboard</tool_name>
<arguments>
{
"dashboard_name": "Sales Analytics Dashboard",
"module": "Custom",
"is_default": 0,
"charts": [
{
"chart_name": "Monthly Sales Chart",
"chart_type": "Bar",
"document_type": "Sales Order",
"data": {
"type": "Bar",
"data": {
"labels": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"datasets": [{
"name": "Sales Amount",
"values": [10000, 15000, 12000, 18000, 20000, 25000]
}]
}
}
}
],
"cards": [
{
"card_name": "Total Sales",
"card_type": "Shortcut",
"doctype": "Sales Order"
}
]
}
</arguments>
</use_mcp_tool>Smart Bulk Document Creation
Create multiple documents with validation and error handling:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>bulk_smart_create_documents</tool_name>
<arguments>
{
"doctype": "Customer",
"docs": [
{
"customer_name": "ABC Corporation",
"customer_type": "Company",
"customer_group": "Commercial",
"territory": "United States"
},
{
"customer_name": "XYZ Industries",
"customer_type": "Company",
"customer_group": "Commercial",
"territory": "Canada"
},
{
"customer_name": "John Doe",
"customer_type": "Individual",
"customer_group": "Individual",
"territory": "United States"
}
],
"validate_before_create": 1,
"batch_size": 10,
"continue_on_error": 1,
"return_detailed_results": 1
}
</arguments>
</use_mcp_tool>Smart Document Import
Import documents with conflict resolution:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>smart_import_documents</tool_name>
<arguments>
{
"doctype": "Item",
"docs": [
{
"item_code": "ITEM001",
"item_name": "Product A",
"item_group": "Products",
"stock_uom": "Nos"
},
{
"item_code": "ITEM002",
"item_name": "Product B",
"item_group": "Products",
"stock_uom": "Nos"
}
],
"conflict_resolution": "skip",
"validate_before_import": 1,
"create_missing_doctypes": 0,
"preserve_creation_dates": 0,
"return_detailed_results": 1
}
</arguments>
</use_mcp_tool>Smart Webhook Creation
Create a webhook with URL validation and security features:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>create_smart_webhook</tool_name>
<arguments>
{
"webhook_doctype": "Sales Order",
"webhook_url": "https://api.external-system.com/webhook",
"webhook_events": ["after_insert", "after_update"],
"request_structure": "JSON",
"request_headers": {
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json"
},
"condition": "doc.status == 'Approved'",
"timeout": 10,
"enabled": 1
}
</arguments>
</use_mcp_tool>Smart Permissions Setting
Set permissions for a DocType with enhanced validation and error handling:
<use_mcp_tool>
<server_name>erpnext</server_name>
<tool_name>smart_set_permissions</tool_name>
<arguments>
{
"doctype": "MC Citizen Issue",
"perms": [
{
"role": "Administrator",
"read": 1,
"write": 1,
"create": 1,
"delete": 1
},
{
"role": "System Manager",
"read": 1,
"write": 1,
"create": 1,
"delete": 0
},
{
"role": "User",
"read": 1,
"write": 0,
"create": 0,
"delete": 0
}
],
"validate_roles": true,
"preserve_existing": true,
"reload_doctype": true
}
</arguments>
</use_mcp_tool>Smart Tools Benefits
Performance Improvements
Reduced API Calls: Smart tools batch operations and validate dependencies upfront
Better Error Handling: Detailed error messages with actionable suggestions
Batch Processing: Efficient handling of large datasets with configurable batch sizes
Conflict Resolution: Multiple strategies for handling existing data
Enhanced Error Handling
Detailed Error Messages: Clear, descriptive error messages that explain what went wrong
Context-Aware Suggestions: Intelligent recommendations based on specific error types
Actionable Solutions: Step-by-step guidance to resolve common issues
Best Practice Tips: Recommendations for optimal usage and configuration
Error Categories with Specific Guidance
DocType-Related Errors: Suggestions for missing dependencies and DocType creation
Validation Errors: Field validation guidance with specific checks and data type recommendations
Permission Errors: Administrator role requirements and feature enablement guidance
Syntax and Code Errors: Language-specific syntax checking and validation tool recommendations
Duplicate and Conflict Errors: Unique naming suggestions and conflict resolution strategies
URL and Network Errors: Webhook URL validation and security recommendations
Batch and Performance Errors: Batch size optimization and processing strategy suggestions
Enhanced User Experience
Detailed Feedback: Comprehensive reporting of what was created, warnings, and errors
Progress Tracking: Real-time updates for long-running operations
Validation: Pre-creation validation prevents invalid data
Recovery Suggestions: Specific steps to resolve common issues
When to Use Smart Tools
Always use smart tools when:
Creating complex resources with dependencies
Performing bulk operations on large datasets
Working with untrusted or external data
Needing detailed feedback and error reporting
Requiring high performance and reliability
Managing data migrations or imports
Use basic tools when:
Creating simple resources without dependencies
Wanting manual control over the creation process
Performing quick, one-off operations
Working with trusted, validated data
Error Handling Examples
Smart tools provide comprehensive error handling with detailed messages and actionable suggestions:
Smart DocType Creation Error
Smart DocType creation failed for 'Customer_Order':
DocType 'Supplier' referenced in Link field does not exist
💡 Suggestions:
- Use create_smart_doctype tool for automatic dependency resolution
- Ensure Link fields reference existing DocTypes
- Create child table DocTypes before referencing them in Table fieldsSmart Workflow Creation Error
Smart Workflow creation failed for 'Order_Approval':
State 'Pending' referenced in transition does not exist in states array
💡 Suggestions:
- Ensure all states referenced in transitions exist in the states array
- Check that state names match exactly (case-sensitive)
- Verify transition rules are validSmart Server Script Creation Error
Smart Server Script creation failed for 'Order_Validation':
Invalid Python syntax in script
💡 Suggestions:
- Check Python syntax in your script
- Ensure all imports are valid
- Verify variable names and function calls
- Use the lint_script tool to validate syntaxSmart Webhook Creation Error
Smart Webhook creation failed for 'https://api.example.com/webhook':
Invalid webhook URL format
💡 Suggestions:
- Ensure the webhook URL is valid and accessible
- Check that the URL uses HTTPS for security
- Verify the endpoint accepts POST requests
- Test the URL manually to ensure it respondsBulk Smart Create Error
Bulk Smart Create failed for DocType 'Customer':
Required field 'customer_name' is missing in document 3
💡 Suggestions:
- Ensure all required fields are provided
- Check that field names match the DocType schema
- Verify field data types are correct
- Use get_doctype_meta to check field definitionsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with ERPNext/Frappe instances through the REST API, allowing document management, report execution, and DocType operations using natural language.Last updated6MIT
- AlicenseBqualityBmaintenanceEnables interaction with ERPNext instances via its REST API to manage documents, inventory, and reports. It supports full CRUD operations, submittable document workflows, and schema inspection through natural language.Last updated281MIT
- Alicense-qualityDmaintenanceAllows AI assistants to interact with Frappe applications through the official REST API, enabling document CRUD operations, schema handling, and detailed API instructions.Last updated1631ISC
- Alicense-qualityDmaintenanceEnables LLMs to interact with any ERPNext instance through comprehensive CRUD operations, advanced permissions, and a web chat interface.Last updated1MIT
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to Stellary projects, boards, documents, and governed agent workflows.
Chile DTE for AI agents - boleta/factura electronica via OpenFactura or LibreDTE. Stateless BYO.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ravana-indus/mcpbackup'
If you have feedback or need assistance with the MCP directory API, please join our Discord server