Excel

by haris-musa

4k stars
4.7k downloads
Not rated
GitHub Website

About

Excel manipulation including data reading/writing, worksheet management, formatting, charts, and pivot table

Details

Author
haris-musa
GitHub stars
3,991
Downloads
4,725
Categories
Productivity, Community, Other

- Create, read, update, and delete workbooks and worksheets
- Insert formulas, formatting, charts, pivot tables, and Excel tables
- Built‑in data validation for ranges, formulas, and integrity
- Font styling, colors, borders, alignment, and conditional formatting
- Chart creation (line, bar, pie, scatter, and more)
- Triple transport support: stdio, SSE (deprecated), and streamable HTTP

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Excel
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install and run via uvx excel-mcp-server with one of three transport methods. For local use, use the stdio transport. For remote connections, use streamable‑HTTP (recommended) or the deprecated SSE transport. When using HTTP transports, set the EXCEL_FILES_PATH environment variable to specify where Excel files are stored; file paths in tool calls must be relative to that directory. Optionally set FASTMCP_PORT to change the listening port (default 8007). For the stdio transport, the file path is provided per tool call.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "excel": {
            "excel-mcp-server": {
                "command": "uvx",
                "args": [
                    "excel-mcp-server",
                    "stdio"
                ]
            }
        }
    }
}

McpServers

{
    "excel-mcp-server": {
        "command": "uvx",
        "args": [
            "excel-mcp-server",
            "stdio"
        ]
    }
}

<p align="center">
Excel MCP Server Logo
</p>

PyPI version
Total Downloads
License: MIT
smithery badge
Install MCP Server

A Model Context Protocol (MCP) server that lets you manipulate Excel files without needing Microsoft Excel installed. Create, read, and modify Excel workbooks with your AI agent.

Features

- 📊 Excel Operations: Create, read, update workbooks and worksheets
- 📈 Data Manipulation: Formulas, formatting, charts, pivot tables, and Excel tables
- 🔍 Data Validation: Built-in validation for ranges, formulas, and data integrity
- 🎨 Formatting: Font styling, colors, borders, alignment, and conditional formatting
- 📋 Table Operations: Create and manage Excel tables with custom styling
- 📊 Chart Creation: Generate various chart types (line, bar, pie, scatter, etc.)
- 🔄 Pivot Tables: Create dynamic pivot tables for data analysis
- 🔧 Sheet Management: Copy, rename, delete worksheets with ease
- 🔌 Triple transport support: stdio, SSE (deprecated), and streamable HTTP
- 🌐 Remote & Local: Works both locally and as a remote service

Usage

The server supports three transport methods:

1. Stdio Transport (for local use)

uvx excel-mcp-server stdio
{
   "mcpServers": {
      "excel": {
         "command": "uvx",
         "args": ["excel-mcp-server", "stdio"]
      }
   }
}

2. SSE Transport (Server-Sent Events - Deprecated)

uvx excel-mcp-server sse

SSE transport connection:

{
"mcpServers": {
"excel": {
"url": "http://localhost:8000/sse",
}
}
}

3. Streamable HTTP Transport (Recommended for remote connections)

uvx excel-mcp-server streamable-http

Streamable HTTP transport connection:

{
"mcpServers": {
"excel": {
"url": "http://localhost:8000/mcp",
}
}
}

Environment Variables & File Path Handling

SSE and Streamable HTTP Transports

When running the server with the SSE or Streamable HTTP protocols, you must set the EXCEL_FILES_PATH environment variable on the server side. This variable tells the server where to read and write Excel files.
- If not set, it defaults to ./excel_files.
- With these transports, tool filepath values must be relative to that directory (e.g. reports/q1.xlsx); absolute paths and directory traversal are rejected.

You can also set the FASTMCP_PORT environment variable to control the port the server listens on (default is 8017 if not set).
- Example (Windows PowerShell):

  $env:EXCEL_FILES_PATH="E:\MyExcelFiles"
$env:FASTMCP_PORT="8007"
uvx excel-mcp-server streamable-http

- Example (Linux/macOS):
  EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8007 uvx excel-mcp-server streamable-http

Stdio Transport

When using the stdio protocol, the file path is provided with each tool call, so you do not need to set EXCEL_FILES_PATH on the server. The server will use the path sent by the client for each operation.

Available Tools

The server provides a comprehensive set of Excel manipulation tools. See TOOLS.md for complete documentation of all available tools.

Star History

Star History Chart

License

MIT License - see LICENSE for details.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.