DOCX MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| docx.openC | Open a DOCX document |
| docx.closeC | Close a DOCX document |
| docx.saveC | Save a DOCX document |
| docx.list_partsC | List document parts |
| docx.part_readC | Read a document part |
| docx.part_writeD | Write a document part |
| docx.get_textC | Extract all text |
| docx.replace_textC | Replace text in document |
| docx.findD | Find text in document |
| docx.tables_listC | List all tables |
| docx.table_editC | Edit table content |
| docx.sdt_getC | Get SDT content |
| docx.sdt_putD | Set SDT content |
| docx.images_listC | List all images |
| docx.styles_getC | Get document styles |
| docx.styles_setD | Set document styles |
| docx.numbering_getC | Get numbering |
| docx.numbering_setD | Set numbering |
| docx.headers_footers_listA | List headers and footers |
| docx.comments_listC | List comments |
| docx.comments_addC | Add a comment |
| docx.comments_deleteC | Delete a comment |
| docx.changes_accept_allC | Accept all tracked changes |
| docx.metadata_getC | Get document metadata |
| docx.copyB | Copy document to new file and open it |
| docx.text_runs_analyzeB | Analyze ALL text runs (each <w:t> element) - LLM SEES every word/phrase with formatting |
| docx.text_run_replaceB | Replace text in SPECIFIC run by coordinates (paragraph/run/textNode indices) - precise word-level editing |
| docx.text_find_locationsA | Find text and return exact coordinates of all occurrences - LLM can see where to edit |
| docx.validate_structureC | Validate document structure and detect corruption |
| docx.find_empty_table_rowsA | Find all empty rows in tables for MANUAL analysis |
| docx.remove_table_rowC | Remove specific table row by coordinates - USE ONLY after manual analysis |
| docx.get_table_contentB | Get content of specific table - all rows with text and empty status |
| docx.read_paragraph_rangeC | Read range of paragraphs with formatting info (RTL, style, alignment) |
| docx.fix_paragraph_rtlA | Fix RTL direction of paragraph - USE ONLY after manual check |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 34 tools
Many tools have distinct targets, but there is meaningful overlap between find and text_find_locations, get_text and text_runs_analyze, and find_empty_table_rows and get_table_content. The descriptions help clarify intent, but an agent could easily select the wrong tool for text or table inspection tasks.
All tools share the docx. prefix, which helps, but the naming pattern is inconsistent: some are verb_noun (list_parts, get_text), some are noun_verb (metadata_get, tables_list), and a few are bare verbs (open, save, find). Synonyms like get/list/read and set/put/write are also mixed.
With 34 tools, this exceeds the 25+ threshold and feels heavy. Several tools are highly granular and could be consolidated, such as find_empty_table_rows versus get_table_content, or find versus text_find_locations, without sacrificing clarity.
The server covers a wide range of DOCX operations: text, tables, comments, styles, headers/footers, SDT content, and validation. However, obvious gaps remain, including no create-from-scratch operation, no paragraph insertion, no table creation, and no image insertion or replacement.