# Reported issues for MCP Server for Excel

Pod holds 23 of 43 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [MCP Server for Excel](/mcp/mcp-server-for-excel).

## Most discussed

### [BUG] screenshot capture/capture-sheet fails with COMException 0x800A03EC on a protected worksheet

## Bug Description

`screenshot capture` and `capture-sheet` fail with a bare `COMException: 0x800A03EC` when the target worksheet is protected. Unprotecting the sheet and repeating the same call succeeds — protection alone is the trigger, not the range, not the workbook, not whether Excel is visible.

v1.10.6 made this easy to reach by adding worksheet protection to the server. A caller can now protect a sheet and then be unable to capture it in the same session, with an error that doesn't expl

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/777) · 2026-08-17 · open · external user · 6 comments

### JSON Schema array items format incompatible with Gemini API (400)

## Problem

When mcp-excel is enabled as an MCP server alongside the Gemini API, the server registers ~385 function declarations. Gemini's API rejects the request with HTTP 400 errors like:

`
GenerateContentRequest.tools[0].function_declarations[377].parameters.properties[formulas].items: field predicate failed:  == Type.ARRAY
GenerateContentRequest.tools[0].function_declarations[377].parameters.properties[formats].items: field predicate failed:  == Type.ARRAY
GenerateContentRequest.tools[0].fu

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/672) · 2026-06-10 · closed · external user · 5 comments

### [MCP] namedrange list crashes session with "Connection closed"

## Issue Description

`namedrange` action `list` crashes the MCP session with `MCP error -32000: Connection closed`. Reproduced on v1.8.61 against two different .xlsx files in the same session. After the crash, the session is gone (subsequent calls return `Session '<sessionId>' not found`), and Excel.exe is left as an orphaned process holding an exclusive lock on the file — `file action=open` against the same file then fails with `Cannot open '...'. The file is already open in Excel or another p

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/653) · 2026-05-17 · closed · external user · 9 comments

### Session open/create fails with Specified cast is not valid on Windows 11 + Office 365 Click-to-Run

# Bug: session open/create fails with `Specified cast is not valid`

## Environment

- Excel MCP extension: 1.8.32
- Server: `Sbroenne.ExcelMcp.McpServer.exe` 1.8.32.0
- Windows: Microsoft Windows 11 Home, build 26200, x64
- Office: Microsoft 365 Click-to-Run x64
- Office version: `16.0.19725.20190`

## Command used

Tested these MCP actions:

- `file(action: 'open')`
- `file(action: 'create')`
- `file(action: 'test')`

## Expected behavior

- `file open` should open a valid workbook and return 

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/559) · 2026-03-22 · closed · external user · 15 comments

### [BUG] vba.run fails on existing .xlsm workbook while datamodel.evaluate and VBA project operations succeed

## Bug Description

On an existing `.xlsm` workbook, `vba.run` consistently fails with:

`InvalidOperationException: VBA trust access is not enabled. Enable 'Trust access to the VBA project object model' in Excel Trust Center settings.`

The error appears misleading. In the same healthy interactive service/session:

- `datamodel.evaluate` succeeds
- `vba.list` succeeds
- `vba.update` succeeds
- `vba.delete` succeeds
- `vba.import` succeeds

The failure appears isolated to `vba.run` on the existi

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/558) · 2026-03-20 · closed · external user · 4 comments

### [BUG] An error occurred invoking 'excel_range'.

## Bug Description
Claude Code fails to read cells with `excel_range`. All actions (`get-values`, `get-used-range`, `get-formulas`) fail with a generic error message. Other tools like `excel_table`, `excel_range_edit`, `excel_worksheet`, `excel_pivottable` work correctly. The workaround is using `excel_range_edit` with `action: "find"` and `searchValue: "*"` to read cell values.

## Component
- [X] **MCP Server** (Model Context Protocol server for AI assistants - `mcp-excel`)

**For MCP Server:*

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/437) · 2026-02-08 · closed · external user · 5 comments

### [FEATURE] DAX EVALUATE query execution

## Is your feature request related to a problem?

Currently, there's no way to execute DAX queries and retrieve tabular results programmatically. Users can create measures, but cannot run ad-hoc DAX EVALUATE queries to explore data or debug calculations.

## Component

- [x] **MCP Server** (AI assistant integration)
- [x] **CLI** (Command-line interface)
- [ ] **Both** (MCP Server and CLI)
- [ ] **Core Library** (Shared functionality)
- [ ] **Not sure**

## Describe the solution you'd like

Add 

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/356) · 2026-01-13 · closed · external user · 3 comments

### [BUG] v1.4.49 was the last working version – MCP server fails to start

## Bug Description
When using the MCP Excel Server to create a new Excel file via the CreateEmpty action, the MCP server fails to start and exits immediately. Version 1.4.49 was the last version where this workflow worked correctly.

## Component
- [x] **MCP Server** (Model Context Protocol server for AI assistants - `mcp-excel`)
- [ ] **CLI** (Command-line interface - `ExcelMcp.exe`)
- [ ] **Core Library** (Shared functionality)
- [ ] **Not sure**

