# MCP Office Word

A local MCP server for assembling Word files from templates, handling tracked changes, and checking document structure. It runs through uvx.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 8
- Author: dosev-ai
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/dosev-ai/mcp-office
- Updated: 2026-09-23
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-office-word

## What it does

MCP Office Word gives an agent tools for template-based Word document assembly, tracked-change workflows, and structural checks. The package exposes 50 tools. It runs as a local Python MCP process over stdio, so the client can call Word operations directly.

Use Windows 10 or 11 with Python 3.11 or newer. Microsoft Office is needed for COM-dependent work such as tracked changes; read-only `.docx` handling works without Office. Set `WORD_ALLOWLIST_ROOTS` to the permitted file directory, then use `WORD_ENABLE_WRITE` and `WORD_ENABLE_COM` for the related capabilities. COM-based Word work will not run outside Windows.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `WORD_ALLOWLIST_ROOTS`, `WORD_ENABLE_WRITE`, `WORD_ENABLE_COM` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env WORD_ALLOWLIST_ROOTS=<WORD_ALLOWLIST_ROOTS> --env WORD_ENABLE_WRITE=<WORD_ENABLE_WRITE> --env WORD_ENABLE_COM=<WORD_ENABLE_COM> --transport stdio mcp-office-word -- uvx mcp-office
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-office <command>

### Codex

**Platform CLI**
```bash
codex mcp add mcp-office-word --env WORD_ALLOWLIST_ROOTS=<WORD_ALLOWLIST_ROOTS> --env WORD_ENABLE_WRITE=<WORD_ENABLE_WRITE> --env WORD_ENABLE_COM=<WORD_ENABLE_COM> -- uvx mcp-office
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-office <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-office-word": {
            "command": "uvx",
            "args": [
                "mcp-office"
            ],
            "env": {
                "WORD_ALLOWLIST_ROOTS": "<WORD_ALLOWLIST_ROOTS>",
                "WORD_ENABLE_WRITE": "<WORD_ENABLE_WRITE>",
                "WORD_ENABLE_COM": "<WORD_ENABLE_COM>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-office <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-office-word": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "mcp-office"
            ],
            "env": {
                "WORD_ALLOWLIST_ROOTS": "<WORD_ALLOWLIST_ROOTS>",
                "WORD_ENABLE_WRITE": "<WORD_ENABLE_WRITE>",
                "WORD_ENABLE_COM": "<WORD_ENABLE_COM>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-office <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e WORD_ALLOWLIST_ROOTS=<WORD_ALLOWLIST_ROOTS> -e WORD_ENABLE_WRITE=<WORD_ENABLE_WRITE> -e WORD_ENABLE_COM=<WORD_ENABLE_COM> mcp-office-word uvx mcp-office
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from mcp-office <command>

## When to use it
- assemble a Word file from a template
- apply and inspect tracked changes
- check the structure of a `.docx` file
- connect Word document work to an MCP client

## Example prompts
- Assemble a Word document from `contract.docx` using the data in `client.json`.
- Inspect `report.docx` and list structural issues.
- Apply the requested changes to `draft.docx` and save the result in the allowed folder.

## Similar
- [office-mcp](https://affpapa.org/en/nevibecode/skills/office-mcp.md) — skill · 6900 installs
- [office-productivity](https://affpapa.org/en/nevibecode/skills/office-productivity.md) — skill · 1600 installs
- [word-document-processor](https://affpapa.org/en/nevibecode/skills/word-document-processor.md) — skill · 3600 installs
- [KitchenSink4Word](https://affpapa.org/en/nevibecode/mcp/kitchensink4word.md) — MCP server · ★ 12
- [word-document](https://affpapa.org/en/nevibecode/skills/word-document.md) — skill · 790 installs
- [Safe Docx](https://affpapa.org/en/nevibecode/mcp/safe-docx.md) — MCP server · ★ 47

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
