MCP server for reading and editing Word (.docx) documents with track changes, comments, footnotes, and structural validation
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 219 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
accept_all_changes
-
accept_change
-
accept_changes
-
add_bookmark
-
add_column_to_table
-
add_comment
-
add_content_control
-
add_cross_reference
-
add_endnote
-
add_equation
-
add_field
-
add_footnote
-
add_footnote_ref
-
add_hyperlink
-
add_internal_link
-
add_list
-
add_page_break
-
add_section_break
-
add_table
-
add_table_row
-
apply_style_to_range
-
audit_document
-
bates_number
-
check_accessibility
-
clear_run_formatting
-
close_document
-
compare_contracts
-
compare_documents
-
convert_to_pdf
-
copy_document
-
copy_style
-
copy_table
-
create_document
-
create_from_markdown
-
create_multilevel_list
-
create_style
-
csv_to_table
-
delete_column_from_table
-
delete_comment
-
delete_content_control
-
delete_custom_property
-
delete_endnote
-
delete_field
-
delete_footer
-
delete_footnote
-
delete_header
-
delete_image
-
delete_paragraph
-
delete_section_break
-
delete_style
-
delete_table
-
delete_table_row
-
delete_text
-
demote_list_item
-
diff_to_text
-
duplicate_table_row
-
edit_header_footer
-
export_markdown
-
export_session_script
-
fill_template
-
find_replace_formatted
-
flatten_document
-
generate_change_summary
-
generate_list_of_figures
-
generate_list_of_tables
-
generate_privilege_log
-
generate_redaction_log
-
generate_toc
-
generate_tof
-
generate_tot
-
get_alt_text
-
get_body_text
-
get_bookmarked_text
-
get_cell_text
-
get_comments
-
get_content_control
-
get_content_controls
-
get_custom_properties
-
get_document_info
-
get_document_outline
-
get_endnotes
-
get_equations
-
get_field
-
get_footnotes
-
get_headers_footers
-
get_headings
-
get_images
-
get_lists
-
get_paragraph
-
get_paragraph_format
-
get_properties
-
get_reading_time
-
get_runs
-
get_sections
-
get_session_log
-
get_statistics
-
get_style
-
get_styles
-
get_table
-
get_tables
-
get_theme_colors
-
get_tracked_changes
-
get_word_count
-
insert_bar_chart
-
insert_blockquote
-
insert_caption
-
insert_code_block
-
insert_date_field
-
insert_floating_image
-
insert_if_field
-
insert_image
-
insert_line_chart
-
insert_merge_field
-
insert_page_number_field
-
insert_paragraph
-
insert_pie_chart
-
insert_sequence_field
-
insert_text
-
insert_text_box
-
insert_watermark
-
list_bookmarks
-
list_comment_threads
-
list_fields
-
list_hyperlinks
-
list_parts
-
list_template_fields
-
lock_content_control
-
merge_cells
-
merge_documents
-
merge_review_rounds
-
modify_cell
-
open_document
-
promote_list_item
-
read_part
-
redact_text
-
reject_all_changes
-
reject_change
-
reject_changes
-
remove_bookmark
-
remove_hyperlink
-
remove_watermark
-
replace_text
-
reply_to_comment
-
resolve_comment
-
restart_numbering
-
sanitize_metadata
-
save_document
-
scrub_pii
-
search_text
-
set_alt_text
-
set_cell_shading
-
set_cell_vertical_alignment
-
set_cell_width
-
set_character_position
-
set_character_spacing
-
set_column_widths
-
set_content_control_value
-
set_custom_property
-
set_different_first_page
-
set_document_language
-
set_document_protection
-
set_formatting
-
set_header_row
-
set_image_alt_text
-
set_image_border
-
set_image_size
-
set_keep_lines_together
-
set_keep_with_next
-
set_line_spacing
-
set_odd_even_headers
-
set_page_break_before
-
set_page_margins
-
set_page_orientation
-
set_page_size
-
set_paragraph_border
-
set_paragraph_indentation
-
set_paragraph_shading
-
set_properties
-
set_row_height
-
set_run_color
-
set_run_font
-
set_run_highlight
-
set_run_language
-
set_run_size
-
set_run_strikethrough
-
set_run_subscript
-
set_run_superscript
-
set_run_underline
-
set_section_columns
-
set_section_properties
-
set_table_alignment
-
set_table_borders
-
set_table_style
-
set_text_case
-
set_theme_color
-
set_track_changes
-
set_widow_control
-
sort_table
-
split_document
-
split_table
-
suppress_numbering
-
table_to_csv
-
update_chart_data
-
update_comment
-
update_content_control
-
update_endnote
-
update_fields
-
update_footnote
-
update_hyperlink
-
update_image
-
update_paragraph
-
update_style
-
update_toc
-
validate_endnotes
-
validate_footnotes
-
validate_paraids
-
validate_template_data
-
write_part
-
xpath_query
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 9c0c0b7 · analyzer v33 · 2w ago
skills & prompt files 2
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 144
filesystem 87
- fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/cli.py :5
import shutil - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/base.py :8
import shutil - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/changesummary.py :5
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/compare.py :9
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/creation.py :5
import shutil - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/guards.py :6
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/images.py :6
import shutil - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/markdown_export.py :131
with open(output_path, "w", encoding="utf-8") as f: - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/merge.py :7
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/metadata.py :8
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/pdfexport.py :5
import shutil - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/pii.py :9
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/rawparts.py :6
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/sessionlog.py :44
with open(output_path, "w", encoding="utf-8") as f: - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/splitting.py :9
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/markdown.py :7
from pathlib import Path - fs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :93
info = doc.open() - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/conftest.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/fuzz/fuzz_open.py :1
"""Atheris byte-level fuzzer for DocxDocument.open(). - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_accept_reject.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_accessibility.py :33
doc.open() - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_advanced_fields.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_anchor.py :24
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_block_elements.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_bookmarks.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_change_summary.py :10
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_clausediff.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_cli.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_comment_crud.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_compare.py :21
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_content.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_content_control_crud.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_contentcontrols.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_creation.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_diff_to_text.py :11
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_document_meta.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_document_operations.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_e2e.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_field_operations.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_fields.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_find_replace_formatted.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_footnote_endnote_crud.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_header_footer_settings.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_hyperlinks.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_image_borders.py :15
doc.open() - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_litigation.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_markdown.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_markdown_export.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_metadata.py :19
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_ooxml_norm.py :18
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_page_setup.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_paragraph_crud.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_paragraph_formatting.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_paragraph_pagination.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_pdf_export.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_pii.py :23
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_protection.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_query.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_rawparts.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_reading.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_reviewmerge.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_revisions.py :22
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_run_advanced.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_run_effects.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_run_formatting.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_sections_extended.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_security_document.py :8
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_security_guards.py :7
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_security_search.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_security_xpath.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_sessionlog.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_split_document.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_statistics.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_structure.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_style_crud.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_style_extended.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_table_extensions.py :99
doc.open() - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_table_query.py :5
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_tables_write.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_template.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_textboxes.py :62
doc.open() - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_theme_captions.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_toc.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_tof_tot.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_tracks.py :6
from pathlib import Path - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_untracked_edits.py :10
import shutil - fs (weak) SecurityRonin-docx-mcp-9c0c0b7/tests/test_watermark.py :6
from pathlib import Path
shell / exec 1
- shell SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/document/pdfexport.py :6
import subprocess
tool registrations 200
- open_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :78
- close_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :103
- create_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :118
- create_from_markdown SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :146
- get_document_info SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :203
- get_headings SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :213
- search_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :227
- get_paragraph SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :241
- get_tables SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :255
- add_table SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :262
- modify_cell SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :275
- add_table_row SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :304
- delete_table_row SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :318
- merge_cells SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :330
- set_header_row SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :343
- set_column_widths SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :350
- csv_to_table SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :357
- table_to_csv SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :364
- delete_table SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :371
- add_column_to_table SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :377
- delete_column_from_table SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :383
- set_cell_width SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :389
- set_cell_vertical_alignment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :395
- set_row_height SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :401
- set_table_alignment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :407
- set_table_borders SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :413
- set_cell_shading SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :428
- set_table_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :442
- add_list SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :451
- get_styles SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :465
- create_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :472
- update_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :492
- delete_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :508
- get_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :518
- copy_style SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :531
- apply_style_to_range SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :545
- get_headers_footers SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :562
- edit_header_footer SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :569
- delete_header SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :596
- delete_footer SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :602
- get_properties SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :611
- set_properties SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :618
- get_custom_properties SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :638
- set_custom_property SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :644
- delete_custom_property SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :656
- get_images SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :669
- insert_image SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :676
- insert_floating_image SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :689
- delete_image SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :706
- update_image SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :718
- set_image_size SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :731
- set_image_alt_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :743
- set_image_border SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :755
- get_endnotes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :773
- add_endnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :780
- validate_endnotes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :787
- get_footnotes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :797
- add_footnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :804
- add_footnote_ref SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :811
- validate_footnotes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :823
- update_footnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :830
- delete_footnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :841
- update_endnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :854
- delete_endnote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :865
- add_page_break SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :881
- add_section_break SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :888
- set_section_properties SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :899
- set_page_size SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :927
- set_page_margins SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :939
- set_page_orientation SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :967
- get_sections SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :978
- set_section_columns SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :990
- delete_section_break SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1006
- set_different_first_page SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1022
- set_odd_even_headers SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1039
- add_cross_reference SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1058
- set_document_protection SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1073
- merge_documents SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1087
- validate_paraids SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1097
- insert_watermark SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1104
- remove_watermark SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1120
- audit_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1127
- insert_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1137
- delete_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1183
- replace_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1229
- get_body_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1275
- get_tracked_changes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1290
- accept_changes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1301
- reject_changes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1308
- accept_change SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1315
- reject_change SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1328
- accept_all_changes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1341
- reject_all_changes SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1350
- set_formatting SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1359
- get_comments SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1388
- add_comment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1395
- reply_to_comment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1407
- update_comment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1419
- delete_comment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1430
- resolve_comment SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1440
- list_comment_threads SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1450
- save_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1462
- scrub_pii SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1476
- sanitize_metadata SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1527
- compare_documents SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1555
- diff_to_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1580
- generate_change_summary SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1613
- list_parts SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1639
- read_part SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1645
- write_part SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1653
- xpath_query SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1661
- list_bookmarks SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1676
- add_bookmark SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1682
- remove_bookmark SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1688
- get_bookmarked_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1694
- list_hyperlinks SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1703
- add_hyperlink SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1713
- add_internal_link SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1728
- remove_hyperlink SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1742
- update_hyperlink SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1755
- add_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1769
- update_fields SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1784
- list_fields SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1790
- get_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1796
- delete_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1806
- insert_date_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1816
- insert_page_number_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1827
- insert_if_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1837
- insert_sequence_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1855
- insert_merge_field SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1871
- generate_toc SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1885
- update_toc SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1892
- generate_list_of_figures SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1899
- generate_list_of_tables SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1906
- generate_tof SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1913
- generate_tot SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1923
- add_content_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1936
- get_content_controls SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1959
- set_content_control_value SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1966
- lock_content_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1978
- delete_content_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :1990
- get_content_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2001
- update_content_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2012
- fill_template SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2038
- list_template_fields SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2050
- validate_template_data SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2057
- create_multilevel_list SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2067
- restart_numbering SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2074
- suppress_numbering SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2081
- get_lists SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2088
- promote_list_item SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2098
- demote_list_item SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2107
- bates_number SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2119
- redact_text SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2135
- generate_redaction_log SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2154
- generate_privilege_log SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2165
- add_equation SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2179
- get_equations SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2191
- insert_bar_chart SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2201
- insert_line_chart SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2218
- insert_pie_chart SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2235
- update_chart_data SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2250
- merge_review_rounds SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2260
- compare_contracts SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2266
- get_session_log SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2275
- export_session_script SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2281
- insert_paragraph SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2293
- update_paragraph SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2309
- delete_paragraph SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2337
- set_paragraph_border SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2347
- set_paragraph_shading SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2365
- set_paragraph_indentation SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2381
- set_keep_with_next SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2409
- set_keep_lines_together SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2420
- set_page_break_before SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2431
- set_widow_control SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2442
- insert_blockquote SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2453
- insert_code_block SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2466
- set_line_spacing SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2480
- get_paragraph_format SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2508
- get_runs SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2523
- set_run_font SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2533
- set_run_color SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2545
- set_run_size SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2557
- set_character_spacing SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2569
- set_character_position SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2581
- set_run_highlight SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2593
- set_run_strikethrough SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2605
- set_run_superscript SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2617
- set_run_subscript SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2628
- set_run_underline SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2639
- clear_run_formatting SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2651
- set_run_language SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2662
- set_text_case SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2674
- export_markdown SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2686
- get_theme_colors SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2702
- set_theme_color SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2712
- insert_caption SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2723
- find_replace_formatted SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2735
- split_document SecurityRonin-docx-mcp-9c0c0b7/docx_mcp/server.py :2770
declared dependencies 7
- mcp@>=1.0.0
- lxml@>=4.9.0
- mistune@>=3.0
- presidio-analyzer@>=2.2
- presidio-anonymizer@>=2.2
- spacy@>=3.7,<4
- latex2mathml@>=3.0