Skip to content

Tools

This page lists all 37 MCP tools exposed by formulon-mcp, grouped by purpose. The model receives the same descriptions through MCP tool discovery; this page mirrors them so a human can scan the surface at a glance.

A1 vs zero-based

Unless A1 notation is used, sheet / row / column indices are zero-based to match the Formulon API. Both styles are accepted on tools that take addresses.

Only bounded, single-sheet ranges

The A1 parser accepts rectangular ranges within a single sheet (Sheet1!A1:C10). It rejects whole-row/column references (A:A, 1:1 — the pattern requires both a column letter and a row digit) and cross-sheet 3-D ranges (Sheet1:Sheet3!A1:B2). The Formulon core supports 3-D references, but the formulon-mcp A1 parser rejects them. Build the bounded range you need from the sheet's used range (formulon_inspect_layout) instead of a whole-row/column shorthand.

formulon-mcp toolsEngineversion / eval /lookup / traceSessionsopen / list /close / recalc /save / metadataInspectionsession /layout /regions / analyzeCells & rangesset / get /range / set-range / find /replaceStructuresheets / definednames / insert-delete / view /dimensionRich datamerge / comment /hyperlink /validation / cond-formatAdvancedworkbook_call /one-shot inspect& updateformulon-mcp toolsEngineversion / eval / lookup / traceSessionsopen / list / close / recalc /save / metadataInspectionsession / layout / regions /analyzeCells & rangesset / get / range / set-range /find / replaceStructuresheets / defined names / insert-delete / view / dimensionRich datamerge / comment / hyperlink /validation / cond-formatAdvancedworkbook_call / one-shot inspect& update

Engine

ToolWhat it does
formulon_versionReturns the loaded Formulon engine version and the MCP server version.
formulon_eval_formulaEvaluates one Excel formula in a throwaway workbook, or read-only against an open session when given sessionId.
formulon_function_lookupLists registered functions and resolves metadata or localized names.
formulon_traceReads precedents, dependents, or spill info for a cell.

Sessions

ToolWhat it does
formulon_open_workbookLoads an .xlsx or .xlsb path into a new session, or creates a default workbook. A loaded session's loadLosses reports anything the reader could not decode.
formulon_list_sessionsLists open workbook sessions.
formulon_close_workbookReleases a session.
formulon_recalc_sessionTriggers a recalculation on an open session.
formulon_save_sessionWrites a session to disk (outputPath → session's last saved path → its original source path), selects XLSB for .xlsb output paths and XLSX otherwise, and returns bytes, the selected format, and any writer losses (dropped or downgraded content).
formulon_session_metadataReads function names or external links from the session.

Inspection

ToolWhat it does
formulon_inspect_sessionReturns sheets, defined names (including localSheetId when sheet-local), tables, and optionally sparse cell entries.
formulon_inspect_layoutPer-sheet layout: used ranges, merges, row / column overrides, protection, cells, calculated values, formulas, optional style details, and sheet view (zoom, frozen panes, hidden state).
formulon_detect_regionsDetects table-like regions, label-value pairs, and totals with rule-based confidence and evidence.
formulon_analyze_workbookClassifies workbook shape (invoice, list, report, schedule, form, …) with deterministic evidence.

Cells and ranges

ToolWhat it does
formulon_set_cellsApplies mutations to a session. Cells use A1 (Sheet1!B2) or 0-based (sheet / row / col).
formulon_set_rangeWrites a 2D block of values from an anchor cell; each element's JSON type picks the cell type, {"f":"=…"} writes a formula, and null skips a cell. More compact than set_cells for tables.
formulon_get_cellReads one cell, either from a session or directly from a path.
formulon_get_rangeReads an A1 rectangular range from a session.
formulon_find_cellsSearches text cell values and / or formula text.
formulon_replace_cellsReplaces matching text and / or formula text.

Workbook structure

ToolWhat it does
formulon_sheet_operationAdds, removes, renames, or moves sheets.
formulon_set_defined_nameAdds, replaces, or removes defined names. Omit sheet for workbook scope; pass it for a sheet-local name. _xlnm.Print_Area and _xlnm.Print_Titles must be sheet-local for Excel to apply them.
formulon_edit_structureInserts or deletes rows and columns.
formulon_dimension_operationLists column-width / row-height overrides, or sets width / height, hidden, or outline level. Columns act on an inclusive [first, last] span; rows act on a single row index.
formulon_set_sheet_viewSets zoom, frozen panes, or sheet-tab hidden state.
formulon_default_fontReads the workbook default font, or replaces it in place. Unstyled cells resolve through font slot 0.
formulon_build_documentLays out a titled document from named blocks, resolving cells, formats, ruling, widths, merges, and print area in one operation.
formulon_style_rangeApplies font, fill, border, number-format, and alignment deltas over an A1 range.
formulon_print_settingsReads or sets page setup, margins, print options, header/footer, print area/titles, and manual page breaks.

Rich workbook data

ToolWhat it does
formulon_merge_operationLists, adds, removes, or clears merged ranges.
formulon_comment_operationGets, sets, or removes cell comments.
formulon_hyperlink_operationLists, adds, removes, or clears hyperlinks. An add can cover the inclusive rectangle through lastRow / lastCol; use location with an empty target for an in-workbook link.
formulon_validation_operationLists, adds, removes, or clears data validations.
formulon_conditional_format_operationLists, adds, removes, clears, or evaluates conditional formats.

Advanced

ToolWhat it does
formulon_workbook_callAllowlisted low-level access to the Formulon Workbook API.
formulon_inspect_workbookOne-shot summary from path.
formulon_update_workbookOne-shot load / create, mutate, recalculate, save; returns the selected format and any writer losses alongside bytes.

workbook_call is allowlisted, not arbitrary

formulon_workbook_call only dispatches methods on the server's allowlist (see Security model). Calls to non-allowlisted methods are rejected. The tool exists for advanced access — PivotTables and PivotCaches, worksheet tables and AutoFilter, styles and differential formats, sheet display and page-layout view, phonetic guides, pagination, dependency graph queries, function metadata, spill info, and the workbook clock pin — that the higher-level tools do not cover yet.

setPinnedNow changes in-memory model state only; saving does not persist the pin. See recalculation for its effect on time-dependent formulas. A PivotCache created through the API also needs pivotCacheSetWorksheetSource before saving; see PivotTables.