
Office Addin Mcp
Connects to Office add-ins running in WebView2 on Windows through Chrome DevTools Protocol, exposing workflow tools like excel.tabulateRegion, word.applyEdits, and outlook.draftReply instead of raw Office.js primitives. Each tool compresses what would normally take 5-20 API calls into a single round-trip. Ships a server-side query DSL that filters and aggregates inside the host, a document cache for zero-overhead repeated discovery, and MCP resources with live subscriptions to office:// URIs. Includes macro record/replay, auto-diagnostics on Office.js errors, and self-healing CDP reconnection. Reach for this when you want LLMs to drive Excel workbooks, Word documents, Outlook mail, PowerPoint decks, or OneNote pages without teaching the model how to chain Office.js calls manually.
- GitHub stars
- 2
- tools
- 24
- transport
- STDIO
- last updated
- May 24, 2026
Tools
24 toolsPublic tool metadata for what this MCP can expose to an agent.
excel.summarizeWorkbookSheets, tables, named ranges, used-range bounds — single call
Sheets, tables, named ranges, used-range bounds — single call
No parameter schema in public metadata yet.
excel.tabulateRegionLoad a range, return rows-as-objects + per-column type tags
Load a range, return rows-as-objects + per-column type tags
No parameter schema in public metadata yet.
excel.queryServer-side filter / project / groupBy / agg / limit DSL
Server-side filter / project / groupBy / agg / limit DSL
No parameter schema in public metadata yet.
excel.discoverPersistent workbook fingerprint snapshot (doccache)
Persistent workbook fingerprint snapshot (doccache)
No parameter schema in public metadata yet.
excel.applyDiffBatch cell/range patches in one `Excel.run`
Batch cell/range patches in one `Excel.run`
No parameter schema in public metadata yet.
excel.runScriptRun an arbitrary `Excel.run` callback
Run an arbitrary `Excel.run` callback
No parameter schema in public metadata yet.
word.discoverDocument structure snapshot
Document structure snapshot
No parameter schema in public metadata yet.
word.applyEditsBatch find/replace edits in one `Word.run`
Batch find/replace edits in one `Word.run`
No parameter schema in public metadata yet.
word.runScriptRun an arbitrary `Word.run` callback
Run an arbitrary `Word.run` callback
No parameter schema in public metadata yet.
outlook.queryQuery the mailbox / current item
Query the mailbox / current item
No parameter schema in public metadata yet.
outlook.discoverMailbox + active-item snapshot
Mailbox + active-item snapshot
No parameter schema in public metadata yet.
outlook.draftReplySet subject and/or body on a compose-mode item
Set subject and/or body on a compose-mode item
No parameter schema in public metadata yet.
outlook.runScriptRun an arbitrary callback against `Office.context.mailbox`
Run an arbitrary callback against `Office.context.mailbox`
No parameter schema in public metadata yet.
powerpoint.querySlide-level query DSL
Slide-level query DSL
No parameter schema in public metadata yet.
powerpoint.discoverDeck structure snapshot
Deck structure snapshot
No parameter schema in public metadata yet.
powerpoint.rebuildSlideFromOutlineRewrite a slide's title and/or body bullets
Rewrite a slide's title and/or body bullets
No parameter schema in public metadata yet.
powerpoint.runScriptRun an arbitrary `PowerPoint.run` callback
Run an arbitrary `PowerPoint.run` callback
No parameter schema in public metadata yet.
onenote.queryNotebook / section / page query DSL
Notebook / section / page query DSL
No parameter schema in public metadata yet.
onenote.discoverNotebook structure snapshot
Notebook structure snapshot
No parameter schema in public metadata yet.
onenote.appendToPageAppend HTML and/or bullets to a page
Append HTML and/or bullets to a page
No parameter schema in public metadata yet.
onenote.runScriptRun an arbitrary `OneNote.run` callback
Run an arbitrary `OneNote.run` callback
No parameter schema in public metadata yet.
office.embedRead an Excel range and insert it on a PowerPoint slide
Read an Excel range and insert it on a PowerPoint slide
No parameter schema in public metadata yet.
macro.record_startBegin capturing subsequent tool calls into a named macro
Begin capturing subsequent tool calls into a named macro
No parameter schema in public metadata yet.
macro.record_stopFinalize and persist the macro to disk
Finalize and persist the macro to disk
No parameter schema in public metadata yet.
Sponsors
Readme
office-addin-mcp
Drive Excel, Word, Outlook, PowerPoint, and OneNote add-ins from any MCP client — through one Go binary that speaks the Model Context Protocol over stdio.
office-addin-mcp attaches to the WebView2 runtime that Office uses to host Office.js add-ins, then exposes a high-level tool surface to LLM clients. Instead of teaching the model how to chain 15 raw Office.js primitives, the server ships one tool call per workflow.
See the latest release · CHANGELOG.md · PLAN-workflow-surface.md.
Highlights
Details
- Repository
- github.com/dsbissett/office-addin-mcp
- Categories
- Data & Analytics, Productivity & Office
- Package
@dsbissett/office-addin-mcp- Transport
- STDIO
- Registry
- MCP registry, active