
This server brings Excel's COM API to Claude through 25 tools covering Power Query workflows, DAX measures, VBA execution, PivotTables, charts, and range operations. It's Windows only because it automates your actual Excel process, not server side spreadsheet manipulation. You get 230 operations total: create tables with structured references, manage data model relationships, export M code for version control, apply conditional formatting, even capture screenshots for visual verification. The agent mode shows Excel side by side so you watch changes happen in real time. If you're already on Windows with Excel installed and need to automate complex workbooks through conversation rather than writing VBA or Python scripts, this connects those capabilities directly to your AI assistant.
Public tool metadata for what this MCP can expose to an agent.
EXCEL_ADD_CHARTAdd a chart to a worksheet using Microsoft Graph API.6 paramsAdd a chart to a worksheet using Microsoft Graph API.
item_idstringseriesbystringsession_idstringsourcedatastringtypestringworksheetstringEXCEL_ADD_SHAREPOINT_WORKSHEETAdd a new worksheet to a SharePoint Excel workbook using Microsoft Graph Sites API.4 paramsAdd a new worksheet to a SharePoint Excel workbook using Microsoft Graph Sites API.
item_idstringnamestringsession_idstringsite_idstringEXCEL_ADD_TABLECreate a new table in a worksheet using the Microsoft Graph API.5 paramsCreate a new table in a worksheet using the Microsoft Graph API.
addressstringhasHeadersbooleanitem_idstringsession_idstringworksheetstringEXCEL_ADD_TABLE_COLUMNAdd a column to a table using Microsoft Graph API.5 paramsAdd a column to a table using Microsoft Graph API.
indexintegeritem_idstringsession_idstringtable_idstringvaluesarrayEXCEL_ADD_TABLE_ROWAdd a row to a table using Microsoft Graph API.5 paramsAdd a row to a table using Microsoft Graph API.
indexintegeritem_idstringsession_idstringtable_idstringvaluesarrayEXCEL_ADD_WORKBOOK_PERMISSIONTool to grant access to a workbook via invite. Use when you need to share a specific workbook file with designated recipients and roles.9 paramsTool to grant access to a workbook via invite. Use when you need to share a specific workbook file with designated recipients and roles.
expirationDateTimestringitem_idstringmessagestringpasswordstringrecipientsarrayrequireSignInbooleanretainInheritedPermissionsbooleanrolesarraysendInvitationbooleanEXCEL_ADD_WORKSHEETAdd a new worksheet to an Excel workbook using Microsoft Graph API.3 paramsAdd a new worksheet to an Excel workbook using Microsoft Graph API.
item_idstringnamestringsession_idstringEXCEL_APPLY_TABLE_FILTERApply a filter to a table column using Microsoft Graph API.6 paramsApply a filter to a table column using Microsoft Graph API.
column_idstringcriteriaobjectitem_idstringsession_idstringtable_idstringworksheetstringEXCEL_APPLY_TABLE_SORTApply a sort to a table using Microsoft Graph API.5 paramsApply a sort to a table using Microsoft Graph API.
fieldsarrayitem_idstringsession_idstringtable_idstringworksheetstringEXCEL_CLEAR_RANGETool to clear values, formats, or contents in a specified worksheet range. Use when you need to reset cells before adding new data.5 paramsTool to clear values, formats, or contents in a specified worksheet range. Use when you need to reset cells before adding new data.
addressstringapplyTostringAll · Formats · Contentsitem_idstringsession_idstringworksheet_idstringEXCEL_CLEAR_TABLE_FILTERClear a filter from a table column using Microsoft Graph API.5 paramsClear a filter from a table column using Microsoft Graph API.
column_idstringitem_idstringsession_idstringtable_idstringworksheetstringEXCEL_CLOSE_SESSIONTool to close an existing Excel workbook session. Use when you need to explicitly end a persistent session to release workbook locks.2 paramsTool to close an existing Excel workbook session. Use when you need to explicitly end a persistent session to release workbook locks.
item_idstringsession_idstringEXCEL_CONVERT_TABLE_TO_RANGEConvert a table to a range using Microsoft Graph API.3 paramsConvert a table to a range using Microsoft Graph API.
item_idstringsession_idstringtable_idstringEXCEL_CREATE_WORKBOOKTool to create a new Excel workbook file at a specified drive path. Generates a new .xlsx file with specified worksheets and data, then uploads it to OneDrive.4 paramsTool to create a new Excel workbook file at a specified drive path. Generates a new .xlsx file with specified worksheets and data, then uploads it to OneDrive.
drive_idstringpathstringworksheet_dataobjectworksheet_namesarrayEXCEL_DELETE_TABLE_COLUMNDelete a column from a table using Microsoft Graph API.4 paramsDelete a column from a table using Microsoft Graph API.
column_idstringitem_idstringsession_idstringtable_idstringEXCEL_DELETE_TABLE_ROWDelete a row from a table using Microsoft Graph API.4 paramsDelete a row from a table using Microsoft Graph API.
item_idstringrow_indexintegersession_idstringtable_idstringEXCEL_DELETE_WORKSHEETTool to delete a worksheet from the workbook. Use when cleaning up unused or temporary sheets after verifying no dependencies exist. Example: "Delete 'Sheet2' after review."3 paramsTool to delete a worksheet from the workbook. Use when cleaning up unused or temporary sheets after verifying no dependencies exist. Example: "Delete 'Sheet2' after review."
item_idstringsession_idstringworksheetstringEXCEL_GET_CHART_AXISTool to retrieve a specific axis from a chart. Use when you need properties like min, max, interval, and formatting of the chart axis.7 paramsTool to retrieve a specific axis from a chart. Use when you need properties like min, max, interval, and formatting of the chart axis.
axis_typestringvalueAxis · seriesAxis · categoryAxischart_namestringexpandstringitem_idstringselectstringsession_idstringworksheetstringEXCEL_GET_CHART_DATA_LABELSTool to retrieve the data labels object of a chart. Use when you need to inspect label settings like position, separator, and visibility flags after creating or updating a chart.4 paramsTool to retrieve the data labels object of a chart. Use when you need to inspect label settings like position, separator, and visibility flags after creating or updating a chart.
chart_idstringitem_idstringsession_idstringworksheet_idstringEXCEL_GET_CHART_LEGENDTool to retrieve the legend object of a chart. Use after creating or updating a chart when you need to inspect legend visibility and formatting.6 paramsTool to retrieve the legend object of a chart. Use after creating or updating a chart when you need to inspect legend visibility and formatting.
chart_namestringexpandstringitem_idstringselectstringsession_idstringworksheet_idstringEXCEL_GET_RANGEGet a range from a worksheet using Microsoft Graph API.4 paramsGet a range from a worksheet using Microsoft Graph API.
addressstringitem_idstringsession_idstringworksheet_idstringEXCEL_GET_SESSIONCreate a session for an Excel workbook using Microsoft Graph API.2 paramsCreate a session for an Excel workbook using Microsoft Graph API.
item_idstringpersist_changesbooleanEXCEL_GET_SHAREPOINT_RANGEGet a range from a worksheet in SharePoint using Microsoft Graph Sites API.5 paramsGet a range from a worksheet in SharePoint using Microsoft Graph Sites API.
addressstringitem_idstringsession_idstringsite_idstringworksheet_idstringEXCEL_GET_SHAREPOINT_WORKSHEETGet a worksheet by name or ID from a SharePoint Excel workbook using Microsoft Graph Sites API.4 paramsGet a worksheet by name or ID from a SharePoint Excel workbook using Microsoft Graph Sites API.
item_idstringsession_idstringsite_idstringworksheetstringEXCEL_GET_TABLE_COLUMNTool to retrieve a specific column from a workbook table. Use when you need to fetch column properties and data by its ID or name.4 paramsTool to retrieve a specific column from a workbook table. Use when you need to fetch column properties and data by its ID or name.
column_idstringitem_idstringsession_idstringtable_idstringEXCEL_GET_WORKBOOKTool to retrieve the properties and relationships of a workbook. Use when you need to inspect comments, names, tables, or worksheets.4 paramsTool to retrieve the properties and relationships of a workbook. Use when you need to inspect comments, names, tables, or worksheets.
drive_idstringexpandarrayitem_idstringsession_idstringEXCEL_GET_WORKSHEETGet a worksheet by name or ID from an Excel workbook using Microsoft Graph API.3 paramsGet a worksheet by name or ID from an Excel workbook using Microsoft Graph API.
item_idstringsession_idstringworksheetstringEXCEL_INSERT_RANGETool to insert a new cell range into a worksheet, shifting existing cells down or right. Use when you need to create space for new content without overwriting.5 paramsTool to insert a new cell range into a worksheet, shifting existing cells down or right. Use when you need to create space for new content without overwriting.
addressstringitem_idstringsession_idstringshiftstringDown · Rightworksheet_idstringEXCEL_LIST_CHARTSList charts in a worksheet using Microsoft Graph API.3 paramsList charts in a worksheet using Microsoft Graph API.
item_idstringsession_idstringworksheetstringEXCEL_LIST_CHART_SERIESTool to list all data series in a chart. Use when you need to enumerate chart series for further analysis.4 paramsTool to list all data series in a chart. Use when you need to enumerate chart series for further analysis.
chart_namestringitem_idstringsession_idstringworksheetstringEXCEL_LIST_COMMENTSTool to list comments in an Excel workbook. Use when you need to retrieve all workbook comments via Microsoft Graph API.2 paramsTool to list comments in an Excel workbook. Use when you need to retrieve all workbook comments via Microsoft Graph API.
item_idstringsession_idstringEXCEL_LIST_FILESList files and folders in a drive root or specified path.2 paramsList files and folders in a drive root or specified path.
drive_idstringpathstringEXCEL_LIST_NAMED_ITEMSList named items in a workbook using Microsoft Graph API.2 paramsList named items in a workbook using Microsoft Graph API.
item_idstringsession_idstringEXCEL_LIST_SHAREPOINT_TABLESList tables in a SharePoint worksheet using Microsoft Graph Sites API.4 paramsList tables in a SharePoint worksheet using Microsoft Graph Sites API.
item_idstringsession_idstringsite_idstringworksheetstringEXCEL_LIST_SHAREPOINT_WORKSHEETSList worksheets in an Excel workbook stored in SharePoint using Microsoft Graph Sites API.3 paramsList worksheets in an Excel workbook stored in SharePoint using Microsoft Graph Sites API.
item_idstringsession_idstringsite_idstringEXCEL_LIST_TABLE_COLUMNSList columns in a table using Microsoft Graph API.3 paramsList columns in a table using Microsoft Graph API.
item_idstringsession_idstringtable_idstringEXCEL_LIST_TABLE_ROWSList rows in a table using Microsoft Graph API.3 paramsList rows in a table using Microsoft Graph API.
item_idstringsession_idstringtable_idstringEXCEL_LIST_TABLESList tables in a worksheet using Microsoft Graph API. This action retrieves information about all tables present in a specified worksheet of an Excel file. It requires the file ID and worksheet name or ID, and can optionally use a session ID for workbook operations.3 paramsList tables in a worksheet using Microsoft Graph API. This action retrieves information about all tables present in a specified worksheet of an Excel file. It requires the file ID and worksheet name or ID, and can optionally use a session ID for workbook operations.
item_idstringsession_idstringworksheetstringEXCEL_LIST_WORKBOOK_PERMISSIONSTool to list permissions set on the workbook file. Use when you need to see which users or links have access to a specific Excel file by supplying its drive and item IDs. Example: "List permissions for workbook with drive_id 'b!abc123' and item_id '0123456789abcdef'."6 paramsTool to list permissions set on the workbook file. Use when you need to see which users or links have access to a specific Excel file by supplying its drive and item IDs. Example: "List permissions for workbook with drive_id 'b!abc123' and item_id '0123456789abcdef'."
$expandstring$selectstring$skipinteger$topintegerdrive_idstringitem_idstringEXCEL_LIST_WORKSHEETSList worksheets in an Excel workbook using Microsoft Graph API.2 paramsList worksheets in an Excel workbook using Microsoft Graph API.
item_idstringsession_idstringEXCEL_MERGE_CELLSMerge cells in a worksheet range using Microsoft Graph API.5 paramsMerge cells in a worksheet range using Microsoft Graph API.
acrossbooleanitem_idstringrangestringsession_idstringworksheetstringEXCEL_PROTECT_WORKSHEETTool to protect a worksheet using optional protection options. Use when you need to prevent editing certain parts of a sheet before sharing. Example: "Protect 'Sheet1' to lock formatting and sorting."4 paramsTool to protect a worksheet using optional protection options. Use when you need to prevent editing certain parts of a sheet before sharing. Example: "Protect 'Sheet1' to lock formatting and sorting."
item_idstringoptionsobjectsession_idstringworksheetstringEXCEL_SORT_RANGESort a range in a worksheet using Microsoft Graph API.5 paramsSort a range in a worksheet using Microsoft Graph API.
fieldsarrayitem_idstringrange_typestringsession_idstringworksheetstringEXCEL_UPDATE_CHARTUpdate a chart in a worksheet using Microsoft Graph API.9 paramsUpdate a chart in a worksheet using Microsoft Graph API.
chart_idstringheightnumberitem_idstringleftnumbernamestringsession_idstringtopnumberwidthnumberworksheetstringEXCEL_UPDATE_CHART_LEGENDTool to update formatting or position of a chart legend. Use when adjusting legend settings after confirming chart and worksheet exist.7 paramsTool to update formatting or position of a chart legend. Use when adjusting legend settings after confirming chart and worksheet exist.
chart_idstringitem_idstringoverlaybooleanpositionstringTop · Bottom · Left · Right · Corner · Customsession_idstringvisiblebooleanworksheetstringEXCEL_UPDATE_RANGEUpdate a range in a worksheet using Microsoft Graph API.5 paramsUpdate a range in a worksheet using Microsoft Graph API.
addressstringitem_idstringsession_idstringvaluesarrayworksheet_idstringEXCEL_UPDATE_SHAREPOINT_RANGEUpdate a range in a SharePoint worksheet using Microsoft Graph Sites API.6 paramsUpdate a range in a SharePoint worksheet using Microsoft Graph Sites API.
addressstringitem_idstringsession_idstringsite_idstringvaluesarrayworksheet_idstringEXCEL_UPDATE_TABLEUpdate a table in a workbook using Microsoft Graph API.7 paramsUpdate a table in a workbook using Microsoft Graph API.
item_idstringnamestringsession_idstringshowHeadersbooleanshowTotalsbooleanstylestringtable_idstringEXCEL_UPDATE_WORKSHEETUpdate worksheet properties (name, position) in an Excel workbook using Microsoft Graph API.5 paramsUpdate worksheet properties (name, position) in an Excel workbook using Microsoft Graph API.
item_idstringnamestringpositionintegersession_idstringworksheetstringWebsite · Installation · Features · Troubleshooting · 1-minute demo
Automate real Microsoft Excel with AI. Excel MCP Server lets GitHub Copilot, Claude, ChatGPT, and other agents control Excel through natural-language requests—using either MCP or a token-efficient CLI.
Unlike file-parser tools, ExcelMcp drives the actual Excel application through
its official COM API. It can refresh Power Query, recalculate formulas, evaluate
DAX, run VBA and Python =PY(), and preserve PivotTables, charts, macros, the
Data Model, and workbook formatting.
31 tools with 326 operations cover end-to-end Excel automation.
[!IMPORTANT] Requires Windows, Microsoft Excel 2016 or later, and an interactive desktop. It is not intended for Linux, macOS, or server-side batch processing.
| Use case | Recommended path |
|---|---|
| VS Code | Install the extension |
| Claude Desktop or another MCP client | Install the MCP Server |
| Coding agents and scripts | Install the CLI |
| Not sure which to choose? | Read the installation overview |
Close open Excel workbooks before starting; ExcelMcp requires exclusive access while automating them.
Explore the complete reference for all 326 operations.
Ask in plain language:
Because Excel performs the work, you can inspect results live and continue editing the workbook normally.
See more examples and use cases.
Both entry points expose the same Core commands and behavior.
| Interface | Best for | Why |
|---|---|---|
| MCP Server | Conversational assistants and exploratory work | Rich schemas, tool discovery, and persistent sessions |
CLI (excelcli) | Coding agents, automation, and scripts | One compact tool surface and substantially lower token usage |
The MCP Server calls the ExcelMcp service in-process. The CLI uses a background daemon so workbook sessions persist across commands.
AI assistant or script
│
MCP Server / CLI
│
ExcelMcp Core commands
│
Real Excel COM API
Read the architecture or browse the MCP Server and CLI guides.
Documentation · Changelog · Contributing · Security · Privacy
License: MIT License - see LICENSE file
Other projects by the author: