使用说明
Excel MCP服务器
全面 模型上下文协议 (MCP)服务器,使AI助手能够执行Excel文件操作,而无需安装Microsoft Excel。
为什么选择此服务器?
| 功能 | Excel MCP服务器 | 替代方案 |
|---|---|---|
| 无需Excel | ✅ 纯Python(openpyxl) | ❌ 需要MS Office |
| 交叉平台的 | ✅ Windows、Mac、Linux⚠️ 有限 | |
| 类型安全 | ✅ 完整的Pydantic验证 | ❌ 无验证 |
| 格式化支持 | ✅ 字体、颜色、边框 | ⚠️ 仅限基本 |
| 公式支持 | ✅ 完整的Excel公式 | ⚠️ 有限 |
| MCP协议 | ✅ 本地支持 | ❌ 自定义协议 |
| 远程部署 | ✅ Smithery准备好了❌ 仅限本地 |
特性
- 📊 工作簿管理:创建、打开、保存Excel工作簿
- 📄 工作表操作:创建、删除、重命名、复制工作表
- 📝 细胞操作:读取和写入单个单元格或范围
- 🔢 公式支持:编写和计算Excel公式
- 🎨 丰富的格式:字体、颜色、边框、对齐方式、数字格式
- ✅ 类型安全 Pydantic验证操作
- ✅ 经过充分测试 17次测试
安装
🚀 Smithery(推荐)
全球部署并与任何人共享- 无需安装!
{
"mcpServers": {
"excel": {
"url": "https://server.smithery.ai/@mort-lab/excel-mcp/mcp"
}
}
}
💻 本地安装
# Using uvx (recommended)
uvx excel-mcp-server
# Using pip
pip install excel-mcp-server
# From source
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync
快速开始
添加到您的Claude Desktop配置中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server"]
}
}
}
重新启动Claude Desktop并开始使用Excel操作!
示例用法
"Create a new Excel workbook called sales_report.xlsx"
"Write 'Product' to cell A1 in Sheet1"
"Format the header row with bold text and blue background"
"Add a formula in D2 that multiplies B2 and C2"
"Read the data from range A1:D10"
与作者联系
让我们在LinkedIn上建立联系!
我是 马丁·伊鲁罗茨基,一位全栈开发人员,热衷于人工智能自动化、构建智能工具,并创造出与众不同的现实世界解决方案。如果你:
- 🚀 想讨论MCP服务器、AI集成和自动化
- 💡 对新功能或实际用例有想法
- 🤝 对合作机会感兴趣
- 🛠️ 使用AI构建工具和解决方案
- 🌟 只想与其他开发人员建立联系和网络
我很想听听你的项目,以及这个Excel MCP服务器是如何帮助你构建令人惊叹的东西的!
可用工具
服务器提供 20个MCP工具 分为4类:
工作簿操作(3个工具)
create_workbook(file_path)-创建新的Excel工作簿get_workbook_info(file_path)-获取工作簿元数据list_sheets(file_path)-列出所有工作表名称
表格操作(4个工具)
create_sheet(workbook_path, sheet_name, index?)-创建新工作表delete_sheet(workbook_path, sheet_name)-删除工作表rename_sheet(workbook_path, old_name, new_name)-重命名工作表copy_sheet(workbook_path, source_sheet, new_name)-复制工作表
细胞操作(5个工具)
write_cell(workbook_path, sheet_name, cell, value)-写入单元格read_cell(workbook_path, sheet_name, cell)-从单元格读取write_range(workbook_path, sheet_name, start_cell, data)-将数据写入范围read_range(workbook_path, sheet_name, range_ref)-从某个范围读取数据write_formula(workbook_path, sheet_name, cell, formula)-写一个公式
格式化操作(8个工具)
format_font(...)-应用字体格式(粗体、斜体、颜色、大小)format_fill(...)-应用背景颜色format_border(...)-应用单元格边框format_alignment(...)-应用文本对齐format_number(...)-应用数字格式
真实世界用例
📊 自动报告
自动生成月度销售报告,其中包含格式化的数据、计算和专业样式,可与利益相关者共享。
📈 数据分析
导入和转换数据,应用统计函数(SUM、AVERAGE、STDEV),创建汇总表,并导出结果。
🎨 发票生成
使用自定义格式、公司品牌、自动计算和公式驱动的总计创建专业发票。
📋 库存管理
通过实时更新、警报的条件格式和自动重新订购计算来跟踪库存水平。
📑 数据迁移
读取旧Excel文件,清理和转换数据,应用新的格式标准,并导出到新结构。
例子
示例1:格式化销售报告
问克劳德:
Create a sales report in sales_2024.xlsx with:
1. Headers: Date, Product, Quantity, Price, Total
2. Format headers: Bold, white text, blue background (#4472C4)
3. Add 10 sample sales entries with realistic data
4. Total column formula: =C2*D2 (for each row)
5. Format prices as currency: $#,##0.00
6. Add borders around all cells (thin, black)
7. Center-align all headers
8. Sum total sales in the last row with bold formatting
结果: 具有自动计算功能的专业报告,格式完整,可随时共享。
示例2:多页工作簿
问克劳德:
Create quarterly_report.xlsx with 5 sheets:
- Sheets: Q1, Q2, Q3, Q4, Summary
- Each Q sheet has: Month, Revenue, Expenses, Profit
- Add 3 months of data per quarter
- Profit formula: =B2-C2
- Summary sheet with formulas that sum all quarters
- Format all currency values as $#,##0.00
结果: 具有跨表公式和综合业务报告的复杂多表工作簿。
示例3:数据迁移
问克劳德:
Read data from old_data.xlsx sheet 'Sales' range A1:E100,
then create new_data.xlsx with:
- Same data but sorted by date (column A)
- Add a new column F with 10% markup calculation (=E*1.1)
- Format dates as 'mm/dd/yyyy'
- Format currency columns as $#,##0.00
- Add bold headers with blue background
结果: 通过计算和专业格式化增强了干净的数据迁移。
发展
设置
# Clone and install
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync
# Run tests
uv run pytest
# Run with coverage
uv run pytest --cov=excel_mcp_server
# Lint and format
uv run ruff check
uv run ruff format
项目结构
excel-mcp-server/
├── src/excel_mcp_server/
│ ├── server.py # FastMCP server (local)
│ ├── server_smithery.py # Smithery-compatible server
│ ├── models.py # Pydantic validation models
│ ├── operations/ # Business logic
│ │ ├── workbook.py
│ │ ├── cell.py
│ │ ├── sheet.py
│ │ └── formatting.py
│ └── utils/
│ └── validators.py
├── tests/ # Test suite (17 tests)
└── pyproject.toml # Project configuration
演出
- 快速:高效处理多达10000行的工作簿
- 记忆:典型操作约50MB
- 轻量级:不需要安装Excel
| 操作 | 时间 | 备注 |
|---|---|---|
| 创建工作簿 | ~50ms | 空工作簿 |
| 写入100个单元格 | ~200ms | 单个写入 |
| 写入100个单元格(范围) | ~50ms | 批量操作 |
| 从现有文件读取1000个单元格 | ~300ms | |
| 应用格式 | ~100ms | 每个范围 |
局限性
- ❌ 不支持图表/图形(即将推出)
- ❌ 无数据透视表(路线图)
- ❌ 没有VBA宏(有意-纯Python)
- ⚠️ 文件大小限制:建议100MB
常见问题解答
我可以在谷歌表格中使用这个吗? 否,此服务器仅适用于Excel(.xlsx)文件。
它离线工作吗? 对!在本地安装时,它完全脱机工作。
Excel支持哪些功能?
- ✅ 公式(SUM、AVERAGE、IF、VLOOKUP、COUNT等)
- ✅ 格式(字体、颜色、边框、对齐方式、数字格式)
- ✅ 多个工作表和工作簿
- ✅ 电池范围和批量操作
- ✅ 跨工作表的公式引用
- ❌ 图表(路线图)
- ❌ 数据透视表(路线图)
- ❌ 宏/VBA(未计划-安全)
我的Excel文件可以有多大? 建议:高达100MB或~50000行,以获得最佳性能。
我可以在生产中使用这个吗? 对!服务器经过测试,运行稳定。考虑使用Smithery进行部署和扩展。
故障排除
导入错误
uv sync
权限错误
# Check permissions
ls -la /path/to/directory
# Fix permissions (Unix/Mac)
chmod u+w /path/to/directory
文件已存在 创建工作簿时,如果文件已存在,则操作将失败。删除现有文件或使用其他文件名。
贡献
欢迎投稿!方法如下:
开发工作流程:
- 分叉并克隆存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 通过测试进行更改
- 运行测试:
uv run pytest - 运行linting:
uv run ruff check - 承诺:
git commit -m 'feat: Add amazing feature' - 推送并创建拉取请求
承诺公约: 我们使用 约定式提交:
feat:新功能fix:错误修复docs:文档test:添加测试refactor:代码重构
路线图
v0.2.0(下一版本)
- 图表和图形创建
- 数据验证规则
- 条件化格式
- 图像插入
v0.3.0
- 数据透视表操作
- 单元格评论和注释
- 受保护的板材
- 命名范围
v1.0.0
- CSV导入/导出
- PDF导出
- 模板系统
- 80%+测试覆盖率
支持
许可证
该项目根据MIT许可证获得许可。
致谢
由以下材料制成❤️ 通过 马丁·伊鲁罗茨基
使AI助手能够一次处理一个单元格的Excel文件。
