Content
<p align="center">
<img src="https://raw.githubusercontent.com/haris-musa/excel-mcp-server/main/assets/logo.png" alt="Excel MCP Server Logo" width="300"/>
</p>
[](https://pypi.org/project/excel-mcp-server/)
[](https://pepy.tech/project/excel-mcp-server)
[](https://opensource.org/licenses/MIT)
[](https://smithery.ai/server/@haris-musa/excel-mcp-server)
[](https://cursor.com/install-mcp?name=excel-mcp-server&config=eyJjb21tYW5kIjoidXZ4IGV4Y2VsLW1jcC1zZXJ2ZXIgc3RkaW8ifQ%3D%3D)
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)
```bash
uvx excel-mcp-server stdio
```
```json
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio"]
}
}
}
```
### 2. SSE Transport (Server-Sent Events - Deprecated)
```bash
uvx excel-mcp-server sse
```
**SSE transport connection**:
```json
{
"mcpServers": {
"excel": {
"url": "http://localhost:8000/sse",
}
}
}
```
### 3. Streamable HTTP Transport (Recommended for remote connections)
```bash
uvx excel-mcp-server streamable-http
```
**Streamable HTTP transport connection**:
```json
{
"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`.
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):
```powershell
$env:EXCEL_FILES_PATH="E:\MyExcelFiles"
$env:FASTMCP_PORT="8007"
uvx excel-mcp-server streamable-http
```
- Example (Linux/macOS):
```bash
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](TOOLS.md) for complete documentation of all available tools.
## Star History
[](https://www.star-history.com/#haris-musa/excel-mcp-server&Date)
## License
MIT License - see [LICENSE](LICENSE) for details.
You Might Also Like
MarkItDown MCP
markitdown-mcp is a lightweight MCP server for converting various URIs to Markdown.
Github
GitHub MCP Server connects AI tools to GitHub for code management and automation.

apisix
Apache APISIX is an API Gateway for managing APIs and microservices.
mcp-context-forge
MCP Gateway unifies REST, MCP, and A2A with security and admin UI.
Exa MCP
Exa MCP Server enables AI assistants to access real-time web data safely.
Oterm
oterm is a terminal client for Ollama, supporting multiple chat sessions and...