Skip to main content
Glama

OpenPyXL MCP Server

by jonemo

openpyxl_mcp_server

これは何ですか?

OpenPyXl Pythonライブラリの薄いラッパーで、その一部の機能をモデルコンテキストプロトコル(MCP)サーバーとして公開します。これにより、Claudeやその他のMCPクライアントはExcelファイルからデータを取得できるようになります。

関連リンク:

Related MCP server: Excel MCP Server

インストール

一般的な手順

  1. https://github.com/jonemo/openpyxl-mcp-server/releasesから実行ファイルの最新バージョンをダウンロードします。openpyxl_mcp_server は MacOS 用、 openpyxl_mcp_server.exe``openpyxl_mcp_server Windows 用です。

  2. MacOS ユーザーの場合は、ダウンロードしたファイルに実行権限を設定してください: chmod a+x /path/to/openpyxl_mcp_server ( /path/to/実際のダウンロード場所に置き換えてください)。

  3. MCPクライアントを設定します。通常はClaude Desktopを使用します。次のセクションの手順を参照してください。

Windowsは、インターネットからダウンロードしたランダムな実行ファイルを実行しないように促します。ファイルを削除しないようにするには、いくつかの場所で「保持」または「とにかく保持」をクリックする必要があります。この詳細は、使用しているブラウザとWindows Defenderの設定によって異なります。

あるいは、私の実行ファイルを信頼できない場合は、このリポジトリからソースコードを直接インストールすることもできます。以下の「ソースから」セクションをご覧ください。

Claudeデスクトップの設定

これは

  1. Claude Desktop をインストールしておきます。

  2. MCPサーバーの実行ファイルをダウンロードしておきます(前のセクションを参照)。これは、実行ファイルをダウンロードフォルダにダウンロードしていることを前提としています。他のフォルダを使用することもできますが、その場合は以下の設定でパスを調整してください。

  3. Claude Desktop で、「設定...」メニューを開きます。

  4. 設定の「開発者」セクションに移動します。

  5. 「設定を編集」をクリックします。MCPサーバーの設定ファイルがまだない場合は、このボタンをクリックすると設定ファイルが作成されます。このファイルのデフォルトの場所は以下のとおりです。

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  6. macOSでは、 claude_desktop_config.jsonに以下の行を追加してください。 <YOUR-USERNAME> macOSのユーザー名に置き換えてください。既に他のMCPサーバーを使用している場合は、JSONファイルを既存の内容にマージする必要があります。

    { "mcpServers": { "inspect_excel_xlsx_file": { "command": "/Users/<YOUR-USERNAME>/Downloads/openpyxl_mcp_server", "args": [] } } }
  7. Windowsでは、 claude_desktop_config.jsonに以下の行を追加してください。 <YOUR-USERNAME> MacOSのユーザー名に置き換えてください。既に他のMCPサーバーを使用している場合は、JSONファイルを既存の内容にマージする必要があります。

    { "mcpServers": { "inspect_excel_xlsx_file": { "command": "C:\\Users\\<YOUR-USERNAME>\\Downloads\\openpyxl_mcp_server.exe", "args": [] } } }
  8. 設定ファイルを更新した後、変更を有効にするにはClaudeアプリを再起動する必要があります。Claudeアプリのウィンドウを閉じるだけでは不十分です。Windowsの場合は、システムトレイのClaudeアイコンを右クリックし、「終了」を選択してください。macOSの場合は、Command+Qキーで終了できます。

問題が発生した場合は、次のリソースを参照してください。

他のMCPクライアントの構成

MCP サーバーをサポートする他のツールで MCP サーバーを構成する手順:

ソースから(開発用)

このセクションは、ソース コードを変更する場合、または提供された実行可能ファイルを信頼せず、ソース コードから実行したい場合にのみ適用されます。

git clone git@github.com:jonemo/openpyxl-mcp-server.git cd openpyxl-mcp-server python -m venv venv source venv/bin/activate pip install -r requirements.txt

リポジトリを/Users/jonas/repos/openpyxl_mcp_serverにクローンしたと仮定すると、構成ファイルの内容は次のように変更されるはずです。

{ "mcpServers": { "inspect_excel_xlsx_file": { "command": "/Users/jonas/repos/openpyxl_mcp_server/venv/bin/python", "args": ["/Users/jonas/repos/openpyxl_mcp_server/openpyxl_mcp_server.py"] } } }

プロンプトの例

例1

https://catalog.data.gov/dataset/near-port-air-quality-assessment-utilizing-a-mobile-monitoring-approachの「モバイル監視アプローチを利用した港湾付近の大気質評価」データセットのKimbroughEvelyn_A-5qg0_Dataset_20160624.xlsxファイルを使用します。

