Skip to content

haris-musa/excel-mcp-server

Repository files navigation

Excel MCP Server Logo

PyPI version PyPI downloads License: MIT

Excel 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

  • 📊 Create and modify Excel workbooks
  • 📝 Read and write data
  • 🎨 Apply formatting and styles
  • 📈 Create charts and visualizations
  • 📊 Generate pivot tables
  • 🔄 Manage worksheets and ranges
  • 🔌 Dual transport support: stdio and SSE

Quick Start

Prerequisites

  • Python 3.10 or higher

Running the Server

The server supports two transport modes: stdio and SSE.

Using stdio transport

Stdio transport is ideal for direct integration with tools like Cursor Desktop or local development, which can manipulate local files:

uvx excel-mcp-server stdio

Using SSE transport

SSE transport is perfect for remote connections, which manipulate remote files:

uvx excel-mcp-server sse

Using with AI Tools

  1. Add this configuration to your client, choosing the appropriate transport method for your needs:

Stdio transport connection (for local integration):

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

SSE transport connection:

{
   "mcpServers": {
      "excel": {
         "url": "http://localhost:8000/sse",
      }
   }
}
  1. The Excel tools will be available through your AI assistant.

Environment Variables & File Path Handling

SSE Transport

When running the server with the SSE protocol, 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.

You can also set the FASTMCP_PORT environment variable to control the port the server listens on (default is 8000 if not set).

  • Example (Windows PowerShell):
    $env:EXCEL_FILES_PATH="E:\MyExcelFiles"
    $env:FASTMCP_PORT="8080"
    uvx excel-mcp-server sse
  • Example (Linux/macOS):
    EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8080 uvx excel-mcp-server sse

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.

About

A Model Context Protocol server for Excel file manipulation

Topics

Resources

License

Stars

Watchers

Forks

Languages