MCP Excel Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Excel ServerCreate a budget summary from expenses.xlsx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Excel Server
A Model Context Protocol (MCP) server for Excel file manipulation. Read, write, analyze, and transform Excel spreadsheets (.xlsx, .xlsm) using AI agents.
Features
Read Data - Extract values, ranges, and metadata from Excel files
Write Data - Create and modify spreadsheets programmatically
Formulas - Add Excel formulas for calculations
Charts - Create and modify Excel charts (bar, line, pie, scatter, area)
Tables - Work with Excel structured tables
Analysis - Statistical summaries, filtering, and grouping
VBA Macros - Create, edit, and execute VBA macros (requires Excel installed)
Security - Path validation, audit logging, rate limiting, VBA safety checks
Related MCP server: Excel MCP Server
Quick Start
Installation
# Clone the repository
git clone https://github.com/username/mcp-excel-server.git
cd mcp-excel-server
# Install with Poetry
poetry install
# Or with pip
pip install -e .
# For VBA macro support (requires Excel installed)
pip install -e ".[vba]"Configuration
# Copy environment template
cp .env.example .env
# Edit .env with your settings
# MCP_EXCEL_TRANSPORT=stdio
# MCP_EXCEL_CACHE_SIZE=5Running the Server
# Using Poetry
poetry run python -m mcp_excel.server
# Or directly
python -m mcp_excel.serverClient Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"excel": {
"command": "python",
"args": ["-m", "mcp_excel.server"],
"cwd": "/path/to/mcp-excel-server"
}
}
}VS Code / Cursor
Add to .vscode/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"excel": {
"command": "python",
"args": ["-m", "mcp_excel.server"],
"cwd": "${workspaceFolder}"
}
}
}OpenCode
Add to your OpenCode configuration:
{
"mcpServers": {
"excel": {
"command": "python",
"args": ["-m", "mcp_excel.server"],
"env": {
"MCP_EXCEL_TRANSPORT": "stdio"
}
}
}
}Available Tools
Reading Data
Tool | Description |
| Read a single cell value |
| Read a range of cells |
| Get worksheet metadata |
| Search for values |
| List all worksheets |
| Get workbook overview |
Writing Data
Tool | Description |
| Write values to cells |
| Add Excel formulas |
| Create new worksheet |
| Delete a worksheet |
Formulas
Tool | Description |
| Read formula text from a cell |
| Get common formula templates |
Analysis
Tool | Description |
| Statistical summary |
| Filter data by conditions |
| Group and aggregate data |
Charts
Tool | Description |
| Create bar, line, pie, scatter, or area chart |
| List all charts in a worksheet |
| Update chart properties |
| Remove a chart |
Tables
Tool | Description |
| Create Excel structured table |
| List all tables in a worksheet |
| Delete a table |
| Add row to a table |
Example Usage
Read Sales Data
User: Read the sales data from C:/reports/Q1.xlsx
Agent calls:
1. describe_workbook(file_path="C:/reports/Q1.xlsx")
2. list_sheets(file_path="C:/reports/Q1.xlsx")
3. read_range(file_path="C:/reports/Q1.xlsx", sheet_name="Sales", range="A1:F100")Create Summary Report
User: Create a monthly summary with totals
Agent calls:
1. create_sheet(file_path="report.xlsx", sheet_name="Summary")
2. write_cells(file_path="report.xlsx", sheet_name="Summary", range="A1:D1", values=[["Month", "Sales", "Cost", "Profit"]])
3. write_formula(file_path="report.xlsx", sheet_name="Summary", cell="D2", formula="=B2-C2")Analyze Data
User: Analyze customer demographics
Agent calls:
1. get_column_stats(file_path="customers.xlsx", sheet_name="Data", column="Age")
2. group_by(file_path="customers.xlsx", sheet_name="Data", columns=["Region"], agg_column="Revenue", agg_func="sum")
3. filter_rows(file_path="customers.xlsx", sheet_name="Data", filters=[{"column": "Status", "operator": "==", "value": "Active"}])Skills
This server includes agent skills for better interaction:
excel-reading - Guide for reading Excel files
excel-writing - Guide for writing to Excel files
excel-analysis - Guide for data analysis
excel-formulas - Guide for Excel formulas
See the skills/ directory for detailed documentation.
Development
Setup
# Install development dependencies
poetry install --with dev
# Run tests
poetry run pytest
# Run linting
poetry run ruff check src/
# Run type checking
poetry run mypy src/Project Structure
mcp-excel-server/
├── src/mcp_excel/ # Source code
│ ├── server.py # MCP server entry point
│ ├── config.py # Configuration
│ ├── backends/ # Excel backends
│ ├── tools/ # MCP tools
│ ├── resources/ # MCP resources
│ ├── prompts/ # MCP prompts
│ └── utils/ # Utilities
├── tests/ # Test suite
├── skills/ # Agent skills
├── examples/ # Usage examples
└── docs/ # DocumentationAdding New Tools
Create tool in
src/mcp_excel/tools/Add Pydantic models for input/output
Register in
server.pyAdd tests in
tests/Update documentation
Troubleshooting
Common Issues
File not found error:
Ensure you're using absolute paths
Check file exists and is accessible
Permission denied:
Close Excel if file is open
Check file permissions
Memory errors:
Use pagination for large files
Reduce cache size in
.env
See docs/TROUBLESHOOTING.md for more details.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests
Run the test suite
Submit a pull request
License
MIT License - see LICENSE for details.
Acknowledgments
Model Context Protocol - The standard for AI-tool integration
FastMCP - Python MCP framework
openpyxl - Excel file handling
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mrgorrin40-TP/mcp-excel-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server