Excel文件解析服务器

一个支持读取、写入和分析Excel文件的MCP服务器,具备公式感知解析功能。

  • by av-volgin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 av-volgin/excel-mcp

使用说明

excel mcp

一个MCP服务器,用于通过公式感知解析读取、写入和分析Excel文件。

与仅读取单元格值的其他Excel MCP服务器不同, excel mcp 理解公式——它可以提取公式文本,评估公式结果,并验证计算值。它还提供具有批处理操作、模板和验证的结构化编写。

由...驱动 openpyxl 用于可靠的数据操作和 形式化者 用于公式分析。

特性

  • 批量数据读取 --将工作表读取为具有自动标题检测、分页和总行跳转功能的表
  • 单元级访问 --按坐标读取特定单元格或范围
  • 公式抽取 --获取公式文本、AST树和单元格依赖关系(使用Formualier)
  • 结构化写作 --创建工作簿、批量写入数据、添加公式、格式化单元格、创建表
  • 模板模式 --复制.xlsx模板,保留格式和公式,然后填充数据
  • 验证 --重新打开写入文件并验证行数、点值
  • 数据验证 --将Excel值与预期值(例如数据库总计)进行比较
  • 条件化格式 --单元格是规则、色阶、数据条
  • 多个传输 --stdio(默认,用于Claude Code/Coursor)和可流式传输的http(用于Docker Sidecar)
  • 优雅降级 --仅与openpyxl配合使用;Formualier添加了公式智能

安装

# Basic (reader + writer, openpyxl only)
pip install excel-mcp

# With formula analysis (+ Formualizer)
pip install "excel-mcp[analyzer]"

# Everything
pip install "excel-mcp[all]"

# Or run directly with uvx
uvx excel-mcp

配置

克劳德代码/克劳德桌面/光标(stdio)

添加到您的 .mcp.json 或MCP设置:

{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": ["excel-mcp"]
    }
  }
}

在Formalizer的支持下:

{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": ["--from", "excel-mcp[all]", "excel-mcp"]
    }
  }
}

Docker(可流式传输http)

预构建图像发布到 GitHub容器注册表 每次向main推进。

# docker-compose.yml
services:
  mcp-excel:
    image: ghcr.io/av-volgin/excel-mcp:latest
    container_name: mcp-excel
    mem_limit: 256m
    restart: unless-stopped
    volumes:
      - /path/to/excel/files:/data:ro

MCP端点位于 http://mcp-excel:8000/mcp (POST)。 健康检查端点: http://mcp-excel:8000/healthz (获取)。 内置健康检查,暴露端口8000。

要更新,请执行以下操作: docker compose pull mcp-excel && docker compose up -d mcp-excel

工具组

您只能启用所需的工具组:

excel-mcp --tools reader      # 3 tools: list_sheets, read_sheet, read_cell_range
excel-mcp --tools writer      # 8 tools: create, write, format, tables, templates, verify
excel-mcp --tools analyzer    # 3 tools: get_formulas, get_cell_value, validate_totals
excel-mcp --tools all         # all 14 tools (default)

工具

阅读器(3个工具)

工具 说明
list_sheets 列出所有带有元数据(尺寸、表格)的工作表
read_sheet 将工作表读取为具有自动标题、分页、总行跳过的表格
read_cell_range 从特定范围读取原始单元格值

作家(8工具)

工具 说明
create_workbook 使用命名图纸创建新的.xlsx文件
write_data 将二维数据数组写入一个范围(批处理,而不是逐个单元格)
write_formula 将公式写入具有可选数字格式的单元格
format_range 应用样式(字体、填充、边框、对齐方式、数字格式)
create_table 创建一个带有可选总计行的Excel表
add_conditional_format 添加条件格式(单元格是、色阶、数据栏)
open_template 复制.xlsx模板,保留格式和公式
verify_workbook 重新打开文件并验证行数、点值

分析仪(3个工具)

工具 说明
get_formulas 使用可选的AST解析(形式化器)提取公式
get_cell_value 按公式信息的坐标读取单个单元格
validate_totals 将单元格值与预期值进行比较(0.01公差)

CLI选项

excel-mcp [OPTIONS]

Options:
  --tools {reader,writer,analyzer,all}   Tool groups to register (default: all)
  --transport {stdio,streamable-http}    Transport protocol (default: stdio)
  --host HOST                            Host to bind for HTTP (default: 127.0.0.1)
  --port PORT                            Port for HTTP transport (default: 8000)
  --no-dns-rebinding-protection          Disable DNS rebinding protection (Docker/proxy)

建筑

┌──────────────────────────────────────────────────────┐
│                excel-mcp (MCP Server)                │
│                                                      │
│  ┌─────────────┐ ┌──────────────┐ ┌──────────────┐  │
│  │   reader     │ │   writer     │ │  analyzer    │  │
│  │  (openpyxl)  │ │  (openpyxl)  │ │ (Formualizer │  │
│  │              │ │              │ │  + openpyxl   │  │
│  │• list_sheets │ │• create_wb   │ │  fallback)   │  │
│  │• read_sheet  │ │• write_data  │ │              │  │
│  │• read_range  │ │• write_formula│ │• get_formulas│  │
│  │              │ │• format_range│ │• get_cell_val│  │
│  │  Bulk data   │ │• create_table│ │• validate    │  │
│  │  extraction  │ │• cond_format │ │              │  │
│  │              │ │• template    │ │  Formula-    │  │
│  │              │ │• verify      │ │  aware       │  │
│  └─────────────┘ └──────────────┘ └──────────────┘  │
│                                                      │
│  Transport: stdio | streamable-http (/mcp)           │
│  Health:    /healthz (GET, HTTP mode only)            │
└──────────────────────────────────────────────────────┘

发展

git clone https://github.com/avolgin/excel-mcp.git
cd excel-mcp
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest          # 50 tests
ruff check src/

许可证

麻省理工学院——见 许可证.