mcpField
D
docxredline

docxredline

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

docxredline について

docxredlineは、エージェント向けのローカルな.docx読み取り・編集ツールです。CLIまたはstdio MCPから利用でき、Wordの変更履歴を作成して文書メタデータを消去できますが、Wordの画面操作やコメントには対応しません。

主な機能

  1. 01変更履歴付きで.docxを段落ごとに読み取り
  2. 02変更履歴を付けた一括編集
  3. 03指定した変更履歴の承認または却下
  4. 04作成者情報と変更識別子の削除
  5. 05CLIとstdio MCPのインターフェース

活用シーン

  1. 01契約書の支払条件の確認
  2. 02変更履歴を残した契約文書の一括修正
  3. 03配布前の文書メタデータ消去

MCP 対応

stdio MCPサーバーとして、文書の読み取り、一括処理、最終化のツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-docxredline": {
"command": "npx",
"args": [
"-y",
"@reneturcios/docxredline"
]
}
}
}
起動コマンドnpx -y @reneturcios/docxredline

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

パッケージ
npm@reneturcios/docxredline0.1.0
ocighcr.io/cloudcorprecords/docxredline:0.1.0

ツール

3

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
pagenumberいいえ返す仮想ページ番号(段落はページごとにグループ化されます)。
pathstringはい.docx ファイルへのパス。
clean_viewbooleanいいえ最終版のクリーンな内容を読み込みます(すべての変更履歴を承認します)。
search_querystringいいえこのテキストを含む段落のみを返します。

詳細

docxredline

docxredline は、エージェントが必要とする形で Word の .docx ファイルを扱います。内容を推論できるプレーンテキストとして読み取り、Word 上で変更履歴として表示されるように編集し、ファイルを外部に出す前に情報をきれいに削除できます。すべての処理はローカルで行われ、ドキュメントがマシンの外に出ることはありません。また、stdio MCP フェイス以外にサーバーコンポーネントはありません。

これはラベル付きのコアサブセットで、3 つのドキュメントツール(read_docx、process_document_batch、finalize_document)のみを対象とします。実行中の Word インスタンスを操作したり、UI を表示したり、ドキュメントのコメントを処理したりはしません(詳細は各ツールの説明を参照してください)。

インストール

npx @reneturcios/docxredline read agreement.docx

または、コンテナイメージを実行します。

docker run -i ghcr.io/cloudcorprecords/docxredline

コンテナはデフォルトで MCP サーバーを起動します(下記参照)。CLI として使用するには、CLI 引数を渡してください。CLI はパスを指定してファイルを読み書きするため、ドキュメントを格納したボリュームをコンテナにマウントしてください。

CLI

# Read a document (tracked changes shown as CriticMarkup)
docxredline read agreement.docx

# Read the final clean version instead
docxredline read agreement.docx --clean

# Only paragraphs mentioning payment terms; synthetic page 2
docxredline read agreement.docx --search "payment"
docxredline read agreement.docx --page 2

# Apply a batch of edits from a JSON file
docxredline batch agreement.docx changes.json --author "Review Bot"

# Pre-send scrub, locked read-only
docxredline finalize agreement.docx --protection read_only

docxredline --version

終了コード:成功時は 0、ファイルを読み取れない場合、またはバッチ内の変更が適用されない場合は 1、使用方法に誤りがある場合は 2 です。すべてのコマンドで --json を指定できます。

変更ファイルは、変更オブジェクトの JSON 配列です。

[
  { "type": "modify", "target_text": "thirty days", "new_text": "sixty days" },
  { "type": "modify", "target_text": "old clause", "new_text": "new clause", "match_mode": "all" },
  { "type": "accept", "target_text": "12" },
  { "type": "reject", "target_text": "13" }
]

MCP サーバー

1 つのバイナリで両方のインターフェイスを提供します。mcp サブコマンドで stdio MCP サーバーを起動します。

npx -y @reneturcios/docxredline mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "docxredline": {
      "command": "npx",
      "args": ["-y", "@reneturcios/docxredline", "mcp"]
    }
  }
}
ツール
ツール入力機能
read_docxpath(文字列、必須)、clean_view(ブール値)、search_query(文字列)、page(数値)は任意ドキュメントを段落ごとに、Markdown に似たテキストとして返します。既存の変更履歴は、clean_view によって解決されない限り、CriticMarkup の {++挿入++} と {--削除--} の形式で表示されます。search_query を指定すると、そのテキストを含む段落のみが返されます。
process_document_batchpath(文字列、必須)、changes(配列、必須)、output_path と author は任意変更のバッチを適用し、結果を書き出します(デフォルト:入力ファイルと同じ場所にある <name>.redlined.docx)。適用された変更の数と、残りの変更ごとのエラー一覧を返します。変更が 1 つ以上適用された場合にのみ、出力ファイルが書き込まれます。
finalize_documentpath(文字列、必須)、output_path と protection_mode は任意配布可能なコピーを書き出します(デフォルト:<name>.scrubbed.docx)。docProps/core.xml の作成者フィールドを空にし、本文から w:rsid* 属性を削除します。また、protection_mode: "read_only" を指定した場合は、documentProtection ロックを追加します。
このサブセットでの編集と ID の仕組み
  • modify 変更は、単一段落のテキスト内から target_text を見つけ、該当するランを書き換えます。元のテキストは <w:del> 要素で、新しいテキストは <w:ins> 要素で囲まれます。どちらにもバッチの author と新しい w:id が付与されるため、Word 上で実際の変更履歴として表示されます。
  • 安全性チェック:デフォルトの match_mode "first" を使った正規表現ではない modify で、ターゲットが複数の段落に一致する場合、推測した段落に適用するのではなく、曖昧さエラーとして拒否されます。より長いターゲットを使うか、match_mode: "all" を指定して、一致するすべての段落内の出現箇所を編集してください。regex: true を指定すると、target_text は正規表現として扱われます。
  • 段落内の複数のランにまたがるターゲットは、このサブセットでは書き換えられず、変更ごとの失敗として報告されます。
  • accept/reject では、変更履歴の w:id 文字列を target_text として指定します。承認すると挿入テキストが残り、削除部分は取り除かれます。却下するとその逆になります。(元のツールが備える、コメントや範囲に対応したより豊富な ID モデルは再現されていません。)
  • reply はこのサブセットではサポートされていません。変更ごとの失敗として "comments not supported in this subset" が返され、適用済みとして暗黙に数えられることはありません。
合成ページ分け

.docx にはページの概念がないため、page はこのツール独自の仕様です。段落を 40 個ずつまとめて 1 ページとし、ページ番号は 1 から始まります。read_docx は、呼び出し側が意図的にページ分けできるよう、各結果とともにドキュメントの総段落数と合成ページ数を報告します。

最終メモ

ドキュメントに word/settings.xml パーツがなく、保護が要求された場合、docxredline は保護要素のみを含む最小限のパーツを作成します。完全なパッケージでは、このパーツを [Content_Types].xml とパッケージのリレーションシップにも登録しますが、このサブセットではそれらのパーツを書き換えず、既知の不足事項として記録します。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network
npm run dev     # run the CLI from source via tsx

テストでは、ツールに同梱されているものと同じストア形式の ZIP 書き込み機能を使って、一時ディレクトリに独自の最小限の .docx フィクスチャを生成します。そのため、テストスイートでは実際のアーカイブリーダーをエンドツーエンドで検証できます。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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