aggregate_table
Compute grouped metrics over worksheet-shaped data or a native Excel table.
Read, query, repair and reshape Excel workbooks from an agent — including filters, unions and lookups that span multiple workbook files — with a dry run available on the calls that write.
LABSCO SUMMARY
apply_formula writes a formula with verification, while write_data_to_excel states in its own description that it writes without any. That is the vendor's wording, and it decides which call you reach for when a formula is load-bearing. Past that, the surface goes wider than one file: bulk_filter_workbooks, bulk_aggregate_workbooks, union_tables and cross_workbook_lookup all operate on comparable data across many workbooks in one call, which is the part that is genuinely tedious to do by hand. Mutating calls carry dry_run and include_changes, so a change can be rehearsed and read back before it lands, and audit_workbook into plan_workbook_repairs into apply_workbook_repairs applies the same idea to the workbook's structure. With a surface this wide, suggest_read_strategy exists because picking the right read is itself a decision you would otherwise get wrong.
An Excel workbook server covering reads, queries, formulas, formatting, charts, native tables, named ranges and structural repair, with a group of operations that work across multiple workbook files rather than one.
read_data_from_excel returns cells with metadata including validation rules, read_excel_as_table returns headers and rows or record objects and is described as more context-efficient for structured data, quick_read takes an explicit sheet or the workbook's first, and suggest_read_strategy recommends which of them to use for a stated goal.list_all_sheets returns sheets with row and column counts, describe_dataset summarizes a worksheet or native table, profile_workbook returns an inventory of sheets, tables, charts and layout state, and get_workbook_metadata returns sheets and ranges.query_table filters, projects, sorts and limits with operators covering eq, neq, ne, comparisons, string matching, blank checks and in/not_in, and aggregate_table computes grouped metrics over the same shape.bulk_filter_workbooks and bulk_aggregate_workbooks apply one filter or grouping across many workbook files in one call, union_tables stacks them with optional deduplication keys, and cross_workbook_lookup enriches one dataset from one or more lookup workbooks with left-join style matching and optional duplicate-match handling.validate_formula_syntax checks one without applying it, inspect_formula reports functions, references and risky signals, apply_formula writes it with verification, explain_formula_cell returns direct references plus the upstream chain and downstream dependents in depth layers, and detect_circular_dependencies finds cycles including self-references.audit_workbook reports high-signal structural issues, plan_workbook_repairs turns those findings into prioritized steps, and apply_workbook_repairs executes the safe subset of them with dry-run planning and before/after diff output.dry_run and include_changes sit on the mutating calls, among them write_data_to_excel, format_range, format_ranges, merge_cells, insert_rows, delete_sheet_columns and set_worksheet_protection.append_table_rows matches worksheet headers, append_excel_table_rows expands a native table's range, upsert_excel_table_rows updates matching rows and appends missing keys, and update_rows_by_key updates through a named key column without appending the ones it does not find.describe_sheet_layout returns structure for safe dashboard-style edits, find_free_canvas suggests free slots for charts or blocks, analyze_range_impact reports what overlaps a range before you mutate it, and freeze_panes, set_autofilter, autofit_columns, set_column_widths and set_row_heights handle presentation.create_chart from a contiguous range or explicit series as the preferred entry point, create_chart_from_series for non-contiguous ranges, list_charts, create_pivot_table, create_table and list_tables.inspect_data_validation_rules and inspect_conditional_format_rules return rules with stable indexes, and remove_data_validation_rules and remove_conditional_format_rules delete them by index or clear the broken ones.diff_workbooks compares two workbook files and reports structural changes plus sampled cell-value changes, which is the before/after check once an agent has touched workbook structure.No credentials are configured; every call addresses a workbook by filepath, so the files have to sit on a filesystem the server can read and write. The cross-file tools read many of them in one call, and diff_workbooks needs both workbook files already on disk.
One command — uvx sheetforge-mcp stdio
USE CASES
Ask which read suits the goal, get a summary of what is in the sheet, then filter and sort to the rows the question is actually about.
Apply the same filter across the files, stack the comparable rows together, and group the metrics once instead of per file.
Read the references and risky signals in the formula, walk the chain above and below the cell, and check the workbook for cycles.
Audit the structure, turn the findings into an ordered plan, and apply the repairs as a dry run before letting them land.
Read the sheet's structure, find a slot big enough for the block, and place the chart there.
Update the rows whose keys already exist, append the ones that do not, and let the native table's range grow with them.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
aggregate_tableCompute grouped metrics over worksheet-shaped data or a native Excel table.
analyze_range_impactInspect workbook structures that overlap a worksheet range before mutation.
append_excel_table_rowsAppend rows to a native Excel table and expand its range safely.
append_table_rowsAppend dictionary-shaped rows by matching worksheet headers on a worksheet dataset.
apply_formulaApply Excel formula to cell. Excel formula will write to cell with verification.
apply_workbook_repairsApply safe workbook repair actions with dry-run planning and before/after diff output.
audit_workbookAudit workbook structure for high-signal issues that affect agent workflows.
autofit_columnsAuto-fit worksheet columns based on content width.
bulk_aggregate_workbooksAggregate comparable worksheet or table data across multiple workbooks.
bulk_filter_workbooksFilter comparable worksheet or table data across multiple workbooks. Uses the same filter operators and aliases as query_table.
copy_rangeCopy a range of cells to another location.
copy_worksheetCopy worksheet within workbook.
create_chartCreate chart in worksheet from a contiguous range or explicit series.
This is the preferred chart authoring entry point; explicit-series calls are also still available via create_chart_from_series for backward compatibility.
create_chart_from_seriesCreate a chart from explicit series definitions for non-contiguous ranges.
create_pivot_tableCreate pivot table in worksheet.
create_tableCreates a native Excel table from a specified range of data.
create_workbookCreate new Excel workbook.
create_worksheetCreate new worksheet in workbook.
cross_workbook_lookupEnrich one workbook dataset from matching rows in one or more lookup workbooks.
delete_named_rangeDelete a workbook-level or sheet-scoped named range.
delete_rangeDelete a range of cells and shift remaining cells.
delete_sheet_columnsDelete one or more columns starting at the specified column.
delete_sheet_rowsDelete one or more rows starting at the specified row.
delete_worksheetDelete worksheet from workbook.
describe_datasetSummarize a worksheet or native Excel table for agent-friendly orientation.
describe_sheet_layoutReturn a structural worksheet layout summary for safe dashboard-style edits.
detect_circular_dependenciesDetect circular workbook formula dependencies, including self-references.
diff_workbooksDiff two workbook files and report structural changes plus sampled cell-value changes.
explain_formula_cellExplain a formula cell's direct references, upstream formula chain, and downstream dependents.
find_free_canvasSuggest free worksheet slots for charts or dashboard blocks.
format_rangeApply formatting to a range of cells. Colors accept RRGGBB, #RRGGBB, AARRGGBB, or #AARRGGBB.
format_rangesApply formatting to multiple ranges in a single workbook pass. Colors accept RRGGBB, #RRGGBB, AARRGGBB, or #AARRGGBB.
freeze_panesSet or clear worksheet freeze panes.
get_data_validation_infoGet 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
get_merged_cellsGet merged cells in a worksheet.
get_workbook_metadataGet metadata about workbook including sheets, ranges, etc.
get_worksheet_protectionGet worksheet protection status and option flags.
insert_columnsInsert one or more columns starting at the specified column.
insert_rowsInsert one or more rows starting at the specified row.
inspect_conditional_format_rulesInspect worksheet conditional formatting rules with stable rule indexes.
inspect_data_validation_rulesInspect worksheet data validation rules with stable rule indexes.
inspect_formulaInspect a formula string for functions, references, and risky signals.
inspect_named_rangeInspect a named range, including scope, destinations, and broken-reference signals.
list_all_sheetsList all sheets in a workbook with row/column counts. Quick overview before reading data.
list_chartsList embedded charts in a workbook or worksheet.
list_named_rangesList workbook defined names and their destinations.
list_tablesList native Excel tables for one worksheet or the whole workbook.
merge_cellsMerge a range of cells.
plan_workbook_repairsTurn workbook audit findings into prioritized next steps for SheetForge workflows.
profile_workbookReturn a compact workbook inventory with sheets, tables, charts, and layout state.
query_tableFilter, project, sort, and limit worksheet or table data. Filters support eq/neq/ne, comparisons, string matching, blank checks, and in/not_in with value or values.
quick_readRead a compact table from an explicit sheet or the first workbook sheet.
Can return either array rows or object-shaped records, plus optional schema hints inferred from the returned rows.
read_data_from_excelRead 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) max_rows: Optional maximum number of rows to return from the starting row max_cols: Optional maximum number of columns to return from the starting column cursor: Optional continuation token returned by an earlier range read preview_only: Whether to return preview only compact: Whether to omit default validation metadata for smaller responses values_only: Whether to return a 2D value grid without per-cell metadata
Returns: JSON string containing either structured cell data with validation metadata or a plain 2D value grid when values_only=True.
read_excel_as_tableRead Excel data as a compact table with headers and rows or record objects. Much more context-efficient than read_data_from_excel for structured data, with optional inferred schema hints for downstream steps.
read_excel_tableRead a native Excel table by its table name.
Supports compact table payloads, object-shaped record output, and optional inferred schema hints.
read_range_formattingRead a compact formatting summary for a worksheet range.
remove_conditional_format_rulesRemove worksheet conditional formatting rules by index or remove all broken ones.
remove_data_validation_rulesRemove worksheet data validation rules by index or remove all broken ones.
rename_worksheetRename worksheet in workbook.
search_in_sheetSearch for cells matching a value in a worksheet.
set_autofilterSet worksheet autofilter for an explicit or inferred range.
set_column_widthsSet explicit widths for one or more worksheet columns.
set_print_areaSet or clear worksheet print area.
set_print_titlesSet, preserve, or clear repeating print title rows and columns.
set_row_heightsSet explicit heights for one or more worksheet rows.
set_worksheet_protectionEnable or disable worksheet protection with optional capability flags.
set_worksheet_visibilitySet worksheet visibility to visible, hidden, or veryHidden.
suggest_read_strategyRecommend the best SheetForge read tool for the requested workbook target.
union_tablesUnion comparable worksheet or table data across multiple workbook files.
unmerge_cellsUnmerge a range of cells.
update_rows_by_keyUpdate existing table rows using a named key column.
upsert_excel_table_rowsUpdate matching rows in a native Excel table and append missing keys.
validate_excel_rangeValidate if a range exists and is properly formatted.
validate_formula_syntaxValidate Excel formula syntax without applying it.
write_data_to_excelWrite 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, default is "A1"
BEFORE YOU INSTALL
75 tools when we connected; the project documents 76. The missing tool is create_named_range: the documentation tracks the main branch, while uvx sheetforge-mcp installs release 0.8.0. No flag adds it.
INSTALLATION
Add the block to your client, or run the command directly.
{
"mcpServers": {
"sheetforge-mcp": {
"command": "uvx",
"args": [
"sheetforge-mcp",
"stdio"
]
}
}
}uvx sheetforge-mcp stdio