
Che Word Mcp
A pure Swift OOXML implementation that manipulates Word documents without any Microsoft or Node.js dependencies. You get 234 tools covering everything from basic text replacement to programmatic track changes, content controls, and table manipulation. The round trip fidelity is production grade: untouched parts stay byte identical, and it handles complex documents with nested tables, comment threads, and equation LaTeX. Particularly notable for the autosave snapshots and atomic rename saves that guard against corruption during multi step edits. Ships as a single universal binary. Reach for this when you need Claude to read or modify docx files directly, whether that's batch processing manuscripts, generating reviewable redlines, or maintaining document templates with proper styles and numbering.
- GitHub stars
- 5
- tools
- 80
- transport
- STDIO
- last updated
- Mar 13, 2026
Tools
80 toolsPublic tool metadata for what this MCP can expose to an agent.
create_documentCreate a new Word document
Create a new Word document
No parameter schema in public metadata yet.
open_documentOpen an existing .docx file (track_changes default false since v3.0.0)
Open an existing .docx file (track_changes default false since v3.0.0)
No parameter schema in public metadata yet.
save_documentSave document to .docx file
Save document to .docx file
No parameter schema in public metadata yet.
close_documentClose an open document (pass discard_changes: true to drop dirty edits)
Close an open document (pass discard_changes: true to drop dirty edits)
No parameter schema in public metadata yet.
finalize_documentSave and close in one guarded step
Save and close in one guarded step
No parameter schema in public metadata yet.
list_open_documentsList all open documents
List all open documents
No parameter schema in public metadata yet.
get_session_stateSnapshot { source_path, disk_hash_hex, disk_mtime_iso8601, is_dirty, track_changes_enabled }
Snapshot { source_path, disk_hash_hex, disk_mtime_iso8601, is_dirty, track_changes_enabled }
No parameter schema in public metadata yet.
get_document_session_stateLegacy session snapshot (preserved for backward compat)
Legacy session snapshot (preserved for backward compat)
No parameter schema in public metadata yet.
revert_to_diskRe-read source path, discard in-memory edits (destructive-by-design)
Re-read source path, discard in-memory edits (destructive-by-design)
No parameter schema in public metadata yet.
reload_from_diskCooperative reload; requires force: true on dirty doc
Cooperative reload; requires force: true on dirty doc
No parameter schema in public metadata yet.
check_disk_driftInformational — returns { drifted, disk_mtime, stored_mtime, disk_hash_matches }
Informational — returns { drifted, disk_mtime, stored_mtime, disk_hash_matches }
No parameter schema in public metadata yet.
get_textGet plain text content
Get plain text content
No parameter schema in public metadata yet.
get_paragraphsGet all paragraphs with formatting
Get all paragraphs with formatting
No parameter schema in public metadata yet.
estimate_paragraph_for_pageEstimate a Word UI page number to a get_paragraphs candidate range (heuristic JSON with confidence + warning)
Estimate a Word UI page number to a get_paragraphs candidate range (heuristic JSON with confidence + warning)
No parameter schema in public metadata yet.
insert_paragraphInsert a new paragraph
Insert a new paragraph
No parameter schema in public metadata yet.
update_paragraphUpdate paragraph content
Update paragraph content
No parameter schema in public metadata yet.
delete_paragraphDelete a paragraph
Delete a paragraph
No parameter schema in public metadata yet.
replace_textCross-run-safe find & replace with scope (body|al
Cross-run-safe find & replace with scope (body|al
No parameter schema in public metadata yet.
insert_tableInsert a table with optional data
Insert a table with optional data
No parameter schema in public metadata yet.
get_tablesGet all tables information
Get all tables information
No parameter schema in public metadata yet.
update_cellUpdate cell content
Update cell content
No parameter schema in public metadata yet.
delete_tableDelete a table
Delete a table
No parameter schema in public metadata yet.
merge_cellsMerge cells horizontally or vertically
Merge cells horizontally or vertically
No parameter schema in public metadata yet.
set_table_styleSet table borders and shading
Set table borders and shading
No parameter schema in public metadata yet.
add_row_to_tableRow management
Row management
No parameter schema in public metadata yet.
delete_row_from_tableRow management
Row management
No parameter schema in public metadata yet.
add_column_to_tableColumn management
Column management
No parameter schema in public metadata yet.
delete_column_from_tableColumn management
Column management
No parameter schema in public metadata yet.
set_cell_widthCell sizing + alignment
Cell sizing + alignment
No parameter schema in public metadata yet.
set_cell_vertical_alignmentCell sizing + alignment
Cell sizing + alignment
No parameter schema in public metadata yet.
set_row_heightRow height + table alignment
Row height + table alignment
No parameter schema in public metadata yet.
set_table_alignmentRow height + table alignment
Row height + table alignment
No parameter schema in public metadata yet.
set_table_conditional_styleApply firstRow / lastRow / bandedRows etc. (10 region types) via <w:tblStylePr>
Apply firstRow / lastRow / bandedRows etc. (10 region types) via <w:tblStylePr>
No parameter schema in public metadata yet.
insert_nested_tableInsert table-in-cell, depth-limited to 5 (throws nested_too_deep)
Insert table-in-cell, depth-limited to 5 (throws nested_too_deep)
No parameter schema in public metadata yet.
set_table_layoutSwitch fixed / autofit
Switch fixed / autofit
No parameter schema in public metadata yet.
set_header_rowMark row as <w:tblHeader/> for repeat-on-page-break
Mark row as <w:tblHeader/> for repeat-on-page-break
No parameter schema in public metadata yet.
set_table_indentTable-level left indent (<w:tblInd>)
Table-level left indent (<w:tblInd>)
No parameter schema in public metadata yet.
list_stylesList all available styles (Direct Mode supported)
List all available styles (Direct Mode supported)
No parameter schema in public metadata yet.
create_styleCreate custom style — extended with 6 v3.10 args
Create custom style — extended with 6 v3.10 args
No parameter schema in public metadata yet.
update_styleUpdate style definition — same 6 extended args
Update style definition — same 6 extended args
No parameter schema in public metadata yet.
delete_styleDelete custom style
Delete custom style
No parameter schema in public metadata yet.
get_style_inheritance_chainTraverse basedOn chain upward to root with cycle detection
Traverse basedOn chain upward to root with cycle detection
No parameter schema in public metadata yet.
link_stylesBidirectional <w:link> between paragraph and character style pair
Bidirectional <w:link> between paragraph and character style pair
No parameter schema in public metadata yet.
set_latent_stylesControl Quick Style Gallery defaults via <w:latentStyles> block
Control Quick Style Gallery defaults via <w:latentStyles> block
No parameter schema in public metadata yet.
add_style_name_aliasLocalized <w:name> alias per BCP 47 lang code
Localized <w:name> alias per BCP 47 lang code
No parameter schema in public metadata yet.
insert_bullet_listInsert bullet list
Insert bullet list
No parameter schema in public metadata yet.
insert_numbered_listInsert numbered list
Insert numbered list
No parameter schema in public metadata yet.
set_list_levelSet list indentation level
Set list indentation level
No parameter schema in public metadata yet.
set_outline_levelSet paragraph outline level (TOC inclusion)
Set paragraph outline level (TOC inclusion)
No parameter schema in public metadata yet.
list_numbering_definitionsEnumerate every abstractNum + num pair
Enumerate every abstractNum + num pair
No parameter schema in public metadata yet.
get_numbering_definitionFetch single num by id
Fetch single num by id
No parameter schema in public metadata yet.
create_numbering_definitionNew abstractNum + paired num (max 9 levels)
New abstractNum + paired num (max 9 levels)
No parameter schema in public metadata yet.
override_numbering_level<w:lvlOverride> for per-level start values
<w:lvlOverride> for per-level start values
No parameter schema in public metadata yet.
assign_numbering_to_paragraph<w:numPr> attachment by paragraph index
<w:numPr> attachment by paragraph index
No parameter schema in public metadata yet.
continue_listResume numbering across paragraphs
Resume numbering across paragraphs
No parameter schema in public metadata yet.
start_new_listReset numbering to start
Reset numbering to start
No parameter schema in public metadata yet.
gc_orphan_numberingSweep unreferenced num definitions (abstractNums preserved)
Sweep unreferenced num definitions (abstractNums preserved)
No parameter schema in public metadata yet.
set_page_sizeSet page size (A4, Letter, etc.)
Set page size (A4, Letter, etc.)
No parameter schema in public metadata yet.
set_page_marginsSet page margins
Set page margins
No parameter schema in public metadata yet.
set_page_orientationSet portrait or landscape
Set portrait or landscape
No parameter schema in public metadata yet.
insert_page_breakInsert page break
Insert page break
No parameter schema in public metadata yet.
insert_section_breakInsert section break
Insert section break
No parameter schema in public metadata yet.
get_all_sectionsReturn SectionInfo array per section in document order
Return SectionInfo array per section in document order
No parameter schema in public metadata yet.
set_section_break_typenextPage / continuous / evenPage / oddPage
nextPage / continuous / evenPage / oddPage
No parameter schema in public metadata yet.
set_section_vertical_alignment<w:vAlign> for cover pages
<w:vAlign> for cover pages
No parameter schema in public metadata yet.
set_page_number_format<w:pgNumType w:fmt> for Roman numerals etc.
<w:pgNumType w:fmt> for Roman numerals etc.
No parameter schema in public metadata yet.
set_line_numbers_for_section<w:lnNumType> for legal documents
<w:lnNumType> for legal documents
No parameter schema in public metadata yet.
set_title_page_distinctToggle <w:titlePg/> per section
Toggle <w:titlePg/> per section
No parameter schema in public metadata yet.
set_section_header_footer_referencesAssign per-type rId (default/first/even)
Assign per-type rId (default/first/even)
No parameter schema in public metadata yet.
add_headerAdd header content
Add header content
No parameter schema in public metadata yet.
update_headerUpdate header content (preserves filename + rId; in-place tempDir overwrite)
Update header content (preserves filename + rId; in-place tempDir overwrite)
No parameter schema in public metadata yet.
add_footerAdd footer content
Add footer content
No parameter schema in public metadata yet.
update_footerUpdate footer content
Update footer content
No parameter schema in public metadata yet.
insert_page_numberInsert page number field
Insert page number field
No parameter schema in public metadata yet.
list_headersEnumerate header parts with type (default/first/even) + section_id + has_watermark
Enumerate header parts with type (default/first/even) + section_id + has_watermark
No parameter schema in public metadata yet.
get_headerRead text + full XML + watermark structure
Read text + full XML + watermark structure
No parameter schema in public metadata yet.
delete_headerRemove typed model entry + tempDir file + Relationship + Content_Types Override
Remove typed model entry + tempDir file + Relationship + Content_Types Override
No parameter schema in public metadata yet.
list_watermarksScan all headers for VML watermark shapes — text or image
Scan all headers for VML watermark shapes — text or image
No parameter schema in public metadata yet.
get_watermarkSingle-header watermark detail (returns null if no watermark)
Single-header watermark detail (returns null if no watermark)
No parameter schema in public metadata yet.
list_footersEnumerate footer parts with type + section_id + has_page_number
Enumerate footer parts with type + section_id + has_page_number
No parameter schema in public metadata yet.
Sponsors
Readme
che-word-mcp
A Swift-native MCP (Model Context Protocol) server for Microsoft Word document (.docx) manipulation. This is the first Swift OOXML library that directly manipulates Office Open XML without any third-party Word dependencies.
文件格式 profile(原始碼建置功能,尚未發布)
create_document、open_document、execute_script 新增可選 profile: "inherit" | "official"。此功能需要以 SwiftPM editable dependency 整合尚未發布的 OOXMLSwift profile/store;本機最終驗收使用 OOXMLSwift 3aa221aa3bba3657af68f1c8d22416d3efe9863e,追蹤中的遠端 pin 並非此修補。目前發布 binary 不提供,本次未更新 release 版本。
與新版 macdoc 共用 ~/.config/macdoc/config.json:新建依明示 profile → document.defaultProfile → inherit;開啟既有文件及 replay 僅採明示 profile。以新版 macdoc config document import-official --template /path/to/Normal.dotm 匯入安全快照,再以 config document set-default official 選擇新建預設。匯入不複製正文、不修改 Normal、不自動切換預設;來源變更不影響已保存的快照。
Details
- Repository
- github.com/psychquant/che-word-mcp
- Categories
- Documents & Knowledge, Mobile Development, Productivity & Office
- Package
https://github.com/PsychQuant/che-word-mcp/releases/download/v1.17.0/CheWordMCP- Transport
- STDIO
- Registry
- MCP registry, active