Excel操作服务器

一个基于Python的Excel操作服务器,提供创建、读取、修改Excel文件的功能,适用于自动化办公和数据管理场景。

  • by SuperPyonchiX
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 superpyonchix/excel_mcp_server_python

使用说明

Excel MCP Server (Python版 - FastMCP使用)

AI代理Excel自由操作Model Context Protocol (MCP) 服务器Python是安装版。FastMCP使用框架简单易用API中描述的相应参数的值。

机能

这个MCP服务器包括:Excel提供操作功能:

使用工作簿工作表

  • create_workbook -新的Excel创建工作簿
  • get_workbook_info -获取工作簿详细信息
  • add_worksheet -添加工作表

单元格区域操作

  • set_cell_value -为单元格设置值
  • get_cell_value -获取单元格值
  • set_range_values -在区域中设置二维数组数据
  • get_range_values -获取范围数据

书式设定

  • format_cell -设置单元格格式(字体、填充和格线)

数式・计算

  • add_formula -将公式添加到单元格

数据操作

  • find_data -在工作表中查找数据

出力

  • export_to_csv -打开工作表CSV导出到文件

必要条件

  • Python 3.10以上
  • uv (建议)或pip

快速启动

uv使用(推奨)

  1. uv安装 (如果尚未):

    pip install uv
    
  2. 开发环境设置:

    uv sync --dev
    

    或者,使用批处理文件(Windows):

    setup-dev.bat
    
  3. 启动服务器:

    uv run excel-mcp-server
    

    或者,使用批处理文件(Windows):

    start-server.bat
    
  4. 运行测试:

    uv run python -m pytest
    

传统pip使用

  1. 创建虚拟环境并安装依赖关系:

    python -m venv venv
    # Windows
    venv\Scripts\activate
    # Linux/Mac
    source venv/bin/activate
    
    pip install -r requirements.txt
    
  2. 启动服务器:

    python src/excel_mcp_server/index.py
    

开发命令(使用uv)

# 仮想環境に入る
uv shell

# サーバー起動
uv run excel-mcp-server

# テスト実行
uv run python -m pytest

# コードフォーマット
uv run black src/

# リンター実行
uv run ruff src/

# 型チェック
uv run mypy src/

# 開発用依存関係を含む同期
uv sync --dev

# プロダクション用のみ同期
uv sync

MCP客户端使用

FastMCP的规格化距离的幂函数MCP可以从客户端调用:

# 新しいワークブックを作成
{
  "tool": "create_workbook",
  "arguments": {
    "file_path": "C:/path/to/workbook.xlsx"
  }
}

# ワークシートを追加
{
  "tool": "add_worksheet", 
  "arguments": {
    "file_path": "C:/path/to/workbook.xlsx",
    "sheet_name": "Sheet1"
  }
}

# セルに値を設定
{
  "tool": "set_cell_value",
  "arguments": {
    "file_path": "C:/path/to/workbook.xlsx",
    "sheet_name": "Sheet1",
    "cell": "A1",
    "value": "Hello, Excel!"
  }
}

# 範囲にデータを設定
{
  "tool": "set_range_values",
  "arguments": {
    "file_path": "C:/path/to/workbook.xlsx",
    "sheet_name": "Sheet1",
    "start_cell": "A1",
    "values": [
      ["名前", "年齢", "職業"],
      ["田中", 30, "エンジニア"],
      ["佐藤", 25, "デザイナー"]
    ]
  }
}

# セルの書式を設定
{
  "tool": "format_cell",
  "arguments": {
    "file_path": "C:/path/to/workbook.xlsx",
    "sheet_name": "Sheet1",
    "cell": "A1",
    "format_spec": {
      "font": {
        "bold": true,
        "size": 14,
        "color": "FF0000FF"
      },
      "fill": {
        "type": "pattern",
        "pattern": "solid",
        "fgColor": "FFFF00"
      }
    }
  }
}

## 開発

### テストの実行

```bash
pytest

代码格式

black src/ test/

模具检查

mypy src/

文件结构

excel_mcp_server_python/
├── src/
│   ├── excel_mcp_server/    # メインパッケージ
│   │   ├── __init__.py      # パッケージ初期化
│   │   └── main.py          # メインサーバー実装
│   └── main.py              # 従来形式の実行ファイル(互換性用)
├── test/                    # テストファイル
│   ├── test_uv_setup.py     # uvセットアップテスト
│   ├── excel_integration_test.py  # Excel統合テスト
│   ├── test_tools_list.py   # ツールリストテスト
│   └── output/              # テスト出力ファイル
├── scripts/                 # ユーティリティスクリプト
├── pyproject.toml          # プロジェクト設定(uv対応)
├── uv.lock                 # uvロックファイル
├── requirements.txt        # 従来の依存関係
├── setup-dev.bat          # 開発環境セットアップ(Windows)
├── start-server.bat       # サーバー起動(Windows)
└── README.md              # このファイル

uv(推荐)的优点

  • 高速: Rust的包装管理器速度非常快
  • 信頼性:通过锁定文件进行可靠的依赖关系管理
  • 简单的:简化项目管理
  • 互换性: pip的兼容性,更好的用户体验

技术仕样

  • 言语:Python 3.10+
  • 包管理器: uv(建议)或pip
  • MCP框架结构:FastMCP
  • Excel程序库:openpyxl
  • 数据处理:熊猫
  • 开发工具:pytest,黑色,ruff,mypy

TypeScript版本差异

这个Python版本为TypeScript提供与版本相同的功能,但有以下区别:

  • 言语: Python 3.8+使用
  • MCP框架结构: FastMCP(基于简单的解码器)
  • Excel程序库: openpyxl使用(TypeScript版为ExcelJS)
  • 非同期処理:不需要(FastMCP内部处理)

FastMCP优点

  • 简单的:在基于解码器的基础上轻松定义工具
  • 自动架构生成:自动从函数文档生成模式
  • 型安全: Python利用标准类型提示
  • 軽量:以最低依赖关系运行

许可证

国际协调委员会

貢献

欢迎普尔请求和伊修的报告。