Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
ping

A simple tool to check if the server is responding.

version

Get version information for the Frappe MCP server.

validate_auth

Validate API credentials and return authentication status.

create_document
    Create a new document in Frappe.
    
    Args:
        doctype: DocType name
        values: Document field values. Required fields must be included.
               For Link fields, provide the exact document name.
               For Table fields, provide an array of row objects.
    
get_document
    Retrieve a document from Frappe.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive)
    
update_document
    Update an existing document in Frappe.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive)
        values: Field values to update
    
delete_document
    Delete a document from Frappe.
    
    This tool handles document deletion with comprehensive error handling,
    providing detailed feedback about why deletions fail and actionable
    guidance for resolving common deletion blockers.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive)
        
    Returns:
        Success message if deleted, or detailed error information with
        corrective actions for linked documents, permissions, or constraints.
    
list_documents
    List documents from Frappe with filters.
    
    Args:
        doctype: DocType name
        filters: Filter string (optional). Uses custom syntax to bypass MCP validation issues.
        fields: Comma-separated field names (optional). E.g. "name,customer,total"
        limit: Maximum number of records to return (optional). E.g. "20"
        order_by: Field to order by (optional, can include 'desc' like 'creation desc')
    
    Filter Syntax:
        - Simple equality: "field:value" -> {"field": "value"}
        - Operators: "field:operator:value" -> {"field": ["operator", value]}
        - Multiple filters: "field1:value1,field2:operator:value2"
        
    Supported Operators:
        - Equality: = (default), !=
        - Comparison: <, >, <=, >=  
        - Pattern: like, not_like (use % for wildcards)
        - Lists: in, not_in (separate values with |)
        - Null checks: is:null, is:not_null, is_not:null
        - Ranges: between (separate values with |)

    Examples:
        - list_documents("Bank Transaction", "status:Unreconciled") -> List unreconciled transactions
        - list_documents("Task", "status:in:Open|Working", "name,subject", "10") -> List open tasks with specific fields
        - list_documents("User", "name:like:%admin%") -> List users with 'admin' in name
    
call_method
    Execute a whitelisted Frappe method.
    
    Args:
        method: Method name to call (whitelisted)
        params: Parameters to pass to the method (optional)
    
count_documents
    Count documents in Frappe with optional filters.
    
    This tool addresses the filtering limitation that existed in previous implementations
    by using Frappe's native count functionality via the REST API with a custom filter language.
    
    Args:
        doctype: DocType name
        filters: Filter string (optional). Uses custom syntax to bypass MCP validation issues.
    
    Filter Syntax:
        - Simple equality: "field:value" -> {"field": "value"}
        - Operators: "field:operator:value" -> {"field": ["operator", value]}
        - Multiple filters: "field1:value1,field2:operator:value2"
        
    Supported Operators:
        - Equality: = (default), !=
        - Comparison: <, >, <=, >=  
        - Pattern: like, not_like (use % for wildcards)
        - Lists: in, not_in (separate values with |)
        - Null checks: is:null, is:not_null, is_not:null
        - Ranges: between (separate values with |)

    Examples:
        - "status:Unreconciled" -> Status equals Unreconciled
        - "amount:>:100" -> Amount greater than 100
        - "name:like:%admin%" -> Name contains 'admin'
        - "status:in:Open|Working|Pending" -> Status in list
        - "date:between:2025-01-01|2025-12-31" -> Date in range
        - "phone:is:not_null" -> Phone is not null
    
    Tool Examples:
        - count_documents("User") -> Count all users
        - count_documents("Bank Transaction", "status:Unreconciled") -> Count unreconciled transactions
        - count_documents("Bank Transaction", "unallocated_amount:>:0") -> Count with unallocated amount
        - count_documents("Task", "status:in:Open|Working|Pending") -> Count tasks with multiple statuses
        - count_documents("User", "name:like:%admin%") -> Count users with 'admin' in name  
        - count_documents("Payment Entry", "posting_date:between:2025-01-01|2025-12-31") -> Count in date range
        - count_documents("Contact", "phone:is:not_null") -> Count contacts with phone numbers
    