## Command/Usage
**For MCP Server:**
- Tool na

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/347) · 2026-01-10 · closed · external user · 3 comments

## Most recent

### CLI: powerquery load-to accepts --timeout but ignores it

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary). Companion to the two-clock docs issue; this is the code side.

## Bug Description

`IPowerQueryCommands.LoadTo` has no `TimeSpan timeout`. Shared CLI settings still accept `--timeout` on `load-to`. The value is dropped. Load-to is capped by the **session** clock (default 120s) plus an internal `DataOperationTimeout` CTS (30 min), not by the flag the user passed.

## Component

- [x] **CLI**
- [x] **Core Library**

## Comman

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/788) · 2026-08-19 · closed · external user · 2 comments

### CLI: powerquery list always includes full Formula (FormulaPreview already exists)

Using `excelcli.exe` **1.10.7** (standalone binary). Enhancement, not a local workaround in CLI flags.

## Is your feature request related to a problem?

`powerquery list` serializes the entire M formula for every query. Two medium queries can be tens of thousands of characters. Terminals truncate; coding-agent context fills. Live `powerquery list --help` has no names-only / `--formula-preview` switch. `view` is one query and still full M.

`PowerQueryInfo` already has both `Formula` (full) and 

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/787) · 2026-08-19 · closed · external user · 2 comments

### CLI: powerquery evaluate cleanup misses Excel-named Connection / Connection1 leftovers

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary).

## Bug Description

`powerquery evaluate` is documented as testing M without a permanent query (“temporary objects auto-deleted”). Cleanup deletes connections whose **name contains** `__pq_eval_*`. Excel names `ListObjects.Add`-from-connection-string connections `Connection`, `Connection1`, … Those names do not contain the temp query id, so leftovers remain. A later `session close --save` writes them into the xlsx (`xl/con

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/786) · 2026-08-19 · closed · external user · 2 comments

### CLI: service status / session list use a 2s pipe timeout; empty session list is not proof of no sessions

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary).

## Bug Description

`excelcli -q service start` returns `{"success":true,"message":"Service started."}`. Immediate `service status` / `session list` often return **Service connection timed out**. `session.open` on the same daemon can still work.

`session list` on a daemon that does not answer in 2s prints `{"sessions":[]}` with exit 0 — empty list is not proof there are no sessions.

There is no `--timeout` on `service st

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/785) · 2026-08-19 · closed · external user · 2 comments

### Docs/skill: two timeout clocks; load-to --timeout is accepted and ignored

Using `excelcli.exe` **1.10.7** and the v1.10.7 excel-cli skill / `IPowerQueryCommands` XML.

## Bug Description

Timeout docs contradict each other, and `load-to` advertises a timeout it does not take.

Coding agents raise `--timeout` on `load-to` or pass `timeout: 0` expecting “wait forever,” then hit the **session** 120s cap (or think refresh’s 30 min clock applies to load-to).

## Component

- [x] **CLI**
- [x] **MCP Server** (same XML summary)

## Command/Usage

`session open --timeout` hel

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/784) · 2026-08-19 · closed · external user · 2 comments

### CLI: batch JSON timeout as integer fails (CLI --timeout seconds works)

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary).

## Bug Description

