Word AI
Integrates with GitHub Copilot to enable AI-assisted editing of Word DOCX files, providing tools for document inspection, PatchSet application, and rollback.
Enables OpenAI agents (including Codex) to perform safe, incremental editing of Microsoft Word DOCX files through structured PatchSet operations with content-control anchoring, dry-run, validation, and rollback.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Word AI Add 'Confidential' to header in my doc.docx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Word AI
Language | Preview |
Structure-preserving Word DOCX editing MCP server with a .NET Open XML backend and Office.js live sessions. | |
面向 AI Agent 的 Word DOCX 结构稳定编辑;支持 .NET 后端、Office.js 会话和安全 PatchSet。 |
Structure-preserving Word (DOCX) editing for AI agents.
Word AI is an open-source MCP server and Office.js bridge for safe, auditable, incremental editing of Microsoft Word documents. It is designed for Codex, OpenAI Agents, and other MCP clients that need to edit .docx files without rebuilding the document or damaging styles, numbering, tables, images, fields, headers, footers, and relationships.
Why Word AI
AI systems are good at generating text, but Word documents are structured packages. A naive DOCX-to-Markdown-to-DOCX workflow can break numbering, styles, tables, images, fields, references, and layout. Word AI keeps the original DOCX structure as the source of truth:
Agents generate constrained
PatchSetoperations.The local engine applies targeted OOXML/Open XML edits.
Every write goes through assessment, dry-run, backup, validation, audit, and diff.
The Office.js add-in provides a Word taskpane for anchor governance and human-in-the-loop workflows.
Related MCP server: docx-mcp
Key Features
63 MCP tools for DOCX inspection, anchors, headings, paragraphs, tables, fields, images, comments, revisions, PatchSet planning, dry-run, apply, validation, rollback, diff, live Word session editing, and optional read-only OfficeCLI evidence.
PatchSet-only writes. No full document rebuilds, no Markdown/HTML round-trips, and no direct source overwrite by default.
Agent-friendly PatchSet normalization for common aliases such as
operation,target_tag,new_text,text_sha256, and camelCase operation names, while preserving the canonical safety gates.Content-control first editing using stable Word content control tags such as
WORD-AI:SRS:1.0:overview.Strong preconditions with
source_sha256,expected_old_sha256, andexpected_old_text.Structure validation for package parts, content controls, tables, paragraphs, fields, comments, images, revisions, and protected body blocks.
Python MCP facade and bridge runtime for local agent integration, path policy, session queues, and distribution compatibility.
.NET 8 Open XML SDK engine as the authoritative offline DOCX transaction backend, using a packaged native binary or Release DLL when available.
Single-file standalone binaries and quickstart bundles for no-clone, no-venv, no-.NET-SDK offline DOCX editing and one-command Agent Skill installation.
Office.js taskpane for Word-side anchors, PatchSet preview, dry-run, apply, and open-document content-control editing with hash checks.
Live Word session tools (
word_session_*) so Codex can read, preview, apply, and roll back edits in the currently open Word document through Office.js.Local HTTP bridge secured by a local token and localhost-only CORS for Office add-in workflows.
Architecture
Codex / Agent / MCP Client
|
v
Word AI MCP Server
|
+--> Python MCP facade / read indexes / Office bridge
+--> .NET Open XML SDK backend for offline PatchSet transactions
+--> Office bridge HTTP API
+--> File-backed Word session command queue
|
v
Original DOCX -> PatchSet -> Candidate DOCX -> Validation -> Output DOCX + Audit JSON + DiffThe Office.js taskpane is the Word session layer. It creates and lists content controls, connects to the local bridge, registers the current Word document as a live session, polls commands queued by Codex, executes supported PatchSet operations through Office.js, and returns audit/rollback data.
Quick Start
Use the most native distribution path your agent host supports:
MCP Registry / MCPB first: install the MCP server from the official MCP Registry using server name
io.github.flyfish-dev/word-ai.Standalone quickstart for the lowest local setup cost: download the current-platform GitHub Release bundle when you want one executable that can run MCP, install the Skill, and generate Codex config without a source checkout.
Agent Skill next: install the
word-aiSkill so Codex, Claude Code, and compatible agents know when to choose offlinedocx_*versus liveword_session_*.Local source install for full Word sessions: use this when you need the Office.js taskpane, localhost bridge, .NET Open XML regression path, or development workflow.
npm as a secondary channel: use npm only when your MCP host cannot consume MCP Registry/MCPB yet, or when you want a no-clone stdio server command.
MCP Registry details:
Server name:
io.github.flyfish-dev/word-aiRegistry metadata: server.json
MCPB package:
https://github.com/flyfish-dev/word-ai/releases/download/v0.8.6/word-ai-0.8.6.mcpbRegistry latest API:
https://registry.modelcontextprotocol.io/v0.1/servers/io.github.flyfish-dev%2Fword-ai/versions/latest
Fast local setup with the standalone quickstart bundle:
tar -xzf word-ai-quickstart-0.8.6-osx-arm64.tar.gz
cd word-ai-quickstart-0.8.6-osx-arm64
./word-ai install-skill
./word-ai codex-config --output .wordai/codex-config.toml
./word-ai mcp --root "$PWD" --allow-root "$HOME/Downloads" --allow-root "$HOME/Documents"Choose the artifact matching your platform: linux-x64, linux-arm64, osx-arm64, osx-x64, win-x64, or win-arm64. See Distribution for the complete release asset policy.
Install the Skill and full local runtime:
git clone https://github.com/flyfish-dev/word-ai.git
cd word-ai
bash scripts/install.sh
bash scripts/start.shThis installs the Python MCP facade, builds the Office.js taskpane, builds the .NET Open XML backend when .NET SDK 8 is available, writes .wordai/codex-config.toml, and installs the word-ai skill into Codex, Claude Code, and detected compatible agent clients.
Install or refresh only the Agent Skill:
python3 scripts/install_agent_skills.pyFor browser-only taskpane debugging:
bash scripts/start.sh --httpOn Windows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts\install.ps1
powershell -ExecutionPolicy Bypass -File scripts\start.ps1For a readiness check:
.venv/bin/word-ai --root "$PWD" doctorDeveloper checks:
PYTHONPATH=. .venv/bin/python scripts/run_smoke_test.py
PYTHONPATH=. .venv/bin/python scripts/run_structure_regression.py
PYTHONPATH=. .venv/bin/python scripts/run_outline_regression.py
PYTHONPATH=. .venv/bin/python scripts/run_engine_selection_regression.pyBuild the .NET engine:
dotnet --version # requires .NET SDK 8
dotnet build dotnet/WordAi.OpenXml/WordAi.OpenXml.csproj -c Release
scripts/publish_dotnet.sh # current host RID in dist/native/<rid>
scripts/publish_dotnet.sh --all # all supported release RIDs
PYTHONPATH=. .venv/bin/python scripts/run_dotnet_regression.pyOffline Engine Selection
Offline file transactions use the .NET Open XML backend by default when it is available. Selection order is:
WORD_AI_DOTNET_EXEor a packaged native executable undernative/<rid>/ordist/native/<rid>/.WORD_AI_DOTNET_DLLor the local Release DLL atdotnet/WordAi.OpenXml/bin/Release/net8.0/WordAi.OpenXml.dll.Local source project via
dotnet run --project dotnet/WordAi.OpenXml/WordAi.OpenXml.csproj.Python OOXML fallback only when .NET is unavailable and
WORD_AI_ENGINE=auto.
MCPB includes self-contained native backends for osx-arm64, osx-x64, linux-x64, linux-arm64, linux-musl-x64, linux-musl-arm64, win-x64, and win-arm64. Standalone quickstart bundles are built for standard hosted platforms: linux-x64, linux-arm64, osx-arm64, osx-x64, win-x64, and win-arm64, with the matching Open XML backend linked into the single-file executable. Word AI detects the current RID, including Linux glibc vs musl for native backend loading, and loads the matching binary automatically. The npm launcher keeps the package small: on first run it downloads the current-platform quickstart bundle from GitHub Releases and executes the bundled word-ai. Advanced deployments can override detection with WORD_AI_DOTNET_RID, WORD_AI_DOTNET_EXE, or WORD_AI_DOTNET_NATIVE_DIR; set WORD_AI_NPM_USE_SOURCE_BOOTSTRAP=1 only when you want the legacy Python venv npm path.
Control it with WORD_AI_ENGINE=auto|dotnet|python, or pass engine to docx_assess_patchset, docx_dry_run_patchset, docx_apply_patchset, and docx_validate. Use WORD_AI_ENGINE=dotnet in production to fail fast instead of silently falling back.
Build the Office add-in:
cd office-addin
npm install
npm run buildAgent Skill Auto-Install
Word AI ships a formal word-ai Agent Skill. This is the preferred way to teach agents the safe workflow, even when the MCP server is installed through the MCP Registry. The installer copies the Skill into the locations that current agent clients scan automatically:
Codex official user skills:
~/.agents/skills/word-aiCodex app compatibility skills:
~/.codex/skills/word-aiClaude Code personal skills:
~/.claude/skills/word-aiExisting compatible clients when detected: Cursor, Windsurf, GitHub Copilot, and OpenClaw skill folders
Install or refresh only the skills:
python3 scripts/install_agent_skills.pyAdvanced targets:
python3 scripts/install_agent_skills.py --agents all
python3 scripts/install_agent_skills.py --project
python3 scripts/install_agent_skills.py --dry-runAfter installation, start a new agent session or restart the client if the skill does not appear immediately. The skill can then be invoked directly as word-ai / $word-ai, or selected implicitly when a DOCX editing task mentions Word, Office.js, content controls, PatchSet, validation, rollback, or audit.
Global MCP Distribution
Word AI is published for discovery through the official MCP Registry and MCPB distribution. Prefer this channel for MCP host installation because it carries standardized server metadata, versioning, transport details, and provenance:
MCP server name:
io.github.flyfish-dev/word-aiMCPB package:
https://github.com/flyfish-dev/word-ai/releases/download/v0.8.6/word-ai-0.8.6.mcpbRegistry metadata: server.json
Publishing guide: MCP Registry Publishing
Standalone and quickstart guide: Distribution
Local container smoke test:
docker build -t word-ai:local .
docker run --rm -i \
-v "$PWD:/workspace" \
-v "$HOME/Downloads:/documents/Downloads" \
word-ai:localThe MCP Registry release uses a public MCPB artifact for one-click-friendly local server installation. The standalone quickstart bundle is the lowest-friction local command path because it embeds the Python facade, dependencies, current-platform .NET Open XML backend, schemas, and Skill template in one executable. The MCPB package requires Python 3.10+ and bootstraps a local virtual environment on first run. The Dockerfile remains available for local or self-hosted builds. For full Office.js live-session editing, use the local source install path because the Word taskpane and localhost bridge must run on the user's machine.
Secondary npm Channel
npm is a convenience fallback for clients that do not yet consume MCP Registry/MCPB packages, for CI smoke tests, and for quick no-clone stdio server startup. It is not the primary discovery channel.
Recommended scoped package:
npm exec --yes --package @flyfish-dev/word-ai -- word-ai-mcp --root "$PWD" --allow-root "$HOME/Downloads"
npm exec --yes --package @flyfish-dev/word-ai -- word-ai --root "$PWD" doctorUnscoped compatibility package:
npx -y word-ai-mcp --root "$PWD"
npm exec --yes --package word-ai-mcp -- word-ai --root "$PWD" doctor
npm exec --yes --package word-ai-mcp -- word-ai-mcp --root "$PWD"After a global install, the same commands are available directly:
npm install -g @flyfish-dev/word-ai
word-ai --root "$PWD" doctor
word-ai-mcp --root "$PWD" --allow-root "$HOME/Downloads"The first npm run downloads the current-platform quickstart bundle from GitHub Releases, caches it under the user cache, and executes the bundled standalone word-ai. No Python venv, pip install, or separate Open XML backend download is required on the default npm path. Set WORD_AI_NPM_USE_SOURCE_BOOTSTRAP=1 only when you explicitly want the legacy Python venv bootstrap path.
Use With Codex MCP
The installer writes a ready-to-merge MCP configuration snippet:
cat .wordai/codex-config.tomlAdd it to your Codex MCP config. The generated snippet includes write-tool approval gates. A minimal manual version is:
[mcp_servers.word_ai]
command = "/absolute/path/to/word-ai/.venv/bin/python"
args = [
"-m", "word_ai_mcp.server",
"--root", "/absolute/path/to/word-ai",
"--allow-root", "/Users/you/Downloads",
"--allow-root", "/Users/you/Documents"
]
enabled = true
startup_timeout_sec = 30
[mcp_servers.word_ai.env]
PYTHONPATH = "/absolute/path/to/word-ai"Secondary npm-based Codex setup, for hosts that cannot install from MCP Registry/MCPB yet:
[mcp_servers.word_ai]
command = "npm"
args = [
"exec",
"--yes",
"--package",
"@flyfish-dev/word-ai",
"--",
"word-ai-mcp",
"--root",
"/absolute/path/to/workspace",
"--allow-root",
"/Users/you/Downloads",
"--allow-root",
"/Users/you/Documents"
]
enabled = true
startup_timeout_sec = 60You can replace @flyfish-dev/word-ai with the unscoped compatibility package word-ai-mcp in the npm-based Codex config.
--root is the primary workspace for relative paths and Word AI sidecars. Repeat --allow-root for external document folders you want Codex to edit, such as Downloads, Documents, or a team project folder. The installer-generated .wordai/codex-config.toml includes common user document folders automatically.
Recommended approval policy for write tools:
docx_dry_run_patchsetdocx_apply_patchsetdocx_backupdocx_restore_backupdocx_rollbackword_session_apply_patchsetword_session_wrap_selectionword_session_rollbacksidecar export tools
Example prompt:
Use word_ai to inspect examples/sample_contract.docx, list content controls, read WORD-AI:SRS:1.0:overview, and prepare a PatchSet. Run assess and dry-run before applying.For the currently open Word document, load the Office add-in, connect the bridge, then ask Codex:
Use word_ai to list active Word sessions, read WORD-AI:SRS:1.0:overview from the live Word session, preview a PatchSet through Office.js, then apply it to the open document and return the audit plus rollback PatchSet.Office.js Bridge And Live Word Sessions
The easiest path is:
bash scripts/start.shFor manual startup, start the local bridge:
PYTHONPATH=. .venv/bin/python -m word_ai_mcp.server_http \
--root "$PWD" \
--host 127.0.0.1 \
--port 8765Start the taskpane:
cd office-addin
npm run devThen sideload office-addin/manifest.xml in Word. The taskpane runs at https://localhost:3100/taskpane.html by default and proxies /bridge/* to the local bridge. The bridge prints a local token at startup. Use that token in the taskpane.
Once connected inside Word, the taskpane registers a live session under .wordai/sessions. Codex can then use:
word_session_listword_session_snapshotword_session_read_content_controlword_session_preview_patchsetword_session_apply_patchsetword_session_wrap_selectionword_session_rollbackword_session_command_status
This path edits the currently open Word document through Office.js. word_session_apply_patchset performs a live preflight against the open document, checks expected_old_sha256, applies supported content-control operations, returns an audit object, and generates a rollback PatchSet. The offline DOCX path still uses docx_* tools and the OOXML/Open XML validator.
OfficeCLI Compatibility Policy
Word AI can optionally use OfficeCLI as auxiliary evidence for read-only or low-risk checks: view html, view screenshot, view issues, query --json, and validate. OfficeCLI mutation commands such as set, add, remove, raw-set, batch, and merge are not part of the default Word AI workflow unless they are wrapped by Word AI PatchSet, dry-run, audit, rollback, and explicit approval gates.
The MCP server exposes this integration only through allowlisted wrappers: officecli_view_html, officecli_view_screenshot, officecli_view_issues, officecli_query, and officecli_validate. If OfficeCLI is not installed, these tools return available=false and the core Word AI workflow continues to use docx_* and word_session_*.
Word AI borrows useful OfficeCLI design ideas such as schema/help-first usage, semantic paths, watch/render evidence, template merge concepts, and dump/batch inspection. The authoritative write model remains Word AI PatchSet.
Safe Editing Workflow
docx_health_check
-> docx_map / docx_list_anchors / docx_list_content_controls
-> docx_read_content_control / docx_read_table_cell / docx_read_paragraph
-> generate PatchSet with source_sha256 and expected_old_sha256
-> docx_assess_patchset
-> docx_dry_run_patchset
-> docx_backup
-> docx_apply_patchset
-> docx_validate / docx_compare_structure
-> docx_text_diffDocumentation
Repository Status
Word AI is currently a local-first developer tool. It is suitable for controlled DOCX editing experiments, agent integration, and internal workflow pilots. For production remote MCP deployments, use proper MCP Streamable HTTP transport, authentication, network controls, audit storage, and render/visual diff infrastructure.
License
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE.
Available Tools
63 toolsdocx_apply_patchsetC
Write. Apply constrained PatchSet to a new DOCX plus audit JSON; validation gates final commit. Defaults to the .NET Open XML backend when available.
Inputs: patchset (required), docx_path (required), engine, output_path.
docx_assess_patchsetB
Read-only. Resolve PatchSet targets and report risks, touched objects and precondition gaps. Defaults to the .NET Open XML backend when available.
Inputs: patchset (required), docx_path (required), engine.
docx_backupB
Write-sidecar only. Create timestamped backup; does not modify original DOCX.
Inputs: docx_path (required), backup_dir.
docx_compare_structureC
Read-only. Same validation report phrased as structural comparison. Defaults to the .NET Open XML backend when available.
Inputs: source_docx (required), target_docx (required), engine, strict, +8 more.
docx_dry_run_patchsetC
Write-temp. Same as preflight; useful for explicit Codex dry-run stage. Defaults to the .NET Open XML backend when available.
Inputs: patchset (required), docx_path (required), engine, keep_output.
docx_export_plain_textC
Write-sidecar only. Export visible body text to .txt; does not modify DOCX.
Inputs: docx_path (required), out_path.
docx_export_table_csvB
Write-sidecar only. Export table to CSV; does not modify DOCX. Uses default sidecar naming when out_path is omitted.
Inputs: docx_path (required), table_index (required), out_path, scope_tag.
docx_extract_commentsC
Read-only. Extract full comment metadata and text.
Inputs: docx_path (required).
docx_extract_plain_textA
Read-only. Extract visible body text for coarse review; never use to regenerate DOCX.
Inputs: docx_path (required).
docx_get_outlineB
Read-only. Heading outline with section paragraph ranges for large-document chunking.
Inputs: docx_path (required).
docx_health_checkA
Read-only. Conservative stability report: duplicate tags, complex content controls, fields, tracked changes, comments, table previews and recommended safety policy.
Inputs: docx_path (required), max_items.
docx_inspectC
Read-only. Inspect counts, anchors and optional visible text.
Inputs: docx_path (required), include_text.
docx_list_anchorsB
Read-only. List stable editing anchors: content controls, headings, bookmarks and paraId paragraphs.
Inputs: docx_path (required), max_preview.
docx_list_bookmarksC
Read-only. List bookmarks and paths for cross-reference preservation.
Inputs: docx_path (required).
docx_list_commentsC
Read-only. Extract comments.xml previews, author/date/id and hashes.
Inputs: docx_path (required), max_preview.
docx_list_content_controlsB
Read-only. List content controls with tag, alias, id, preview, text hash and complexity.
Inputs: docx_path (required), max_preview.
docx_list_fieldsB
Read-only. List field instructions such as TOC, REF, PAGEREF and SEQ.
Inputs: docx_path (required), max_preview.
docx_list_headingsB
Read-only. Heading-only view with previews and hashes.
Inputs: docx_path (required), max_preview.
docx_list_hyperlinksA
Read-only. List hyperlinks with relationship targets, preview and hashes.
Inputs: docx_path (required), max_preview.
docx_list_imagesC
Read-only. List drawing/pict objects with relationship IDs and alt metadata.
Inputs: docx_path (required).
docx_list_notesC
Read-only. Inspect footnotes/endnotes when present.
Inputs: docx_path (required), max_preview.
docx_list_numberingB
Read-only. Inspect numbering.xml numId/abstractNum mappings.
Inputs: docx_path (required).
docx_list_paragraphsC
Read-only. Paragraph inventory with style, paraId, heading level, scope, preview, hash and complexity.
Inputs: docx_path (required), max_preview, include_empty.
docx_list_partsA
Read-only. List all package parts with sizes and hashes.
Inputs: docx_path (required).
docx_list_revisionsA
Read-only. List tracked-change nodes with previews and hashes.
Inputs: docx_path (required), max_preview.
docx_list_sectionsB
Read-only. Inspect section properties, margins, page size and header/footer refs.
Inputs: docx_path (required).
docx_list_stylesA
Read-only. List Word styles from styles.xml for style-aware generation.
Inputs: docx_path (required).
docx_list_tablesB
Read-only. List table dimensions, scope tags, complexity and preview rows.
Inputs: docx_path (required), max_cell_chars.
docx_mapB
Read-only. Codex-friendly map: health, headings, anchors, paragraph chunks, table summaries and hashes.
Inputs: docx_path (required), max_preview, include_text.
docx_outlineA
Read-only alias for docx_get_outline; kept for Codex prompt ergonomics.
Inputs: docx_path (required).
docx_package_manifestC
Read-only. DOCX ZIP manifest with part sizes and optional SHA-256 hashes.
Inputs: docx_path (required), include_hashes.
docx_part_hashesA
Read-only. Compact DOCX part-hash map for before/after invariance checks.
Inputs: docx_path (required).
docx_plan_patchsetD
Read-only. Alias-grade PatchSet planning assessment. Defaults to the .NET Open XML backend when available.
Inputs: patchset (required), docx_path (required), engine.
docx_preflight_patchsetB
Write-temp. Dry-run PatchSet to a temporary copy, validate, and remove output unless keep_output=true. Defaults to the .NET Open XML backend when available.
Inputs: patchset (required), docx_path (required), engine, keep_output.
docx_read_anchorB
Read-only. Read text behind an anchor_id from docx_list_anchors.
Inputs: anchor_id (required), docx_path (required), max_chars.
docx_read_content_controlA
Read-only. Read content-control text by w:tag. Preferred primitive for safe edits.
Inputs: tag (required), docx_path (required).
docx_read_heading_sectionC
Read-only. Read one heading section by heading anchor_id or exact heading text.
Inputs: docx_path (required), max_chars, heading_text, heading_anchor_id.
docx_read_paragraphC
Read-only. Read one paragraph by paragraph_index or paraId and return hash/complexity.
Inputs: docx_path (required), paraId, paragraph_index.
docx_read_tableB
Read-only. Read a table matrix by table_index and optional content-control scope_tag.
Inputs: docx_path (required), table_index (required), scope_tag, max_chars_per_cell.
docx_read_table_cellC
Read-only. Read a single table cell and return hash for write preconditions.
Inputs: col (required), row (required), docx_path (required), table_index (required), +2 more.
docx_restore_backupC
Write. Restore a backup to target_path.
Inputs: backup_path (required), target_path (required).
docx_rollbackD
Write. Restore from backup and optionally back up replaced file first.
Inputs: backup_path (required), restore_path (required), make_backup_of_current.
docx_search_textB
Read-only. Search visible paragraph text; returns paraId, paragraph index, scope and hashes.
Inputs: query (required), docx_path (required), regex, max_results, +2 more.
docx_structural_fingerprintA
Read-only. Strong structure fingerprint: package parts, content-control hashes, paragraph hashes, table hashes, outline and health report.
Inputs: docx_path (required).
docx_table_to_csvC
Write-sidecar only. Export table to CSV using default naming when out_path is omitted.
Inputs: docx_path (required), table_index (required), out_path, scope_tag.
docx_text_diffB
Read-only. Unified visible-text diff for human review after validation.
Inputs: source_docx (required), target_docx (required), context.
docx_validateB
Read-only. Validate structural invariants. Supply touched_* for intentional edits. Defaults to the .NET Open XML backend when available.
Inputs: source_docx (required), target_docx (required), engine, strict, +8 more.
docx_write_indexC
Write-sidecar only. Write .wordai index JSON; does not modify DOCX.
Inputs: docx_path (required), out_path.
officecli_queryB
Optional OfficeCLI auxiliary read. Run CSS-like query with --json. Use only for inspection, never mutation.
Inputs: selector (required), docx_path (required), max_output_chars.
officecli_validateC
Optional OfficeCLI auxiliary read. Validate the DOCX with OfficeCLI --json as extra evidence after Word AI validation.
Inputs: docx_path (required), max_output_chars.
officecli_view_htmlC
Optional OfficeCLI auxiliary read. Render a DOCX to a bounded HTML snapshot for visual evidence. Does not modify the DOCX.
Inputs: docx_path (required), page, max_output_chars.
officecli_view_issuesC
Optional OfficeCLI auxiliary read. Run view issues with JSON output for formatting/content/structure evidence.
Inputs: docx_path (required), limit, issue_type, max_output_chars.
officecli_view_screenshotC
Optional OfficeCLI auxiliary sidecar export. Render a DOCX screenshot/PNG to output_path. Does not modify the DOCX.
Inputs: docx_path (required), output_path (required), page, max_output_chars, +2 more.
word_session_apply_patchsetC
Write. Apply a supported content-control PatchSet to the currently open Word document through Office.js, with hash preconditions, audit, and rollback PatchSet.
Inputs: patchset (required), wait, session_id, timeout_seconds.
word_session_command_statusA
Read-only. Return the current status/result/error for a queued Office.js session command.
Inputs: command_id (required).
word_session_listB
Read-only. List active Office.js taskpane sessions registered by an open Word document.
Inputs: include_inactive.
word_session_preview_patchsetB
Read-only. Ask the Office.js taskpane to validate and preview a PatchSet against the currently open Word document without modifying it.
Inputs: patchset (required), wait, session_id, timeout_seconds.
word_session_read_content_controlB
Read-only. Ask the Office.js taskpane to read content-control text from the currently open Word document by tag.
Inputs: tag (required), wait, session_id, timeout_seconds.
word_session_refreshB
Read-only. Ask the Office.js taskpane to refresh its open-document content-control snapshot.
Inputs: wait, session_id, timeout_seconds.
word_session_rollbackC
Write. Roll back a previous word_session_apply_patchset command by applying its generated rollback PatchSet to the open Word document.
Inputs: wait, command_id, session_id, timeout_seconds, +1 more.
word_session_snapshotA
Read-only. Return the latest content-control snapshot for an open Word session. If session_id is omitted, uses the most recently active session.
Inputs: session_id.
word_session_wrap_selectionC
Write. Ask the Office.js taskpane to wrap the current Word selection in a content control with a stable tag/title.
Inputs: tag (required), wait, title, session_id, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 63 tools
Most tools have distinct purposes, with detailed descriptions helping to differentiate. However, there are a few aliases and overlapping tools (e.g., docx_outline and docx_get_outline; docx_validate and docx_compare_structure) that could cause confusion.
The naming follows a consistent pattern of domain prefix (docx_, word_session_, officecli_) followed by verb_noun. Minor inconsistencies exist, like docx_table_to_csv vs. docx_export_table_csv and the alias docx_outline, but overall it is predictable.
63 tools is high for a single server. While the domain is broad and the tools are mostly justified, some redundancy and alias tools could be consolidated. The count feels slightly excessive for the scope.
The tool surface is remarkably comprehensive, covering reading, writing via PatchSet, Word session integration, validation, backup/restore, and auxiliary inspection. There are no obvious missing operations for the stated purpose of DOCX manipulation and automation.
Maintenance
Related MCP Connectors
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Online office suite for AI agents: edit docs, sheets, slides and PDFs in browser or via MCP.
Convert, create and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnterprise-grade document editing and management server that enables AI-powered operations on Microsoft Word DOCX files, including creating, editing, formatting, and exporting documents through both MCP protocol and RESTful API.3MIT
- AlicenseBqualityDmaintenanceAn MCP server for reading, editing, and validating Microsoft Word documents with specialized support for track changes, comments, and footnotes. It enables structural auditing, heading extraction, and precise OOXML-level document manipulation through natural language tools.101001,196 PyPI67MIT
- AlicenseAqualityDmaintenanceMCP server for Word document (.docx) creation and manipulation — the production-grade document automation tool for AI agents.946 npmMIT
- AlicenseAqualityBmaintenanceMCP server that lets agents edit real Microsoft Word (.docx) documents - tracked changes, tables, styles, comments, content controls, and document properties - with every edit validated and previewed before saving. Built on the Open XML SDK (no Word automation); reads and writes documents in place through filesystem or SharePoint storage.1628MIT