Excel MCP Server
by fish0710
Verified
# Excel MCP Server Tools
This document provides detailed information about all available tools in the Excel MCP server.
## Workbook Operations
### create_workbook
Creates a new Excel workbook.
```python
create_workbook(filepath: str) -> str
```
- `filepath`: Path where to create workbook
- Returns: Success message with created file path
### create_worksheet
Creates a new worksheet in an existing workbook.
```python
create_worksheet(filepath: str, sheet_name: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Name for the new worksheet
- Returns: Success message
### get_workbook_metadata
Get metadata about workbook including sheets and ranges.
```python
get_workbook_metadata(filepath: str, include_ranges: bool = False) -> str
```
- `filepath`: Path to Excel file
- `include_ranges`: Whether to include range information
- Returns: String representation of workbook metadata
## Data Operations
### write_data_to_excel
Write data to Excel worksheet.
```python
write_data_to_excel(
filepath: str,
sheet_name: str,
data: List[Dict],
start_cell: str = "A1",
write_headers: bool = True
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `data`: List of dictionaries containing data to write
- `start_cell`: Starting cell (default: "A1")
- `write_headers`: Whether to write dictionary keys as headers
- Returns: Success message
### read_data_from_excel
Read data from Excel worksheet.
```python
read_data_from_excel(
filepath: str,
sheet_name: str,
start_cell: str = "A1",
end_cell: str = None,
preview_only: bool = False
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Source worksheet name
- `start_cell`: Starting cell (default: "A1")
- `end_cell`: Optional ending cell
- `preview_only`: Whether to return only a preview
- Returns: String representation of data
## Formatting Operations
### format_range
Apply formatting to a range of cells.
```python
format_range(
filepath: str,
sheet_name: str,
start_cell: str,
end_cell: str = None,
bold: bool = False,
italic: bool = False,
underline: bool = False,
font_size: int = None,
font_color: str = None,
bg_color: str = None,
border_style: str = None,
border_color: str = None,
number_format: str = None,
alignment: str = None,
wrap_text: bool = False,
merge_cells: bool = False,
protection: Dict[str, Any] = None,
conditional_format: Dict[str, Any] = None
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `start_cell`: Starting cell of range
- `end_cell`: Optional ending cell of range
- Various formatting options (see parameters)
- Returns: Success message
### merge_cells
Merge a range of cells.
```python
merge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `start_cell`: Starting cell of range
- `end_cell`: Ending cell of range
- Returns: Success message
### unmerge_cells
Unmerge a previously merged range of cells.
```python
unmerge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `start_cell`: Starting cell of range
- `end_cell`: Ending cell of range
- Returns: Success message
## Formula Operations
### apply_formula
Apply Excel formula to cell.
```python
apply_formula(filepath: str, sheet_name: str, cell: str, formula: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `cell`: Target cell reference
- `formula`: Excel formula to apply
- Returns: Success message
### validate_formula_syntax
Validate Excel formula syntax without applying it.
```python
validate_formula_syntax(filepath: str, sheet_name: str, cell: str, formula: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `cell`: Target cell reference
- `formula`: Excel formula to validate
- Returns: Validation result message
## Chart Operations
### create_chart
Create chart in worksheet.
```python
create_chart(
filepath: str,
sheet_name: str,
data_range: str,
chart_type: str,
target_cell: str,
title: str = "",
x_axis: str = "",
y_axis: str = ""
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `data_range`: Range containing chart data
- `chart_type`: Type of chart (line, bar, pie, scatter, area)
- `target_cell`: Cell where to place chart
- `title`: Optional chart title
- `x_axis`: Optional X-axis label
- `y_axis`: Optional Y-axis label
- Returns: Success message
## Pivot Table Operations
### create_pivot_table
Create pivot table in worksheet.
```python
create_pivot_table(
filepath: str,
sheet_name: str,
data_range: str,
target_cell: str,
rows: List[str],
values: List[str],
columns: List[str] = None,
agg_func: str = "mean"
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `data_range`: Range containing source data
- `target_cell`: Cell where to place pivot table
- `rows`: Fields for row labels
- `values`: Fields for values
- `columns`: Optional fields for column labels
- `agg_func`: Aggregation function (sum, count, average, max, min)
- Returns: Success message
## Worksheet Operations
### copy_worksheet
Copy worksheet within workbook.
```python
copy_worksheet(filepath: str, source_sheet: str, target_sheet: str) -> str
```
- `filepath`: Path to Excel file
- `source_sheet`: Name of sheet to copy
- `target_sheet`: Name for new sheet
- Returns: Success message
### delete_worksheet
Delete worksheet from workbook.
```python
delete_worksheet(filepath: str, sheet_name: str) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Name of sheet to delete
- Returns: Success message
### rename_worksheet
Rename worksheet in workbook.
```python
rename_worksheet(filepath: str, old_name: str, new_name: str) -> str
```
- `filepath`: Path to Excel file
- `old_name`: Current sheet name
- `new_name`: New sheet name
- Returns: Success message
## Range Operations
### copy_range
Copy a range of cells to another location.
```python
copy_range(
filepath: str,
sheet_name: str,
source_start: str,
source_end: str,
target_start: str,
target_sheet: str = None
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Source worksheet name
- `source_start`: Starting cell of source range
- `source_end`: Ending cell of source range
- `target_start`: Starting cell for paste
- `target_sheet`: Optional target worksheet name
- Returns: Success message
### delete_range
Delete a range of cells and shift remaining cells.
```python
delete_range(
filepath: str,
sheet_name: str,
start_cell: str,
end_cell: str,
shift_direction: str = "up"
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `start_cell`: Starting cell of range
- `end_cell`: Ending cell of range
- `shift_direction`: Direction to shift cells ("up" or "left")
- Returns: Success message
### validate_excel_range
Validate if a range exists and is properly formatted.
```python
validate_excel_range(
filepath: str,
sheet_name: str,
start_cell: str,
end_cell: str = None
) -> str
```
- `filepath`: Path to Excel file
- `sheet_name`: Target worksheet name
- `start_cell`: Starting cell of range
- `end_cell`: Optional ending cell of range
- Returns: Validation result message