mcpField
E
excel-mcp

excel-mcp

github.com/sbroenneドキュメント8341.7k 回インストール今日更新
リポジトリ

excel-mcp について

excel-mcp は、ExcelMCP Service をプロセス内で実行する MCP サーバーを通じて Excel を自動化するためのスキルガイドです。Microsoft Excel を使う Windows ユーザー向けに、操作手順と制約をまとめています。

主な機能

  1. 01MCP 経由で利用できる 326 種の Excel 操作
  2. 02ブックとワークシートのライフサイクル手順
  3. 03セルデータ・数式・書式設定のワークフロー
  4. 04テーブル・ピボットテーブル・グラフ・スライサー
  5. 05Power Query とデータモデルの手順

活用シーン

  1. 01ブックデータの入力と書式設定
  2. 02ピボットテーブルとグラフの作成
  3. 03Power Query ワークフローの構築
  4. 04DAX と What-if 分析の実行

MCP 対応

MCP サーバーは Excel の操作をツールとして MCP クライアントに公開し、ExcelMCP Service をプロセス内で呼び出します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sbroenne/mcp-server-excel --skill excel-mcp

インストール後、Claude Code で/excel-mcpを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
references/
analysis.md
anti-patterns.md
behavioral-rules.md
calculation.md
chart.md
claude-desktop.md
conditionalformat.md
dashboard.md
datamodel.md
dmv-reference.md
drawing.md
excel_agent_mode.md
gotchas.md
m-code-syntax.md
pivottable.md
powerquery.md
querytable.md
range.md
screenshot.md
slicer.md
table.md
window.md
workbook.md
workflows.md
worksheet.md
xmlmap.md

詳細

Excel MCP サーバーのスキル

Model Context Protocol を介して 326 個の Excel 操作を提供します。MCP サーバーは ExcelMCP Service をプロセス内でホストし、直接呼び出すことで、低遅延の Excel 自動化を実現します。ツールは自動検出されます。このドキュメントでは、特有の動作、ワークフロー、注意点について説明します。

ワークフローのチェックリスト

手順ツールアクションタイミング
1. ファイルを開くfileopen または create必ず最初に
2. シートを作成するworksheetcreate、rename必要に応じて
3. データを書き込むrangeset-values必ず実行(2D 配列)
4. 書式を設定するrangeset-number-format書き込み後
5. 構造を設定するtablecreateデータをテーブルに変換
6. 保存して閉じるfilesave: true を指定して close必ず最後に

前提条件

  • Microsoft Excel がインストールされた Windows ホスト(2016 以降)
  • Windows のフルパスを使用します:C:\Users\Name\Documents\Report.xlsx
  • Excel ファイルを別の Excel インスタンスで開いていないこと

計算モードのワークフロー(バッチ処理のパフォーマンス)

calculation_mode を使用して、一括書き込みのパフォーマンスを最適化します。多数の値や数式を書き込むときは、自動再計算を無効にして、セルごとの再計算を避けます:

1. calculation_mode(action: 'set-mode', mode: 'manual')  → Disable auto-recalc
2. Perform all writes (range set-values, set-formulas)
3. calculation_mode(action: 'calculate', scope: 'workbook')  → Recalculate once
4. calculation_mode(action: 'set-mode', mode: 'automatic')  → Restore default

注: 数式を読み取るだけなら、手動モードにする必要はありません。range get-formulas は計算モードに関係なく数式のテキストを返します。

重要:実行ルール(必ず守ること)

ルール 1:確認の質問をしない

停止してください。「どのファイルですか?」「どのテーブルですか?」「どこに配置すればよいですか?」と尋ねようとしているなら、尋ねてはいけません。

悪い例(質問する)良い例(調べる)
「どの Excel ファイルを使えばよいですか?」file(list) → 開いているセッションを使用する
「テーブル名は何ですか?」table(list) → テーブルを確認する
「データがあるシートはどれですか?」worksheet(list) → すべてのシートを確認する
「ピボットテーブルを作成しますか?」はい — 新しいシートに作成する

自分で疑問に答えるためのツールがあります。必ず使ってください。

ルール 2:最後に必ずテキストで要約する

**ツール呼び出しだけでターンを終えてはいけません。**すべての操作が完了したら、実行内容を確認する簡潔なテキストメッセージを必ず返します。ツール呼び出しだけで応答を終えると不完全です。

ルール 3:データに適切な書式を設定する

値を設定した後は、必ず数値書式を適用します。

