Safe Docx について
Safe Docx は、Word(.docx)および OpenDocument ファイルの読み取り、検索、編集、比較、保存を行うローカルの MCP サーバー兼コマンドラインツールです。コーディングエージェント向けに設計されており、DOCX の構造を保持したまま、変更履歴なしまたは変更履歴付きの出力を作成できます。処理はすべて手元のマシン上で行われます。
主な機能
- 01他の内容を保持したままの対象を絞った文字列置換
- 02変更履歴なしまたは変更履歴付きのファイル出力
- 03文書の比較と変更履歴の確認
- 04コメントと脚注の管理
- 05書式・番号・セクションの調整
- 06クラウドへのアップロードを行わないローカル処理
活用シーン
- 01コーディングエージェントによる契約書の準拠法条項の変更
- 022 つの契約書版を比較して変更履歴を作成
- 03文書内のコメントと脚注の一括管理
MCP 対応
本プロジェクトは stdio で動作し、引数を受け付けない MCP サーバーです。読み取り、編集、書式設定、変更履歴、比較、コメント、保存などのツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
26掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| file_path | string | いいえ | DOCX または ODT ファイルのパス。 |
| google_doc_id | string | いいえ | Google Doc の ID または URL(file_path の代替)。URL から次の形式で抽出します:docs.google.com/document/d/{ID}/edit |
| offset | number | いいえ | ページネーション用の段落オフセット(1 始まり)。負の値は末尾から数えます。 |
| limit | number | いいえ | 返す段落の最大数。省略すると、出力は約 14k トークンに制限され、ページネーション情報が付加されます。 |
| node_ids | array | いいえ | 段落セレクター。各項目には safe-docx の `_bk_*` ID、または(DOCX のみ)w:id で対になる範囲がちょうど 1 つの段落を覆う任意のブックマーク名を指定できます。名前は完全一致で照合します。ポイントブックマークや複数段落にまたがる範囲は拒否されます。別のブックマーク名で選択した場合も、返される行には段落の正規 `_bk_*` ID が常に示されます。結果は重複排除され、文書順に返されます。 |
| format | enum | いいえ | toon | json | simple |
| comment_rendering | enum | いいえ | read_file の出力でコメントをどのように表示するかを指定します。段落ごとのコメントスレッドには "paragraph_notes"(デフォルト)を使用します。TOON 出力に `[cm-start:N]`/`[cm-end:N]` マーカーを追加するには "inline_markers" を使用します(スレッドブロックと併用)。スレッド形式のコメントを TOON 出力末尾の #COMMENTS ブロックにまとめるには "endnotes" を使用します。コメントを表示しない従来形式の出力には "none" を使用します。none | paragraph_notes | endnotes | inline_markers |
| show_formatting | boolean | いいえ | true(デフォルト)の場合、インライン書式タグ(<b>、<i>、<u>、<highlighting>、<a>)を表示します。false の場合、インラインタグのないプレーンテキストを出力します。 |
| include_fingerprint | boolean | いいえ | true かつ format="json" の場合、各段落にポータブルな content_fingerprint("sha256:nfkc:<32hex>")を含めます。段落の正規化された可視テキストから導出される読み取り専用メタデータであり、編集アンカーではありません。編集ツールでは `_bk_*` ID、または(DOCX のみ)w:id で対になる範囲がその段落だけを覆う任意のブックマーク名を指定できます。TOON/simple 出力には影響しません。Google Docs と ODT では無視されます。 |
| include_fingerprint_ordinal | boolean | いいえ | true で、include_fingerprint と format="json" も有効な場合、各段落に重複を区別するメタデータを追加します:`content_fingerprint_ordinal`(同じ content_fingerprint を持つ段落の文書順での位置、1 始まり)、`content_fingerprint_count_in_document`(ページネーション中も文書全体で数えた該当段落の総数)、`portable_paragraph_ref`("<content_fingerprint>#<ordinal>")。読み取り専用の識別情報であり、編集アンカーではありません。重複項目の並べ替えにより序数が変わる場合があります。include_fingerprint が無効な場合、および TOON/simple 出力には影響しません。Google Docs と ODT では無視されます。デフォルト:false。 |
| include_footnotes | boolean | いいえ | 本文と脚注を 1 回の呼び出しで取得します。true かつ format="json" の場合、レスポンスに文書全体のトップレベル `footnotes` 配列が追加されます。各項目は {id, display_number, ref_paragraph_ids(参照元段落 ID の配列), paragraphs[]({text, tagged_text(ランレベルの書式タグ付き), style})} で、複数段落の本文と脚注内の太字/斜体/引用書式を保持します。このトップレベル配列は content[] にインライン化されないため、content[] のインデックスが 1 対 1 で対応する不変条件が維持されます。後方互換性のため、アンカーとなる各段落ノードにも軽量な `footnotes` 配列({id, display_number, text})が付加され、返される範囲に限定されます。true かつ format="toon" の場合、末尾に `#FOOTNOTES` サイドカーブロックが追加されます(`#COMMENTS` と対称)。本文が空、または display_number が 0 の脚注は除外されます。simple 出力には影響しません。Google Docs と ODT では無視されます。デフォルト:false。 |
詳細
@usejunior/safe-docx
コーディングエージェントを使って Word ファイルと OpenDocument ファイルを編集します。
Safe Docx は、ドキュメントファイルの読み取り、検索、編集、比較、変換、保存を行うローカル MCP サーバー兼 CLI です。DOCX の構造を保持し、変更履歴なし、または変更履歴付きの出力を作成できます。ドキュメントはお使いのマシン上で処理されます。
例
コーディングエージェントに次のように依頼します。
Edit NDA.docx. Change the governing law from New York to Delaware.
Save a clean copy and a tracked-changes copy. Do not change anything else.
Safe Docx は該当する条項を見つけ、指定された箇所を編集し、確認用に両方のファイルを書き出します。ドキュメントの残りの部分には、依頼された編集以外の変更は加わりません。
編集の手順全体をご覧ください。
インストール
npm install --global @usejunior/safe-docx
safe-docx --help
このパッケージをインストールすると、safe-docx と safedocx の両方がインストールされます。新しい設定では safe-docx を使用してください。
MCP クライアントの設定
command -v safe-docx(Windows では where safe-docx)を実行して、インストール済みの実行ファイルを確認してください。デスクトップアプリケーションは、ターミナルの PATH を引き継がない場合があります。そのため、クライアントには絶対パスを設定してください。サーバーは引数を取らず、stdio を使用します。
Claude Code:
claude mcp add safe-docx -- /absolute/path/to/safe-docx
Antigravity CLI(~/.gemini/config/mcp_config.json)など、JSON ベースのクライアント:
{
"mcpServers": {
"safe-docx": {
"command": "/absolute/path/to/safe-docx",
"args": []
}
}
}
バージョンの固定、インストール前のパッケージの確認、ソースからのビルドについては、インストールと検証をご覧ください。
ツール
- 読み取りと移動:
read_file、get_document_outline、get_sections、grep - 編集:
replace_text、insert_paragraph、batch_edit、clear_formatting - 書式設定:
format_layout、format_numbering、format_section、insert_section_break - 変更履歴:
has_tracked_changes、extract_revisions、accept_changes、accept_ai_edits、reject_ai_edits - 比較:
compare_documents - コメントと脚注:
add_comment、get_comments、delete_comment、get_footnotes、add_footnote、update_footnote、delete_footnote - 保存と変換:
save、export、convert_to_odt、get_file_status、close_file
各ツールのパラメーターと動作については、ツールリファレンスをご覧ください。
最適化されていない用途
Safe Docx は、ビジュアルエディターでもレイアウトエンジンでもありません。ブラウザーでのレンダリング、リアルタイムの共同作業、ピクセル単位のページ割り付け保証には対応していません。.dotx テンプレートは、使用前に .docx に変換する必要があります。
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。