Excel MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Excel MCP Serverread the values from A1:C10 in C:\data\monthly_budget.xlsx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Office MCP Server
A Model Context Protocol (MCP) server for reading, investigating, and editing Microsoft Office files — Excel and PowerPoint. Originally forked from excel-mcp-server by Kazuki Negoro, this in-house fork has been substantially extended with PowerPoint support, VBA extraction, chart/defined-name/cross-sheet analysis tools, and SharePoint/OneDrive path resolution.
Features
Excel:
Read/Write text values and formulas, with pagination for large sheets
Create, copy, and delete sheets; create Excel Tables; format cell ranges (fonts, fills, borders, number formats)
Structural analysis: workbook triage, formula pattern fingerprinting, defined-name usage tracing, chart data extraction, error scanning, find & replace
VBA source extraction (works even without Excel installed, by parsing
vbaProject.bindirectly)Resolves SharePoint/OneDrive URLs to their locally-synced file paths
PowerPoint (🪟 Windows only):
List slides, describe presentation structure, read full slide content (text, tables, charts, images)
Triage a presentation's slide roles, search text across the deck, extract speaker notes
Export a slide as a high-quality PNG
🪟 Windows only (all file types):
Live editing via Excel/PowerPoint COM automation
Capture screen image from a sheet or slide
For more details, see the tools section.
Related MCP server: BachStudio Excel MCP Server
Requirements
Go 1.23+ (to build the server binary)
Windows is required for VBA/COM-backed tools (live editing, screen capture, PowerPoint support). Excel file reading/writing otherwise works cross-platform via excelize.
Supported file formats
Excel:
xlsx (Excel book)
xlsm (Excel macro-enabled book)
xltx (Excel template)
xltm (Excel macro-enabled template)
xlsb, xls (VBA source extraction only)
PowerPoint (Windows only):
pptx, pptm, ppt
Installation
This is an internal fork, built and run from source rather than installed from a public registry.
git clone https://dev.azure.com/hymans/Market%20Solutions/_git/office-mcp
cd office-mcp
go build -o office-mcp-server.exe ./cmd/office-mcp-serverThen point your MCP client at the built binary:
{
"mcpServers": {
"office": {
"command": "C:\\path\\to\\office-mcp-server.exe",
"env": {
"EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
}
}
}
}excel_describe_sheets
Detailed per-sheet metadata: used range, Tables, PivotTables, paging ranges, and optional formula counts.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
includeFormulaCountsCount formula cells per sheet (slower). [default: false]
excel_list_sheet_names
Quick inventory: sheet index, name, used-range dimensions, and any defined names, in one lightweight call.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
excel_triage_workbook
Recommended first call on any unfamiliar workbook. Rapidly maps workbook structure without reading all cells: sheet groups classified by role (config, calc_engine, raw_data, results/summary), cross-sheet dependency map, defined-name count, and recommended next tool calls.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
excel_describe_workbook_full
One-call comprehensive workbook description combining sheet inventory, structural role classification, formula-family fingerprinting, cross-sheet dependency map, defined names, chart inventory, and VBA module summary.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
includeVBASourceInclude full VBA module source text in the output. [default: false]
excel_read_sheet
Read values from Excel sheet with pagination. Defaults: TSV output, formulas annotated (=EXPR → value), empty cells/rows suppressed.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet name in the Excel file
rangeRange of cells to read in the Excel sheet (e.g., "A1:C10"). [default: first paging range]
showFormulaShow formula instead of value [default: true]
showStyleShow style information for cells [default: false]
pagingCellsLimitOverride the paging cell limit for this call
outputFormatOutput format for the returned data (e.g. TSV)
skipEmptySuppress empty cells/rows in the output
headRows/tailRowsRead only the first/last N rows of the range
useCachedValuesUse last-calculated cached values instead of recalculating (useful for
#NAME?/#REF!from missing add-ins)
namedRangeRead by a defined name instead of an explicit range
followReferences/followExternalReferencesTrace and inline values from formulas that reference other sheets/workbooks
forceRecalcForce Excel to recalculate before reading (COM backend only)
excel_screen_capture
[Windows only] Take a screenshot of the Excel sheet with pagination. Best for summary/dashboard sheets where visual layout and conditional formatting carry meaning.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet name in the Excel file
rangeRange of cells to read in the Excel sheet (e.g., "A1:C10"). [default: first paging range]
excel_write_to_sheet
Write values to the Excel sheet.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet name in the Excel file
newSheetCreate a new sheet if true, otherwise write to the existing sheet
rangeRange of cells to read in the Excel sheet (e.g., "A1:C10").
valuesValues to write to the Excel sheet. If the value is a formula, it should start with "="
excel_create_table
Create a table in the Excel sheet
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet name where the table is created
rangeRange to be a table (e.g., "A1:C10")
tableNameTable name to be created
excel_copy_sheet
Create a duplicate of an existing worksheet — for backups before editing, sandboxing formula changes, or duplicating a template sheet.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
srcSheetNameSource sheet name in the Excel file
dstSheetNameSheet name to be copied
excel_delete_sheet
Permanently delete a worksheet from an Excel workbook. This cannot be undone.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameName of the sheet to delete
excel_format_range
Format cells in the Excel sheet with style information
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet name in the Excel file
rangeRange of cells in the Excel sheet (e.g., "A1:C3")
styles2D array of style objects for each cell. If a cell does not change style, use null. The number of items of the array must match the range size.
Style object properties:
border: Array of border styles (type, color, style)font: Font styling (bold, italic, underline, size, strike, color, vertAlign)fill: Fill/background styling (type, pattern, color, shading)numFmt: Custom number format stringdecimalPlaces: Number of decimal places (0-30)
excel_find_replace
Find and replace text within all formulas in an Excel worksheet — useful for fixing broken references (e.g. a renamed sheet).
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameName of the sheet to perform find & replace in
findTextText to search for within cell formulas
replaceTextText to replace matches with
matchCaseWhether to match case when searching [default: false]
excel_search_formulas
Search for a substring or regex pattern within all cell formulas (and values) in a worksheet — for structure discovery, parameter targeting, or debugging.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameName of the sheet to search
queryText substring or regex pattern to search for
useRegexTreat query as a regular expression [default: false]
caseInsensitiveCase-insensitive matching [default: true]
maxResultsMaximum number of matching cells to return [default: 200]
excel_get_formula_patterns
Extract the unique formula templates used in a worksheet, with row/column numbers normalised to # to reveal structural patterns (e.g. =B2*C2+D2 and =B100*C100+D100 collapse to =B#*C#+D#). The primary tool for understanding a sheet's structural logic before replicating it in another language.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameSheet to analyse
rangeRestrict analysis to a specific range
allSheetsScan every sheet and group structurally identical sheets together [default: false]
excel_count_errors
Count and locate Excel error values (#REF!, #VALUE!, #NAME?, #N/A, etc.) in a worksheet.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetNameName of the sheet to scan for errors
excel_get_defined_names
List all defined names (named ranges) in a workbook with their scope, formula/reference, and current resolved value.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
sheetFilterOnly return names whose scope or reference contains this string (case-insensitive)
includeValuesInline the actual cell values for every range name [default: false]
excel_find_named_range_usages
Search every sheet for cells whose formulas reference a specific defined name — trace the full blast-radius before changing a named constant's value.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
nameThe defined name to search for (whole-word, case-insensitive)
maxResultsMaximum total matches to return [default: 500]
excel_get_chart_data
Extract detailed information about every chart embedded in an Excel workbook — type, title, axis titles, legend, and every data series with its cell-range references. Works with .xlsx/.xlsm only.
Arguments:
fileAbsolutePathAbsolute path to the Excel file (.xlsx or .xlsm)
sheetNameOnly return charts on this sheet. Omit for all sheets.
excel_get_vba_code
[Windows only] Read VBA source code from an Excel workbook (.xlsm, .xlsb, .xls) — all modules, class modules, user forms, and sheet/workbook code stubs. Works by parsing vbaProject.bin directly, without requiring Excel or special Trust Center settings.
Arguments:
fileAbsolutePathAbsolute path to the Excel file
moduleRetrieve a single named component (e.g. "Module1", "ThisWorkbook"). Omit for all modules.
pptx_list_slides
[Windows only] Quick inventory of all slides in a PowerPoint presentation — index, title, layout type, and shape count.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file (.pptx, .pptm, .ppt)
pptx_triage_presentation
[Windows only] Recommended first call on an unfamiliar presentation. Classifies each slide by role (title, content, section_header, data, blank, image_heavy) and suggests which slides to read in detail vs capture visually.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
pptx_describe_presentation
[Windows only] Detailed metadata: slide dimensions, total slide count, per-slide summaries with shape types, text previews, table detection, and whether speaker notes exist.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
pptx_read_slide
[Windows only] Read the full content of a single slide — all shape text, tables as tab-separated data, chart data, pictures as base64 PNG, shape metadata, and speaker notes.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
slideIndex1-based slide index
pptx_screen_capture
[Windows only] Export a PowerPoint slide as a high-quality PNG image, for visually complex slides where layout and design matter.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
slideIndex1-based slide index to capture
widthOutput image width in pixels, height auto-calculated. [default: 1280]
pptx_get_speaker_notes
[Windows only] Extract speaker notes from one or all slides.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
slideIndex1-based slide index. Omit or 0 for all slides with notes.
pptx_search_text
[Windows only] Search for text across all slides — shape text, table content, and speaker notes.
Arguments:
fileAbsolutePathAbsolute path to the PowerPoint file
queryText to search for
caseSensitiveCase-sensitive search [default: false]
You can change the MCP Server behaviors by the following environment variables:
EXCEL_MCP_PAGING_CELLS_LIMIT
The maximum number of cells to read in a single paging operation. [default: 4000]
SHAREPOINT_SYNC_MAPPINGS
[Windows only] Manual overrides for mapping SharePoint/OneDrive URLs to locally-synced paths, in addition to mappings auto-discovered from the OneDrive sync engine registry.
Format: url1|path1;url2|path2 (semicolon-separated pairs, pipe-delimited).
License
Copyright (c) 2025 Kazuki Negoro
office-mcp-server is a fork of excel-mcp-server, released under the MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceProvides Excel file manipulation capabilities without requiring Microsoft Excel installation, enabling workbook creation, data manipulation, formatting, and advanced Excel features.10MIT
- Alicense-quality-maintenanceEnables creation, reading, and manipulation of Excel workbooks without Microsoft Excel installed, supporting formulas, formatting, charts, pivot tables, and data validation through multiple transport protocols.
- Alicense-qualityDmaintenanceEnables AI assistants to create, read, write, and manipulate Excel files (.xlsx, .xlsm) without requiring Microsoft Excel, including support for charts, pivot tables, data import/export, and professional formatting across Windows, macOS, and Linux.19833MIT
- Alicense-qualityDmaintenanceEnables manipulation of Excel files including creating, reading, writing data, formatting, charts, pivot tables, and worksheet management via natural language.25MIT
Related MCP Connectors
Real .docx and .xlsx files from structured data, with automatic Hebrew/Arabic RTL.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Samcil/excel-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server