Excel MCP Server — AIに Excel の読み書き・数式・グラフ・ピボットを任せる Python 製
Microsoft Excel 本体のインストール不要で xlsx/xlsm を直接操作。セル読み書き・数式・書式・グラフ・ピボット・テーブル変換まで26ツールを openpyxl ベースで実装。stdio とリモート HTTP の2モードに対応。
- 最終確認:
- 2026-05-13
- ライセンス:
- MIT
設定方法
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio"]
}
}
}
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio"]
}
}
}
{
"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"
- macOS/Linux:
ステップ
- ページ上部のタブから使用環境(Claude Desktop / Cursor / Cline)を選択し、JSON 設定をコピー
- コピーした JSON を設定ファイル(
claude_desktop_config.jsonなど)に追記して保存 - クライアントを再起動
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モードが推奨です。
主なユースケース
- 「この売上CSVを月次ピボットテーブルにして」と頼み、`read_data_from_excel` + `create_pivot_table` で自動生成
- 「B列に合計の数式を入れて、ヘッダー行を太字に」と頼み、`apply_formula` + `format_range` で書式付き加工
- 「これらの数値から月次推移グラフを作って」と頼み、`create_chart` でビジュアル化
- 「複数の Excel ブックを統合して、シートをまとめて」と頼み、`copy_worksheet` + `copy_range` でブック横断編集
- `streamable-http` モードで起動し、複数 AI クライアントから同じ Excel をリモート編集
プラットフォーム別の注意事項
- Windows:PowerShellからの `uvx` 実行に追加設定は不要です。Microsoft Excel のインストールも不要で、openpyxl が xlsx/xlsm を直接操作します。
- :`uvx excel-mcp-server streamable-http` で起動するとリモート MCP として動作します。ポートは `FASTMCP_PORT`(デフォルト 8017)、ファイル保管場所は `EXCEL_FILES_PATH`(デフォルト `./excel_files`)で設定可能。