Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default | 
|---|---|---|---|
| EXCEL_MCP_VISIBLE | No | Show Excel windows | false | 
| EXCEL_MCP_CALC_MODE | No | Calculation mode | automatic | 
| EXCEL_MCP_DEBUG_LOG | No | Enable debug logging | 0 | 
| EXCEL_MCP_SESSION_TTL | No | Session TTL in seconds | 600 | 
| EXCEL_MCP_MAX_SESSIONS | No | Maximum concurrent sessions | 8 | 
Schema
Prompts
Interactive templates invoked by user choice
| Name | Description | 
|---|---|
| No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description | 
|---|---|
| No resources | |
Tools
Functions exposed to the LLM to take actions
| Name | Description | 
|---|---|
| apply_formula | Apply Excel formula to cell. Excel formula will write to cell with verification. | 
| validate_formula_syntax | Validate Excel formula syntax without applying it. | 
| format_range | Apply formatting to a range of cells. | 
| read_data_from_excel | Read data from Excel worksheet with cell metadata including validation rules.
Args:
    filepath: Path to Excel file
    sheet_name: Name of worksheet
    start_cell: Starting cell (default A1)
    end_cell: Ending cell (optional, auto-expands if not provided)
    preview_only: Whether to return preview only
Returns:  
JSON string containing structured cell data with validation metadata.
Each cell includes: address, value, row, column, and validation info (if any). | 
| write_data_to_excel | Write data to Excel worksheet.
Excel formula will write to cell without any verification.
PARAMETERS:  
filepath: Path to Excel file
sheet_name: Name of worksheet to write to
data: List of lists containing data to write to the worksheet, sublists are assumed to be rows
start_cell: Cell to start writing to (optional, auto-finds appropriate location)
 | 
| create_workbook | Create new Excel workbook. | 
| create_worksheet | Create new worksheet in workbook. | 
| create_chart | Create chart in worksheet. | 
| create_pivot_table | Create pivot table in worksheet. Args:
    filepath: Path to Excel file
    sheet_name: Name of worksheet containing source data
    data_range: Source data range (e.g., "A1:E100" or "Sheet2!A1:E100")
    rows: Field names for row labels
    values: Field names for values
    columns: Field names for column labels (optional)
    agg_func: Aggregation function (sum, count, average, max, min)
    target_sheet: Target sheet for pivot table (optional, auto-created if not exists)
    target_cell: Target cell for pivot table (optional, finds empty area if not provided)
    pivot_name: Custom name for pivot table (optional, auto-generated if not provided) | 
| create_table | Creates a native Excel table from a specified range of data. | 
| copy_worksheet | Copy worksheet within workbook. | 
| delete_worksheet | Delete worksheet from workbook. | 
| rename_worksheet | Rename worksheet in workbook. | 
| get_workbook_metadata | Get metadata about workbook including sheets, ranges, etc. | 
| merge_cells | Merge a range of cells. | 
| unmerge_cells | Unmerge a range of cells. | 
| get_merged_cells | Get merged cells in a worksheet. | 
| copy_range | Copy a range of cells to another location. | 
| delete_range | Delete a range of cells and shift remaining cells. | 
| validate_excel_range | Validate if a range exists and is properly formatted. | 
| get_data_validation_info | Get all data validation rules in a worksheet.
This tool helps identify which cell ranges have validation rules
and what types of validation are applied.
Args:
    filepath: Path to Excel file
    sheet_name: Name of worksheet
    
Returns:
    JSON string containing all validation rules in the worksheet | 
| insert_rows | Insert one or more rows starting at the specified row. | 
| insert_columns | Insert one or more columns starting at the specified column. | 
| delete_sheet_rows | Delete one or more rows starting at the specified row. | 
| delete_sheet_columns | Delete one or more columns starting at the specified column. |