データ型書式コード結果
USD$#,##0.00$1,234.56
EUR€#,##0.00€1,234.56
パーセント0.00%15.00%
日付(ISO)yyyy-mm-dd2025-01-22

マシンのロケールに関係なく、書式コードは米国式の表記(桁区切りに ,、小数点に .)で記述します。Excel が変換します。表示される区切り記号は Windows の地域設定に従うため、ドイツ語のシステムでは $#,##0.00 が $1.234,56 と表示されます。書式コードの区切り記号を入れ替えて「修正」してはいけません。他のすべてのロケールで正しく動作しなくなります。

ワークフロー:

1. range set-values (data is now in cells)
2. range set-number-format (apply format)
3. range_format auto-fit-columns (formatted values are wider than raw ones)

手順 3 は省略できません。45678 に合わせた列幅では、値が 2025-01-22 や $1,234.56 と表示されると狭すぎるため、Excel は数値の代わりに ##### を表示します。

ルール 4:通常の範囲ではなく Excel テーブルを使用する

表形式のデータは必ず Excel テーブルに変換します。

1. range set-values (write data including headers)
2. table(action: 'create', table_name: 'SalesData', range_address: 'A1:D100')

理由: 構造化参照と自動拡張が利用でき、データモデルや DAX に必要です。

ルール 5:セッションのライフサイクル
1. file(action: 'open', path: '...')  → capture response.session_id as sessionId
2. workbook(action: 'get-info', session_id: sessionId)
3. file(action: 'close', session_id: sessionId, save: true)  → saves and closes

後続のセッションベースの呼び出しでは、同じ値を session_id として渡します。 上記の sessionId はローカル変数であり、MCP の引数名ではありません。file(list) のセッションを再利用する場合は、一致するエントリの sessionId の値を session_id にコピーします。セッションを推測したり、別のセッションで代用したりしてはいけません。

セッションを閉じ忘れると Excel プロセスが実行中のまま残り、ファイルがロックされます。

ルール 6:データモデルの前提条件

DAX 操作には、データモデル内のテーブルが必要です。

Step 1: Create table → Table exists
Step 2: table(action: 'add-to-data-model') → Table in Data Model
Step 3: datamodel(action: 'create-measure') → NOW this works
ルール 7:Power Query 開発ライフサイクル

ベストプラクティス:テストファーストのワークフロー

1. powerquery(action: 'evaluate', m_code: '...') → Test WITHOUT persisting
2. powerquery(action: 'create', ...) → Store validated query
3. powerquery(action: 'refresh', ...) → Load data

最初に評価する理由:

  • 永続クエリを作成する前に、構文エラーやソースの不足を検出できます
  • 作成/更新時の COM 例外よりも、わかりやすいエラーメッセージが表示されます
  • 実際のデータプレビュー(列とサンプル行)を確認できます
  • クリーンアップが不要です。M コード用の REPL のように使えます
  • 単純なリテラルテーブルの場合のみ省略します

よくある間違い: 評価せずに作成/更新すると、ブックに壊れたクエリが残ります

ルール 8:削除して再構築するより、対象を絞って更新する
  • 推奨:特定の範囲(例:5 行目の A5:C5)に set-values を使用します
  • 避ける:構造全体を削除して再作成すること

理由: 書式、数式、参照を維持できます。

ルール 9:suggestedNextActions に従う

エラーレスポンスには、実行可能なヒントが含まれています:

{
  "success": false,
  "errorMessage": "Table 'Sales' not found in Data Model",
  "suggestedNextActions": ["table(action: 'add-to-data-model', table_name: 'Sales')"]
}

ツール選択のクイックリファレンス

タスクツール主な操作
ブックの作成/オープン/保存fileopen、create、close
セルデータの書き込み/読み取りrangeset-values、get-values
セルの書式設定rangeset-number-format
データからテーブルを作成tablecreate
Power Pivot にテーブルを追加tableadd-to-data-model
DAX 数式の作成datamodelcreate-measure
ピボットテーブルの作成pivottablecreate、create-from-datamodel
スライサーでフィルターslicerset-slicer-selection
グラフの作成chartcreate-from-range
What-if 分析の実行analysisgoal-seek、create-scenario、create-data-table
計算モードの制御calculation_modeget-mode、set-mode、calculate
視覚的な確認screenshotcapture、capture-sheet

リファレンスドキュメント

詳細なガイダンスについては、references/ を参照してください。

コメント