Skip to main content
Glama

ExcelForge

ExcelForge 是一个基于 MCP (Model Context Protocol) 的 Excel 操作工具集,让 AI 助手能够安全、高效地操作 Excel 文件。

✨ 功能特性

  • 📖 工作簿管理 - 打开、保存、关闭 Excel 文件

  • 📝 工作表操作 - 创建、重命名、删除工作表

  • 📊 数据读写 - 读取和写入单元格数据

  • 🧮 公式支持 - 验证和填充 Excel 公式

  • 🎨 格式设置 - 字体、边框、填充、对齐等样式

  • 📸 快照回滚 - 数据快照与版本回退

  • 📋 操作审计 - 完整的操作日志记录

📋 系统要求

  • 操作系统: Windows(依赖 Excel Desktop)

  • Python: >= 3.11

  • Excel: Microsoft Excel Desktop(已安装并激活)

🚀 快速开始

1. 安装

# 克隆仓库
git clone https://github.com/your-username/ExcelForge.git
cd ExcelForge

# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate  # Windows

# 安装依赖
pip install -e .

2. 配置

复制示例配置文件并根据需要修改:

cp config.example.yaml config.yaml

config.yaml 配置说明:

server:
  version: "0.2.0"
  actor_id: "local-mcp-client"

excel:
  visible: true              # Excel 窗口是否可见
  disable_events: true       # 禁用 Excel 事件
  disable_alerts: true       # 禁用 Excel 警告弹窗
  force_disable_macros: true # 强制禁用宏

paths:
  allowed_roots:             # 允许访问的目录(按需修改)
    - "C:/Users/YourName/Documents"
    - "D:/Work/Excel"
  snapshots_dir: "./.runtime_data/snapshots"  # 快照存储路径
  sqlite_path: "./.runtime_data/excelforge.db" # 数据库路径

limits:
  max_open_workbooks: 8      # 最大打开工作簿数
  max_read_cells: 10000      # 单次最大读取单元格数
  max_write_cells: 10000     # 单次最大写入单元格数
  operation_timeout_seconds: 30  # 操作超时时间

snapshot:
  max_per_workbook: 50       # 每个工作簿最大快照数
  max_total_size_mb: 200     # 快照总大小上限
  max_age_hours: 24          # 快照过期时间

3. 在 AI 客户端中配置

Claude Desktop

编辑 Claude 配置文件(Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "excelforge": {
      "command": "uv",
      "args": ["run", "python", "-m", "excelforge", "--config", "config.yaml", "serve"],
      "cwd": "C:/path/to/ExcelForge"
    }
  }
}

VS Code (Trae / Kiro)

在项目 .kiro/settings/mcp.json 中配置:

{
  "mcpServers": {
    "excelforge": {
      "command": "uv",
      "args": ["run", "python", "-m", "excelforge", "--config", "config.yaml", "serve"],
      "cwd": "${workspaceFolder}"
    }
  }
}

4. 启动服务

# 直接启动 MCP 服务
python -m excelforge --config config.yaml serve

🛠️ MCP 工具列表

工作簿操作

工具名称

功能描述

workbook_open_file

打开 Excel 文件

workbook_save_file

保存工作簿

workbook_close_file

关闭工作簿

workbook_create_file

创建新工作簿

workbook_get_info

获取工作簿信息

workbook_list_open

列出已打开的工作簿

工作表操作

工具名称

功能描述

sheet_create_sheet

创建新工作表

sheet_rename_sheet

重命名工作表

sheet_inspect_structure

检查工作表结构

数据操作

工具名称

功能描述

range_read_values

读取单元格数据

range_write_values

写入单元格数据

range_clear_contents

清除单元格内容

range_copy_range

复制单元格区域

公式操作

工具名称

功能描述

formula_validate_expression

验证公式表达式

formula_fill_range

在区域填充公式

格式设置

工具名称

功能描述

format_set_range_style

设置单元格样式(字体、边框、填充、对齐)

format_auto_fit_columns

自动调整列宽

快照与回滚

工具名称

功能描述

snapshot_get_stats

获取快照统计

snapshot_run_cleanup

清理过期快照

rollback_list_snapshots

列出可用快照

rollback_preview_snapshot

预览快照差异

rollback_restore_snapshot

恢复到快照版本

审计日志

工具名称

功能描述

audit_list_operations

查询操作日志

📝 使用示例

打开文件并读取数据

用户: 打开 D:/Work/data.xlsx 文件,读取 Sheet1 的 A1:D10 区域

写入数据并设置格式

用户: 在 Sheet1 的 A1 单元格写入"销售额",设置字体加粗、背景色为蓝色

创建快照以便回滚

用户: 在修改数据前创建一个快照
用户: 如果出错了,恢复到之前的快照

📁 项目结构

ExcelForge/
├── excelforge/           # 核心代码
│   ├── models/           # 数据模型
│   ├── services/         # 业务服务
│   ├── tools/            # MCP 工具定义
│   ├── persistence/      # 数据持久化
│   ├── runtime/          # Excel 运行时
│   └── utils/            # 工具函数
├── tests/                # 测试文件
├── config.yaml           # 配置文件(需自行创建)
├── config.example.yaml   # 配置示例
├── pyproject.toml        # 项目配置
└── README.md             # 本文件

🔒 安全说明

  • 路径限制: 只能访问 allowed_roots 配置的目录

  • 操作审计: 所有操作都有日志记录

  • 快照保护: 重要操作前自动创建快照,支持回滚

  • 宏禁用: 默认禁用 Excel 宏,防止恶意代码执行

📄 开源许可证

本项目采用 MIT License 开源协议。

授权范围

您可以自由地:

  • 商业使用 - 将软件用于商业目的

  • 修改 - 修改软件源代码

  • 分发 - 分发软件副本

  • 私人使用 - 私人使用软件

条件

  • 📋 保留版权声明 - 必须在软件副本中包含原始版权声明和许可证

  • 📋 声明变更 - 修改文件后需声明已更改

免责声明

本软件按"原样"提供,不提供任何明示或暗示的保证,包括但不限于适销性和适用性保证。作者不对任何索赔、损害或其他责任负责。

详见 LICENSE 文件。

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库

  2. 创建功能分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

  4. 推送到分支 (git push origin feature/AmazingFeature)

  5. 创建 Pull Request

📮 联系方式

如有问题或建议,请提交 Issue


ExcelForge - 让 AI 成为您的 Excel 助手 🚀

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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

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/derek2000139/Excel_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server