CLI `--timeout 3600` is seconds (`ParseTimeSpanOrSeconds`, changelog 1.8.63 / #640). The same integer in batch JSON fails deserialization.

## Component

- [x] **CLI**
- [x] **Core Library** (batch/service args typed as `TimeSpan?`)

## Command/Usage

```json
[
  {"command": "session.open", "args": {"filePath": "C:\\tmp\\probe.xlsx"}},
  {"command": "powerquery.refresh", "args": {"queryName": "Probe", "

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/783) · 2026-08-19 · closed · external user · 2 comments

### CLI: batch JSON ignores mCodeFile (CLI --m-code-file works)

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary).

## Bug Description

`excelcli batch` ignores `args.mCodeFile`. The same evaluate/create/update with CLI `--m-code-file` works. Batch requires inline `mCode`.

## Component

- [x] **CLI**
- [x] **Core Library** (generated `DispatchToCore` / service args)

## Command/Usage

```json
[
  {"command": "session.open", "args": {"filePath": "C:\\tmp\\probe.xlsx"}},
  {"command": "powerquery.evaluate", "args": {"mCodeFile": "C:\\tmp

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/782) · 2026-08-19 · closed · external user · 2 comments

### CLI: powerquery load-to destination `worksheet` reports success and unloads to ConnectionOnly

Reproduced on Windows 11, `excelcli.exe` **1.10.7** (standalone binary).

## Bug Description

`powerquery load-to --load-destination worksheet` returns `"success": true` and leaves the query **connection-only**. If the query was already loaded to a table, the table is **stripped**.

This is the leftover *enum-string* hole after #764 / #770. 1.10.7 now rejects unknown *options*. An unknown *enum value* still succeeds.

Skill XML, `IPowerQueryCommands` XML, and the website table document destinati

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/781) · 2026-08-19 · closed · external user · 2 comments

### Docs: cli-commands.md parameter names do not match the binary (--sheet-name vs --sheet); pythoninexcel missing; consider shipping skills/shared

Using `excel-skills-v1.10.5.zip` from the v1.10.5 release, with `excelcli.exe` 1.10.5.

### 1. Parameter names in `cli-commands.md` do not match the binary

`skills/excel-cli/references/cli-commands.md` documents parameter names that the CLI does not accept:

| Documented in `cli-commands.md` | Actual (`excelcli <cmd> --help`) |
|---|---|
| `--sheet-name` | `--sheet` |
| `--range-address` | `--range` |

Affects at least `screenshot`, `chart` and `worksheetstyle`. Example - the `screenshot` param

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/767) · 2026-08-14 · closed · external user · 1 comment

### CLI: pythoninexcel get-result exceeding the session timeout wedges the service and strands an EXCEL.EXE

Windows 11, Excel 16.0 (build 20228.0), `excelcli.exe` **1.10.5**, M365 with Python in Excel enabled.

### Summary

When `pythoninexcel get-result` is given a `--max-wait-seconds` **greater than** the session
`--timeout`, the operation does not merely fail - it leaves the session unclosable, then takes the
whole CLI service down, and `service stop --forced` does not reap the child Excel.

### Repro

```console
> excelcli session open C:\tmp\verify.xlsx --timeout 180
> excelcli pythoninexcel set-

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/766) · 2026-08-14 · closed · external user · 1 comment

### CLI: session open --show does not make Excel visible (isExcelVisible:true but Application.Visible is False)

Windows 11, Excel 16.0 (build 20228.0), `excelcli.exe` **1.10.5**.

### Summary

`session open --show` reports the session as visible, but Excel is never actually shown.

```console
> excelcli session open C:\tmp\verify.xlsx --show --timeout 600
{"sessionId":"83e65acd...","success":true}

> excelcli session list
{"sessions":[{"sessionId":"83e65acd...","isExcelVisible":true,"activeOperations":0,"canClose":true}]}
```

Attaching to that same instance via COM reports the opposite:

```python
import

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/765) · 2026-08-14 · closed · external user · 1 comment

### CLI: unrecognised arguments are silently ignored and still return success:true (CLI-side recurrence of #473)

Reproduced on Windows 11, Excel 16.0 (build 20228.0), `excelcli.exe` **1.10.5**, countryCode 1.

### Summary

The CLI accepts unrecognised arguments, ignores them, and still reports `"success": true`.

```console
> excelcli diag echo --message "sentinel"
{"action":"echo","message":"sentinel","success":true}

> excelcli diag echo --message "sentinel" --totally-bogus-flag xyz
{"action":"echo","message":"sentinel","success":true}      <-- identical; no warning, no error
```

### Relationship to #47

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/764) · 2026-08-14 · closed · external user · 1 comment

### [MCP] conditionalformat add-rule: bool/int parameters throw JsonException ("could not be converted to System.String")

## Issue Description

`conditionalformat` action `add-rule` fails with a `JsonException` as soon as any of its non-string parameters is supplied. The tool schema declares them as `boolean` / `integer`, but the matching args properties on the service side are typed as `string`, so a client that follows the schema always gets `Cannot get the value of a token type 'True' as a string.`

Seven parameters are affected: `font_bold`, `font_italic`, `data_bar_show_value`, `icon_set_reverse`, `icon_se

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/756) · 2026-08-06 · closed · external user · 2 comments

### [MCP] ## Bug: `range get-formulas` / `set-formulas` always fail with COMException 0x800A03EC (de-DE locale, Excel 2019 32-bit)

## Bug: `range get-formulas` / `set-formulas` always fail with COMException 0x800A03EC (de-DE locale, Excel 2019 32-bit)

### Summary
Reading or writing cell **formulas** via the `range` tool always fails with `COMException: 0x800A03EC`, while reading/writing **values**, formatting, worksheet ops and **VBA** all work normally. The failure occurs on **every cell** — including empty cells and trivial, locale-independent formulas — so it is not a formula-content or locale-separator problem. This ma

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/750) · 2026-08-02 · open · external user · 3 comments

### Add type-specific details to list-rules response for colorScale, iconSet, dataBar and visual rule types

## Summary

Currently, `list-rules` and `list-worksheet-rules` return only common fields (`type`, `appliesTo`, `priority`, `stopIfTrue`, and `interior`/`font`/`borders` for `cellValue`/`expression` rules). For visual rule types (`colorScale`, `dataBar`, `iconSet`, `top10`, `aboveAverage`, `uniqueValues`, `blanksCondition`, `timePeriod`), their specific configuration is not exposed, making it impossible to fully inspect or round-trip these rules.

## Motivation

- **Full inspection**: Users need 

[Read the thread](https://github.com/sbroenne/mcp-server-excel/issues/743) · 2026-07-23 · closed · external user · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/sbroenne/mcp-server-excel/issues).
