CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

MCP Server for Excel

sbroenne/mcp-server-excel
18949 toolsSTDIOregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

49 tools
EXCEL_ADD_CHARTAdd a chart to a worksheet using Microsoft Graph API.6 params

Add a chart to a worksheet using Microsoft Graph API.

Parameters* required
typestring
The type of chart to add (e.g., 'ColumnClustered').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
seriesbystring
How the series are by (e.g., 'Auto').
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
sourcedatastring
The range of source data for the chart (e.g., 'A1:C4').
EXCEL_ADD_SHAREPOINT_WORKSHEETAdd a new worksheet to a SharePoint Excel workbook using Microsoft Graph Sites API.4 params

Add a new worksheet to a SharePoint Excel workbook using Microsoft Graph Sites API.

Parameters* required
namestring
The name of the new worksheet to add.
item_idstring
The ID of the Excel file (drive item) to add a worksheet to.
site_idstring
The ID of the SharePoint site containing the Excel file.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_ADD_TABLECreate a new table in a worksheet using the Microsoft Graph API.5 params

Create a new table in a worksheet using the Microsoft Graph API.

Parameters* required
addressstring
The range address for the table. If worksheet is specified, use a range like 'A1:D4'. If worksheet is omitted, include the sheet name (e.g., 'Sheet1!A1:D4').
item_idstring
The ID of the Excel workbook (drive item) where the table will be created.
worksheetstring
Worksheet name or ID. When provided, the table is created on this worksheet and the address should be a range like 'A1:D4'. When omitted, the table is created at the workbook level and the address must include the sheet name prefix (e.g., 'Sheet1!A1:D4').
hasHeadersboolean
Whether the first row of the range contains column headers (True) or not (False).
session_idstring
Workbook session ID controlling persistence.
EXCEL_ADD_TABLE_COLUMNAdd a column to a table using Microsoft Graph API.5 params

Add a column to a table using Microsoft Graph API.

Parameters* required
indexinteger
The index at which to insert the column.
valuesarray
The values for the new column. MUST include exactly one value for each row in the table, including the header row. Use list table rows to get the correct number of values needed.
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to add a column to.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_ADD_TABLE_ROWAdd a row to a table using Microsoft Graph API.5 params

Add a row to a table using Microsoft Graph API.

Parameters* required
indexinteger
The index at which to insert the row. Use null to append to the end (recommended). WARNING: Excel may reject insertions at specific indices due to cell movement conflicts.
valuesarray
The values for the new row.
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to add a row to.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool to grant access to a workbook via invite. Use when you need to share a specific workbook file with designated recipients and roles.

Parameters* required
rolesarray
Roles to grant: read or write.
item_idstring
The ID of the drive item (Excel file) to share.
messagestring
Plain-text message included in the invitation (max 2000 characters).
passwordstring
Password for the invite (OneDrive Personal only).
recipientsarray
Collection of recipients to grant access and send the invitation.
requireSignInboolean
If true, recipients must sign in to view the shared item.
sendInvitationboolean
If true, sends an email invitation; otherwise grants permission silently.default: true
expirationDateTimestring
DateTime when the granted permission will expire (ISO 8601).
retainInheritedPermissionsboolean
If true, existing inherited permissions remain; if false, existing permissions are removed on first share.default: true
EXCEL_ADD_WORKSHEETAdd a new worksheet to an Excel workbook using Microsoft Graph API.3 params

Add a new worksheet to an Excel workbook using Microsoft Graph API.

Parameters* required
namestring
The name of the new worksheet to add.
item_idstring
The ID of the Excel file (drive item) to add a worksheet to.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_APPLY_TABLE_FILTERApply a filter to a table column using Microsoft Graph API.6 params

Apply a filter to a table column using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
criteriaobject
The filter criteria as a dictionary.
table_idstring
The ID of the table.
column_idstring
The ID of the column to filter.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_APPLY_TABLE_SORTApply a sort to a table using Microsoft Graph API.5 params

Apply a sort to a table using Microsoft Graph API.

Parameters* required
fieldsarray
List of sort fields (e.g., [{ 'key': 0, 'ascending': true }]).
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
table_idstring
The ID of the table to sort.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool to clear values, formats, or contents in a specified worksheet range. Use when you need to reset cells before adding new data.