submit_document
    Submit a document in Frappe (change docstatus from 0 to 1).
    
    This tool handles document submission using Frappe's submission workflow,
    including proper validation and error handling to provide clear feedback
    for corrective action.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive)
        
    Returns:
        Success message if submitted, or detailed error information if submission
        fails due to validation errors or missing required fields.
    
cancel_document
    Cancel a document in Frappe (change docstatus from 1 to 2).
    
    This tool handles document cancellation using Frappe's cancellation workflow,
    including proper validation and error handling to provide clear feedback
    for corrective action.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive)
        
    Returns:
        Success message if cancelled, or detailed error information if cancellation
        fails due to validation errors, linked documents, or permission issues.
    
amend_document
    Amend a document in Frappe (create a new amended version of a cancelled document).
    
    This tool handles document amendment by creating a new document with an amended name
    (e.g., DOC-001-1, DOC-001-2) and copying all relevant field values from the original
    cancelled document, establishing proper linkage via the 'amended_from' field.
    
    Args:
        doctype: DocType name
        name: Document name (case-sensitive) - must be a cancelled document
        
    Returns:
        Success message with new amended document name if successful, or detailed 
        error information if amendment fails due to validation errors or constraints.
    
test_hardcoded_filter

Test hardcoded filter to verify Frappe API filtering works. This bypasses all parameter validation issues.

get_doctype_schema
    Get the complete schema for a DocType including field definitions, validations, and linked DocTypes.
    
    Use this to understand the structure of a DocType before creating or updating documents.
    
    Args:
        doctype: DocType name
    
get_field_options
    Get available options for a Link or Select field.
    
    For Link fields, returns documents from the linked DocType.
    For Select fields, returns the predefined options.
    
    Args:
        doctype: DocType name
        fieldname: Field name
        limit: Maximum number of options to return (default: 20)
    
get_doctype_list
    Get a list of available DocTypes, optionally filtered by module.
    
    Args:
        module: Module name to filter by (optional)
        limit: Maximum number of DocTypes to return (default: 50)
    
get_frappe_usage_info
    Get combined information about a DocType or workflow, including schema metadata and usage guidance.
    
    Args:
        doctype: DocType name (optional if workflow is provided)
        workflow: Workflow name (optional if doctype is provided)
    
run_query_report
    Execute a Frappe query report with filters.
    
    Args:
        report_name: Name of the report to run
        filters: Filter string (optional). Uses custom syntax to bypass MCP validation issues.
    
    Filter Syntax: Use the same string-based syntax as count_documents and list_documents.
    Examples: "status:Open", "date:>=:2025-01-01", "status:in:Open|Working"
    
get_report_meta
    Get metadata for a specific report including columns and filters.
    
    Args:
        report_name: Name of the report to get metadata for
    
list_reports
    Get a list of all available reports in the system.
    
    Args:
        module: Filter reports by module (optional)
        limit: Maximum number of reports to return (default: 50)
    
run_doctype_report
    Run a standard doctype report with filters and sorting.
    
    Args:
        doctype: DocType to generate report for
        fields: Fields to include in report (optional)
        filters: Filter string (optional). Uses custom syntax to bypass MCP validation issues.
        limit: Maximum number of records (default: 100)
        order_by: Field to order by (optional)
    
    Filter Syntax: Use the same string-based syntax as count_documents and list_documents.
    Examples: "status:Open", "date:>=:2025-01-01", "status:in:Open|Working"
    
get_financial_statements
    Get standard financial reports (P&L, Balance Sheet, Cash Flow).
    
    Args:
        report_type: Type of financial statement 
                   ('Profit and Loss Statement', 'Balance Sheet', 'Cash Flow')
        company: Company name
        from_date: Start date (YYYY-MM-DD format, optional)
        to_date: End date (YYYY-MM-DD format, optional) 
        periodicity: Periodicity (Monthly, Quarterly, Half-Yearly, Yearly)
    
get_report_columns
    Get the column structure for a specific report.
    
    Args:
        report_name: Name of the report
        filters: Filter string (optional). Uses custom syntax to bypass MCP validation issues.
    
    Filter Syntax: Use the same string-based syntax as count_documents and list_documents.
    Examples: "status:Open", "date:>=:2025-01-01", "status:in:Open|Working"
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/appliedrelevance/frappe-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server