Excel WebView2 MCP
Professional MCP connectivity for Microsoft Excel add-ins running inside WebView2.
| Item | Value |
|---|---|
| Package | @dsbissett/excel-webview2-mcp |
| Upstream | Fork of ChromeDevTools/chrome-devtools-mcp |
| Target runtime | Excel add-ins hosted in WebView2 |
| Debug endpoint | http://127.0.0.1:9222 |
| Recommended setup | Claude Code plugin marketplace |
[!IMPORTANT] As of v0.0.2, this server can launch Excel and sideload your add-in for you. You no longer need to start the dev server or attach a debugger before using it —
excel_launch_addinwill start your local dev server (if configured) and launch Excel with WebView2 remote debugging enabled on port9222. Manual pre-launch is still supported: if an Excel add-in is already running with remote debugging on9222, the server will attach to it.
What's New in v0.0.2
- Add-in lifecycle management — new tools launch and stop Excel add-ins directly from Claude Code:
- excel_detect_addin — discover manifest and dev server configuration for the current project.
- excel_launch_addin — start the dev server (if needed) and launch Excel with the add-in sideloaded and CDP port
9222enabled. - excel_stop_addin — tear down the launched Excel session and dev server process tree.
- Read-only Excel inspection tools — a broad set of read operations for inspecting workbooks, worksheets, ranges, tables, pivots, charts, and more. None of these mutate workbook state:
- Context & structure:
excel_context_info,excel_workbook_info,excel_list_worksheets,excel_worksheet_info,excel_active_range,excel_used_range. - Range reads:
excel_read_range,excel_range_properties,excel_range_formulas,excel_range_special_cells,excel_find_in_range. - Formatting & validation:
excel_list_conditional_formats,excel_list_data_validations. - Tables & names:
excel_list_tables,excel_table_info,excel_table_rows,excel_table_filters,excel_list_named_items. - Comments & shapes:
excel_list_comments,excel_list_shapes. - Calculation & pivots:
excel_calculation_state,excel_list_pivot_tables,excel_pivot_table_info,excel_pivot_table_values. - Charts:
excel_list_charts,excel_chart_info,excel_chart_image. - Misc:
excel_custom_xml_parts,excel_settings_get.
- Context & structure:
- Socket-based port detection replaces HTTP polling for more reliable dev-server and CDP readiness checks on Node 24.
- Robust cleanup on Windows —
excel_stop_addinnow force-kills the dev server process tree viataskkill.
Fork Notice
This repository is a fork of the Chrome DevTools MCP repository, ChromeDevTools/chrome-devtools-mcp. It preserves the upstream DevTools and MCP foundation, while adapting the connection model for Microsoft Excel add-ins hosted in WebView2.
What This Project Does
- Connects Claude Code to a locally running Excel add-in through the Chrome DevTools Protocol (CDP).
- Exposes MCP tools for inspection, automation, screenshots, console access, network inspection, and performance analysis.
- Targets the embedded WebView2 runtime used by Excel add-ins instead of a standalone Chrome session.
Connection Model
Claude Code
|
v
excel-webview2-mcp
|
v
WebView2 remote debugging endpoint (localhost:9222)
|
v
Locally running Excel add-in
That separation matters: excel-webview2-mcp is a bridge to an existing debug session. It is not the thing that launches or hosts the add-in.
Prerequisites
You have two supported workflows:
Auto-launch (recommended, v0.0.2+)
- Your Office add-in project (with a
manifest.xmland a dev server script) lives on disk. - Excel desktop is installed on Windows.
- Node.js is installed and
npx @dsbissett/excel-webview2-mcp@latestis runnable.
Call excel_detect_addin first to confirm the project is discovered, then excel_launch_addin to start the dev server and sideload the add-in into Excel with CDP port 9222 enabled. Use excel_stop_addin to tear everything down.
Manual / pre-attached
- Your Excel add-in is already loaded and running in the local Excel desktop client.
- WebView2 remote debugging is enabled and bound to port
9222(see Launching Excel with the debug port). - The debugging endpoint is reachable at
http://127.0.0.1:9222.
Verify with:
curl http://127.0.0.1:9222/json
Launching Excel with the debug port
This section applies to Excel desktop on Windows. Per Microsoft's WebView2 and Office add-in documentation, the supported way to pass Chromium flags into the WebView2 runtime is WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS. The WebView2 team also documents a registry-based fallback for persistent configuration.
If you are using Excel for Mac, this MCP server does not apply. Microsoft documents Excel for Mac debugging through Safari Web Inspector instead of a WebView2 CDP port.
Sources:
- WebView2 debug arguments and registry policy: https://learn.microsoft.com/en-us/microsoft-edge/webview2/how-to/debug-visual-studio-code
- Office add-ins debugging with Edge DevTools: https://learn.microsoft.com/en-us/office/dev/add-ins/testing/debug-add-ins-using-devtools-edge-chromium
- Office add-ins debugging overview, including Mac: https://learn.microsoft.com/en-us/office/dev/add-ins/testing/debug-add-ins-overview
Windows: preferred local-dev setup
Set the environment variable before launching Excel so the Excel process inherits it:
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="--remote-debugging-port=9222"
Then:
- Launch Excel from that same shell or from a parent process that inherited the variable.
- Start your add-in locally.
- Confirm the debug endpoint is live.
Worked example:
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="--remote-debugging-port=9222"
start excel.exe
The Office add-ins team documents this environment-variable mechanism generically for WebView2-hosted add-ins, and the WebView2 team documents --remote-debugging-port=9222 as a valid browser argument.
Windows: persistent registry fallback
If you need a persistent machine-local setting, the WebView2 team documents this registry policy path:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Edge\WebView2\AdditionalBrowserArguments
Use:
- Value name:
EXCEL.EXE - Value data:
--remote-debugging-port=9222
Use the environment variable first for local development. It is easier to turn on and off and avoids leaving a persistent machine-wide setting behind.
Verify the endpoint
Run:
curl http://127.0.0.1:9222/json/version
A healthy response is JSON and includes fields such as:
{
"Browser": "...",
"Protocol-Version": "...",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/..."
}
If that curl command fails, Excel is not exposing the WebView2 debug port yet, and excel-webview2-mcp will not be able to attach.
Installation
The server ships as the npm package @dsbissett/excel-webview2-mcp and is invoked via npx. The configuration below is the same across every host — only the location of the config file changes.
Canonical MCP entry:
{
"mcpServers": {
"excel-webview2": {
"command": "npx",
"args": ["@dsbissett/excel-webview2-mcp@latest"]
}
}
}
Claude Code (CLI)
One-liner:
claude mcp add excel-webview2 -- npx @dsbissett/excel-webview2-mcp@latest
Use claude mcp add --scope user ... to make the server available in every project, or --scope project to check the config into .mcp.json for teammates.
Alternatively, install the bundled plugin:
- Add the marketplace from
.claude-plugin/marketplace.jsonwith/plugin marketplace add dsbissett/excel-webview2-mcp. - Install with
/plugin install excel-webview2-mcp.
Claude Code (VS Code extension)
- Open the Claude Code side panel in VS Code.
- Open the command palette and run Claude Code: Manage MCP Servers (or click the MCP icon in the Claude panel).
- Choose Add Server and paste the canonical MCP entry above, or run the
claude mcp addcommand in the VS Code integrated terminal — the extension reads the same config.
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in the project root and add the canonical MCP entry above. Restart Cursor, then open Settings → MCP to confirm excel-webview2 shows as connected.
Codex (OpenAI Codex CLI)
Codex reads MCP servers from ~/.codex/config.toml. Add:
[mcp_servers.excel-webview2]
command = "npx"
args = ["@dsbissett/excel-webview2-mcp@latest"]
Then launch codex and confirm the server appears in /mcp.
GitHub Copilot (VS Code)
GitHub Copilot Chat in VS Code supports MCP servers through the agent-mode configuration.
-
Create or edit
.vscode/mcp.jsonin your workspace (or the user-levelmcp.jsonvia MCP: Open User Configuration from the command palette). -
Add the server entry:
{ "servers": { "excel-webview2": { "command": "npx", "args": ["@dsbissett/excel-webview2-mcp@latest"] } } } -
Open Copilot Chat, switch to Agent mode, and click the Tools icon to confirm the
excel-webview2tools are available. Use MCP: List Servers from the command palette to inspect status or restart the server.
Verifying the install
After adding the server, ask the model to call excel_detect_addin from your Office add-in project directory. A successful response confirms the MCP server is wired up; from there excel_launch_addin will take care of starting Excel.
By default, the server connects to the local WebView2 debugging endpoint at http://127.0.0.1:9222.
Local Development
npm install
npm run build
npm start
Supported Node.js versions are ^20.19.0, ^22.12.0, or >=23.