excel-mcp-server 評価:Excel をインストールせずに AI エージェントへ渡す MCP サーバー
A Model Context Protocol server for Excel file manipulation
ひと目でわかる
- これは何?
- Microsoft Excel を必要とせず、Python だけでワークブックを読み書きする MCP サーバー。stdio と HTTP 系でファイルパスの扱いが変わる点が導入判断の分かれ目になる。
- 誰に向いている?
- Excel の入ったディレクトリをサーバー側に固定できるチーム、つまり社内ファイルサーバー上の共有フォルダを EXCEL_FILES_PATH に指定して複数のクライアントから使いたい場合に向く。逆に、ユーザーごとに任意のローカルパスを開かせたい、あるいは Excel のマクロや VBA が絡む処理を期待する使い方には向かない。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 157 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Excel のインストールを前提にしない MCP サーバーという位置づけ
このプロジェクトが解く問題は、AI エージェントに Excel ファイルを触らせたいが、エージェントが動く環境に Microsoft Excel を入れたくない、あるいは入れられないという状況である。README の冒頭は「manipulate Excel files without needing Microsoft Excel installed」と明言しており、xlsx の読み書きを Python 側で完結させる設計だと読み取れる。対象は、MCP 対応クライアント(設定例には Cursor の導線が置かれている)から表計算ファイルを生成、更新したい開発者や、定型のレポートファイルをエージェント経由で組み立てたい業務担当者である。Excel 本体を起動する方式ではないので、COM オートメーションや VBA マクロの実行は対象外になる。ここは用途の境界として最初に押さえておきたい。
stdio と streamable HTTP でファイルパスの渡し方が反転する
README で最も実務に響くのが、トランスポートごとにファイルパスの扱いが変わる点である。stdio の場合、パスはツール呼び出しごとにクライアントから渡され、サーバー側で EXCEL_FILES_PATH を設定する必要はない。一方、SSE と streamable HTTP では EXCEL_FILES_PATH をサーバー側で必ず設定し、ツールの filepath はそのディレクトリからの相対パス(例として reports/q1.xlsx が示されている)でなければならない。絶対パスとディレクトリトラバーサルは拒否される。つまり HTTP 系で動かすという選択は、そのままサンドボックスの選択でもある。サーバーが触れる範囲を 1 ディレクトリに閉じ込められる代わりに、複数のブックをまたぐ作業では事前にファイル配置を設計しておく必要がある。EXCEL_FILES_PATH を未設定にした場合の既定値は ./excel_files で、ここに何が置かれるかを把握しないまま起動すると、意図しない場所にファイルが生まれる。
起動コマンドとクライアント設定の実際
配布は PyPI 経由で、README の例はすべて uvx を使う。ローカルで使うなら uvx excel-mcp-server stdio を実行し、クライアント設定の mcpServers に command を uvx、args を ["excel-mcp-server", "stdio"] として登録する。リモート接続向けとされるのは streamable HTTP で、uvx excel-mcp-server streamable-http を起動し、クライアント側は url に http://localhost:8000/mcp を指定する。SSE も uvx excel-mcp-server sse として残っているが、README では deprecated と明記され、接続先は http://localhost:8000/sse である。ポートを変えたい場合は FASTMCP_PORT を設定する。README の例では 8007 を指定しており、未設定時の既定は 8017 と書かれている。環境変数の与え方は OS で書き分ける必要があり、Windows PowerShell では $env:EXCEL_FILES_PATH="E:\MyExcelFiles" のように、Linux/macOS では EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8007 uvx excel-mcp-server streamable-http のようにコマンド前置で渡す。README 内の HTTP 系の設定例は 8000 番ポートの URL を示しており、既定ポートの記述と並べるとどちらを正とするかは読み手の判断になる。ここは導入時に自分の環境で確かめるべき箇所だ。
ツール群の全容は README ではなく TOOLS.md にある
README の Features には、ワークブックとワークシートの作成、読み取り、更新、数式、書式設定、グラフ、ピボットテーブル、Excel テーブル、データ検証、条件付き書式、シートのコピー、名前変更、削除が並ぶ。ただし README 自身が「See TOOLS.md for complete documentation of all available tools」と述べており、個々のツール名、引数、戻り値はこの記事の材料には含まれていない。したがって「グラフが作れる」以上の粒度、たとえば散布図の系列をどう指定するか、ピボットテーブルの集計フィールドをどう渡すかは、TOOLS.md を読まない限り判断できない。採用検討の段階で機能一覧だけを見て決めると、実際の呼び出し形式が自分のエージェントの想定と噛み合わないリスクが残る。ここは README の記述から確認できる範囲の限界として明示しておく。
HTTP 系で運用するときに残る制約
EXCEL_FILES_PATH による制限は利点であると同時に失敗モードでもある。エージェントが絶対パスを渡してきた場合、サーバーはそれを拒否する。ユーザーが「デスクトップのこのファイルを開いて」と指示する類の使い方は、HTTP 系では成立しない。回避するなら対象ファイルを EXCEL_FILES_PATH 配下へ移動させる運用が必要で、これはエージェント側のプロンプトでは解決できない。もう一点、README には同時実行やファイルロックに関する記述が見当たらない。同じ xlsx に対して複数のセッションから書き込みが走ったときにどう振る舞うかは、この材料からは確認できない。共有ディレクトリを EXCEL_FILES_PATH に据えて複数人で使う構成を考えるなら、この点は自分で検証するしかない。SSE が deprecated とされている以上、新規に組むなら streamable HTTP か stdio の二択になり、リモート共有を選ぶほどこの制約が効いてくる。
代替手段との違いはどこにあるか
同じ「エージェントに表計算を扱わせる」目的では、Python の openpyxl や pandas をエージェントのツール関数として直接ラップする方法がある。この場合、ファイルパスの検証、ツールのスキーマ定義、トランスポートの実装を自分で書くことになる。excel-mcp-server はその部分を MCP のプロトコルに沿って既成のサーバーとして提供し、stdio、SSE、streamable HTTP の 3 種類の接続方法を切り替えられる。差が出るのは主に運用面で、HTTP 系を選べば EXCEL_FILES_PATH によるパス制限とポート設定が最初から入っている。逆に、既存の Python スクリプトがすでにドメイン固有の前処理を持っているなら、それを MCP ツールに包み直すほうが素直な場合もある。汎用の Excel 操作をそのまま渡したいのか、業務固有の変換を挟みたいのかで判断が分かれる。
ライセンスと更新の間隔
ライセンスは MIT で、リポジトリの LICENSE ファイルに全文がある。MIT は商用利用を含めて寛容な条件だが、無保証である点は他の寛容ライセンスと変わらない。法的な判断はここで下せる話ではないので、自組織のポリシーに照らして確認してほしい。更新の状況はリリース履歴から読める。v0.1.6 が 2025-08-01、v0.1.7 が 2025-08-06 と 5 日間隔で続き、v0.1.8 は 2026-04-12 付で、その前から約 8 か月空いている。バージョン番号は 0.1 系のままで、API の安定を約束する段階には見えない。MCP の仕様自体が動く領域であり、SSE が deprecated に転じたようにトランスポートの扱いも変わりうる。アップグレード時はリリースノートと TOOLS.md の差分を確認する習慣が必要で、これは 0.1 系を本番の共有基盤に置く場合のコストとして見積もっておきたい。
編集部の結論
Excel の入ったディレクトリをサーバー側に固定できるチーム、つまり社内ファイルサーバー上の共有フォルダを EXCEL_FILES_PATH に指定して複数のクライアントから使いたい場合に向く。逆に、ユーザーごとに任意のローカルパスを開かせたい、あるいは Excel のマクロや VBA が絡む処理を期待する使い方には向かない。導入前に確認すべきは 3 点で、第一に stdio と streamable HTTP のどちらで運用するか(前者はパスをクライアントが毎回渡し、後者は EXCEL_FILES_PATH 配下の相対パスしか通らない)、第二に FASTMCP_PORT の既定値が 8017 であること、第三に TOOLS.md に列挙されたツール群が自分の用途を覆っているかどうか。README は機能一覧を示すが、各ツールの引数や戻り値の詳細は TOOLS.md 側にあるため、そこを読まずに採用を決めるのは早い。
コミュニティノート