Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Excel Engine

БесплатноНе проверен

Enables real Excel desktop automation to recalculate formulas, read computed cell values, and export true-fidelity PDFs, complementing library-based workflows.

GitHubEmbed

Описание

Enables real Excel desktop automation to recalculate formulas, read computed cell values, and export true-fidelity PDFs, complementing library-based workflows.

README

한국어 안내 → README.ko.md

A local MCP server that drives the real Excel desktop application (COM automation) to do the things file-manipulation libraries (openpyxl etc.) fundamentally cannot: recalculate formulas, read computed cell values, and render true-fidelity PDF.

Design philosophy: this server complements library workflows instead of replacing them. Writing static cells and bulk data is faster with openpyxl — but openpyxl only stores formula strings (reading them back gives None), and no library has Excel's render engine. This MCP handles only the engine-exclusive part, keeping its tool surface tiny (5 tools).

Requirements

  • Windows 10+ with a logged-in interactive desktop session (Excel has no true headless mode)
  • Microsoft Office (Excel) installed and licensed — verified on Office 2016+ (Excel 16.0)
  • Python 3.10+ — verified on 3.12
  • Claude Code or any MCP client

Install

git clone https://github.com/Feynman520/d01-p02-excel-engine-mcp.git
cd d01-p02-excel-engine-mcp
py -3.12 -m venv .venv          # or: python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt

Register with Claude Code

Run this in the cloned folder (uses absolute paths, so it works from anywhere afterwards):

claude mcp add excel-automation --scope user -- "$PWD\.venv\Scripts\python.exe" "$PWD\server.py"

--scope user makes it available in every project. Use --scope project to limit it to one project.

Verify

$py = ".\.venv\Scripts\python.exe"; $env:PYTHONUTF8 = "1"
& $py tests\smoke_com.py      # COM recalc / computed values / PDF / zombie cleanup
& $py tests\server_tools.py   # MCP tool registration (does not launch Excel)

Tools (3 core + 2 diagnostics)

# Tool Input → Output Why engine-only
excel_recalculate src_path, out_path{out_path} Full dependency recalculation — libraries write formulas but cannot compute them
excel_read_values path, sheet?, cell_range?, recalc?{sheet,address,rows,cols,values,text} Reads computed cell values (openpyxl only has the formula strings)
excel_export_pdf src_path, out_path, sheet?, recalc?{out_path} WYSIWYG PDF via Excel's render engine (print areas, fit-to-page, headers/footers)
excel_health {alive, excel_version} Session check (launches Excel on first call)
excel_restart {alive} Recovery from COM errors

Typical flow: write inputs with openpyxl → excel_recalculate to bake real values → excel_read_values to verify / excel_export_pdf for the final PDF. Originals are never modified; results are always written to out_path.

Architecture notes

  • Single STA worker thread (engine/session.py): win32com COM objects are bound to the thread that created them, while FastMCP may hop threads — so every Excel call is serialized onto one dedicated thread.
  • Lazy session: Excel starts on the first tool call, is reused across calls, and is closed when the server stops.
  • DispatchEx + early binding (gencache.EnsureDispatch): a dedicated Excel instance (never attaches to the user's open Excel), called through the type library. ⚠️ ExportAsFixedFormat fails with 1004 (0x800A03EC) under late binding due to optional argument marshalling — early binding is required.
  • Zombie prevention: after Quit(), any surviving dedicated Excel process is force-killed by PID (identified via the main window handle).
  • RPC-rejection retry: RPC_E_CALL_REJECTED right after startup is retried with backoff.
  • stdout protection: the one-time makepy cache generation output is redirected to stderr (stdout is the JSON-RPC channel).

Limitations

  • Not suitable for unattended/service sessions (needs an interactive desktop).
  • Bulk static writes are faster with libraries — that is by design.

License

MIT

from github.com/Feynman520/d01-p02-excel-engine-mcp

Установка Excel Engine

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/Feynman520/d01-p02-excel-engine-mcp

FAQ

Excel Engine MCP бесплатный?

Да, Excel Engine MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Excel Engine?

Нет, Excel Engine работает без API-ключей и переменных окружения.

Excel Engine — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Excel Engine в Claude Desktop, Claude Code или Cursor?

Открой Excel Engine на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Excel Engine with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development