Office MCP について
Office MCPは、Windows上でExcel、Word、PowerPointのファイルを作成、確認、編集、レビューするAIエージェント向けのローカルサーバーです。文書ファイルへの直接操作と任意のOfficeネイティブ自動化を備え、ファイルアクセスを設定済みフォルダーに限定します。
主な機能
- 01Officeファイルの作成と確認
- 02Excel・Word・PowerPointの編集
- 03データ分析とワークブック検索
- 04レビュー用の文書レンダリング
- 05許可したフォルダーへのアクセス制限
活用シーン
- 01ワークブックのデータからプレゼンテーションを作成・確認する
- 02許可済みのローカルフォルダー内で文書を編集する
- 03最終化前にレンダリング結果をレビューする
MCP 対応
Office MCPはstdio経由でローカル動作し、Officeファイルの操作、レビュー、最終化に使う34個のツールを公開します。ファイルアクセスは設定したルートに制限され、Officeネイティブ自動化にはWindows上のMicrosoft Officeが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Office MCP
AI エージェントに、Windows 上の Microsoft Excel、Word、PowerPoint を安全かつローカルに操作する権限を与えます。
MCP を通じて Office ファイルを作成、確認、編集、分析、アニメーション化、レンダリング、検証できます。アクセスは、承認したフォルダーに制限されます。
本プロジェクトは独立したオープンソースプロジェクトであり、Microsoft との提携関係はなく、Microsoft による承認も受けていません。
Office MCP は、Microsoft Office を確定的に操作する手段と、納品前にドラフトの正確な内容を検証できるレビュー用パイプラインを、オーケストレーションを担う AI に提供します。.xlsx、.docx、.pptx パッケージを直接扱い、Windows にインストールされた実際の Excel、Word、PowerPoint アプリケーションを使用して、高忠実度な編集、計算、グラフ、ピボットテーブル、PDF エクスポート、アニメーション、スライドのレンダリングを行うこともできます。stdio 経由でローカル実行でき、API キーは不要です。また、ファイルへのアクセスは設定したルート内に制限されます。サポート対象のリリースは Windows 向けです。macOS と Linux は現在対象外です。
サーバーは、レポート、モデル、プレゼンテーションに何を書くべきかを決めるものではありません。モデルが作業を計画し、これらのツールを呼び出して入力を確認し、ドキュメントを作成し、結果をレンダリングして目視でレビューし、繰り返し改善します。
重要
ファイルはローカルに保たれ、アクセス範囲も制限されます。
OFFICE_MCP_ROOTSは、サーバーが読み取りまたは書き込みを許可されるディレクトリのみを指定します。エージェントに使用させるドキュメントが含まれるフォルダーのうち、最も範囲の狭いものを指定してください。それらのルート外のパスは拒否されます。
Office MCP で作成
10 枚のスライドからなる Inside an AI Agent のデッキでは、ネイティブの Morph トランジションとタイミング付きアニメーションを使用しています。動画にエクスポートする前に、すべてのスライドを Office MCP でレンダリングし、レビューしました。
MP4 全体をダウンロード · 編集可能な PowerPoint をダウンロード
クイックスタート(Windows PowerShell)
Node.js 20+ と、Codex/ChatGPT デスクトップまたは Claude Code などの MCP クライアントが必要です。基本的な .xlsx、.docx、.pptx ファイルの作成には、デスクトップ版 Microsoft Office は任意です。アニメーションや PowerPoint のレンダリングなど、Windows ネイティブ機能を使うには必要です。
パッケージは @parryhotter/office-mcp として npm で公開されています。
-
AI がアクセスできるファイルを選択します。この例では Documents フォルダーへのアクセスを許可します。より狭いフォルダーを指定したい場合は、
$allowedを変更してください。$allowed = ([Environment]::GetFolderPath('MyDocuments')) -
クライアントを1 つ接続します。
Codex CLI または ChatGPT デスクトップの場合:
codex mcp add office --env "OFFICE_MCP_ROOTS=$allowed" -- npx -y @parryhotter/office-mcp codex mcp listClaude Codeの場合:
claude mcp add --scope user --env "OFFICE_MCP_ROOTS=$allowed" --transport stdio office -- npx -y @parryhotter/office-mcp claude mcp get office -
すでに開いているデスクトップクライアントを再起動するか、新しいチャットを開始します。「
office_capabilitiesを呼び出して、利用可能な Office 機能を教えてください」と依頼してください。次に、「powerpoint_create_designed_presentationを使って、Documents フォルダーに 2 枚のスライドからなるプレゼンテーションを作成し、内容を確認して、保存先のパスを報告してください」と試してみてください。
必要に応じてクライアントが Office MCP を起動します。別のターミナルで 2 つ目のサーバープロセスを起動しないでください。両方のクライアントを使う場合は、両方に登録してください。既存の office エントリがある場合は、再追加する前に確認してください。
クライアント設定のコピー&ペースト
C:\\Users\\you\\Documents は、エージェントにアクセスさせる最小限のフォルダーに置き換えてください。設定を保存したら、クライアントを完全に再起動してください。
Claude Desktop
%APPDATA%\Claude\claude_desktop_config.json を編集します:
{
"mcpServers": {
"office": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@parryhotter/office-mcp"],
"env": {
"OFFICE_MCP_ROOTS": "C:\\Users\\you\\Documents"
}
}
}
}
Cursor
すべてのプロジェクトに適用する場合は %USERPROFILE%\.cursor\mcp.json を、1 つのプロジェクトに適用する場合はプロジェクト内の .cursor\mcp.json を編集します:
{
"mcpServers": {
"office": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@parryhotter/office-mcp"],
"env": {
"OFFICE_MCP_ROOTS": "C:\\Users\\you\\Documents"
}
}
}
}
Windsurf
%USERPROFILE%\.codeium\windsurf\mcp_config.json を編集します:
{
"mcpServers": {
"office": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@parryhotter/office-mcp"],
"env": {
"OFFICE_MCP_ROOTS": "C:\\Users\\you\\Documents"
}
}
}
}
GitHub Copilot を使用する VS Code
ワークスペースに .vscode\mcp.json を作成するか、コマンドパレットから MCP: Open User Configuration を実行します:
{
"servers": {
"office": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@parryhotter/office-mcp"],
"env": {
"OFFICE_MCP_ROOTS": "C:\\Users\\you\\Documents"
}
}
}
}
汎用の Windows stdio クライアント
クライアントが標準的な MCP JSON を受け付ける場合は、この形式を使用します:
{
"mcpServers": {
"office": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@parryhotter/office-mcp"],
"env": {
"OFFICE_MCP_ROOTS": "C:\\Users\\you\\Documents"
}
}
}
}
設定形式:Claude Desktop · Cursor · VS Code/Copilot。Windsurf は、上記の設定パスで同じ mcpServers 構造を使用します。
ソースからインストール
開発、コントリビューション、または未リリースのコミットをテストする場合:
git clone https://github.com/gauravvvvvvvvvv/office-mcp.git
Set-Location office-mcp
npm ci
npm run build
$entry = (Resolve-Path .\dist\index.js).Path
$allowed = ([Environment]::GetFolderPath('MyDocuments'))
# Pick one client:
codex mcp add office --env "OFFICE_MCP_ROOTS=$allowed" -- node $entry
# claude mcp add --scope user --env "OFFICE_MCP_ROOTS=$allowed" --transport stdio office -- node $entry
このサーバーを選ぶ理由
- ハイブリッドな Windows 操作:デスクトップ版 Office を起動せずに Office ファイルを直接作成・検査できるほか、インストールされている場合はネイティブの Office 自動化にも対応します。
- プロンプト固有の品質要件、ファイル比較、レンダリングの証跡、古くなったレビューや不完全なレビューを拒否する最終確認ゲートを備えています。
- PowerPoint の生成は、デフォルトでバックグラウンドで実行されます。ユーザーの作業から繰り返しフォーカスを奪うことはありません。
- ファイルシステムのルートを制限し、上書き動作を明示するとともに、任意の COM 実行ツールは提供しません。
これらは設計上の選択であり、このプロジェクトがすべての代替手段より高機能である、あるいは見栄えのよいドキュメントを作成できることの証明ではありません。34 個のツールからなる構成は、意図的に範囲を限定しています。人間が求める品質の成果物を得られるかどうかは、オーケストレーションを行うモデル、ソース資料、目視でのレビューに左右されます。
動作する機能
| アプリケーション | 操作 |
|---|---|
| Excel | ブックの作成と確認、範囲の読み取り/書き込み/書式設定、記述的分析と読み取り専用のフィルター/グループ化クエリ、数式とネイティブ再計算、テーブル、グラフ、並べ替え、フィルター、名前付き範囲、条件付き書式、入力規則、ピボットテーブル |
| Word | 文書の作成と確認、セクションとページレイアウト、ヘッダー、フッター、ページ番号、目次フィールド、ソースに基づく引用テキスト、見出し、リスト、テーブル、画像、リンク、脚注、置換、ネイティブのコメントと変更履歴、PDF エクスポート |
| PowerPoint | プレゼンテーションの作成、確認、監査、既存の PPTX マスター/レイアウトの再利用または書式設定済みスライドの複製、テキスト、図形、画像、メディア、テーブル、グラフ、ノート、ネイティブのアニメーションタイムライン編集、画面切り替え、PDF エクスポート、PNG レンダリング |
| 共通 | ディレクトリ内のファイルの検出、アクティブな Office ファイルの一覧表示、対応ファイルの確認と比較、PDF エクスポート、プロンプトに応じた品質チェック、レンダリングに基づくレビュー用資料の準備、レビュー済みのドラフトのみの最終化 |
サーバーは 34 個の MCP ツールを公開します。
office_capabilitiesoffice_inspect_fileoffice_search_filesoffice_convert_to_pdfoffice_export_pdfoffice_quality_checkoffice_compare_filesoffice_prepare_reviewoffice_finalizeoffice_get_review_imageexcel_create_workbookexcel_inspect_workbookexcel_read_rangeexcel_analyze_datasetexcel_query_datasetexcel_write_rangeexcel_set_formulasword_create_documentword_inspect_documentword_append_paragraphword_replace_textpowerpoint_create_presentationpowerpoint_create_designed_presentationpowerpoint_inspect_presentationpowerpoint_audit_presentationpowerpoint_inspect_templatepowerpoint_create_from_templatepowerpoint_replace_textoffice_native_statusoffice_list_open_filesexcel_native_batchword_native_batchpowerpoint_native_batchpowerpoint_render_presentation
要件
- Node.js 20 以降
- ネイティブ自動化、アクティブな文書の制御、PowerPoint のレンダリングには Windows 版 Microsoft Office
- ネイティブ Office が利用できない場合のポータブルな PDF 変換には LibreOffice のみ
ポータブルなファイル操作には、Microsoft Office をインストールする必要はありません。
プラットフォームのサポート
サポート対象は Windows 10/11 です。パッケージを直接操作する場合は Node.js が必要ですが、デスクトップ版 Office は不要です。ネイティブ自動化、アクティブな文書の制御、Excel の再計算、PowerPoint のアニメーション、PowerPoint のレンダリングには、デスクトップ版 Microsoft Office のインストールが必要です。PDF エクスポートにはデスクトップ版 Office または LibreOffice を使用できます。macOS と Linux は現在対象外であり、サポート対象のリリースプラットフォームではありません。
パッケージを直接操作すると、開いている Office ウィンドウを制御せずに文書ファイルを編集します。これはローカルの stdio サーバーであり、ホスト型サービスではありません。クライアントは Node.js プロセスを起動し、許可されたファイルにアクセスできる必要があります。
開発用チェックアウトを確認する
これらのコマンドはコントリビューターとメンテナー向けであり、サーバーのインストールには必要ありません。
npm run check
npm run smoke
npm run check は型チェック、ポータブルな統合テストの実行、dist/ のビルドを行います。npm run smoke は MCP クライアントを通じてコンパイル済みサーバーを起動し、テスト用プレゼンテーションを作成します。デスクトップ版 Microsoft Office がインストールされた Windows では、npm run test:native により Excel、Word、PowerPoint のネイティブ動作もテストされます。Office がインストールされていないマシンでは、このネイティブテストを実行しないでください。
1 つのプロンプトで進めるワークフロー
「このフォルダー内の財務ワークブックを分析して、取締役会向けのプレゼンテーションを作成してください」のような依頼に対し、オーケストレーターは次の手順を実行できます。
office_search_filesを呼び出して、ワークブックとテンプレートを見つけます。office_inspect_fileまたはexcel_native_batchを呼び出して、データ、数式、ワークブックの構造を把握します。- 決定論的なデータ品質統計には
excel_analyze_datasetを、対象を絞ったフィルター、グループ化による集計、並べ替えにはexcel_query_datasetを呼び出します。その後、ビジネス上の問いについて推論し、ストーリーを構成します。 - 新しいストーリー仕立てのスライドデッキには
powerpoint_create_designed_presentation、カスタムレイアウトにはpowerpoint_create_presentationを呼び出します。会社のスライドデッキのレイアウトを維持するには、powerpoint_inspect_templateを呼び出してからpowerpoint_create_from_templateを呼び出します。 - アニメーションが必要な場合は、
powerpoint_native_batchを呼び出してオブジェクトのアニメーションとスライドの切り替え効果を追加し、保存して再度開いてタイムラインを確認します。 - 実際のプロンプトに基づいて、必要なテキスト、構成、数値に関するアサーション、編集の場合は任意のベースラインソースファイルを含む品質要件を定義します。
office_quality_checkを呼び出し、阻害要因となる問題を修正します。 office_prepare_reviewを呼び出してすべてのスライドをレンダリングするか、Word/Excel を PDF にエクスポートし、結果を確認します。長いスライドデッキの場合は、インラインプレビューに表示されないスライドをoffice_get_review_imageで取得します。- 配置、はみ出し、階層、グラフの読みやすさを目視で確認し、修正を加えてチェックとレンダリングを再実行します。PNG レンダリングではアニメーションを確認できません。
- すべてのスライド、シート、ドキュメント、およびすべてのプロンプト条件について、正直な合格/不合格のメモを添えて
office_finalizeを呼び出します。下書き、要件、ベースライン、レンダリングの証拠、レビュー範囲を再検証したうえで、上書きせず別の最終ファイルにコピーします。
これが意図された役割分担です。AI が判断を担い、Office MCP が信頼できる操作手段を提供します。
品質ゲートと正直な限界
office_quality_check は ZIP パッケージの関連付けを検証し、明示されたプロンプトのアサーションをチェックして、下書きの SHA-256 ハッシュとレビュー対象単位を返します。Excel のシート、ヘッダー、正確なセル、数式エラー、Word の見出し、表、画像の説明、PowerPoint のスライド数、最小フォントサイズ、発表者ノート、構造監査フラグをチェックできます。baseline.path を指定すると編集ファイルと元ファイルを比較し、既定では削除されたシート、スライド、Word の段落があると処理をブロックします。要件のしきい値を設定すれば、意図した削除を明示的に許可したり、変更された Excel セルの数に上限を設けたりできます。office_compare_files は、ファイナライズとは独立して詳細な意味上の差分を返します。
office_prepare_review は、ハッシュ付きのスライド PNG または PDF と、正確な下書き、要件、ベースラインにひも付いたマニフェストを作成します。office_finalize は、機械チェックの失敗、古いまたは不完全なレンダリング、変更された下書き、未レビューの単位、失敗した条件、承認されていない警告がある場合、処理を拒否します。サーバーは、主張が真実か、グラフが適切なストーリーを伝えているか、デザインが美しいか、レビュアーが実際に出力を確認したかを判断できません。オーケストレーターは視覚的な証拠とソースデータを誠実に活用する必要があります。確認していない条件を合格としてマークしてはいけません。ネイティブレンダリングと PDF エクスポートには、インストール済みの Office または LibreOffice が必要です。また、PowerPoint のスライド PNG レビューには、Windows 上のデスクトップ版 PowerPoint が必要です。
バックグラウンドでの静かな生成
ポータブルな PPTX 作成では、ファイルを直接編集し、PowerPoint を開きません。ネイティブのファイルベースの PowerPoint 操作では、レンダリング、アニメーションの編集、PDF エクスポートなどでプレゼンテーションを作成または開く際、デフォルトでウィンドウを非表示にします。デッキが繰り返し前面に表示されることはありません。
PowerPoint の自動化では、Windows 上の共有アプリケーションインスタンスを使用します。ユーザーが作業中のプレゼンテーションを変更したり閉じたりしないよう、PowerPoint がすでに実行中の場合、サーバーはファイルベースのネイティブ操作を拒否します。エージェントはポータブルな作成を続け、PowerPoint が閉じられるまでネイティブのレンダリングやアニメーション操作を保留してください。target.active: true は実行中のセッションを明示的に使用し、target.visible: true は表示ウィンドウを要求します。どちらもユーザーの同意なしに使用しないでください。ネイティブのレンダリングでは、アクティブセッションのオーバーライドは利用できません。
プレゼンテーションの品質向上
powerpoint_create_designed_presentation は、5 種類のワイドスクリーン構成(cover、imageText、statement、comparison、panorama)と、2 種類のビジュアルスタイル(editorial、cinematic)を提供します。panorama は、横長のシーンと編集可能なタイトルおよび補足テキストを組み合わせます。comparison では、結論を示すための任意の takeaway を指定できます。読みやすいタイポグラフィを使用し、提供された画像を各フレームに合わせてトリミングします。ストーリーに役立つ場合は、関連性があり、互いに異なる画像アセットを指定してください。このツールは画像を生成せず、コンテンツを作り出すこともありません。チャート、表、正確な配置には、より低レベルの PowerPoint ツールも引き続き利用できます。その画像要素では、fit: "cover"、"contain"、"stretch" を指定できます。
任意でインストールできる関連 Codex スキルは skills/ にあります。一般的な計画、レンダリングの確認、修正には office-presentation-quality をインストールしてください。映画のような Morph シーケンス、オブジェクトの継続性を保つ演出、カメラのようなパンやズーム、タイミングを指定した再生、動画による検証には office-morph-storytelling をインストールしてください。これらのスキルはワークフローを改善しますが、優れたデザインを保証したり、質の高い参考デッキに取って代わったりするものではありません。既存の Codex セッションで更新済みのサーバーとスキルを使用するには、dist/ を再ビルドした後にそのセッションを再起動してください。
powerpoint_audit_presentation は Office を開かずに、あらゆる PPTX を直接チェックします。スライド外のオブジェクト、サイズが明示的に指定された小さなテキスト、異常に情報量の多いスライド、意味のある代替テキストがない画像、両方の色が明示的な単色の場合の低コントラスト、重なり合うテキストボックス、空のスライド、測定の信頼性が低いグループ化オブジェクトを報告します。これらは確認のための警告であり、デザインが悪いことを証明するものではありません。作成ツールでは画像の代替テキスト(カスタム画像には altText、デザイン済みのレイアウトには imageAltText)を指定できます。指定がない場合は、ローカル画像のパスがデッキに漏れるのを防ぐため、確認可能なプレースホルダーが使用されます。
PowerPoint テンプレートの再利用
powerpoint_inspect_template は、デスクトップ版 PowerPoint を使って既存の .pptx を非表示で開き、デザイン、カスタムレイアウト、プレースホルダーのインデックス、スライドの図形名を報告します。その後、powerpoint_create_from_template を使って、それらのレイアウトからスライドを追加したり、既存のスライドを複製したり、プレースホルダーや名前付きテキスト図形に内容を入力したり、テキストボックスを追加したりして、別の .pptx として保存できます。元のデッキは変更せず、keepTemplateSlides が true の場合を除き、元のスライドは出力から削除されます。新しいネイティブテキストボックスの座標はポイント単位です。これには Windows デスクトップ版 PowerPoint が必要で、上記のバックグラウンドでの静かな操作に関するルールが適用されます。.potx ファイルのインポートや、任意のマスター編集にはまだ対応していません。
Word の構造と Excel の分析
word_create_document は、元の blocks 配列、またはページサイズ/向き、余白、ヘッダー、フッター、ページ番号を個別に指定する sections 配列を受け付けます。ブロックには、更新可能な toc、ユーザーが指定した sources を参照する cited_paragraph、bibliography、必須の代替テキストまたは装飾用であることを明示するフラグを設定した画像、ハイパーリンク、改ページ、脚注を含めることができます。Word はフィールドを更新すると目次の項目を入力します。引用は書式設定された文書テキストであり、Word の組み込み引用管理機能の項目ではありません。
ネイティブ Word バッチでは、挿入、削除、書式設定の正確な文字範囲の指定、スタイルとセクション、ブックマーク、ハイパーリンク、フィールド、脚注、文末脚注、コンテンツコントロール、ページ設定とセクションのヘッダー/フッター、変更履歴の一覧表示または一括承諾/却下、保護、表、コメント、目次、PDF エクスポートに対応しています。範囲オフセットには、Word のゼロベースの文字位置を使用します。範囲を指定する前に文書を確認または読み取り、保存後に再度開いて、フィールドとレイアウトが保持されていることを確認してください。
excel_analyze_dataset は、シートまたは選択した範囲を分析し、欠損行と重複行、列の型、数値の記述統計、IQR 外れ値、テキスト値の上位項目、日付、数式/エラーの件数、相関の強さが最も高いピアソン相関を調べます。1 回の呼び出しで分析できるのは最大 50,000 行、100 列です。データのクリーニング、因果関係の推定、統計的検定、未キャッシュの数式の計算は行いません。数式の結果が重要な場合は、先にネイティブ Excel で再計算してください。
excel_query_dataset は最大 50,000 行、100 列を読み取り、型指定されたフィルターを適用し、必要に応じてグループ化と集計(count、countDistinct、sum、average、min、max)を行い、並べ替えて、最大 1,000 行を返します。データを書き戻すことはありません。ネイティブ Excel バッチでは、構造的な行/列の編集、セルの結合、サイズ変更と非表示、ウィンドウ枠の固定、ワークシートのコピーと表示設定、テーブルとサイズ変更、名前、ハイパーリンク、コメント、入力規則、条件付き書式、グラフ、ピボットテーブル、重複の削除、ゴールシーク、並べ替え/フィルター、更新、保護、印刷設定、再計算、PDF エクスポートにも対応しています。
アニメーションと画面切り替え
デスクトップ版 PowerPoint がインストールされた Windows では、powerpoint_native_batch を使って、スライド、テキスト、図形、線、画像、メディア、表の作成と編集、オブジェクトの整列または均等配置、重なり順とグループ化の制御、画像のトリミングと補正、テキストフレーム全体または選択した文字列の書式設定、ハイパーリンクの追加、スライドの非表示ができます。図形を指定する前に list_shapes を呼び出し、図形の安定した名前または現在の 1 始まりのインデックスを取得してください。
アニメーションレイヤーでは、名前付きの開始効果(appear、fade、fly、wipe、zoom)、強調効果(spin、growShrink)、終了効果に加えて、ドキュメント化された MsoAnimEffect 値を指定するための高度な effectId エスケープハッチを利用できます。トリガー、継続時間、遅延、繰り返し、逆再生、加速/減速、テキスト/グラフのアニメーションレベル、シーケンスの順序付け、複合的な回転、拡大縮小、モーション動作に対応しています。set_transition は、none、cut、fade、左/右へのプッシュとワイプ、ズームイン、およびオブジェクト、単語、文字単位の本物の PowerPoint モーフに対応しています。モーフで確実に一致させるには、対応する図形に !! で始まる同じ名前を付け、スライドを複製してから、複製したスライド上でそれらの図形を移動またはサイズ変更してください。export_video は MP4 または WMV を作成し、PowerPoint のエンコード完了を待ちます。save 操作を含め、結果を再度開いて変更が保持されていることを確認してください。
これは拡張中の、検証済みの Office 機能セットであり、あらゆる Office コマンドをラップするものではありません。任意の COM 実行は意図的に公開していません。高度な Office の数値列挙値は実行可能コードではなく型付きデータであり、インストールされている Office のバージョンによって異なる場合があります。アニメーションの再生自体は、静的 PNG レンダラーではキャプチャされません。
対応クライアント
Windows では、クイックスタートが最短の手順です。同じビルド済みサーバーは、Node.js を起動できるローカル stdio MCP クライアントであれば、どれでも動作します。クライアントの設定は個別です。Codex に Office MCP を追加しても、Claude Code に自動で追加されることはありません。
Codex と ChatGPT デスクトップ
クイックスタートのcodex mcp addコマンドは、ChatGPT デスクトップアプリ、Codex CLI、Codex IDE 拡張機能で共有される Codex のユーザー設定を書き込みます。ChatGPT デスクトップでは、サーバーを追加した後に再起動し、/mcpと入力して確認してください。Settings → MCP servers → Add server → STDIOから追加することもできます。ChatGPT ウェブ版はローカルの Codex 設定を読み込みません。このリポジトリでは、ホスト型の MCP エンドポイントを提供していません。OpenAI の MCP ガイドを参照してください。
Claude Code
クイックスタートでは Claude Code のuserスコープを使用するため、サーバーはすべてのローカルプロジェクトで利用できます。claude mcp listを実行するか、Claude Code 内で/mcpを使って接続を確認してください。Claude Code の MCP 設定ガイドを参照してください。
その他のローカル MCP クライアント
nodeをコマンドとして、dist/index.jsへの絶対パスを引数として、OFFICE_MCP_ROOTSを環境変数として、stdio サーバーを設定してください。たとえば、次の JSON をクライアントの形式に合わせて調整してください(表示されているパスはプレースホルダーです)。
{
"command": "node",
"args": ["C:\\absolute\\path\\to\\office-mcp\\dist\\index.js"],
"env": { "OFFICE_MCP_ROOTS": "C:\\allowed\\documents" }
}
インストールのトラブルシューティング
| 症状 | 確認事項 |
|---|---|
nodeまたはnpmが認識されない | Node.js 20 以降をインストールし、新しいターミナルを開いてください。node --versionとnpm --versionを実行します。 |
codexまたはclaudeが認識されない | 該当するクライアントの CLI をインストールするか、そのクライアントのグラフィカルな MCP 設定を使用してください。 |
| クライアントにサーバーを起動できないと表示される | npm run buildを実行し、dist/index.jsが存在すること、および設定されたパスが引き続きこのチェックアウトを指していることを確認してください。単独でnode dist/index.jsプロセスを実行しても、成功メッセージは表示されません。MCP の入力を待機します。 |
officeがすでに存在する | codex mcp listまたはclaude mcp get officeで既存のエントリを確認し、重複して作成しないでください。置き換える場合は、同じクライアントで古いエントリを削除してから、セットアップコマンドを再実行してください。 |
| ファイルが許可されたルートの外にあるとして拒否される | OFFICE_MCP_ROOTSを、そのファイルを含む親フォルダーの絶対パスに設定してから、クライアントを再起動してください。Windows のルートを複数指定する場合は、;で区切ります。 |
| ネイティブアニメーション、Excel の再計算、または PowerPoint のレンダリングを利用できない | これらの機能には、Windows とインストール済みのデスクトップ版 Microsoft Office が必要です。まずoffice_capabilitiesとoffice_native_statusを呼び出してください。 |
| ChatGPT ウェブ版でサーバーを確認できない | ウェブチャットはローカルの stdio MCP 設定を読み込みません。ChatGPT デスクトップ/Codex を使用するか、別途ホストする連携を構築してください。 |
パスのセキュリティ
デフォルトでは、サーバーは作業ディレクトリ以下のファイルにのみアクセスできます。OFFICE_MCP_ROOTSを、許可するルートの 1 つ以上に設定してください。
Windows で複数のルートを指定する場合は、セミコロンで区切ります。
C:\Users\your-name\Documents;D:\Company Files
サーバーはすべての入力パスと出力パスを使用前に解決し、これらのルート外へのパストラバーサルを拒否します。
PDF 変換
office_convert_to_pdfは、ヘッドレスモードで LibreOffice を使用します。サーバーは標準のインストール先とシステムのPATHを確認します。カスタムインストールの場合は、次のように設定してください。
OFFICE_MCP_SOFFICE=C:\path\to\LibreOffice\program\soffice.exe
office_capabilitiesを呼び出すと、コンバーターが検出されたかどうかを確認できます。
開発
npm run dev
プロセスは標準入力で MCP メッセージを無言で待機します。標準出力にはログを書き込まないでください。標準出力は MCP プロトコルに使用されます。診断情報は標準エラー出力に出力してください。
手動リリース
このリポジトリには、GitHub Actions のワークフローも Dependabot の設定もありません。プッシュやプルリクエストで自動的に実行される処理はなく、タグをプッシュしてもリリースの作成や npm への公開は行われません。これはローカルで動作する stdio サーバーであり、ホスト型の Office サービスではありません。
公開 npm パッケージは @parryhotter/office-mcp です。現在、リリースは手動で公開しています。新しいバージョンを公開する前に、package.json とロックファイルを更新し、npm run check と npm run smoke を実行してください。また、デスクトップ版 Office を使用する Windows 環境では、npm run test:native を実行してください。新規にパッケージをインストールして確認し、バンドルされた依存関係を監査してから、npm publish --access public を実行してください。公開バージョンを公開する際は、一致する GitHub リリースを作成してください。CONTRIBUTING.md と SECURITY.md を参照してください。
重要な制限事項
- ネイティブなアクティブドキュメントの操作には、Windows とインストール済みのデスクトップ版 Microsoft Office が必要です。その他のオペレーティングシステムは、現在のリリース対象外です。
- ExcelJS は Excel のすべての機能をサポートしているわけではありません。複雑なブックを再保存すると、埋め込みグラフや VBA プロジェクトなど、サポートされていないオブジェクトが保持されない場合があります。重要なファイルを編集する際は、別の
outputPathを使用してください。 - Word と PowerPoint の置換では、書式設定された複数のランに分割されたテキストも一致させられます。置換対象が複数のランにまたがる場合、置換後のテキストは最初のランに統合されるため、そのフレーズ内の文字書式の混在は保持されません。
- PowerPoint の作成は宣言的に行います。位置とサイズにはインチを使用し、PptxGenJS の規約に合わせています。
- デザイン済みのレイアウトは出発点として提供されています。テンプレートはネイティブの PowerPoint で再利用できますが、
.potxのインポート、マスターの任意編集、美的品質の自動判定には対応していません。納品前にレンダリング結果を確認してください。 - PPTX 監査では、テキストが実際に収まっているか、テーマや画像の背景から引き継いだコントラストが十分か、ストーリーや美的品質に優れているかは判断できません。レンダリングしたスライドを目視で確認してください。
- オブジェクトのアニメーションとスライド切り替えの編集には、現在 Windows 上のデスクトップ版 PowerPoint が必要です。静的なスライド画像で確認できるのは視覚的なレイアウトであり、スライドショーでの効果の再生方法ではありません。
- PowerPoint がすでに実行中の場合、バックグラウンドでのネイティブな PowerPoint 処理が延期されることがあります。非表示のプレゼンテーションを使用することでポップアップウィンドウは回避できますが、完全に分離されたヘッドレス PowerPoint サービスではありません。
- 数式の値は書き込まれますが、Node.js では計算されません。Excel で開いたときに再計算されるよう、ブックにマークが付けられます。
- このサーバーは Microsoft Office のすべてのコマンドを提供するわけではなく、自律的なデザインモデルとして機能するものでもありません。品質は依然として、オーケストレーションを行うモデル、ソースアセット、テンプレート、レンダリング結果の確認に左右されます。
技術
- MCP TypeScript SDK
.xlsx用の ExcelJS- ドキュメント作成用の docx
- プレゼンテーション作成用の PptxGenJS
- 構造を保持した OOXML の検査と対象を絞った編集用の JSZip
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