説明とファイルの内容をざっと見ただけでは、このデータセットがどのポートに関するものか分かりませんでした。Claudeさんに聞いてみましょう。

~/Downloads/KimbroughEvelyn_A-5qg0_Dataset_20160624.xlsx に、米国の1つ以上の港湾付近の大気汚染に関する研究に関連するデータを含むExcelファイルがあります。ファイルの内容から、この研究の対象となっている港湾を推測できますか?

https://claude.ai/share/d87f67a9-dbc0-4223-86ff-3b4c1f9fa2e7

MCP サーバーに 11 回呼び出しを行った後の応答は次のようになります。

図 2 シートの緯度と経度の座標を確認し、これを位置情報と組み合わせると、この研究はサウスカロライナ州チャールストン港に焦点を当てていると推測できます。

データセット内の座標 (およそ緯度 32.83、経度 -79.87) はチャールストン地域に対応しており、ダウンタウン、鉄道操車場、空港監視ステーションへの参照は港湾都市周辺の空気質監視と一致しています。

このデータセットには、チャールストン港付近で収集された大気汚染測定値 (PM2.5 および PM10) と、港の場所と背景/参照サイトとの比較が含まれているようです。

例2:

私は10戸の小さな住宅所有者組合の会計係です。会計処理はGoogleスプレッドシートのExcelファイルで行っています。ファイルは9つのシートで構成されており、取引一覧、会員の会費口座、四半期報告書などの項目ごとに9つのシートがあります。

ファイルには非公開情報が含まれているため、この例ではプロンプト、いくつかの重要な「洞察」、および最終的な回答のみを示しています。

~/Downloads/CASH FLOW 2024.xlsx は、私の住宅所有者組合の財務状況です。2024年にスプリンクラーシステムのメンテナンス費用はいくら請求されましたか?この合計額にはいくつの取引が関係していましたか?それぞれの取引はいつ発生しましたか?

[...]

「取引」シートには、おそらく詳細な経費記録が含まれているようです。このシートで「スプリンクラー」を検索して、関連する取引を見つけてみましょう。

[...]

2024 年の概要シートを調べて、スプリンクラーのメンテナンスがカテゴリとしてリストされているかどうかを確認しましょう。

[...]

素晴らしい!YEAR 2024シートの24行目に「スプリンクラーメンテナンス」というカテゴリがあるのを見つけました。では、スプリンクラーメンテナンスに関連する実際の取引を確認してみましょう。

[...]

トランザクションシート全体で「スプリンクラーメンテナンス」を具体的に検索して、さらに多くのエントリを確認してみましょう。

[...]

「CASH FLOW 2024.xlsx」ファイルにある HOA の財務記録を分析した結果、2024 年のスプリンクラー システムのメンテナンス費用について次のことがわかりました。

2024年のスプリンクラーシステムのメンテナンスに請求される合計金額:565.00ドル 取引件数:1件 取引日:2024年9月9日

この費用は「取引」シートに単一の取引として表示されています。スプレッドシートには、「2024年度実績対計画」シートに、スプリンクラーメンテナンスの年間予算額750ドルが記載されており、「請求書はまだ受け取っていません」という注記が付いています(現在請求書が1件しか記録されていないため、この注記は古い可能性があります)。スプレッドシートから、HOAのスプリンクラーメンテナンス費用やその他の財務情報に関するその他の側面を分析したいとお考えですか?

本当の話です。うちのスプリンクラー屋さんは、春の1回の訪問料金しか請求してくれず、その年の後半の作業料金の請求書を送るのを忘れていました。ご心配なく。支払いは済ませましたが、2025年に予約が入っています。

例3: フォームへの記入

興味深いExcelワークブックを探してGoogle検索したところ、カリフォルニア州天然資源局のDPR 973フォームが見つかりました。https: //www.parks.ca.gov/pages/22374/files/Annual%20Report%20DPR973.xlsこれは、カリフォルニア州立公園を支援する「団体」が記入するフォームのようです。念のため言っておきますが、私はそのような団体に所属していません。しかし、このフォームを.xls形式から.xlsx形式に変換し、Claudeさんに記入を手伝ってもらいました。

カリフォルニア州立公園の「協力団体」で働いているため、DPR973を提出する必要があります。記入が必要なフォームは、こちらのExcelシート(/Users/jonas/Downloads/Annual Report DPR973.xlsx)です。私たちは書籍の出版を通じて州立公園を支援し、薪の販売で収入を得ています。ワークブックのどのセルに記入すればよいでしょうか?

ツールを 11 回呼び出した後、応答は正しいように見えますが、Claude が残りのシートをまったく確認しなかった理由はわかりません。

