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
Jump to
- 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:
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.
<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`.
- 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):
```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.
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.
Social sign-in isn’t configured yet. You can still create an account with email below, or ask an admin to add Google/GitHub/Discord OAuth credentials.
Sequential Thinking is an MCP server that provides a tool for dynamic and reflective problem-solving through a structured, step-by-step thinking process. It is…
A Model Context Protocol server that provides time and timezone conversion capabilities. It enables LLMs to get current time information and perform timezone…
Filesystem is a Node.js server that implements the Model Context Protocol (MCP) for filesystem operations. It enables AI assistants to read, write, and manage…
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!