Skip to main content

Excel MCP Server Logo

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onestep_excel_mcp_server-0.2.1.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onestep_excel_mcp_server-0.2.1-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file onestep_excel_mcp_server-0.2.1.tar.gz.

File metadata

File hashes

Hashes for onestep_excel_mcp_server-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f0e5fbe2f4895ef195e31d98efb4ff441791ec92fa22dda6f1bd130fa7f5fb16
MD5 094f24fffd9d94e58d6728bc555a3f23
BLAKE2b-256 d3ff07130b2014a394402d61dceb87087d9c1bf7e0402958301eb3b489105d37

See more details on using hashes here.

File details

Details for the file onestep_excel_mcp_server-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for onestep_excel_mcp_server-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd48f40a4897c9b72b313ce17eb865c2325c1098ceadca8aae153f6e5def87ae
MD5 0bbb2a794fed0daab42ca2fbba43c33d
BLAKE2b-256 3ae74daf6bb3bc7cf2c9855d4a4efebf5846cc582020cbc63fe0939a5cdb101f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page