npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

ms-excel-mcp-server

v0.11.1

Published

An MCP server that reads and writes spreadsheet data to MS Excel file

Readme

Excel MCP Server

Excel MCP Server Icon

NPM Version smithery badge

A Model Context Protocol (MCP) server that reads and writes MS Excel data.

Features

  • Read/Write text values
  • Read/Write formulas
  • Create new sheets
  • ✨ NEW: Data validation with dropdown lists
  • ✨ NEW: Conditional formatting (highlighting, color scales, data bars)
  • ✨ NEW: VBA code execution and module creation

🪟Windows only:

  • Live editing
  • Capture screen image from a sheet
  • ✨ VBA functionality (OLE backend)

For more details, see the tools section.

Requirements

  • Node.js 20.x or later

Supported file formats

  • xlsx (Excel book)
  • xlsm (Excel macro-enabled book)
  • xltx (Excel template)
  • xltm (Excel macro-enabled template)

Installation

Installing via NPM

excel-mcp-server is automatically installed by adding the following configuration to the MCP servers configuration.

For Windows:

{
    "mcpServers": {
        "excel": {
            "command": "cmd",
            "args": ["/c", "npx", "--yes", "ms-excel-mcp-server"],
            "env": {
                "EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
            }
        }
    }
}

For other platforms:

{
    "mcpServers": {
        "excel": {
            "command": "npx",
            "args": ["--yes", "ms-excel-mcp-server"],
            "env": {
                "EXCEL_MCP_PAGING_CELLS_LIMIT": "4000"
            }
        }
    }
}

Installing via Smithery

⚠️ Note: Smithery indexing is pending for newly published packages. If the command below fails with "Server not found", use the npm method above instead.

To install Excel MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install ms-excel-mcp-server --client claude

excel_describe_sheets

List all sheet information of specified Excel file.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file

excel_read_sheet

Read values from Excel sheet with pagination.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • range
    • Range of cells to read in the Excel sheet (e.g., "A1:C10"). [default: first paging range]
  • showFormula
    • Show formula instead of value [default: false]
  • showStyle
    • Show style information for cells [default: false]

excel_screen_capture

[Windows only] Take a screenshot of the Excel sheet with pagination.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • range
    • Range 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:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • newSheet
    • Create a new sheet if true, otherwise write to the existing sheet
  • range
    • Range of cells to read in the Excel sheet (e.g., "A1:C10").
  • values
    • Values 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:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name where the table is created
  • range
    • Range to be a table (e.g., "A1:C10")
  • tableName
    • Table name to be created

excel_copy_sheet

Copy existing sheet to a new sheet

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • srcSheetName
    • Source sheet name in the Excel file
  • dstSheetName
    • Sheet name to be copied

excel_add_data_validation

Add data validation to Excel cells including dropdown lists and input validation.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • cellRange
    • Range of cells to apply data validation (e.g., "A1:A10")
  • validationType
    • Type of validation: list, whole, decimal, date, time, textLength, custom
  • options
    • Data validation options (dropdownList, formulas, error messages, etc.)

excel_add_conditional_formatting

Add conditional formatting to Excel cells with highlighting, color scales, and data bars.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • cellRange
    • Range of cells to apply conditional formatting (e.g., "A1:A10")
  • conditions
    • Conditional formatting conditions (type, criteria, values, formatting)

excel_execute_vba (Windows OLE only)

Execute VBA code on an Excel worksheet.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • sheetName
    • Sheet name in the Excel file
  • vbaCode
    • VBA code to execute

excel_add_vba_module (Windows OLE only)

Add a VBA module to an Excel workbook.

Arguments:

  • fileAbsolutePath
    • Absolute path to the Excel file
  • moduleName
    • Name for the VBA module
  • vbaCode
    • VBA code to add to the module

Note: For detailed examples and usage instructions, see docs/NEW_FEATURES.md

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]

License

Copyright (c) 2025 Kazuki Negoro

excel-mcp-server is released under the MIT License