DOCX MCP Server
DOCX MCP Server
Model Context Protocol (MCP) を実装した汎用 DOCX 処理サーバー。OOXML を完全にサポートします。
機能
完全な OOXML サポート: すべての DOCX ドキュメントパーツ(document.xml、styles、numbering、ヘッダー/フッターなど)の読み書き
テキスト操作: リテラルまたは正規表現モードでのテキストの抽出、検索、置換
テーブル編集: 行と列の挿入/削除、セルの結合、セル内容の設定
構造化データタグ (SDT): タグまたはエイリアスによるコンテンツコントロールの取得/設定
画像: 画像の一覧表示、位置/サイズ制御付きのインラインまたはアンカー画像の挿入
コメントと変更: コメントの一覧表示、コメントの追加/削除、すべての変更履歴の承認
ドキュメントプロパティ: メタデータ(タイトル、作成者、件名など)の読み書き
LRU キャッシュ: ドキュメントパーツのメモリ効率の良いキャッシュ
Stdio トランスポート: stdin/stdout を介した MCP 通信
インストール
npm install
npm run build実行
開発
npm run dev本番
npm startClaude Code を使用
claude mcp add --scope user --transport stdio docx -- node /path/to/dist/index.jsツール
ドキュメント管理
docx.open
ファイルまたは base64 から DOCX ドキュメントを開く
{
"docId": "uuid",
"parts": ["word/document.xml", "word/styles.xml", ...],
"partCount": 42,
"props": { "core": {...}, "app": {...} }
}docx.close
ドキュメントを閉じてアンロードする
docx.save
ドキュメントをファイルに保存するか、base64 として返す
パーツ管理
docx.list_parts
ドキュメント内のすべてのパーツを一覧表示する
docx.part_read
特定のパーツの生の XML を読み取る
docx.part_write
パーツの XML コンテンツを書き込む/更新する
テキスト操作
docx.get_text
ドキュメントからすべてのテキストを抽出する
{
"docId": "uuid",
"scope": "document" | "headers" | "footers" | "all"
}docx.find
コンテキスト付きでテキストを検索する
{
"docId": "uuid",
"query": "search term",
"mode": "literal" | "regex"
}docx.replace_text
ドキュメント内のテキストを置換する
{
"docId": "uuid",
"match": "old text",
"replace": "new text",
"mode": "literal" | "regex"
}テーブル
docx.tables_list
すべてのテーブルを寸法付きで一覧表示する
{
"tables": [
{
"xpath": "/w:document/w:body/w:tbl[1]",
"rows": 3,
"colsApprox": 4
}
]
}docx.table_edit
テーブルの構造とコンテンツを変更する
{
"docId": "uuid",
"tableXPath": "/w:document/w:body/w:tbl[1]",
"op": {
"kind": "setCellText",
"row": 0,
"col": 1,
"text": "new value"
}
}操作:
setCellText(row, col, text)- セル内容を設定insertRow(at)- 指定位置に行を挿入deleteRow(at)- 行を削除insertCol(at)- 指定位置に列を挿入deleteCol(at)- 列を削除
構造化データ (SDT)
docx.sdt_get
タグまたはエイリアスでコンテンツコントロールの内容を取得する
docx.sdt_put
コンテンツコントロールを更新する
画像
docx.images_list
すべての画像をメタデータ付きで一覧表示する
docx.image_add
インラインまたはアンカーで画像を挿入する
スタイルと番号付け
docx.styles_get / docx.styles_set
styles.xml の読み書き
docx.numbering_get / docx.numbering_set
numbering.xml の読み書き
ヘッダー/フッター
docx.headers_footers_list
すべてのヘッダー/フッターパーツを一覧表示する
コメント
docx.comments_list
すべてのコメントを一覧表示する
docx.comments_add
新しいコメントを追加する
docx.changes_accept_all
ドキュメント内のすべての変更履歴を承認する
メタデータ
docx.metadata_get
ドキュメントのプロパティ(タイトル、作成者、作成日時、更新日時など)を取得する
テストシナリオ
1. 基本的な読み書き
# Open document
docx.open: { "path": "/path/to/document.docx" }
# Get text
docx.get_text: { "docId": "returned-id" }
# Replace text
docx.replace_text: {
"docId": "returned-id",
"match": "old text",
"replace": "new text"
}
# Save
docx.save: { "docId": "returned-id", "returnBase64": true }2. テーブル操作
# List tables
docx.tables_list: { "docId": "id" }
# Edit cell
docx.table_edit: {
"docId": "id",
"tableXPath": "/w:document/w:body/w:tbl[1]",
"op": { "kind": "setCellText", "row": 0, "col": 0, "text": "Hello" }
}3. 画像
# List images
docx.images_list: { "docId": "id" }4. 変更履歴
# Accept all changes
docx.changes_accept_all: { "docId": "id" }アーキテクチャ
src/
index.ts # Entry point
errors.ts # Error definitions
logger.ts # Logging utilities
ooxml/
namespaces.ts # XML namespace definitions
emu.ts # EMU conversion utilities
dom.ts # XML DOM utilities (xmldom + fontoxpath)
xmlParser.ts # fast-xml-parser wrapper
parts.ts # DOCX ZIP part management
rels.ts # Relationships management
text.ts # Text extraction & replacement
tables.ts # Table operations
sdt.ts # Structured Data Tags
drawings.ts # Images & DrawingML
headersFooters.ts # Headers/Footers
styles.ts # Style operations
numbering.ts # Numbering operations
changes.ts # Track changes
comments.ts # Comments
store/
types.ts # Type definitions
docStore.ts # Document store + LRU cache
mcp/
schemas.ts # Tool input schemas
tools.ts # Tool implementations
server.ts # MCP server setup依存関係
@modelcontextprotocol/sdk- MCP 実装jszip- ZIP アーカイブ処理fast-xml-parser- ロスレスの XML パース@xmldom/xmldom- DOM 実装fontoxpath- XPath クエリdiff-match-patch- テキスト差分lru-cache- メモリ効率の良いキャッシュuuid- ドキュメント ID の生成
パフォーマンスに関する注意事項
最大 10 MB のドキュメントに対応
100 パーツの制限と 1 GB のメモリ上限を持つ LRU キャッシュ
パーツはオンデマンドで読み込まれ、メモリに完全には読み込まれない
ダーティパーツ最適化: 変更されたパーツのみ ZIP に保存
XML 構造のディープコピーなし
制限事項
ヘッダー/フッター: 基本的なサポート(複雑なセクション構造は手動での調整が必要な場合があります)
コメント: 基本的な一覧/追加/削除(返信チェーンは完全にはサポートされていません)
変更履歴: すべて承認は可能。詳細な変更の検査は制限されています
スタイル: 完全な XML の取得/設定。選択的なスタイルのマージは不可
EMU/サイズ: 計算はされますが、レンダリングされるジオメトリは Word のレイアウトエンジンに依存します
ライセンス
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP-native collaborative markdown editor with real-time AI document editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mavline/docx-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server