mcpField
M
mcp-server-xlwings

mcp-server-xlwings

ローカル
github.com/geniuskey生産性135 週間前に更新

mcp-server-xlwings について

mcp-server-xlwingsは、xlwings COMを介して実行中のExcelを操作し、DRM保護やロック中のファイルにも対応します。ライブデータや数式、書式、VBAマクロを扱うExcelユーザー向けです。

主な機能

  1. 01アクティブなブックと選択範囲の読み取り
  2. 02セル範囲の読み書き
  3. 03VBAマクロの実行
  4. 04数式と計算結果の確認
  5. 05ブックとシートの管理
  6. 06書式設定とテキスト検索

活用シーン

  1. 01選択中の表データの要約
  2. 02数式を更新して計算結果を取得
  3. 03既存のVBAマクロの実行
  4. 04Excelで開けるブックの編集や書式設定

MCP 対応

ブック、セル、シート、数式、マクロ、書式を操作するExcel自動化ツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"xlwings": {
"command": "uvx",
"args": [
"mcp-server-xlwings"
]
}
}
}
起動コマンドuvx mcp-server-xlwings

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-server-xlwings0.4.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-server-xlwings

xlwings COM を介して Excel を自動化する MCP サーバーです。DRM で保護されたファイルにも対応しています。

PyPI License: MIT Python 3.10+

xlwings を使う理由

openpyxl や pandas などのライブラリは、.xlsx ファイルをディスクから直接読み込みます。次のような場合には、これでは対応できません。

  • DRM/ファイルレベルの暗号化が適用されている(企業環境では一般的です)
  • 実行中の Excel セッション(数式、マクロ、アドイン)とやり取りする必要がある
  • ファイルが別のプロセスによってロックされている

mcp-server-xlwings はCOM 自動化を使用して、実行中の Excel プロセスと通信します。そのため、DRM で保護されたドキュメントを含め、Excel 自体で開けるファイルならどれでも読み書きできます。

xlwings だけで実現できる機能

これらの機能は、openpyxl のようなファイルベースのライブラリでは実現できません。

  • ユーザーの現在の選択範囲を読み取る — ユーザーが見ている内容をそのまま確認できます
  • アクティブなブックを取得する — ファイルパスを指定する必要はありません
  • VBA マクロを実行する — 既存のマクロを実行し、戻り値を取得できます
  • 数式の計算結果をリアルタイムで取得する — 数式を設定して、計算結果をすぐに取得できます
  • 再計算を強制する — Excel にすべての数式を再計算させます

インストール

uvx を使用する場合(推奨)
uvx mcp-server-xlwings
pip を使用する場合
pip install mcp-server-xlwings

設定

Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "xlwings": {
      "command": "uvx",
      "args": ["mcp-server-xlwings"]
    }
  }
}
Claude Code
claude mcp add xlwings -- uvx mcp-server-xlwings
Roo Code(VS Code)

Roo Code の MCP 設定に追加するか、<project-root>/.roo/mcp.json を作成します。

{
  "mcpServers": {
    "xlwings": {
      "command": "uvx",
      "args": ["mcp-server-xlwings"]
    }
  }
}
Cursor

%USERPROFILE%\.cursor\mcp.json に追加します。

{
  "mcpServers": {
    "xlwings": {
      "command": "uvx",
      "args": ["mcp-server-xlwings"]
    }
  }
}
Windsurf

%USERPROFILE%\.codeium\windsurf\mcp_config.json に追加します。

{
  "mcpServers": {
    "xlwings": {
      "command": "uvx",
      "args": ["mcp-server-xlwings"]
    }
  }
}
Continue(VS Code)

~/.continue/config.yaml に追加します。

mcpServers:
  - name: xlwings
    command: uvx
    args:
      - mcp-server-xlwings

利用可能なツール(11)

workbook を省略した場合、すべてのツールはデフォルトでアクティブなブックを対象にします。

ツール説明
get_active_workbookアクティブなブックの情報、シート、現在の選択範囲とそのデータを取得します
manage_workbooksブックの一覧表示、オープン、保存、クローズ、再計算を行います
read_datamerge_info、header_row、sheet="*" による一括読み取り、detail モードを使って範囲を読み取ります
write_data2 次元配列(data)または単一セルの数式(formula)を書き込みます
manage_sheetsシートの一覧表示、追加、削除、名前変更、コピー、有効化を行います。行と列の挿入・削除も可能です
find_replaceテキストを検索し、必要に応じて置換します
format_range書式(太字、斜体、色、罫線、配置、表示形式など)を適用します
run_macroVBA マクロを実行し、戻り値を取得します
get_formulas範囲内のすべての数式を、必要に応じて計算結果とともに取得します
get_cell_styles範囲内のセルの書式/スタイル情報(太字、色、罫線など)を取得します
get_objectsシート上のグラフ、画像、図形を一覧表示します

例

ユーザーが作業中の内容を確認する

「開いているスプレッドシートには何が入っていますか?」

エージェントは get_active_workbook() を呼び出して、ブック名、シート、選択範囲のデータを取得し、続いて read_data() を呼び出してシート全体を取得します。

選択したデータを要約する

「選択したデータを要約してください」

エージェントは get_active_workbook() を呼び出します。応答には選択範囲のデータが直接含まれます。

マクロを実行する

「UpdateReport マクロを実行してください」

エージェントは run_macro(macro_name="UpdateReport") を呼び出し、結果を返します。

集計行を作成する

「C10 に C2:C9 の合計を求める SUM 数式を追加してください」

エージェントは write_data(start_cell="C10", formula="=SUM(C2:C9)") を呼び出し、計算結果を取得します。

見出し行を書式設定する

「1 行目を太字、中央揃え、黄色の背景にしてください」

エージェントは format_range(cell_range="A1:D1", bold=true, alignment="center", bg_color="#FFFF00") を呼び出します。

すべてのシートを一度に読み込む

「すべてのシートの概要を教えてください」

エージェントは read_data(sheet="*") を呼び出し、1 回の呼び出しですべてのシートの概要を返します。

結合セルを正しく読み込む

「B6:C20 を読み込み、結合セルの値を補完してください」

エージェントは read_data(cell_range="B6:C20", merge_info=true) を呼び出します。結合セルには null ではなく、親セルの値が返されます。

すべての数式を検索する

「このシートのすべての数式を表示してください」

エージェントは get_formulas(cell_range="A1:Z100", values_too=true) を呼び出し、計算結果とともにすべての数式を取得します。

行を挿入する

「5 行目に空白行を 3 行挿入してください」

エージェントは manage_sheets(action="insert_rows", position=5, count=3) を呼び出します。

要件

  • Windows(Excel COM の自動化は Windows 専用です)
  • Microsoft Excel のインストール
  • Python 3.10 以降

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。