jauinones

Excel MCP Server

Community jauinones
Updated

Excel MCP Server

A Model Context Protocol (MCP) server for Excel file manipulation with real-time formula calculation.

Why a Formula Engine?

Problem: Both humans and LLMs are inconsistent at math. When an AI writes =SUM(A1:A10) to a spreadsheet, it's just storing a string—the calculation never happens unless Microsoft Excel opens the file.

Solution: This MCP integrates HyperFormula, a headless spreadsheet engine that evaluates formulas in real-time. When you read a cell, you get the calculated result, not just the formula text.

write_cell(wb, "A1", 100)
write_cell(wb, "A2", 200)
write_cell(wb, "A3", "=SUM(A1:A2)")

read_cell(wb, "A3")
→ { calculatedValue: 300, formula: "=SUM(A1:A2)" }

This ensures mathematical accuracy for:

  • Financial calculations
  • Data aggregations
  • Report generation
  • Any workflow where precision matters

Features

  • No Excel Required - Works with .xlsx files using pure JavaScript
  • 400+ Excel Functions - SUM, AVERAGE, VLOOKUP, IF, and more via HyperFormula
  • Multi-Workbook - Open and manipulate multiple workbooks simultaneously

Tools (20 total)

Workbook Management

Tool Description
create_workbook Create new workbook in memory, returns ID
open_workbook Open existing .xlsx file
save_workbook Save workbook to disk
close_workbook Close workbook and free memory
list_workbooks List all open workbooks

Sheet Operations

Tool Description
list_sheets List all sheets in workbook
create_sheet Add new sheet
delete_sheet Remove sheet
rename_sheet Rename sheet
get_sheet_info Get dimensions and metadata

Cell Operations

Tool Description
read_cell Read cell value (returns calculated result)
write_cell Write value or formula (prefix with =)
read_range Read range of cells
write_range Write 2D array to range
list_columns List columns with headers

Formula Support

Tool Description
get_formula Get raw formula string from cell
recalculate Force recalculation of all formulas

Charts & Pivot Tables

Tool Description
create_chart Create bar, line, pie, or scatter chart
delete_chart Remove chart
create_pivot_table Create pivot table from data

Installation

git clone https://github.com/jauinones/excel-mcp.git
cd excel-mcp
npm install
npm run build

Configuration

Add to your Claude Code MCP settings (~/.claude.json):

{
  "mcpServers": {
    "excel": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/excel-mcp/dist/index.js"]
    }
  }
}

Example Usage

// Create a simple invoice
create_workbook → "wb_1"

write_cell(wb_1, "Sheet1", "A1", "Item")
write_cell(wb_1, "Sheet1", "B1", "Price")
write_cell(wb_1, "Sheet1", "C1", "Qty")
write_cell(wb_1, "Sheet1", "D1", "Total")

write_range(wb_1, "Sheet1", "A2", [
  ["Widget", 25.00, 10, "=B2*C2"],
  ["Gadget", 15.50, 20, "=B3*C3"],
  ["Thing",  8.99,  50, "=B4*C4"]
])

write_cell(wb_1, "Sheet1", "D5", "=SUM(D2:D4)")

read_cell(wb_1, "Sheet1", "D5")
// → { calculatedValue: 1009.5, formula: "=SUM(D2:D4)" }

save_workbook(wb_1, "/path/to/invoice.xlsx")

Tech Stack

  • TypeScript - Type-safe implementation
  • ExcelJS - Read/write .xlsx files
  • HyperFormula - Formula calculation engine (GPLv3)
  • MCP SDK - Model Context Protocol integration

License

GPLv3 (due to HyperFormula dependency)

MCP Server · Populars

MCP Server · New