Parameters* required
addressstring
The A1-style address of the range to clear (e.g., 'A1:B2').
applyTostring
Optional. The type of clear action. Possible values: All, Formats, Contents.one of All · Formats · Contents
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
session_idstring
Optional. The workbook session ID for persistent changes.
worksheet_idstring
The name or ID of the worksheet (URL-encoded if necessary).
EXCEL_CLEAR_TABLE_FILTERClear a filter from a table column using Microsoft Graph API.5 params

Clear a filter from a table column using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
table_idstring
The ID of the table.
column_idstring
The ID of the column to clear filter from.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_CLOSE_SESSIONTool to close an existing Excel workbook session. Use when you need to explicitly end a persistent session to release workbook locks.2 params

Tool to close an existing Excel workbook session. Use when you need to explicitly end a persistent session to release workbook locks.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to close the session for.
session_idstring
The workbook session ID to close.
EXCEL_CONVERT_TABLE_TO_RANGEConvert a table to a range using Microsoft Graph API.3 params

Convert a table to a range using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to convert to a range.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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.

Parameters* required
pathstring
Path including folder structure and file name, ending with .xlsx, e.g., 'Documents/newWorkbook.xlsx'
drive_idstring
ID of the drive (use 'me' for the user's default drive)default: me
worksheet_dataobject
Data to populate worksheets. Dict mapping worksheet names to lists of rows (each row is a list of cell values). Example: {'Sheet1': [['Name', 'Points'], ['LeBron', 40000], ['Jordan', 32292]]}
worksheet_namesarray
List of worksheet names to create in the workbook. If not provided, a single worksheet named 'Sheet1' will be created.
EXCEL_DELETE_TABLE_COLUMNDelete a column from a table using Microsoft Graph API.4 params

Delete a column from a table using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to delete a column from.
column_idstring
The ID of the column to delete.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_DELETE_TABLE_ROWDelete a row from a table using Microsoft Graph API.4 params

Delete a row from a table using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to delete a row from.
row_indexinteger
The index of the row to delete.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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."

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet to delete. If using ID, it must be URL-encoded.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool to retrieve a specific axis from a chart. Use when you need properties like min, max, interval, and formatting of the chart axis.

Parameters* required
expandstring
OData $expand query option to expand related entities (format).
selectstring
OData $select query option to specify which properties to return.
item_idstring
The ID of the Excel file (drive item) containing the workbook.
axis_typestring
The type of axis to retrieve. Allowed values: 'valueAxis', 'seriesAxis', 'categoryAxis'.one of valueAxis · seriesAxis · categoryAxis
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
chart_namestring
The name or ID of the chart (must be URL-encoded).
session_idstring
Optional workbook session ID. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the workbook.
chart_idstring
The ID or name of the chart (must be URL-encoded if using special characters).
session_idstring
Optional workbook session ID. If provided, will be sent in the headers to maintain session state.
worksheet_idstring
The ID or name of the worksheet (must be URL-encoded if using special characters).
EXCEL_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 params

Tool to retrieve the legend object of a chart. Use after creating or updating a chart when you need to inspect legend visibility and formatting.

Parameters* required
expandstring
OData $expand query option to expand related entities, such as format.
selectstring
OData $select query option to specify which properties to return (comma-separated).
item_idstring
The ID of the Excel file (drive item) containing the workbook.
chart_namestring
The name or ID of the chart (URL-encoded if necessary).
session_idstring
Optional workbook session ID. If provided, will be sent in the headers to maintain session state.
worksheet_idstring
The ID or name of the worksheet (URL-encoded if necessary).
EXCEL_GET_RANGEGet a range from a worksheet using Microsoft Graph API.4 params

Get a range from a worksheet using Microsoft Graph API.

Parameters* required
addressstring
The address of the range (e.g., 'A1:B2').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
worksheet_idstring
The ID of the worksheet.
EXCEL_GET_SESSIONCreate a session for an Excel workbook using Microsoft Graph API.2 params

Create a session for an Excel workbook using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to create a session for.
persist_changesboolean
Whether changes should be persisted after the session. If false, a nonpersistent session is created.default: true
EXCEL_GET_SHAREPOINT_RANGEGet a range from a worksheet in SharePoint using Microsoft Graph Sites API.5 params

Get a range from a worksheet in SharePoint using Microsoft Graph Sites API.

Parameters* required
addressstring
The address of the range (e.g., 'A1:B2').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
site_idstring
The ID of the SharePoint site containing the Excel file.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
worksheet_idstring
The ID of the worksheet.
EXCEL_GET_SHAREPOINT_WORKSHEETGet a worksheet by name or ID from a SharePoint Excel workbook using Microsoft Graph Sites API.4 params

Get a worksheet by name or ID from a SharePoint Excel workbook using Microsoft Graph Sites API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to get the worksheet from.
site_idstring
The ID of the SharePoint site containing the Excel file.
worksheetstring
The name or ID of the worksheet to retrieve. If using ID, it must be URL-encoded.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool to retrieve a specific column from a workbook table. Use when you need to fetch column properties and data by its ID or name.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID or name of the table containing the column.
column_idstring
The ID or name of the column to retrieve.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_GET_WORKBOOKTool to retrieve the properties and relationships of a workbook. Use when you need to inspect comments, names, tables, or worksheets.4 params

Tool to retrieve the properties and relationships of a workbook. Use when you need to inspect comments, names, tables, or worksheets.

Parameters* required
expandarray
OData relationships to expand in the response.
item_idstring
ID of the drive item (Excel file) to retrieve.
drive_idstring
ID of the drive (use 'me' for the user's default drive).
session_idstring
Optional workbook session ID. If provided, will be sent in headers.
EXCEL_GET_WORKSHEETGet a worksheet by name or ID from an Excel workbook using Microsoft Graph API.3 params

Get a worksheet by name or ID from an Excel workbook using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to get the worksheet from.
worksheetstring
The name or ID of the worksheet to retrieve. If using ID, it must be URL-encoded.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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.

Parameters* required
shiftstring
Direction to shift cells to make space: 'Down' or 'Right'.one of Down · Right
addressstring
The address of the range (e.g., 'A1:B2').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
session_idstring
Optional workbook session ID. If provided, changes persist in that session.
worksheet_idstring
The ID or name of the worksheet.
EXCEL_LIST_CHARTSList charts in a worksheet using Microsoft Graph API.3 params

List charts in a worksheet using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_CHART_SERIESTool to list all data series in a chart. Use when you need to enumerate chart series for further analysis.4 params

Tool to list all data series in a chart. Use when you need to enumerate chart series for further analysis.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
chart_namestring
The name or ID of the chart (must be URL-encoded).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_COMMENTSTool to list comments in an Excel workbook. Use when you need to retrieve all workbook comments via Microsoft Graph API.2 params

Tool to list comments in an Excel workbook. Use when you need to retrieve all workbook comments via Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to list comments for.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_FILESList files and folders in a drive root or specified path.2 params

List files and folders in a drive root or specified path.

Parameters* required
pathstring
Optional folder path under root to list. E.g., 'Documents'
drive_idstring
ID of the drive (use 'me' for the user's default drive)default: me
EXCEL_LIST_NAMED_ITEMSList named items in a workbook using Microsoft Graph API.2 params

List named items in a workbook using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the workbook.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_SHAREPOINT_TABLESList tables in a SharePoint worksheet using Microsoft Graph Sites API.4 params

List tables in a SharePoint worksheet using Microsoft Graph Sites API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
site_idstring
The ID of the SharePoint site containing the Excel file.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_SHAREPOINT_WORKSHEETSList worksheets in an Excel workbook stored in SharePoint using Microsoft Graph Sites API.3 params

List worksheets in an Excel workbook stored in SharePoint using Microsoft Graph Sites API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to list worksheets for.
site_idstring
The ID of the SharePoint site containing the Excel file.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_TABLE_COLUMNSList columns in a table using Microsoft Graph API.3 params

List columns in a table using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to list columns from.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_LIST_TABLE_ROWSList rows in a table using Microsoft Graph API.3 params

List rows in a table using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to list rows from.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

List 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.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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'."

Parameters* required
$topinteger
Maximum number of permission objects to return.
$skipinteger
Number of permission objects to skip.
$expandstring
Comma-separated list of related entities to expand.
$selectstring
Comma-separated list of permission properties to include in the response.
item_idstring
The ID of the DriveItem representing the workbook.
drive_idstring
The ID of the drive containing the workbook file. Use 'me' for the current user's default OneDrive.
EXCEL_LIST_WORKSHEETSList worksheets in an Excel workbook using Microsoft Graph API.2 params

List worksheets in an Excel workbook using Microsoft Graph API.

Parameters* required
item_idstring
The ID of the Excel file (drive item) to list worksheets for.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_MERGE_CELLSMerge cells in a worksheet range using Microsoft Graph API.5 params

Merge cells in a worksheet range using Microsoft Graph API.

Parameters* required
rangestring
The A1-style address of the range to merge (e.g., 'A1:B2').
acrossboolean
Optional. Set true to merge cells in each row of the specified range as separate merged cells. The default value is false.
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet containing the range to merge.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_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 params

Tool 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."

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
optionsobject
Sheet protection options. If omitted, default protection is applied.
worksheetstring
The name or ID of the worksheet to protect. If using ID, it must be URL-encoded.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_SORT_RANGESort a range in a worksheet using Microsoft Graph API.5 params

Sort a range in a worksheet using Microsoft Graph API.

Parameters* required
fieldsarray
List of sort fields (e.g., [{ 'key': 0, 'ascending': true }]).
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
range_typestring
The type of range to sort (e.g., 'usedRange').
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_UPDATE_CHARTUpdate a chart in a worksheet using Microsoft Graph API.9 params

Update a chart in a worksheet using Microsoft Graph API.

Parameters* required
topnumber
The new top position for the chart.
leftnumber
The new left position for the chart.
namestring
The new name for the chart.
widthnumber
The new width for the chart.
heightnumber
The new height for the chart.
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
chart_idstring
The ID of the chart (must be URL-encoded).
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
EXCEL_UPDATE_CHART_LEGENDTool to update formatting or position of a chart legend. Use when adjusting legend settings after confirming chart and worksheet exist.7 params

Tool to update formatting or position of a chart legend. Use when adjusting legend settings after confirming chart and worksheet exist.

Parameters* required
item_idstring
The ID of the Excel file (drive item) containing the workbook.
overlayboolean
Set to true to make the legend overlap the chart body, or false otherwise.
visibleboolean
Set to true to show the chart legend, or false to hide it.
chart_idstring
The name or ID of the chart (must be URL-encoded).
positionstring
The position of the legend on the chart. Possible values: Top, Bottom, Left, Right, Corner, Custom.one of Top · Bottom · Left · Right · Corner · Custom
worksheetstring
The name or ID of the worksheet (must be URL-encoded if using ID).
session_idstring
Optional workbook session ID. If provided, will be sent in the 'workbook-session-id' header.
EXCEL_UPDATE_RANGEUpdate a range in a worksheet using Microsoft Graph API.5 params

Update a range in a worksheet using Microsoft Graph API.

Parameters* required
valuesarray
The values to update in the range.
addressstring
The address of the range (e.g., 'A1:B2').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
worksheet_idstring
The ID of the worksheet.
EXCEL_UPDATE_SHAREPOINT_RANGEUpdate a range in a SharePoint worksheet using Microsoft Graph Sites API.6 params

Update a range in a SharePoint worksheet using Microsoft Graph Sites API.

Parameters* required
valuesarray
The values to update in the range.
addressstring
The address of the range (e.g., 'A1:B2').
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
site_idstring
The ID of the SharePoint site containing the Excel file.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
worksheet_idstring
The ID of the worksheet.
EXCEL_UPDATE_TABLEUpdate a table in a workbook using Microsoft Graph API.7 params

Update a table in a workbook using Microsoft Graph API.

Parameters* required
namestring
The new name for the table.
stylestring
The style of the table.
item_idstring
The ID of the Excel file (drive item) containing the table.
table_idstring
The ID of the table to update.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.
showTotalsboolean
Whether the table shows totals.
showHeadersboolean
Whether the table shows headers.
EXCEL_UPDATE_WORKSHEETUpdate worksheet properties (name, position) in an Excel workbook using Microsoft Graph API.5 params

Update worksheet properties (name, position) in an Excel workbook using Microsoft Graph API.

Parameters* required
namestring
The new name for the worksheet.
item_idstring
The ID of the Excel file (drive item) containing the worksheet.
positioninteger
The new position for the worksheet.
worksheetstring
The name or ID of the worksheet to update. If using ID, it must be URL-encoded.
session_idstring
Optional session ID for the workbook. If provided, will be sent in the headers.

ExcelMcp - MCP Server for Microsoft Excel

VS Code Marketplace Installs Downloads

Build MCP Server Build CLI Release

License: MIT .NET Platform Built with Copilot

Automate Excel with AI — A Model Context Protocol (MCP) server for comprehensive Excel automation through conversational AI.

MCP Server for Excel enables AI assistants (GitHub Copilot, Claude, ChatGPT) to automate Excel through natural language commands. Automate Power Query, DAX measures, VBA macros, PivotTables, Charts, formatting, and data transformations (25 tools with 230 operations).

🛡️ 100% Safe - Uses Excel's Native COM API - Zero risk of file corruption. Unlike third-party libraries that manipulate .xlsx files directly, this project uses Excel's official API ensuring complete safety and compatibility.

💡 Interactive Development - See results instantly in Excel. Create a query, run it, inspect the output, refine and repeat. Excel becomes your AI-powered workspace for rapid development and testing.

🧪 LLM-Tested Quality - Tool behavior validated with real LLM workflows using pytest-skill-engineering. We test that LLMs correctly understand and use our tools.

Technical Requirements:

  • ⚠️ Windows Only - COM interop is Windows-specific
  • ⚠️ Excel Required - Microsoft Excel 2016 or later must be installed
  • ⚠️ Desktop Environment - Controls actual Excel process (not for server-side processing)

🎯 What You Can Do

25 specialized tools with 230 operations:

  • 🔄 Power Query (1 tool, 12 ops) - Atomic workflows, M code management, load destinations
  • 📊 Data Model/DAX (2 tools, 19 ops) - Measures, relationships, model structure
  • 🎨 Excel Tables (2 tools, 27 ops) - Lifecycle, filtering, sorting, structured references
  • 📈 PivotTables (3 tools, 30 ops) - Creation, fields, aggregations, calculated members/fields
  • 📉 Charts (2 tools, 29 ops) - Create, configure, series, formatting, data labels, trendlines
  • 📝 VBA (1 tool, 6 ops) - Modules, execution, version control
  • 📋 Ranges (4 tools, 46 ops) - Values, formulas, formatting, validation, protection
  • 📄 Worksheets (2 tools, 16 ops) - Lifecycle, colors, visibility, cross-workbook moves
  • 🔌 Connections (1 tool, 9 ops) - OLEDB/ODBC management and refresh
  • 🏷️ Named Ranges (1 tool, 6 ops) - Parameters and configuration
  • 📁 Files (1 tool, 6 ops) - Session management, workbook creation, IRM/AIP-protected file support
  • 🧮 Calculation Mode (1 tool, 3 ops) - Get/set calculation mode and trigger recalculation
  • 🎚️ Slicers (1 tool, 8 ops) - Interactive filtering for PivotTables and Tables
  • 🎨 Conditional Formatting (1 tool, 2 ops) - Rules and clearing
  • 📸 Screenshot (1 tool, 2 ops) - Capture ranges/sheets as PNG for LLM visual verification
  • 🪧 Window Management (1 tool, 9 ops) - Show/hide Excel, arrange, position, status bar feedback

📚 Complete Feature Reference → - Detailed documentation of all 230 operations

💬 Example Prompts

Create & Populate Data:

  • "Create a new Excel file called SalesTracker.xlsx with a table for Date, Product, Quantity, Unit Price, and Total with sample data"
  • "Put this data in A1:C4 - Name, Age, City / Alice, 30, Seattle / Bob, 25, Portland"
  • "Add a formula column that calculates Quantity times Unit Price"

Analysis & Visualization:

  • "Create a PivotTable from this data showing total sales by Product, then add a bar chart"
  • "Use Power Query to import products.csv, load it to the Data Model, and create a measure for Total Revenue"
  • "Create a slicer for the Region field so I can filter the PivotTable interactively"
  • "Create a relationship between the Orders and Products tables using ProductID"

Formatting & Styling:

  • "Format the Price column as currency and highlight values over $500 in green"
  • "Convert this range to an Excel Table with a blue style and add a totals row"
  • "Make the headers bold with a dark background and auto-fit column widths"
  • "Apply the same section-header styling to A1:G1, A12:G12, and A24:G24 in one step"

Formatting split: number display formats use the range tool, while visual styling and auto-fit use range_format.

Automation:

  • "Export all Power Query M code to files for version control"
  • "Run the UpdatePrices macro"
  • "Show me Excel while you work" - watch changes in real-time

🪟 Agent Mode — Watch AI Work in Excel:

  • "Show me Excel side-by-side while you build this dashboard" - real-time visibility
  • "Let me watch while you create the chart" - AI asks your preference, then shows Excel
  • Status bar shows live progress: "ExcelMcp: Building PivotTable from Sales data..."

👥 Who Should Use This?

Perfect for:

  • ✅ Data analysts automating repetitive Excel workflows
  • ✅ Developers building Excel-based data solutions
  • ✅ Business users managing complex Excel workbooks
  • ✅ Teams maintaining Power Query/VBA/DAX code in Git

Not suitable for:

  • ❌ Server-side data processing (use libraries like ClosedXML, EPPlus instead)
  • ❌ Linux/macOS users (Windows + Excel installation required)
  • ❌ High-volume batch operations (consider Excel-free alternatives)

🚀 Quick Start

PlatformInstallation
VS CodeInstall Extension (one-click, recommended)
Claude DesktopDownload .mcpb from latest release
Any MCP ClientDownload mcp-excel.exe from latest release and add to PATH
Details📖 Installation Guide

⚠️ Important: Close all Excel files before using. The server requires exclusive access to workbooks during automation.

🔧 CLI vs MCP Server

This package provides both CLI and MCP Server interfaces. Choose based on your use case:

InterfaceBest ForWhy
CLI (excelcli)Coding agents (Copilot, Cursor, Windsurf) + Scripting64% fewer tokens - single tool, no large schemas. Auto-generated from Core code, ensuring 1:1 feature parity. Bundled with excel-cli skill.
MCP ServerConversational AI (Claude Desktop, VS Code Chat)Rich tool discovery, persistent connection. Better for interactive, exploratory workflows.

Installation:

  • CLI via Copilot plugin (Recommended for Copilot CLI): Install the excel-cli plugin for skill guidance, then install excelcli separately
  • CLI Standalone: Download ZIP from releases or install via NuGet
  • Skill only: Install the excel-cli skill separately when your agent already has excelcli available on PATH
  • MCP Server: Download from releases or install VS Code Extension

⚡ CLI Commands: Generated automatically from Core service definitions using Roslyn source generators. All 22 command categories maintain exact 1:1 parity with MCP tools through shared code generation. See code generation docs for details.

📦 GitHub Copilot Plugins

ExcelMcp is available as two GitHub Copilot CLI plugins in the Copilot plugin marketplace:

# Register the plugin marketplace (one-time)
copilot plugin marketplace add sbroenne/mcp-server-excel-plugins

# Install one or both plugins
copilot plugin install excel-mcp@mcp-server-excel-plugins      # For conversational AI
copilot plugin install excel-cli@mcp-server-excel-plugins      # For scripting / coding agents
  • excel-mcp — MCP server for conversational workflows
  • excel-cli — Skill for coding agents (install excelcli separately if you want the CLI tool)

Note: After each release, there may be a short delay before plugins appear in the marketplace. You may need to wait a few moments for updates to sync.

📖 Full Installation Guide →

📊 Benchmark Results (same task, same model)
MetricCLIMCP ServerWinner
Tokens~59K~163K🏆 CLI (64% fewer)

Key insight: MCP sends 23 tool schemas to the LLM on each request (~100K+ tokens).

Manual Installation:

# Primary: Download standalone executables from latest release (no .NET runtime required)
# https://github.com/sbroenne/mcp-server-excel/releases/latest
# - ExcelMcp-MCP-Server-{version}-windows.zip → extract mcp-excel.exe
# - ExcelMcp-CLI-{version}-windows.zip → extract excelcli.exe (optional, for scripting)

# Secondary: Install via .NET tool (requires .NET 10 runtime)
dotnet tool install --global Sbroenne.ExcelMcp.McpServer
dotnet tool install --global Sbroenne.ExcelMcp.CLI

# After installing either way, auto-configure all your coding agents:
npx add-mcp "mcp-excel" --name excel-mcp

⚠️ Step 2 requires Node.js for npx. Install with winget install OpenJS.NodeJS.LTS if needed.

# Optional: Install agent skills for better AI guidance
npx skills add sbroenne/mcp-server-excel --skill excel-cli   # Coding agents
npx skills add sbroenne/mcp-server-excel --skill excel-mcp   # Conversational AI

💡 Skills provide AI guidance - The CLI skill is highly recommended (agents don't work perfectly with CLI without it). The MCP skill is recommended - it adds workflow best practices and reduces token usage.

⚙️ How It Works - COM Automation & Unified Service Architecture

ExcelMcp uses Windows COM automation to control the actual Excel application (not just .xlsx files).

Both the MCP Server and CLI communicate with a shared ExcelMCP Service that manages Excel sessions. This unified architecture enables:

┌─────────────────────┐     ┌─────────────────────┐
│   MCP Server        │     │   CLI (excelcli)    │
│  (AI assistants)    │     │  (coding agents)    │
└─────────┬───────────┘     └─────────┬───────────┘
          │                           │
          └──────────┬────────────────┘
                     ▼
          ┌─────────────────────────┐
          │   ExcelMCP Service      │
          │  (shared session mgmt)  │
          └─────────┬───────────────┘
                    ▼
          ┌─────────────────────────┐
          │   Excel COM API         │
          │  (Excel.Application)    │
          └─────────────────────────┘

Key Benefits:

  • ✅ Shared Sessions - CLI and MCP Server can access the same open workbooks
  • ✅ Single Excel Instance - No duplicate Excel processes or file locks
  • ✅ System Tray UI - Monitor active sessions via the ExcelMCP tray icon

💡 Tip: Watch Excel While AI Works By default, Excel runs hidden for faster automation. To see changes in real-time, just ask:

  • "Show me Excel while you work"
  • "Let me watch what you're doing"
  • "Open Excel so I can see the changes"

The AI will display the Excel window so you can watch every operation happen live - great for learning or verifying changes!

📋 Additional Information

📚 CLI Guide → | CLI Skill for Agents → | MCP Server Guide → | All Agent Skills →

License: MIT License - see LICENSE file

Privacy: See PRIVACY.md for our privacy policy Contributing: See CONTRIBUTING.md for guidelines

Built With: This entire project was developed using GitHub Copilot AI assistance - mainly with Claude but lately with Auto-mode.

Acknowledgments:

  • Microsoft Excel Team - For comprehensive COM automation APIs
  • Model Context Protocol community - For the AI integration standard
  • Open Source Community - For inspiration and best practices

Related Projects

Other projects by the author:

  • pytest-skill-engineering — LLM-powered testing framework for AI agents
  • Windows MCP Server — AI-powered Windows automation via MCP
  • OBS Studio MCP Server — AI-powered OBS Studio automation
  • HeyGen MCP Server — MCP server for HeyGen AI video generation
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Automation & WorkflowsData & AnalyticsProductivity & Office
Registryactive
PackageSbroenne.ExcelMcp.McpServer
TransportSTDIO
UpdatedJun 10, 2026
View on GitHub

Related Automation & Workflows MCP Servers

View all →
n8n Workflow Builder

makafeli/n8n-workflow-builder

AI assistant integration for n8n workflow automation through Model Context Protocol (MCP). Connect Claude Desktop, ChatGPT, and other AI assistants to n8n for natural language workflow management.
519
N8N

illuminaresolutions/n8n-mcp-server

MCP server implementation for n8n workflow automation
120
Make Mcp

danishashko/make-mcp

Unofficial MCP server for Make.com automation - build, validate & deploy scenarios via AI
5
n8n Manager MCP

lukisch/n8n-manager-mcp

MCP server for n8n workflow management -- view, create, sync and manage workflows via AI.
1
Airflow

io.github.us-all/airflow

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)
Mcp Workflow

io.github.infoinlet-marketplace/mcp-workflow

Workflow automation for AI agents — browse 125 connectors + 234 templates, run via FluxTurn.