DPR973 フォームを調べた結果に基づいて、書籍の出版や薪の販売を行う協力団体のセルのどこに記入する必要があるかについてのガイダンスを提供します。

  1. ページ1 :

    • 団体情報(パートI)に団体の詳細(名称、住所、連絡先)を記入する必要があります。

    • セルC4の年を現在の報告年度に更新します。

  1. ページ 2 (A) - ここで販売情報を記録します。

  • 書籍の販売(解釈的/教育的とみなされるもの)の場合:

* 行 1 (セル F22): 総売上 - 材料費 (出版した書籍) * 2行目(セルF23): 返品または返金 * 3行目(セルF24):帳簿価格
  • 薪の販売について:

* 行 23 (セル F51): 総売上 - 薪 * 24行目(セルF52):返金/返品/破損した薪 * 行25(セルF53):薪の売上原価
  • フォームは、セルF25(帳簿利益)、F54(薪利益)、およびF58(純利益合計)の合計を自動的に計算します。

  1. ページ3 - 財務概要:

  • 売上高はページ2(A)から自動的に次のページに入力されます。

* 6行目(セルF11):総売上高 * 7行目(セルF12):商品/サービスの合計費用 + 返品/返金 * 8行目(セルH13):すべての材料とサービスの純利益
  • 以下を手動で入力する必要があります:

* 寄付/貢献(行 1、セル F6) * 該当する場合の会費(行 4、セル H9) * 利息/投資収入(該当する場合)(行 5、セル H10) * 該当する場合の募金情報(9~11行目) * 該当する場合のその他の収入(行 12、セル H17)
  • 経費の場合:

* 15行目(セルF21):カリフォルニア州立公園への直接助成金 * 16行目(セルF22):通訳プログラム支援費 * 行 17 (セル F23): その他の CSP プログラムのサポート * 行 19 (セル H25): 管理費および一般経費
  • 資産/負債の場合:

* 22行目(セルF30): 総資産 * 行23(セルH31):負債合計 * 24行目~26行目(セルF32~F34): 制限タイプ別の純資産
  1. ページ 4 (完全には調査されていませんが、次の内容が含まれている可能性があります):

  • 追加のメモ、説明、署名

特定の活動(書籍の出版や薪の販売)については、次のことを正確に完了することに重点を置いてください。

  1. 書籍販売のための2ページ目(A)の解説・教育販売セクション

  2. 薪の収入については、2ページ目(A)の薪販売セクションをご覧ください。

  3. 完全な財務概要は3ページをご覧ください

特定のセクションについてさらに詳しく説明してもらいたいですか?

例4

これは、 https://catalog.data.gov/dataset/inventory-of-owned-and-leased-properties-iolpで入手可能な Inventory of Owned and Leased Properties (IOLP) データセットのファイル2025-3-7-iolp-buildings.xlsxを使用します。ここ数週間のニュースをフォローしていれば、これが現在 data.gov で最も人気のあるデータセットである理由がわかるでしょう。

プロンプト:

「/Users/jonas/Downloads/2025-3-7-iolp-buildings.xlsx」の Excel ファイルを使用する: ユタ州で面積が最大の連邦政府の建物は何ですか?

このファイルとプロンプトをテストケースとして繰り返し使用したところ、さまざまな結果が得られました。

  • コンテキスト制限に達したため、応答なしに終了したチャット。これは、クロードが一度に複数の行をクエリするループに陥ったときに発生しました。

  • クロードが途中で「誤った仮定」をしたため、不正解が出ました。例えばこのチャットでは、最大の建物はソルトレイクシティにあると判断され、スプレッドシートで任意の用語を検索し始めます。

  • 正解、たとえばこのチャット: オグデンの IRS サービス センターは、リストにあるユタ州最大の連邦政府所有の建物です。

脚注:IRSサービスセンターはリスト上で最大の建物であるという点で正しい。「バンブルハイブ」、別名「ユタデータセンター」、別名「インテリジェンスコミュニティ包括的国家サイバーセキュリティイニシアチブデータセンター」はほぼ間違いなくそれよりも大きいが、ファイルには含まれていない。

貢献と開発

スタンドアロン実行ファイルの構築

Python のインストールを必要としないスタンドアロン実行ファイルを作成するには:

  1. すべての依存関係がインストールされていることを確認してください。

    pip install -r requirements.txt pip install -r requirements-dev.txt
  2. 実行ファイルをビルドします。

    pyinstaller openpyxl_mcp_server.spec

実行ファイルはdistディレクトリに作成されます。Windowsではopenpyxl_mcp_server.exe 、macOSではopenpyxl_mcp_serverという名前になります。

注: macOSでビルドする場合、実行ファイルを正しく動作させるために署名が必要になる場合があります。署名は次のように行います。

codesign --force --deep --sign - dist/openpyxl_mcp_server

MCP サーバーディレクトリ

openpyxl-mcp-server は現在、次の MCP サーバー ディレクトリにリストされています。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonemo/openpyxl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server