docx-mcp について
docx-mcp は、AI コーディングエージェントが Word(.docx)ファイルを読み取り・編集できるようにする MCP サーバーです。編集内容は変更履歴として記録されます。Word で成果物を作成する法務、コンサルティング、セキュリティ試験、コンプライアンス担当者を対象としています。
主な機能
- 01変更履歴付きのテキスト挿入・削除・置換
- 02コメントの追加と返信
- 03テキストおよび正規表現による検索置換
- 04修正内容の変更ログ生成
- 05文書構造の監査と OOXML 検証
- 06脚注の管理と相互参照の確認
活用シーン
- 01変更履歴付きで契約書をレビューする
- 02Markdown からテンプレートに沿ったレポートを生成する
- 03テンプレート内容の一括置換と文書監査
MCP 対応
MCP サーバーとして、.docx 文書の読み取り、編集、検証のための多数のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
docx-mcp
AI コーディングエージェントが Word 文書を作成、読み取り、編集できるようにします。編集内容は Microsoft Word で変更履歴として表示されます。削除箇所には赤い取り消し線、挿入箇所には緑の下線が付きます。また、修正作業のたびに、エージェントは挿入、削除、置換をすべて記載した、メールで共有できる変更ログを作成できます。2 つの別々のファイルを比較して、同じ形式の結果を自動で取得することもできます。
対象ユーザー
Word 文書を成果物として作成し、AI エージェントに文書作業を直接任せたいプロフェッショナル:
- 法務 — 変更履歴を使った契約書レビュー、テンプレート全体での条項の一括置換、各変更の説明コメントの追加、脚注の管理
- セキュリティとペネトレーションテスト — Markdown の調査結果からペンテストレポートを作成、複数の案件の付録を統合、エグゼクティブサマリーのコメントを追加、納品前に DRAFT の透かしを削除
- コンサルティング — テンプレートから提案書や SOW を作成、会議メモを整った成果物に変換、複数の文書セットで支払い条件を一括更新
- コンプライアンスと監査 — 文書の整合性を構造面から検証、相互参照の確認、見出しレベルの監査、保護設定の適用
エージェントに依頼できること
契約書をレビューする:
「contract.docx を開き、「Net 30」が使われている箇所をすべて見つけて「Net 60」に変更し、それぞれに修正第 3 号に基づいて更新した旨のコメントを追加してください。contract_revised.docx として保存してください。」
Markdown からレポートを作成する:
「pentest-findings.md をクライアントのレポートテンプレートを使って Word 文書に変換してください。CVE への参照ごとに脚注を追加してください。」
テンプレートライブラリを一括編集する:
「MSA テンプレートを開き、「ACME Corp」をすべて「GlobalTech Inc」に置き換え、ヘッダーの発効日を更新して、文書の保護を変更履歴のみの設定にしてください。」
送信前に文書を監査する:
「最終成果物を開き、構造監査を実行し、DRAFT または TODO のマーカーがないか確認してください。脚注の相互参照をすべて検証し、透かしがあれば削除してください。」
エージェントは、ファイルを開き、構造をたどり、完全な修正履歴を残して正確に編集し、整合性を検証して保存するまでのワークフロー全体を処理します。その間、あなたは内容に集中できます。
インストール
Claude Code(推奨):
claude mcp add docx-mcp -- uvx docx-mcp-server
これで完了です。付属のスキルは、サーバーの初回起動時に自動でインストールされ、文書編集のワークフロー、OOXML の注意点、監査チェックリストを Claude に教えます。アップグレードのたびに自動更新されます。
その他のプラットフォームとインストール方法
Claude Desktop:
MCP の設定に追加します:
{
"mcpServers": {
"docx-mcp": {
"command": "uvx",
"args": ["docx-mcp-server"]
}
}
}
Cursor / Windsurf / VS Code:
MCP 設定ファイルに追加します:
{
"mcpServers": {
"docx-mcp": {
"command": "uvx",
"args": ["docx-mcp-server"]
}
}
}
OpenClaw:
mcpServers:
docx-mcp:
command: uvx
args:
- docx-mcp-server
pip を使用する場合:
pip install docx-mcp-server
| 機能 | エージェントができること |
|---|---|
| ドキュメントの作成 | 空白のドキュメント、.dotx テンプレート、または Markdown から作成できます。見出し、表、リスト、画像、脚注、コードブロック、スマートタイポグラフィに対応しています。 |
| 変更履歴の記録 | テキストの挿入、削除、置換を変更履歴として記録できます。挿入箇所には下線、削除箇所には赤い取り消し線が付きます。編集ツールに tracked=False を渡すと、変更履歴のマークアップなしで直接変更を書き込めます。作成者ごとに変更を承認または却下できます。 |
| 変更ログ | 変更履歴を記録しながら編集した後、generate_change_summary を呼び出すと、すべての挿入、削除、置換を一覧にした番号付きの .txt ファイルが生成されます。または、diff_to_text を使って別々の2つのファイルを比較すると、同じ出力を自動で取得できます。自分で編集していないドキュメントのバージョンを比較する場合にも便利です。 |
| コメント | 特定の段落に紐づけてコメントを追加し、コメントのスレッドに返信できます。 |
| 検索と置換 | 本文、脚注、コメントを対象に、テキストまたは正規表現で検索し、対象を絞って編集できます。 |
| 表 | 表の作成、セルの変更、行の追加や削除ができます。これらすべてで変更履歴を記録できます。 |
| 脚注と文末脚注 | 相互参照の追加、一覧表示、検証ができます。 |
| 書式設定 | 太字、斜体、下線、色を設定できます。書式の変更も変更履歴として記録されるため、変更箇所を確認できます。 |
| ヘッダーとフッター | 変更履歴を記録しながら、ヘッダーとフッターの内容を読み取り、編集できます。 |
| 画像 | 埋め込み画像の一覧表示や、指定した寸法での新しい画像の挿入ができます。 |
| セクションとレイアウト | 改ページ、セクション区切り、ページサイズ、向き、余白を設定できます。 |
| 相互参照 | ブックマークを使って、段落間に内部ハイパーリンクを設定できます。 |
| ドキュメントの結合 | 複数の DOCX ファイルの内容を結合できます。 |
| 保護 | パスワードを設定し、変更履歴の記録のみ、読み取り専用、またはコメントのみ可能な状態にドキュメントをロックできます。 |
| 構造監査 | 提出前に、脚注、見出し、ブックマーク、画像、内部整合性を検証できます。 |
| 透かしの削除 | ヘッダー内の DRAFT 透かしを検出して削除できます。 |
| PII の削除 (実験的機能) | Presidio + spaCy NER を使って、名前、メールアドレス、電話番号、SSN などを検出します。XML 上で実際に墨消しを行い、元のテキストを完全に削除して、黒い長方形で置き換えます。本番環境では使用しないでください。詳しくは制限事項をご覧ください。 |
例:変更履歴付きの契約書レビュー
1. open_document("services-agreement.docx")
2. get_headings() → see document structure
3. search_text("30 days") → find the payment clause
4. delete_text(para_id, "30 days") → tracked deletion (red strikethrough)
5. insert_text(para_id, "60 days") → tracked insertion (green underline)
6. add_comment(para_id, "Extended per client request — see Amendment 3")
7. audit_document() → verify structural integrity
8. save_document("services-agreement_redlined.docx")
出力を Word で開くと、人間のレビュアーが作成した場合とまったく同じように、変更履歴のマーク、余白のコメント、整ったドキュメント構造を確認できます。
例:改訂作業後の変更ログ
1. open_document("contract.docx")
2. replace_text(para_id, "30 days", "60 days") → tracked revision (del + ins)
3. add_comment(para_id, "Extended per Amendment 3")
4. save_document("contract_redlined.docx")
5. generate_change_summary("contract_changes.txt")
出力される .txt ファイルは、次のような内容です。
1. REPLACEMENT by Claude on 2026-05-25
Deleted: "30 days"
Inserted: "60 days"
メール、PR の説明、引き継ぎメモなどに貼り付けられます。
例:別々のドキュメントバージョンを比較する
編集セッションは必要ありません。任意の2つのファイルを指定します。
1. diff_to_text("proposal_v1.docx", "proposal_v2.docx")
次の2つのファイルが返されます。
proposal_v1_diff.docx— Word で開くと、変更履歴が文書内に表示されますproposal_v1_diff.txt— そのままどこにでも貼り付けられるプレーンテキストの要約です
例:Markdown からペネトレーションテストレポートを作成
1. create_from_markdown("pentest-report.docx",
md_path="findings.md",
template_path="client-template.dotx")
2. audit_document() → verify integrity
3. save_document() → ready for delivery
Markdown に記載した調査結果(見出し、影響を受けたホストの表、概念実証の出力を含むコードブロック、深刻度の評価)が、クライアントのテンプレートに沿った書式の Word ドキュメントになります。スマートタイポグラフィ(カーリークォート、エムダッシュ、適切な三点リーダー)も自動で適用されます。
PII のスクラブ(実験的機能)
この機能は実験的なものであり、本番環境での使用や、特権情報、規制対象の文書、または法的に機微な文書に対する唯一の管理手段としての使用には適していません。
scrub_pii は、spaCy NER モデル(en_core_web_lg、約 560 MB、初回呼び出し時にダウンロード)と Microsoft Presidio を使用して個人情報を検出し、完全に墨消しします。墨消しされた箇所は黒塗りの DrawingML 長方形に置き換えられます。元のテキストは XML から削除され、単に非表示にされるわけではありません。
安定して検出できるもの(正規表現/パターンマッチングによる高い信頼度での検出):
- メールアドレス、電話番号、クレジットカード番号、SSN、IBAN、IP アドレス、米国のパスポート番号
統計的に検出するもの(NER による検出のため、見逃しがあります):
- 人名、組織名、場所、日付
既知の NER の検出漏れ — 次のものは見逃されます:
- すべて大文字で書かれた名前(台帳、表の見出し、法的当事者の表記でよく使われます)
- 前後に文脈のない 1 語だけの名前
- 英語以外の名前(この英語モデルでは、アラビア語、CJK、アフリカ系の名前のパターンは再現率が低くなります)
- 法的な定型文に埋め込まれた名前(
Lender: Jane Doe、Authorized Signatory: John Smith)
推奨されるワークフロー:
1. open_document("sensitive.docx")
2. scrub_pii(dry_run=True) → review detected entities — check for misses
3. scrub_pii("sensitive_redacted.docx") → produce redacted copy
4. open the output in Word and verify manually before sharing
出力は完成した墨消しではなく、人によるレビューが必要な初回処理結果として常に扱ってください。
仕組み
.docx ファイルは、XML ファイルをまとめた ZIP アーカイブです。このサーバーはアーカイブを展開し、XML を直接編集してから再度パッケージ化します。そのため、より高レベルのドキュメントライブラリでは実現できない、実際の変更履歴、コメント、脚注を作成できます。
保存前にすべての編集を OOXML 仕様に照らして検証することで、孤立した脚注、重複した内部 ID、壊れた相互参照など、Word がドキュメントを「修復」する際に暗黙に書き換える原因となる問題を検出します。
ツール一覧(200 以上のツール)
ドキュメントのライフサイクル
| ツール | 説明 |
|---|---|
open_document | .docx ファイルを開いて読み取りや編集を行います |
create_document | 新しい空の .docx を作成します(または .dotx テンプレートから作成します) |
create_from_markdown | GitHub Flavored Markdown から .docx を作成します |
close_document | 現在のドキュメントを閉じ、クリーンアップします |
get_document_info | 概要統計(段落、見出し、脚注、コメント)を取得します |
save_document | 変更を .docx に保存します(上書き、または新しいパスへの保存が可能です) |
読み取り
| ツール | 説明 |
|---|---|
get_headings | レベルとテキストを含む見出し構造を取得します |
search_text | 本文、脚注、コメントを対象に検索します(テキストまたは正規表現) |
get_paragraph | 段落の全文とスタイルを取得します |
変更履歴
| ツール | 説明 |
|---|---|
insert_text | 変更履歴としてテキストを挿入します(Word では下線付き)。または tracked=False を指定して直接挿入します |
delete_text | テキストを削除としてマークします(Word では赤い取り消し線付き)。または tracked=False を指定して直接削除します |
replace_text | 変更履歴の削除と挿入のペアとしてテキストを置換します。または tracked=False を指定して直接置換します |
modify_cell | 表のセルを変更します(デフォルトでは変更履歴が記録され、直接書き込む場合は tracked=False を指定します) |
edit_header_footer | ヘッダー/フッターのテキストを編集します(デフォルトでは変更履歴が記録され、直接書き込む場合は tracked=False を指定します) |
set_formatting | 変更履歴マークアップを付けて太字/斜体/下線/色を適用します |
set_track_changes | Word の組み込みの変更履歴記録フラグを有効または無効にします |
get_tracked_changes | 保留中の変更履歴をすべて一覧表示します(作成者、日付、種類、テキスト) |
accept_changes | 変更履歴を承認します。必要に応じて作成者で絞り込めます |
reject_changes | 変更履歴を却下します。必要に応じて作成者で絞り込めます |
変更履歴
| ツール | 説明 |
|---|---|
generate_change_summary | 開いているドキュメント内の追跡された変更をすべて、番号付きの .txt ファイルとしてエクスポートします。挿入、削除、および隣接する削除と挿入のペアは置換としてまとめられます |
compare_documents | 2 つの DOCX ファイルを比較し、変更履歴付きの DOCX(Word で開ける形式)を作成します |
diff_to_text | 2 つの DOCX ファイルを比較し、変更履歴付きの DOCX とプレーンテキストの要約 .txt の両方を作成します |
表
| ツール | 説明 |
|---|---|
get_tables | すべての表について、行数、列数、セルの内容を取得します |
add_table | 段落の後に新しい表を挿入します |
modify_cell | 変更履歴を記録しながら表のセルを変更します |
add_table_row | 表に行を追加します |
delete_table_row | 変更履歴を記録しながら表の行を削除します |
リスト
| ツール | 説明 |
|---|---|
add_list | 段落に箇条書きまたは番号付きリストの書式を適用します |
コメント
| ツール | 説明 |
|---|---|
get_comments | ID、作成者、日付、テキストを含むすべてのコメントを一覧表示します |
add_comment | 段落にコメントを追加します |
reply_to_comment | 既存のコメントに返信します(スレッド形式) |
脚注と文末脚注
| ツール | 説明 |
|---|---|
get_footnotes | ID とテキストを含むすべての脚注を一覧表示します |
add_footnote | 上付きの参照番号付きで脚注を追加します |
validate_footnotes | 脚注の相互参照を検証します |
get_endnotes | ID とテキストを含むすべての文末脚注を一覧表示します |
add_endnote | 上付きの参照番号付きで文末脚注を追加します |
validate_endnotes | 文末脚注の相互参照を検証します |
ヘッダー、フッター、スタイル
| ツール | 説明 |
|---|---|
get_headers_footers | テキスト内容を含むすべてのヘッダーとフッターを取得します |
edit_header_footer | 変更履歴を記録しながらヘッダー/フッターのテキストを編集します |
get_styles | 定義されているすべてのスタイルを取得します |
プロパティと画像
| ツール | 説明 |
|---|---|
get_properties | ドキュメントの基本プロパティ(タイトル、作成者、日付)を取得します |
set_properties | ドキュメントの基本プロパティを設定します |
get_images | 寸法情報を含む、埋め込み画像をすべて取得します |
insert_image | 段落の後に画像を挿入します |
セクションと相互参照
| ツール | 説明 |
|---|---|
add_page_break | 段落の後に改ページを挿入します |
add_section_break | セクション区切り(nextPage、continuous、evenPage、oddPage)を追加します |
set_section_properties | ページサイズ、向き、余白を設定します |
add_cross_reference | 段落間の相互参照リンクを追加します |
保護と結合
| ツール | 説明 |
|---|---|
set_document_protection | オプションでパスワードを設定し、ドキュメントを保護します |
merge_documents | 別の DOCX からコンテンツを結合します |
検証と監査
| ツール | 説明 |
|---|---|
validate_paraids | ドキュメントのすべてのパーツで内部 ID が一意であることを確認します |
remove_watermark | ドキュメントのヘッダーから VML 透かしを削除します |
audit_document | ドキュメントの構造を包括的に監査します |
要件
- Python 3.10+
- macOS、Linux、Windows で動作します
プライバシーポリシー · 利用規約 · © 2026 Security Ronin Ltd

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