Excel MCP Server — AIに Excel の読み書き・数式・グラフ・ピボットを任せる Python 製

シェア

Microsoft Excel 本体のインストール不要で xlsx/xlsm を直接操作。セル読み書き・数式・書式・グラフ・ピボット・テーブル変換まで26ツールを openpyxl ベースで実装。stdio とリモート HTTP の2モードに対応。

データ分析・BIExcel表計算openpyxlxlsxピボットテーブルデータ分析
最終確認:
2026-05-13
ライセンス:
MIT

設定方法

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

概要

Excel MCP Server は Haris Musa 氏が公開する Python 製 MCP サーバーです(PyPI: excel-mcp-server v0.1.8 / GitHub: haris-musa/excel-mcp-server / MIT ライセンス)。Microsoft Excel 本体のインストールは不要で、openpyxl を用いて xlsx / xlsm ファイルを直接操作します。

Claude Desktop / Claude Code / Cursor / Cline などから「このデータからピボットテーブルを作って」「B列に合計式を入れて書式を整えて」のような自然言語で Excel を扱えるようになります。stdio モードでローカル起動するほか、streamable-http モードでリモート MCP としても動作するため、複数の AI クライアントから同じ Excel ファイルを共同編集することもできます。

導入手順

前提条件

  • uv がインストール済みであること(推奨 / uvx コマンドを利用)
    • macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | sh
    • Windows: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

ステップ

  1. ページ上部のタブから使用環境(Claude Desktop / Cursor / Cline)を選択し、JSON 設定をコピー
  2. コピーした JSON を設定ファイル(claude_desktop_config.json など)に追記して保存
  3. クライアントを再起動

uvx が PyPI から excel-mcp-server を自動取得・起動します。

リモート起動する場合(streamable-http モード)

EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8017 uvx excel-mcp-server streamable-http

起動後、HTTP transport 対応クライアントから http://<host>:8017/ で接続できます。

使い方の例

「sales.xlsx の Sheet1 を読み込んで、月次の売上ピボットテーブルを作って」

「empty.xlsx を新規作成して、Sheet1 にこのデータを書き込み、B列に SUM 式を入れて、ヘッダー行を太字+背景色つきにして」

「report.xlsx の数値からグラフを作って、別シートに貼って」

「複数のブック(jan.xlsx / feb.xlsx / mar.xlsx)の Sheet1 を1つの統合ブックにまとめて」

提供されるツール

公式リポジトリ(haris-musa/excel-mcp-server)の TOOLS.md から逐語抽出した 25 ツールを提供します。

ワークブック / シート操作

  • create_workbook — 指定パスに新規 Excel ファイルを作成
  • create_worksheet — 既存ブックに新規シートを追加
  • get_workbook_metadata — ブック構造とシート情報を取得
  • copy_worksheet — 同一ファイル内でシートを複製
  • delete_worksheet — シートを削除
  • rename_worksheet — シート名を変更

データ読み書き

  • write_data_to_excel — データをセル範囲に書き込み
  • read_data_from_excel — セル範囲からデータを抽出

数式

  • apply_formula — 指定セルに Excel 数式を適用
  • validate_formula_syntax — 数式の文法を実行せずに検証

書式・セル結合

  • format_range — フォント・色・罫線・配置などのスタイル適用
  • merge_cells / unmerge_cells / get_merged_cells — セル結合の操作と参照

グラフ・ピボット・テーブル

  • create_chart — データ範囲からグラフを生成
  • create_pivot_table — フィールド指定でピボットテーブルを構築
  • create_table — セル範囲をネイティブ Excel テーブルに変換

範囲操作

  • copy_range — セル範囲を別の位置にコピー
  • delete_range — セルを削除(方向シフト指定可)
  • validate_excel_range — 範囲の存在と形式の妥当性を確認

バリデーション

  • get_data_validation_info — 入力規則とその制約を取得

行・列操作

  • insert_rows / insert_columns — 指定位置に空行・空列を挿入
  • delete_sheet_rows / delete_sheet_columns — 行・列を削除

注意事項

  • Python 3.10 以上が必要です(pyproject.toml で requires-python = ">=3.10" を明記)。
  • streamable-http モード以外でも EXCEL_FILES_PATH を設定するとファイルの保存場所を指定できます。デフォルトは実行ディレクトリの ./excel_files
  • 主要な依存パッケージは openpyxl / fastmcp / mcp[cli] / typer。インストールは uvx 経由なら自動で解決されます。
  • SSE transport は公式に deprecated されており、リモート利用時は streamable-http モードが推奨です。

主なユースケース

  1. 「この売上CSVを月次ピボットテーブルにして」と頼み、`read_data_from_excel` + `create_pivot_table` で自動生成
  2. 「B列に合計の数式を入れて、ヘッダー行を太字に」と頼み、`apply_formula` + `format_range` で書式付き加工
  3. 「これらの数値から月次推移グラフを作って」と頼み、`create_chart` でビジュアル化
  4. 「複数の Excel ブックを統合して、シートをまとめて」と頼み、`copy_worksheet` + `copy_range` でブック横断編集
  5. `streamable-http` モードで起動し、複数 AI クライアントから同じ Excel をリモート編集

プラットフォーム別の注意事項

  • WindowsPowerShellからの `uvx` 実行に追加設定は不要です。Microsoft Excel のインストールも不要で、openpyxl が xlsx/xlsm を直接操作します。
  • `uvx excel-mcp-server streamable-http` で起動するとリモート MCP として動作します。ポートは `FASTMCP_PORT`(デフォルト 8017)、ファイル保管場所は `EXCEL_FILES_PATH`(デフォルト `./excel_files`)で設定可能。