SecurityRonin/docx-mcp

SecurityRonin/docx-mcp

от securityronin
MCP сервер, позволяющий ИИ-агенту создавать, читать и редактировать Word-документы с полным отслеживанием изменений, комментариями и структурным аудитом. Полезен юристам, консультантам и пентестерам для автоматизации контрактов и отчетов.

docx-mcp

PyPI Python License: MIT CI Coverage Sponsor

docx-mcp MCP server

Give your AI coding agent the ability to create, read, and edit Word documents. Edits appear as tracked changes in Microsoft Word — red strikethrough for deletions, green underline for insertions — and after any revision session your agent can produce an email-ready change log listing every insertion, deletion, and replacement. Or compare two separate files to get the same output automatically.

Who This Is For

Professionals who produce Word deliverables and want their AI agent to handle the document work directly:

  • Legal — contract review with tracked redlines, batch clause replacement across templates, comment annotations explaining each change, footnote management
  • Security & Penetration Testing — generate pentest reports from markdown findings, merge appendices from multiple engagements, add executive-summary comments, remove DRAFT watermarks before delivery
  • Consulting — build proposals and SOWs from templates, convert meeting notes to formatted deliverables, bulk-update payment terms across document sets
  • Compliance & Audit — structural validation of document integrity, cross-reference checking, heading-level audits, protection enforcement
Инструменты были проиндексированы:
accept_all_changes

Принять все отслеженные изменения в порядке документа. Возвращает JSON-объект с количеством принятых изменений: {"accepted": int}.

Параметры

Без параметров.

accept_change

Принимает одно отслеживаемое изменение по его change_id. Для вставок: сохраняет вставленный текст (разворачивает w:ins). Для удалений: отбрасывает удалённый текст (удаляет w:del). Аргументы: change_id: целочисленный атрибут id элемента w:ins или w:del.

Параметры
  • change_idintegerобязательный
accept_changes

Принять отслеживаемые изменения - сохранить вставки, удалить удаления. Пустой автор = все.

Параметры
  • authorstring
  • document_handlestring
add_bookmark

Добавить именованную закладку, оборачивающую указанный абзац.

Параметры
  • namestringобязательный
  • para_idstringобязательный
add_column_to_table

Добавить новый столбец в каждую строку таблицы. Первая строка получает header_text.

Параметры
  • header_textstring
  • table_idxintegerобязательный
add_comment

Добавить комментарий, привязанный к абзацу.

Параметры
  • authorstring
  • document_handlestring
  • para_idstringобязательный
  • textstringобязательный
add_content_control

Оборачивает абзац в элемент управления содержимым SDT (Structured Document Tag). Аргументы: para_id: paraId абзаца, который нужно обернуть. tag: Уникальное имя тега для элемента управления. control_type: Одно из значений: text|checkbox|dropdown|date. label: Необязательная отображаемая подпись (w:alias). options: Список строк-вариантов для элементов управления типа dropdown. default: Текст по умолчанию (или строка даты для элементов управления типа date).

Параметры
  • control_typestringобязательный
  • defaultstring
  • labelstring
  • optionsstring[] | null
  • para_idstringобязательный
  • tagstringобязательный
add_cross_reference

Добавляет перекрёстную ссылку из одного абзаца в другой.

Параметры
  • document_handlestring
  • source_para_idstringобязательный
  • target_para_idstringобязательный
  • textstringобязательный
add_endnote

Добавляет концевую сноску к абзацу.

Параметры
  • document_handlestring
  • para_idstringобязательный
  • textstringобязательный
add_equation

Вставляет уравнение LaTeX в формате OMML. Требуется: pip install latex2mathml. Аргументы: para_id: paraId абзаца, после которого вставляется уравнение. latex: исходная строка LaTeX (например, r"\frac{1}{2}").

Параметры
  • latexstringобязательный
  • para_idstringобязательный
add_field

Вставляет поле Word в конец абзаца. Типовые коды полей: PAGE, NUMPAGES, DATE, SEQ Figure, REF MyBookmark, STYLEREF Heading. Аргументы: para_id: w14:paraId целевого абзаца. field_code: Текст инструкции поля (например, "PAGE"). cached_value: Необязательный отображаемый текст, закешированный в документе.

Параметры
  • cached_valuestring
  • field_codestringобязательный
  • para_idstringобязательный
add_footnote

Добавляет сноску к абзацу. URL, если указан, отображается как гиперссылка.

Параметры
  • document_handlestring
  • para_idstringобязательный
  • textstringобязательный
  • urlstring
add_footnote_ref

Добавляет последующую ссылку на существующую сноску без создания нового определения. Используйте, когда один и тот же источник нужно снова процитировать в другом абзаце. Вставляет обёрнутый гиперссылкой footnoteReference, который ведёт к той же сноске, что и исходная цитата. Не дублирует определение сноски в footnotes.xml.

Параметры
  • document_handlestring
  • footnote_idintegerобязательный
  • para_idstringобязательный
add_hyperlink

Добавляет внешнюю гиперссылку в конец абзаца. Создает запись отношения в word/_rels/document.xml.rels и элемент w:hyperlink с run-элементом, оформленным стилем Hyperlink, в word/document.xml. Args: para_id: w14:paraId целевого абзаца. text: Отображаемый текст гиперссылки. url: URL, на который указывает гиперссылка.

Параметры
  • para_idstringобязательный
  • textstringобязательный
  • urlstringобязательный
add_internal_link

Добавить внутреннюю якорную гиперссылку (w:anchor) в конец абзаца. Внутренние ссылки обращаются к закладкам по имени и НЕ добавляют отношение. Аргументы: para_id: w14:paraId целевого абзаца. text: Текст, отображаемый для гиперссылки. bookmark: Имя закладки, на которую ведет ссылка.

Параметры
  • bookmarkstringобязательный
  • para_idstringобязательный
  • textstringобязательный
add_list

Применяет форматирование списка к абзацам (маркированный или нумерованный).

Параметры
  • document_handlestring
  • para_idsstring[]обязательный
  • stylestring
add_page_break

Вставляет разрыв страницы после абзаца.

Параметры
  • document_handlestring
  • para_idstringобязательный
add_section_break

Добавляет разрыв раздела в абзаце. break_type: nextPage/continuous/evenPage/oddPage.

Параметры
  • break_typestring
  • document_handlestring
  • para_idstringобязательный
add_table

Вставляет новую таблицу после абзаца с отслеживаемой вставкой.

Параметры
  • authorstring
  • colsintegerобязательный
  • document_handlestring
  • para_idstringобязательный
  • rowsintegerобязательный
add_table_row

Добавляет строку в таблицу с отслеживанием вставки. row_idx=-1 добавляет в конец.

Параметры
  • authorstring
  • cellsstring[] | null
  • document_handlestring
  • row_idxinteger
  • table_idxintegerобязательный
apply_style_to_range

Применяет стиль к списку абзацев по их paraIds. Аргументы: para_ids: Список paraIds абзацев для обновления. style_name_or_id: Название стиля или styleId для применения. Возвращает: {"applied": int, "style_id": str, "para_ids": list[str]}

Параметры
  • para_idsstring[]обязательный
  • style_name_or_idstringобязательный
audit_document

Выполняет всесторонний структурный аудит документа.

Параметры
  • document_handlestring
bates_number

Добавляет штамп с нумерацией Бейтса в нижний колонтитул документа. Аргументы: prefix: строка префикса Бейтса (например, "ACME-"). start: начальный номер Бейтса. digits: ширина с дополнением нулями для номера. position: подсказка для положения штампа (сейчас "footer-right").

Параметры
  • digitsinteger
  • positionstring
  • prefixstringобязательный
  • startinteger
check_accessibility

Сканирует документ на наличие проблем доступности. Проверяет изображения на отсутствие alt-текста, а таблицы — на отсутствие строк заголовков. Возвращает: {"issue_count": int, "issues": list[dict]}

Параметры

Без параметров.

clear_run_formatting

Удаляет всё символьное форматирование из run, заставляя его унаследовать умолчания абзаца/стиля. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс run с нуля.

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
close_document

Закрывает документ и очищает временные файлы. Аргументы: document_handle: Дескриптор закрываемого документа. Если не указан — используется слот __default__.

Параметры
  • document_handlestring
compare_contracts

Сравнение с учетом пунктов между открытым контрактом и другим .docx файлом.

Параметры
  • align_bystring
  • other_pathstringобязательный
  • output_pathstring
compare_documents

Сравнивает два DOCX файла и создаёт документ с отслеживанием изменений. Поабзацное LCS-сравнение: - Неизменённые абзацы копируются дословно. - Удалённые абзацы (есть в базовом документе, отсутствуют в изменённом) оборачиваются в w:del. - Вставленные абзацы (есть в изменённом, отсутствуют в базовом) оборачиваются в w:ins. - Изменённые абзацы (замена 1:1) получают посимвольное del+ins внутри. Результат — валидный DOCX, открываемый в Word/LibreOffice, с отображением изменений в виде отслеженных правок. Аргументы: base_path: Путь к исходному DOCX. revised_path: Путь к изменённому DOCX. output_path: Путь для сохранения результата. Автоматически генерируется, если пустой.

Параметры
  • base_pathstringобязательный
  • output_pathstring
  • revised_pathstringобязательный
convert_to_pdf

Конвертирует открытый документ в PDF с помощью LibreOffice в фоновом режиме. Требует установленного LibreOffice ('libreoffice' или 'soffice' в PATH). Аргументы: output_path: Путь для сохранения выходного PDF-файла. Возвращает: {"pdf_path": строка}

Параметры
  • output_pathstringобязательный
copy_document

Сохраняет полный снимок открытого документа по новому пути. Активная сессия и исходный путь не меняются. Аргументы: output_path: Путь к файлу назначения (должен заканчиваться на .docx). Возвращает: {"copied_to": output_path}

Параметры
  • output_pathstringобязательный
copy_style

Создаёт глубокую копию существующего стиля под новым именем. Аргументы: source_name_or_id: Имя или styleId стиля, который нужно скопировать. new_name: Имя для нового стиля (пробелы удаляются для styleId). Возвращает: {"style_id": str, "name": str, "type": str}

Параметры
  • new_namestringобязательный
  • source_name_or_idstringобязательный
copy_table

Глубоко копирует таблицу и вставляет копию сразу после оригинала. Args: table_idx: индекс таблицы, начиная с 0. Returns: {"source_index": int, "new_index": int}

Параметры
  • table_idxintegerобязательный
create_document

Создаёт новый пустой .docx документ (или на основе .dotx шаблона). Документ автоматически открывается для редактирования под заданным дескриптором. Используйте save_document, чтобы сохранить изменения, или начинайте редактирование сразу — вставляйте текст, добавляйте таблицы и т.д. Параметры: output_path: Путь к новому .docx файлу. template_path: Необязательный путь к .dotx шаблону. document_handle: Необязательный дескриптор для сохранения этого документа.

Параметры
  • document_handlestring
  • output_pathstringобязательный
  • template_pathstring | null
create_from_markdown

Создаёт новый документ .docx из содержимого в формате Markdown. Поддерживает полный синтаксис GitHub-Flavored Markdown: заголовки, жирный/курсив/зачёркивание, ссылки, изображения, маркированные/нумерованные/вложенные списки, блоки кода, цитаты, таблицы, сноски и списки задач. Умная типографика (кавычки-ёлочки, длинное и короткое тире, многоточие) применяется автоматически. Укажите ровно один из параметров: md_path или markdown. Созданный документ автоматически открывается для редактирования под указанным дескриптором. Аргументы: output_path: Путь к новому файлу .docx. md_path: Путь к файлу .md. Взаимоисключающий с markdown. markdown: Сырой текст Markdown. Взаимоисключающий с md_path. template_path: Необязательный путь к файлу шаблона .dotx. document_handle: Необязательный дескриптор для сохранения этого документа.

Параметры
  • document_handlestring
  • markdownstring | null
  • md_pathstring | null
  • output_pathstringобязательный
  • template_pathstring | null
create_multilevel_list

Создай многоуровневый список в numbering.xml. Каждый уровень — словарь: {num_fmt, lvl_text, indent, hanging, style?}.

Параметры
  • levelsobject[]обязательный
  • namestringобязательный
create_style

Создаёт новый стиль в документе. Аргументы: name: Имя стиля (используется как styleId после удаления пробелов). style_type: "paragraph", "character", "table" или "numbering". based_on: Необязательный styleId, от которого наследуется этот стиль. next_style: Необязательный styleId, применяемый к следующему абзацу.

Параметры
  • based_onstring | null
  • namestringобязательный
  • next_stylestring | null
  • style_typestringобязательный
csv_to_table

Вставляет таблицу из CSV-текста.

Параметры
  • csv_textstringобязательный
  • header_rowboolean
  • para_idstringобязательный
delete_column_from_table

Удаляет столбец (индексация с нуля) из каждой строки таблицы.

Параметры
  • col_idxintegerобязательный
  • table_idxintegerобязательный
delete_comment

Удаляет комментарий и убирает его маркеры диапазона из документа. Аргументы: comment_id: ID удаляемого комментария.

Параметры
  • comment_idintegerобязательный
delete_content_control

Удаляет обёртку элемента управления содержимым SDT, оставляя его содержимое на месте. Args: control_id: Значение w:id элемента управления содержимым, для которого нужно снять обёртку.

Параметры
  • control_idstringобязательный
delete_custom_property

Удалить пользовательское свойство документа по имени. Аргументы: name: Имя свойства для удаления.

Параметры
  • namestringобязательный
delete_endnote

Удаляет концевую сноску и ссылку на неё в тексте. Удаляет определение концевой сноски из endnotes.xml и удаляет run endnoteReference из основного текста документа. Аргументы: endnote_id: Числовой идентификатор удаляемой концевой сноски.

Параметры
  • endnote_idintegerобязательный
delete_field

Удалить полное комплексное поле (от начала до конца) из документа. Аргументы: field_id: позиционный идентификатор, возвращаемый list_fields (например, "field_0").

Параметры
  • field_idstringобязательный
delete_footer

Удалить колонтитул по местоположению: по умолчанию, первый или чётный.

Параметры
  • locationstring
delete_footnote

Удаляет сноску и её ссылку в теле документа. Удаляет определение сноски из footnotes.xml и удаляет элемент footnoteReference из тела документа. Аргументы: footnote_id: Числовой идентификатор удаляемой сноски.

Параметры
  • footnote_idintegerобязательный
delete_header

Удалить заголовок по расположению: по умолчанию, первый или чётный.

Параметры
  • locationstring
delete_image

Удаляет рисунок, содержащий изображение с указанным rId, из документа. Также удаляет запись отношения из word/_rels/document.xml.rels. Args: rId: Идентификатор отношения удаляемого изображения (например, 'rId5').

Параметры
  • rIdstringобязательный
delete_paragraph

Удаляет параграф с указанным paraId. Аргументы: para_id: paraId параграфа, который нужно удалить.

Параметры
  • para_idstringобязательный
delete_section_break

Удаляет разрыв раздела из абзаца. Удаляет w:sectPr из w:pPr абзаца. После удаления содержимое абзаца перетекает в следующий раздел, а не завершает текущий. Аргументы: para_id: paraId абзаца, в котором находится разрыв раздела. Исключения: ValueError: если в абзаце нет разрыва раздела.

Параметры
  • para_idstringобязательный
delete_style

Удаляет стиль из документа. Аргументы: name: имя стиля или styleId (без учёта регистра).

Параметры
  • namestringобязательный
delete_table

Удаляет таблицу по индексу (счёт с нуля). Вызывает IndexError, если индекс выходит за пределы диапазона.

Параметры
  • table_idxintegerобязательный
delete_table_row

Удалить строку таблицы с отслеживаемыми изменениями.

Параметры
  • authorstring
  • document_handlestring
  • row_idxintegerобязательный
  • table_idxintegerобязательный
delete_text

Удаляет текст из параграфа. Находит текст внутри параграфа (при необходимости — через границы прогонов). При tracked=True (по умолчанию) удалённый текст остаётся видимым красным зачёркиванием в режиме отслеживания изменений Word — человек-рецензент должен принять удаление, чтобы убрать его навсегда. При tracked=False текст удаляется немедленно. Укажите context_before/context_after, чтобы устранить неоднозначность, если один и тот же текст встречается несколько раз или содержит умные кавычки / особые пробелы. Аргументы: para_id: Идентификатор целевого параграфа. text: Текст для удаления (ASCII-кавычки/дефисы/пробелы сопоставляются с их Unicode-эквивалентами). author: Имя автора, отображаемое в панели рецензирования Word (только при tracked=True). context_before: Текст непосредственно перед целевым фрагментом (для точной привязки). context_after: Текст сразу после целевого фрагмента (для точной привязки). ignore_case: Если True, искать текст и контекст без учёта регистра. tracked: True (по умолчанию) — красное зачёркивание, которое человек принимает или отклоняет. False — текст удаляется сразу, без разметки. document_handle: Необязательный дескриптор для изоляции одновременных сессий.

Параметры
  • authorstring
  • context_afterstring
  • context_beforestring
  • document_handlestring
  • ignore_caseboolean
  • para_idstringобязательный
  • textstringобязательный
  • trackedboolean
demote_list_item

Увеличивает уровень отступа списка (ilvl) абзаца на 1, максимум 8. Возвращает {para_id, ilvl}. Вызывает ValueError, если абзац не является элементом списка.

Параметры
  • para_idstringобязательный
diff_to_text

Сравнивает два отдельных DOCX-файла и создаёт DOCX с отслеживанием изменений плюс текстовую сводку. Используйте это, когда у вас есть два разных файла (например, оригинал и исправленная копия) и нужно показать, что изменилось между ними. Создаёт: 1. DOCX с разметкой отслеженных изменений (удаления красным, вставки подчёркиванием). 2. Текстовую сводку .txt, подходящую для вставки в письмо или описание pull-request. Если вы уже внесли отслеживаемые правки в открытый в данный момент документ и просто хотите получить сводку этих изменений, используйте generate_change_summary. Аргументы: base_path — путь к исходному DOCX-файлу. revised_path — путь к изменённому DOCX-файлу. docx_output — путь для выходного DOCX-файла с отслеживанием изменений (генерируется автоматически, если не указан). text_output — путь для текстовой сводки .txt (генерируется автоматически, если не указан).

Параметры
  • base_pathstringобязательный
  • docx_outputstring
  • revised_pathstringобязательный
  • text_outputstring
duplicate_table_row

Глубоко копирует строку таблицы и вставляет копию сразу после неё. Аргументы: table_idx: индекс таблицы (нумерация с 0). row_index: индекс строки для дублирования (нумерация с 0). Возвращает: {"row_index": int, "new_row_index": int}

Параметры
  • row_indexintegerобязательный
  • table_idxintegerобязательный
edit_header_footer

Редактирует текст в колонтитуле. По умолчанию (tracked=True) изменение записывается как удаление старого текста и вставка нового — человек проверяющий принимает или отклоняет их в Word.Передайте tracked=False, чтобы заменить текст напрямую, без пометок исправлений. Аргументы: location: "header" или "footer" (подбирает первый найденный колонтитул этого типа). old_text: Текст для поиска и замены. new_text: Текст для замены. author: Имя автора, которое отображается в панели проверки Word (только при tracked=True). tracked: True (по умолчанию) = отслеживаемое удаление+вставка. False = прямая замена, без пометок. document_handle: Необязательный дескриптор для изоляции параллельных сеансов.

Параметры
  • authorstring
  • document_handlestring
  • locationstringобязательный
  • new_textstringобязательный
  • old_textstringобязательный
  • trackedboolean
export_markdown

Экспортирует открытый документ как Markdown. Преобразует тело документа (заголовки, жирный/курсивный текст, списки, таблицы, обычные абзацы) в GitHub-Flavoured Markdown и записывает в файл. Аргументы: output_path: путь к файлу .md для записи. По умолчанию <workdir>/export.md, если не указан. Возвращает: {"output_path": str, "paragraphs": int, "tables": int}

Параметры
  • output_pathstring
export_session_script

Записывает операции сессии в виде скрипта воспроизведения на Python. Возвращает: {"output_path": str, "operations": int}

Параметры
  • output_pathstringобязательный
fill_template

Заполняет элементы управления содержимым SDT из словаря данных. Ключи совпадают со значениями w:tag. Аргументы: data: соответствие имён тегов значениям. Используйте list[str] для повторяющихся секций. remove_empty: если True, удаляет SDT, для которых нет подходящего ключа в data.

Параметры
  • dataobjectобязательный
  • remove_emptyboolean
find_replace_formatted

Находит все вхождения строки и заменяет их форматированным текстом. Заменяет каждое вхождение find во всех абзацах документа на replace, применяя указанное форматирование символов только к заменённому фрагменту. Аргументы: - find: Текст для поиска (не может быть пустым). - replace: Текст для замены. - bold: True (сделать жирным), False (явно убрать жирность), None (оставить без изменений). - italic: True (курсив), False (явно убрать курсив), None (оставить без изменений). - color: Цвет шрифта в 6-значном шестнадцатеричном формате (например, "FF0000"). None — цвет не меняется. - size_pt: Размер шрифта в пунктах (например, 12.0). None — размер не меняется.

Параметры
  • boldboolean | null
  • colorstring | null
  • findstringобязательный
  • italicboolean | null
  • replacestringобязательный
  • size_ptnumber | null
flatten_document

Принять все отслеживаемые изменения и удалить всю разметку правок. Принимает каждый w:ins / w:del и удаляет все элементы w:rPrChange и w:pPrChange, оставляя обычный текст без метаданных отслеживания изменений. Возвращает: {"changes_accepted": int, "formatting_changes_removed": int}

Параметры

Без параметров.

generate_change_summary

Создаёт сводку отслеженных изменений, уже присутствующих в открытом документе, и сохраняет её в .txt, готовый для отправки по email. Используйте этот инструмент после внесения правок с параметром tracked=True (значение по умолчанию) и сохранения документа, чтобы получить читаемый лог изменений — что именно было модифицировано. Инструмент читает существующие элементы w:ins / w:del документа, группирует соседние пары «удаление + вставка» как записи REPLACEMENT и выводит нумерованный список с автором, датой и текстом каждого изменения. Типичный порядок действий: open_document → edit with tracked=True → save_document → generate_change_summary Если нужно сравнить два отдельных файла, а не уже отредактированный документ, используйте diff_to_text. Аргументы: output_path: Путь для сохранения .txt. Если не указан, автоматически генерируется из имени документа (без расширения). document_handle: Необязательный идентификатор для изоляции одновременных сессий.

Параметры
  • document_handlestring
  • output_pathstring
generate_list_of_figures

Вставляет поле списка иллюстраций (требует подписей к рисункам с полем SEQ).

Параметры

Без параметров.

generate_list_of_tables

Вставляет поле списка таблиц (требует SEQ Table captions).

Параметры

Без параметров.

generate_privilege_log

Сгенерировать DOCX-файл журнала привилегий на основе метаданных документа. Аргументы: output_path: Путь назначения. Если пусто, записывает во временный файл.

Параметры
  • output_pathstring
generate_redaction_log

Записывает таблицу DOCX всех изменений, сделанных за этот сеанс. Аргументы: output_path: Путь назначения. Если пусто, записывает во временный файл.

Параметры
  • output_pathstring
generate_toc

Генерирует оглавление из заголовков документа.

Параметры
  • max_levelinteger
  • titlestring
generate_tof

Вставляет блок поля Table of Figures после абзаца с para_id. Собирает абзацы в стиле подписи, начинающиеся с 'Figure', как записи.

Параметры
  • para_idstringобязательный
  • titlestring
generate_tot

Вставляет блок поля 'Table of Tables' после абзаца с para_id. Собирает абзацы в стиле подписи, начинающиеся с 'Table', как записи.

Параметры
  • para_idstringобязательный
  • titlestring
get_alt_text

Получить альтернативный текст и заголовок изображения по индексу, начиная с 0. Аргументы: image_index: индекс, начиная с 0, среди всех элементов wp:docPr в document.xml. Возвращает: {"image_index": int, "alt_text": str, "title": str}

Параметры
  • image_indexintegerобязательный
get_body_text

Возвращает полный текст документа в принятом представлении (accepted view). Принятое представление: текст внутри w:ins включён, текст внутри w:del исключён. Включает текст внутри прогонов w:hyperlink. Абзацы объединяются символом новой строки. Текст сносок возвращается отдельно. Возвращает JSON: {"body": str, "footnotes": str}

Параметры
  • document_handlestring
get_bookmarked_text

Получить текстовое содержимое в именованной закладке.

Параметры
  • namestringобязательный
get_cell_text

Возвращает текстовое содержимое указанной ячейки. Аргументы: table_idx: индекс таблицы (начиная с 0). row_idx: индекс строки (начиная с 0). col_idx: индекс столбца (начиная с 0). Результат: {"table_index": int, "row_index": int, "col_index": int, "text": str}

Параметры
  • col_idxintegerобязательный
  • row_idxintegerобязательный
  • table_idxintegerобязательный
get_comments

Выведи все комментарии с их ID, автором, датой и текстом.

Параметры
  • document_handlestring
get_content_control

Возвращает детали одного элемента управления содержимым по его w:id. Аргументы: control_id: Значение w:id элемента управления содержимым, который нужно получить.

Параметры
  • control_idstringобязательный
get_content_controls

Перечисли все элементы управления содержимым SDT в документе.

Параметры

Без параметров.

get_custom_properties

Получает пользовательские свойства документа из файла docProps/custom.xml.

Параметры

Без параметров.

get_document_info

Получить общую статистику: количество абзацев, заголовков, сносок, комментариев, изображений.

Параметры
  • document_handlestring
get_document_outline

Возвращает плоский список заголовков в виде структуры документа. Проходит по телу документа и возвращает каждый абзац-заголовок до указанного уровня. Аргументы: max_level: Максимальный уровень заголовка для включения (1–6, по умолчанию 6). Возвращает: JSON-список словарей с ключами: level (int), text (str), para_id (str).

Параметры
  • max_levelinteger
get_endnotes

Получить все концевые сноски с их ID и текстовым содержимым.

Параметры
  • document_handlestring
get_equations

Вернуть все уравнения из документа в виде строк OMML XML.

Параметры

Без параметров.

get_field

Возвращает подробности одного поля по field_id. Аргументы: field_id: Позиционный идентификатор, возвращаемый list_fields (например, "field_0").

Параметры
  • field_idstringобязательный
get_footnotes

Выведи список всех сносок с их ID и текстовым содержанием.

Параметры
  • document_handlestring
get_headers_footers

Получает все заголовки и нижние колонтитулы с их текстовым содержимым.

Параметры
  • document_handlestring
get_headings

Получает структуру заголовков документа с уровнями, текстом и paraId. Возвращает список заголовков в порядке документа, каждый содержит: - level (1-9) - text (содержимое заголовка) - style (например, "Heading1") - paraId (уникальный идентификатор абзаца для точного редактирования)

Параметры
  • document_handlestring
get_images

Получить все встроенные изображения с rId, именем файла, типом содержимого и размерами.

Параметры
  • document_handlestring
get_lists

Возвращает все определения списков из numbering.xml. Каждая запись: {abstract_num_id, num_format, levels}. Возвращает [], если numbering.xml не существует.

Параметры

Без параметров.

get_paragraph

Получить полный текст и стиль конкретного абзаца по его paraId. Аргументы: para_id: 8-символьный шестнадцатеричный paraId (например, "1A2B3C4D").

Параметры
  • document_handlestring
  • para_idstringобязательный
get_paragraph_format

Читает все атрибуты форматирования абзаца. Возвращает стиль, выравнивание, отступы, межстрочный интервал, границу, заливку и информацию о списке. Аргументы: para_id: paraId целевого абзаца.

Параметры
  • para_idstringобязательный
get_properties

Получить основные свойства документа (название, автор, тема, даты, редакция).

Параметры
  • document_handlestring
get_reading_time

Оценивает время чтения открытого документа. Аргументы: words_per_minute: Предполагаемая скорость чтения (по умолчанию 200 слов/мин). Возвращает: {"word_count": int, "words_per_minute": int, "minutes": float, "seconds": int}

Параметры
  • words_per_minuteinteger
get_runs

Получить все runs в абзаце с их свойствами форматирования. Аргументы: para_id: идентификатор целевого абзаца (paraId).

Параметры
  • para_idstringобязательный
get_sections

Перечислить все разделы в документе с их свойствами. Возвращает JSON-массив объектов разделов, каждый из которых содержит: index, break_type, page_width, page_height, orientation, columns, margin_top, margin_bottom (все размеры в twips/DXA). Последний раздел всегда имеет break_type="".

Параметры

Без параметров.

get_session_log

Вернуть все операции, выполненные за эту сессию, в виде воспроизводимого JSON.

Параметры

Без параметров.

get_statistics

Возвращает статистику для открытого документа. Возвращает словарь с ключами: word_count, character_count, paragraph_count, table_count, image_count, section_count.

Параметры

Без параметров.

get_style

Получает подробности об одном стиле по имени или styleId (без учёта регистра). Аргументы: name_or_id: Имя стиля или styleId для поиска. Возвращает: {"style_id": str, "name": str, "type": str, "base_style": str, "next_style": str}

Параметры
  • name_or_idstringобязательный
get_styles

Получает все определённые стили с ID, именем, типом и базовым стилем.

Параметры
  • document_handlestring
get_table

Получить структурированную информацию для одной таблицы по нулевому индексу. Аргументы: table_idx: нулевой индекс таблицы. Возвращает: {"index": int, "row_count": int, "col_count": int, "cells": list[list[str]]}

Параметры
  • table_idxintegerобязательный
get_tables

Получает все таблицы с количеством строк/столбцов и текстовым содержимым ячеек.

Параметры
  • document_handlestring
get_theme_colors

Возвращает именованные слоты цветов из word/theme/theme1.xml. Возвращает словарь, сопоставляющий имена слотов (dk1, lt1, accent1, ...) с шестнадцатеричными строками из 6 символов. Возвращает пустой словарь, если в документе нет файла темы.

Параметры

Без параметров.

get_tracked_changes

Вернуть все ожидающие отслеживаемые изменения (вставки и удаления) в виде JSON-списка. Каждая запись содержит: type, change_id, author, date, para_id, text. Изменения возвращаются в порядке документа.

Параметры
  • document_handlestring
get_word_count

Возвращает количество слов в теле открытого документа. Возвращает: {"word_count": int}

Параметры

Без параметров.

insert_bar_chart

Вставляет нативную гистограмму (без использования Excel). series: [{"name": str, "values": [float, ...]}]

Параметры
  • categoriesstring[]обязательный
  • height_cmnumber
  • para_idstringобязательный
  • seriesobject[]обязательный
  • titlestringобязательный
  • width_cmnumber
insert_blockquote

Вставляет абзац с цитатой после указанного абзаца. Новый абзац имеет отступ слева 720 твипов и курсивное форматирование. Аргументы: para_id: идентификатор ссылочного абзаца (новый абзац вставляется после него). text: текст цитаты.

Параметры
  • para_idstringобязательный
  • textstringобязательный
insert_caption

Вставляет абзац подписи после указанного абзаца. Аргументы: after_para_id: paraId абзаца, после которого вставить. text: Текст описания подписи (без префикса метки/номера). label: Метка подписи, например "Figure" или "Table" (по умолчанию "Figure").

Параметры
  • after_para_idstringобязательный
  • labelstring
  • textstringобязательный
insert_code_block

Вставляет абзац с блоком кода после указанного абзаца. Новый абзац использует шрифт Courier New 10pt со светло-серым фоном. Аргументы: para_id: Идентификатор paraId исходного абзаца (новый абзац вставляется после него). text: Текст кода. language: Необязательная подсказка о языке (сохраняется только в возвращаемом значении).

Параметры
  • languagestring
  • para_idstringобязательный
  • textstringобязательный
insert_date_field

Вставляет поле DATE в конец абзаца. Args: para_id: w14:paraId целевого абзаца. date_format: Переключатель формата даты (по умолчанию: @ "MMMM d, yyyy").

Параметры
  • date_formatstring
  • para_idstringобязательный
insert_floating_image

Вставить плавающее (привязанное) изображение. wrap: square|topbottom|none.

Параметры
  • height_cmnumberобязательный
  • h_posnumber
  • image_pathstringобязательный
  • para_idstringобязательный
  • v_posnumber
  • width_cmnumberобязательный
  • wrapstring
insert_if_field

Вставляет условное поле Word IF в конец абзаца. Аргументы: para_id: w14:paraId целевого абзаца. condition: Условное выражение (например, "x > 0"). true_text: Текст, отображаемый при выполнении условия. false_text: Текст, отображаемый при невыполнении условия.

Параметры
  • conditionstringобязательный
  • false_textstringобязательный
  • para_idstringобязательный
  • true_textstringобязательный
insert_image

Вставляет изображение в документ после абзаца.

Параметры
  • document_handlestring
  • height_emuinteger
  • image_pathstringобязательный
  • para_idstringобязательный
  • width_emuinteger
insert_line_chart

Вставляет нативную линейную диаграмму. series: [{"name": str, "values": [float, ...]}]

Параметры
  • categoriesstring[]обязательный
  • height_cmnumber
  • para_idstringобязательный
  • seriesobject[]обязательный
  • titlestringобязательный
  • width_cmnumber
insert_merge_field

Вставляет поле MERGEFIELD (слияние почты) в конец абзаца. Аргументы: para_id: w14:paraId целевого абзаца. field_name: имя поля слияния (например, "FirstName").

Параметры
  • field_namestringобязательный
  • para_idstringобязательный
insert_page_number_field

Вставляет поле PAGE в конец абзаца. Аргументы: para_id: w14:paraId целевого абзаца.

Параметры
  • para_idstringобязательный
insert_paragraph

Вставляет новый абзац после абзаца с указанным paraId. Аргументы: after_para_id: paraId абзаца, после которого нужно вставить. text: Текстовое содержимое нового абзаца. style: Необязательное имя стиля абзаца (например, "Heading1", "Normal").

Параметры
  • after_para_idstringобязательный
  • stylestring
  • textstringобязательный
insert_pie_chart

Вставляет нативную круговую диаграмму (одиночный ряд данных, фиксированный размер 14x9 см). series: [{"name": str, "values": [float, ...]}]

Параметры
  • categoriesstring[]обязательный
  • para_idstringобязательный
  • seriesobject[]обязательный
  • titlestringобязательный
insert_sequence_field

Вставляет поле SEQ (последовательность) для нумерации рисунков/таблиц. Аргументы: para_id: w14:paraId целевого абзаца. seq_name: Идентификатор последовательности (например, "Figure", "Table"). reset: Если True, перезапускает счётчик последовательности с 1.

Параметры
  • para_idstringобязательный
  • resetboolean
  • seq_namestringобязательный
insert_text

Вставляет текст в абзац. По умолчанию (tracked=True) вставка отмечается как предлагаемое дополнение — оно отображается подчеркнутым в режиме отслеживания изменений Word. Ответственный за проверку должен принять его в Word, чтобы оно стало постоянным. Передайте tracked=False, чтобы записать текст напрямую, без разметки правок. Аргументы: para_id: Идентификатор (paraId) целевого абзаца. text: Вставляемый текст. position: Куда вставить — "start", "end" или подстрока, после которой вставить. author: Имя автора, отображаемое в панели рецензирования Word (только при tracked=True). context_before: Текст непосредственно перед точкой вставки (для точной привязки). context_after: Текст непосредственно после точки вставки (для точной привязки). ignore_case: Если True, сопоставлять context_before/context_after без учета регистра. tracked: True (по умолчанию) — разметка правок, которую ответственный принимает или отклоняет в Word. False — текст записывается напрямую, без разметки. document_handle: Необязательный дескриптор для изоляции параллельных сеансов.

Параметры
  • authorstring
  • context_afterstring
  • context_beforestring
  • document_handlestring
  • ignore_caseboolean
  • para_idstringобязательный
  • positionstring
  • textstringобязательный
  • trackedboolean
insert_text_box

Вставляет встроенное текстовое поле после абзаца с para_id. Аргументы: para_id: paraId ссылочного абзаца (вставить после него). text: Текстовое содержимое для текстового поля. width_cm: Ширина в сантиметрах (по умолчанию 5.0). height_cm: Высота в сантиметрах (по умолчанию 2.0). Возвращает: JSON с para_id (новый абзац), text, width_cm, height_cm.

Параметры
  • height_cmnumber
  • para_idstringобязательный
  • textstringобязательный
  • width_cmnumber
insert_watermark

Вставляет VML водяной знак в стандартный колонтитул документа. Размещает <v:shape> с <v:textpath> внутри стандартного колонтитула — это стандартный шаблон водяного знака Word. Параметры: - text: Текст водяного знака (например, "ЧЕРНОВИК", "КОНФИДЕНЦИАЛЬНО"). - diagonal: Если True (по умолчанию), диагональная ориентация; если False, горизонтальная. - document_handle: Необязательный дескриптор для изоляции параллельных сеансов.

Параметры
  • diagonalboolean
  • document_handlestring
  • textstringобязательный
list_bookmarks

Перечисли все закладки в документе.

Параметры

Без параметров.

list_comment_threads

Вывести все цепочки комментариев (корневые комментарии с ответами к ним). Возвращает список словарей цепочек: {root: {id, author, date, text}, replies: [...]}.

Параметры

Без параметров.

list_fields

Выведи все поля в документе с их кодами и кэшированными значениями.

Параметры

Без параметров.

list_hyperlinks

Выводит список всех гиперссылок в документе. Возвращает список словарей с ключами: id, url_or_anchor, text, para_id, type. type может быть "external" (на основе r:id) или "internal" (на основе w:anchor).

Параметры

Без параметров.

list_parts

Выведи список всех XML-частей (файлов) в открытом ZIP-архиве DOCX.

Параметры

Без параметров.

list_template_fields

Перечисли все поля шаблона SDT (тег, метка, тип) в документе.

Параметры

Без параметров.

lock_content_control

Заблокировать элемент управления содержимым, чтобы запретить редактирование. Аргументы: tag: Имя тега блокируемого элемента управления. lock: Тип блокировки - sdtLocked|contentLocked|sdtContentLocked.

Параметры
  • lockstring
  • tagstringобязательный
merge_cells

Объединяет прямоугольный диапазон ячеек. По горизонтали: gridSpan. По вертикали: vMerge.

Параметры
  • end_colintegerобязательный
  • end_rowintegerобязательный
  • start_colintegerобязательный
  • start_rowintegerобязательный
  • table_indexintegerобязательный
merge_documents

Объединить содержимое другого DOCX-документа с текущим документом.

Параметры
  • document_handlestring
  • source_pathstringобязательный
merge_review_rounds

Объединить отслеживаемые изменения из N копий рецензентов в открытый документ.

Параметры
  • base_pathstring | null
  • reviewer_pathsstring[]обязательный
modify_cell

Изменить ячейку таблицы. По умолчанию (tracked=True) старое содержимое помечается как удалённое, а новое — как вставка: человек-рецензент принимает или отклоняет изменения в режиме отслеживания правок Word. Передайте tracked=False, чтобы перезаписать ячейку напрямую, без разметки. Args: table_idx: Индекс таблицы (начиная с 0). row: Индекс строки (начиная с 0). col: Индекс столбца (начиная с 0). text: Новый текст ячейки. author: Имя автора, отображаемое в панели рецензирования Word (только при tracked=True). tracked: True (по умолчанию): отслеживаемое удаление и вставка. False: прямая перезапись без разметки. document_handle: Необязательный дескриптор для изоляции параллельных сеансов.

Параметры
  • authorstring
  • colintegerобязательный
  • document_handlestring
  • rowintegerобязательный
  • table_idxintegerобязательный
  • textstringобязательный
  • trackedboolean
open_document

Открывает файл .docx для чтения и редактирования. Распаковывает архив DOCX, разбирает все XML-части и кэширует их в памяти под дескриптором. Несколько документов могут быть открыты одновременно, каждый под своим дескриптором. Аргументы: path: Абсолютный путь к файлу .docx. document_handle: Необязательный дескриптор для сохранения этого документа. Пустая строка использует общий слот __default__ (устаревшее поведение); передавайте уникальное значение (например, UUID) для каждого параллельного сеанса для изоляции.

Параметры
  • document_handlestring
  • pathstringобязательный
promote_list_item

Уменьшает уровень отступа списка (ilvl) абзаца на 1, минимум 0. Возвращает {para_id, ilvl}. Вызывает ValueError, если абзац не является элементом списка.

Параметры
  • para_idstringобязательный
read_part

Читает сырой XML любой части DOCX (например, 'word/document.xml'). Используйте list_parts(), чтобы узнать доступные части.

Параметры
  • part_pathstringобязательный
redact_text

Истинное удаление: удаляет текст и заменяет чёрным прямоугольником. Используйте exact_text или pattern. Args: pattern: Regex-шаблон для поиска текста run. para_ids: Необязательный список значений paraId абзацев для ограничения области поиска. exact_text: Точная строка для сопоставления с текстом run. reason: Причина удаления (сохраняется в логе).

Параметры
  • exact_textstring | null
  • para_idsstring[] | null
  • patternstring | null
  • reasonstring
reject_all_changes

Отклонить все отслеженные изменения в порядке документа. Возвращает JSON-объект с количеством отклоненных изменений: {"rejected": int}.

Параметры

Без параметров.

reject_change

Отклоняет одно отслеживаемое изменение по его change_id. Для вставок: отбрасывает вставленный текст (удаляет w:ins). Для удалений: сохраняет удалённый текст (разворачивает w:del, восстанавливая текст). Аргументы: change_id: Целочисленный атрибут id элемента w:ins или w:del.

Параметры
  • change_idintegerобязательный
reject_changes

Отклонить отслеженные изменения: удалить вставки, восстановить удаленный текст.

Параметры
  • authorstring
  • document_handlestring
remove_bookmark

Удалить закладку по имени (содержимое абзаца сохраняется).

Параметры
  • namestringобязательный
remove_hyperlink

Удалить обертку гиперссылки, сохранив текстовые runs внутри. Текст абзаца остается; разворачивается только элемент w:hyperlink. Аргументы: para_id: w14:paraId абзаца, содержащего гиперссылку. url_or_anchor: URL (для внешней) или имя закладки (для внутренней) для сопоставления.

Параметры
  • para_idstringобязательный
  • url_or_anchorstringобязательный
remove_watermark

Удалить водяные знаки VML (например, DRAFT) из всех заголовков документов.

Параметры
  • document_handlestring
replace_text

Заменяет текст в абзаце. С tracked=True (по умолчанию) старый текст отображается красным зачёркиванием, а новый — подчёркнутой вставкой; проверяющий принимает или отклоняет изменения в Word.Помечается только изменённая часть; совпадающие начало и конец остаются обычным текстом.С tracked=False замена применяется сразу без видимой разметки. Аргументы: - para_id: идентификатор целевого абзаца. - find: текст для поиска и замены (может пересекать границы прогонов). - replace: текст замены. - author: имя автора, отображаемое в панели проверки Word (только при tracked=True). - context_before: текст непосредственно перед целевым фрагментом (для точной привязки). - context_after: текст непосредственно после целевого фрагмента (для точной привязки). - tracked: True (по умолчанию) — зачёркивание + подчёркивание, человек принимает/отклоняет. False — замена сразу, без разметки. - document_handle: необязательный дескриптор для изоляции сеанса.

Параметры
  • authorstring
  • context_afterstring
  • context_beforestring
  • document_handlestring
  • findstringобязательный
  • ignore_caseboolean
  • para_idstringобязательный
  • replacestringобязательный
  • trackedboolean
reply_to_comment

Ответить на существующий комментарий (создаёт вложенный ответ).

Параметры
  • authorstring
  • document_handlestring
  • parent_idintegerобязательный
  • textstringобязательный
resolve_comment

Помечает комментарий как решённый (устанавливает w15:done='1' в commentsExtended.xml). Аргументы: comment_id: ID комментария, который нужно пометить как решённый.

Параметры
  • comment_idintegerобязательный
restart_numbering

Перезапускает нумерацию списка с указанного абзаца. Добавляет lvlOverride с startOverride.

Параметры
  • levelinteger
  • para_idstringобязательный
  • startinteger
sanitize_metadata

Записывает очищенную копию открытого документа в output_path. Уровень 1: удаляет из document.xml атрибуты rsid — отпечатки сессии. Уровень 2: + заменяет имена авторов отслеживаемых правок (w:author в w:ins/w:del). Уровень 3: + очищает creator/lastModifiedBy/revision в docProps/core.xml + очищает Company в docProps/app.xml + удаляет ссылку attachedTemplate из word/settings.xml Аргументы: output_path: путь к очищенному DOCX. Обязателен, не может быть пустым. level: глубина очистки (1, 2 или 3). По умолчанию 1. redact_authors_as: строка для замены авторов на уровне 2+. По умолчанию "Anonymous".

Параметры
  • levelinteger
  • output_pathstringобязательный
  • redact_authors_asstring
save_document

Сохраняет все изменения обратно в файл .docx. Аргументы: output_path: Путь к выходному файлу. Если пусто — перезаписывает исходный путь документа, связанного с этим дескриптором. document_handle: Дескриптор документа для сохранения. Пусто = __default__.

Параметры
  • document_handlestring
  • output_pathstring
scrub_pii

[ЭКСПЕРИМЕНТАЛЬНО] Обнаружение и удаление PII из открытого документа с помощью Presidio + spaCy NER. ПРЕДУПРЕЖДЕНИЕ: Этот инструмент ПРОПУСТИТ PII. Он экспериментальный и НЕ подходит для продакшена и не может быть единственным средством контроля для документов с привилегиями, регуляцией или юридической чувствительностью. Всегда сначала запускайте с dry_run=True и вручную проверяйте каждую обнаруженную сущность, прежде чем сохранять файл с удалёнными данными. Известные ограничения (пробелы статистического NER): - Имена, написанные ЗАГЛАВНЫМИ (заголовки реестров, ячейки таблиц) часто пропускаются. - Имена из одного токена без контекста вокруг — ненадёжны. - Неанглийские имена (арабские, китайские/японские/корейские, африканские) имеют низкий охват на этой английской модели. - Имена, встроенные в юридические шаблоны ("Borrower: Jane Doe"), часто пропускаются. NER-модель (en_core_web_lg, ~560 МБ) скачивается автоматически при первом использовании. Обнаруживает: PERSON, EMAIL_ADDRESS, PHONE_NUMBER, CREDIT_CARD, SSN, IP_ADDRESS, IBAN_CODE, US_BANK_NUMBER, US_PASSPORT и другие через Presidio. Текст заменяется сплошным чёрным прямоугольником DrawingML — настоящее XML-редактирование, при котором исходный текст полностью удаляется из OOXML, а не просто скрывается форматированием. Аргументы: output_path: Путь для сохранения. Обязателен, когда dry_run=False. entities: Типы сущностей Presidio для удаления. None — все обнаруженные типы. confidence_threshold: Минимальный порог уверенности Presidio (по умолчанию 0.35). dry_run: Если True, только обнаружение — вернуть список сущностей, файл не записывать. also_sanitize_metadata: Применить очистку метаданных уровня 3 (по умолчанию True). redact_authors_as: Строка замены для автора при обработке метаданных.

Параметры
  • also_sanitize_metadataboolean
  • confidence_thresholdnumber
  • dry_runboolean
  • entitiesstring[] | null
  • output_pathstring
  • redact_authors_asstring
search_text

Ищет текст по всему документу: основному тексту, сноскам и комментариям. Аргументы: query: Текст для поиска (без учёта регистра) или regex-шаблон. regex: Если true, query обрабатывается как регулярное выражение Python. Возвращает подходящие абзацы с их paraId, частью источника и контекстом.

Параметры
  • document_handlestring
  • querystringобязательный
  • regexboolean
set_alt_text

Устанавливает замещающий текст (и опционально заголовок) для изображения по индексу, начиная с 0. Аргументы: image_index: индекс (начиная с 0) среди всех элементов wp:docPr в document.xml. alt_text: описание для доступности, которое нужно установить для изображения. title: опциональный атрибут заголовка; удаляется из XML, если пустой. Возвращает: {"image_index": int, "alt_text": str}

Параметры
  • alt_textstringобязательный
  • image_indexintegerобязательный
  • titlestring
set_cell_shading

Установить цвет заливки фона в ячейке таблицы.

Параметры
  • col_idxintegerобязательный
  • fill_colorstringобязательный
  • patternstring
  • row_idxintegerобязательный
  • table_idxintegerобязательный
set_cell_vertical_alignment

Установить вертикальное выравнивание ячейки таблицы: сверху, по центру или снизу.

Параметры
  • alignmentstringобязательный
  • col_idxintegerобязательный
  • row_idxintegerобязательный
  • table_idxintegerобязательный
set_cell_width

Установить ширину ячейки таблицы в миллиметрах (хранится в DXA).

Параметры
  • col_idxintegerобязательный
  • row_idxintegerобязательный
  • table_idxintegerобязательный
  • width_mmnumberобязательный
set_character_position

Устанавливает вертикальное положение символов (приподнято/опущено) для заданного фрагмента. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс фрагмента (начиная с нуля). position_pt: Смещение в пунктах (положительное — приподнято, отрицательное — опущено).

Параметры
  • para_idstringобязательный
  • position_ptnumberобязательный
  • run_idxintegerобязательный
set_character_spacing

Устанавливает межсимвольный интервал (трекинг) для указанного пробега в абзаце. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс пробега, начиная с нуля. spacing_pt: Интервал в пунктах (положительное значение — расширенный, отрицательное — сжатый).

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
  • spacing_ptnumberобязательный
set_column_widths

Устанавливает ширину столбцов в сантиметрах. len(widths_cm) должно соответствовать количеству столбцов.

Параметры
  • table_indexintegerобязательный
  • widths_cmnumber[]обязательный
set_content_control_value

Обновляет значение/текст элемента управления содержимым по его тегу. Аргументы: tag: Имя тега обновляемого элемента управления. value: Новое значение. Для флажка: 'true'/'1' = отмечен, 'false'/'0' = не отмечен.

Параметры
  • tagstringобязательный
  • valuestringобязательный
set_custom_property

Устанавливает (upsert) пользовательское свойство документа. Аргументы: name: Имя свойства. value: Значение свойства в виде строки. vt_type: Имя элемента типа VT (lpwstr, i4, bool и т.д.).

Параметры
  • namestringобязательный
  • valuestringобязательный
  • vt_typestring
set_different_first_page

Включить или отключить отдельный верхний/нижний колонтитул на первой странице раздела. При включении раздел может иметь уникальный колонтитул на первой странице, отдельный от колонтитулов на последующих страницах. Args: section_index: Индекс раздела, начиная с нуля (используйте get_sections, чтобы его найти). enabled: True - включить отдельную первую страницу, False - отключить. Returns: {"section_index": int, "different_first_page": bool}

Параметры
  • enabledbooleanобязательный
  • section_indexintegerобязательный
set_document_language

Устанавливает язык документа по умолчанию. Записывает тег языка BCP-47 в свойства run стиля абзаца по умолчанию (w:rPr/w:lang) в word/styles.xml. Args: language_code: тег языка BCP-47, например "en-US", "fr-FR", "de-DE". Returns: {"language": language_code}

Параметры
  • language_codestringобязательный
set_document_protection

Установить защиту документа. edit: trackedChanges/comments/readOnly/forms/none.

Параметры
  • document_handlestring
  • editstringобязательный
  • passwordstring
set_formatting

Применить форматирование символов к тексту с разметкой отслеживаемых изменений.

Параметры
  • authorstring
  • boldboolean
  • colorstring
  • document_handlestring
  • italicboolean
  • para_idstringобязательный
  • textstringобязательный
  • underlinestring
set_header_row

Отмечает первую строку как повторяющуюся строку заголовка.

Параметры
  • table_indexintegerобязательный
set_image_alt_text

Задаёт альтернативный текст и заголовок для встроенного изображения. Аргументы: rId: идентификатор связи изображения. alt_text: альтернативный текст (атрибут descr в wp:docPr). title: необязательный атрибут заголовка в wp:docPr.

Параметры
  • alt_textstringобязательный
  • rIdstringобязательный
  • titlestring
set_image_border

Устанавливает или убирает границу у встроенного изображения. Аргументы: rId: идентификатор отношения изображения (например, 'rId6'). border_pt: ширина границы в пунктах. Укажите 0, чтобы убрать границу. color: строка RGB-цвета в шестнадцатеричном формате без символа '#' (по умолчанию '000000' – чёрный). Возвращает: JSON с полями rId, border_pt и color.

Параметры
  • border_ptnumberобязательный
  • colorstring
  • rIdstringобязательный
set_image_size

Изменяет размер встроенного изображения, обновляя его атрибуты EMU extent. Аргументы: rId: Идентификатор отношения (relationship ID) изображения, размер которого нужно изменить. width_cm: Новая ширина в сантиметрах. height_cm: Новая высота в сантиметрах.

Параметры
  • height_cmnumberобязательный
  • rIdstringобязательный
  • width_cmnumberобязательный
set_keep_lines_together

Оставить все строки этого абзаца на одной странице. Аргументы: para_id: paraId целевого абзаца. enabled: True, чтобы включить keep-lines-together, False, чтобы отключить.

Параметры
  • enabledbooleanобязательный
  • para_idstringобязательный
set_keep_with_next

Оставить этот абзац на той же странице, что и следующий абзац. Аргументы: para_id: paraId целевого абзаца. enabled: True для включения keep-with-next, False для отключения.

Параметры
  • enabledbooleanобязательный
  • para_idstringобязательный
set_line_spacing

Устанавливает межстрочный интервал и интервал между абзацами. Аргументы: para_id: идентификатор абзаца (paraId) целевого абзаца. line_rule: "auto" | "exact" | "atLeast". None — без изменений. line_value: Для "auto": 240 = одинарный, 360 = полуторный, 480 = двойной. Для "exact"/"atLeast": в твипах. space_before_pt: Интервал перед абзацем в пунктах (None = без изменений). space_after_pt: Интервал после абзаца в пунктах (None = без изменений).

Параметры
  • line_rulestring | null
  • line_valueinteger | null
  • para_idstringобязательный
  • space_after_ptnumber | null
  • space_before_ptnumber | null
set_odd_even_headers

Включить или отключить разные колонтитулы на четных/нечетных страницах глобально. Это настройка уровня документа, хранящаяся в word/settings.xml. Если включено, четные страницы могут использовать другие колонтитулы, отличные от нечетных. Args: enabled: True, чтобы включить разные колонтитулы для четных/нечетных, False, чтобы отключить. Returns: {"odd_even_headers": bool}

Параметры
  • enabledbooleanобязательный
set_page_break_before

Принудительно вставить разрыв страницы перед этим абзацем. Аргументы: para_id: paraId целевого абзаца. enabled: True — принудительно вставить разрыв перед, False — убрать его.

Параметры
  • enabledbooleanобязательный
  • para_idstringобязательный
set_page_margins

Устанавливает поля страницы, заданные в миллиметрах. Аргументы: top_mm: Верхнее поле в мм. None = без изменений. bottom_mm: Нижнее поле в мм. None = без изменений. left_mm: Левое поле в мм. None = без изменений. right_mm: Правое поле в мм. None = без изменений. para_id: paraId абзаца с разрывом раздела. None = основной раздел.

Параметры
  • bottom_mmnumber | null
  • left_mmnumber | null
  • para_idstring | null
  • right_mmnumber | null
  • top_mmnumber | null
set_page_orientation

Устанавливает ориентацию страницы, при необходимости меняя ширину и высоту местами. Аргументы: orientation: "portrait" или "landscape". para_id: paraId абзаца с разрывом раздела. None = основной раздел.

Параметры
  • orientationstringобязательный
  • para_idstring | null
set_page_size

Установить размер страницы по значениям в миллиметрах. Параметры: width_mm: Ширина страницы в мм (например, 210 для A4, 215.9 для Letter). height_mm: Высота страницы в мм (например, 297 для A4, 279.4 для Letter). para_id: Идентификатор параграфа с разрывом раздела. None = раздел тела документа.

Параметры
  • height_mmnumberобязательный
  • para_idstring | null
  • width_mmnumberобязательный
set_paragraph_border

Устанавливает границы на одной или нескольких сторонах абзаца. Аргументы: para_id: идентификатор целевого абзаца. sides: список сторон: "top", "bottom", "left", "right", "between". color: цвет границы в 6-значном hex (по умолчанию "000000"). size: ширина границы в восьмых долях пункта (по умолчанию 4 = 0,5pt).

Параметры
  • colorstring
  • para_idstringобязательный
  • sidesstring[]обязательный
  • sizeinteger
set_paragraph_indentation

Устанавливает отступы для абзаца. Аргументы: para_id: идентификатор paraId целевого абзаца. left_cm: левый отступ в сантиметрах (None = без изменений). right_cm: правый отступ в сантиметрах (None = без изменений). first_line_cm: отступ первой строки в см (взаимоисключающий с hanging_cm). hanging_cm: висячий отступ в см (взаимоисключающий с first_line_cm).

Параметры
  • first_line_cmnumber | null
  • hanging_cmnumber | null
  • left_cmnumber | null
  • para_idstringобязательный
  • right_cmnumber | null
set_paragraph_shading

Устанавливает фоновую заливку для абзаца. Аргументы: para_id: идентификатор целевого абзаца. fill_color: цвет заливки в виде шестизначного hex (например, "FFFF00"). pattern: шаблон заливки (по умолчанию "clear").

Параметры
  • fill_colorstringобязательный
  • para_idstringобязательный
  • patternstring
set_properties

Установить основные свойства документа. Пустая строка = без изменений.

Параметры
  • creatorstring
  • descriptionstring
  • document_handlestring
  • subjectstring
  • titlestring
set_row_height

Устанавливает высоту строки в миллиметрах. Правило: exact, atLeast или auto.

Параметры
  • height_mmnumberобязательный
  • row_idxintegerобязательный
  • rulestring
  • table_idxintegerобязательный
set_run_color

Устанавливает цвет шрифта для конкретного run в абзаце. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс run, начиная с нуля. color: Шестнадцатеричный цвет без # (например, "FF0000").

Параметры
  • colorstringобязательный
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_font

Устанавливает шрифт для конкретного фрагмента (с нулевой индексацией) в абзаце. Аргументы: para_id: Идентификатор целевого абзаца. run_idx: Индекс фрагмента (начиная с нуля). font_name: Название шрифта (например, "Arial", "Times New Roman").

Параметры
  • font_namestringобязательный
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_highlight

Устанавливает цвет выделения для конкретного фрагмента в абзаце. Аргументы: para_id: идентификатор целевого абзаца. run_idx: индекс фрагмента, начиная с нуля. color: название цвета выделения слова (например, "yellow", "green", "cyan", "none").

Параметры
  • colorstringобязательный
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_language

Устанавливает язык прогона для проверки орфографии. Аргументы: para_id: идентификатор целевого абзаца. run_idx: индекс прогона (начиная с нуля). language_code: код языка BCP-47 (например, "en-US", "fr-FR", "de-DE").

Параметры
  • language_codestringобязательный
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_size

Устанавливает размер шрифта для определённого фрагмента (run) в абзаце. Аргументы: para_id: идентификатор (paraId) целевого абзаца. run_idx: индекс фрагмента (run), отсчёт от нуля. size_pt: размер шрифта в пунктах (например, 12.0).

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
  • size_ptnumberобязательный
set_run_strikethrough

Установить зачёркивание для конкретного фрагмента в абзаце. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс фрагмента, начиная с нуля. double: False для одинарного зачёркивания, True для двойного.

Параметры
  • doubleboolean
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_subscript

Устанавливает вертикальное выравнивание подстрочного индекса для конкретного прогона в абзаце. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс прогона, начиная с нуля.

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_superscript

Установить надстрочное вертикальное выравнивание для конкретного фрагмента в абзаце. Аргументы: para_id: идентификатор абзаца (paraId) целевого абзаца. run_idx: индекс фрагмента, начиная с нуля.

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
set_run_underline

Устанавливает стиль подчёркивания для конкретного фрагмента (run) в абзаце. Аргументы: para_id: paraId целевого абзаца. run_idx: Индекс фрагмента, начиная с нуля. style: Стиль подчёркивания (например, "single", "double", "dotted", "none").

Параметры
  • para_idstringобязательный
  • run_idxintegerобязательный
  • stylestring
set_section_columns

Устанавливает количество колонок в разделе. Аргументы: section_index: Индекс раздела, начиная с нуля (используйте get_sections, чтобы его найти). num_columns: Количество текстовых колонок (1 = одна колонка). equal_width: Если True, все колонки одинаковой ширины. По умолчанию True.

Параметры
  • equal_widthboolean
  • num_columnsintegerобязательный
  • section_indexintegerобязательный
set_section_properties

Изменить свойства раздела (размер страницы, ориентацию, поля). 0/пусто = без изменений.

Параметры
  • document_handlestring
  • heightinteger
  • margin_bottominteger
  • margin_leftinteger
  • margin_rightinteger
  • margin_topinteger
  • orientationstring
  • para_idstring
  • widthinteger
set_table_alignment

Устанавливает выравнивание таблицы: слева, по центру или справа.

Параметры
  • alignmentstringобязательный
  • table_idxintegerобязательный
set_table_borders

Установить границы на всех шести сторонах таблицы (верх, низ, лево, право, внутри по горизонтали, внутри по вертикали).

Параметры
  • border_stylestring
  • colorstring
  • sizeinteger
  • table_idxintegerобязательный
set_table_style

Применяет именованный стиль таблицы (например, TableGrid, LightShading-Accent1) к таблице.

Параметры
  • style_namestringобязательный
  • table_idxintegerобязательный
set_text_case

Устанавливает преобразование регистра текста для run. Аргументы: para_id: идентификатор абзаца целевого параграфа. run_idx: индекс run (начиная с нуля). case: "upper" (все прописные), "small" (капитель) или "none" (убрать преобразование регистра).

Параметры
  • casestringобязательный
  • para_idstringобязательный
  • run_idxintegerобязательный
set_theme_color

Обновляет именованный слот цвета в теме документа. Аргументы: slot: Один из: dk1, lt1, dk2, lt2, accent1-accent6, hlink, folHlink. hex_color: 6-символьная шестнадцатеричная строка без # (например, "FF0000").

Параметры
  • hex_colorstringобязательный
  • slotstringобязательный
set_track_changes

Включить или отключить отслеживание ревизий в документе. Когда функция включена, Word/LibreOffice будет записывать будущие правки как отслеженные изменения. Аргументы: enabled: True — включить отслеживание, False — отключить. author: Опциональное имя автора (сохраняется в ответе только для справки). Возвращает: {"track_changes": bool, "author": str}

Параметры
  • authorstring
  • enabledbooleanобязательный
set_widow_control

Включить управление висячими строками для этого абзаца. Аргументы: para_id: paraId целевого абзаца. enabled: True — включить управление висячими строками, False — отключить.

Параметры
  • enabledbooleanобязательный
  • para_idstringобязательный
sort_table

Сортирует строки таблицы без заголовков по текстовому содержимому столбца. Строки заголовков (отмеченные w:tblHeader) остаются наверху. Строки с отсутствующей ячейкой в column_index сортируются как пустая строка. Аргументы: table_idx: индекс таблицы, начиная с 0. column_index: индекс столбца для сортировки, начиная с 0. ascending: True для A→Z (по умолчанию), False для Z→A. Возвращает: {"sorted_rows": int, "column_index": int, "ascending": bool}

Параметры
  • ascendingboolean
  • column_indexintegerобязательный
  • table_idxintegerобязательный
split_document

Разделяет открытый документ на несколько DOCX-файлов, по одному на каждый раздел заголовка. Аргументы: output_dir: Каталог для выходных файлов. По умолчанию <workdir>/split_output. at_heading_level: Уровень заголовка, по которому выполняется разделение (по умолчанию 1). Возвращает: {"output_dir": str, "files": list[str], "parts": int}

Параметры
  • at_heading_levelinteger
  • output_dirstring
split_table

Разделяет таблицу на две по указанному индексу строки. Строки с 0 по at_row_index-1 остаются в исходной таблице; строки с at_row_index до конца переносятся в новую таблицу, которая вставляется сразу после. Аргументы: table_idx: индекс таблицы, начиная с 0. at_row_index: индекс строки, по которой разделяем (начиная с 0; должен быть > 0 и < row_count). Возвращает: {"table1_rows": int, "table2_rows": int}

Параметры
  • at_row_indexintegerобязательный
  • table_idxintegerобязательный
suppress_numbering

Удаляет нумерацию списка из абзаца, устанавливая numId в 0.

Параметры
  • para_idstringобязательный
table_to_csv

Экспортировать таблицу как строку CSV.

Параметры
  • table_indexintegerобязательный
update_chart_data

Заменить ряды данных в существующей диаграмме по chart_id. series: [{"name": str, "values": [float, ...]}]

Параметры
  • chart_idstringобязательный
  • seriesobject[]обязательный
update_comment

Заменить текст существующего комментария. Аргументы: comment_id: ID комментария для обновления. text: Новый текст комментария.

Параметры
  • comment_idintegerобязательный
  • textstringобязательный
update_content_control

Изменяет свойства существующего элемента управления содержимым. Аргументы: control_id: Значение w:id элемента управления, который нужно обновить. title: Новый заголовок (w:alias/@w:val). Опустите, чтобы оставить без изменений. tag: Новый тег (w:tag/@w:val). Опустите, чтобы оставить без изменений. placeholder_text: Новый текст-заполнитель. Опустите, чтобы оставить без изменений.

Параметры
  • control_idstringобязательный
  • placeholder_textstring | null
  • tagstring | null
  • titlestring | null
update_endnote

Обновляет текст существующей концевой сноски. Аргументы: endnote_id: Числовой идентификатор концевой сноски для обновления (должен быть >= 1). text: Новый текст концевой сноски.

Параметры
  • endnote_idintegerобязательный
  • textstringобязательный
update_fields

Пометить все поля как требующие обновления, чтобы Word пересчитал их при открытии.

Параметры

Без параметров.

update_footnote

Обновляет текст существующей сноски. Аргументы: footnote_id: Числовой идентификатор сноски для обновления (должен быть >= 1). text: Новое текстовое содержимое сноски.

Параметры
  • footnote_idintegerобязательный
  • textstringобязательный
update_hyperlink

Обновляет целевой URL существующей внешней гиперссылки. Аргументы: r_id: Идентификатор связи (например, "rId7"), который нужно обновить. new_url: Новый целевой URL.

Параметры
  • new_urlstringобязательный
  • r_idstringобязательный
update_image

Заменить двоичные данные существующего изображения на месте. Размеры изображения и его позиция в документе сохраняются. Аргументы: rId: Идентификатор связи изображения, которое нужно заменить. new_image_path: Абсолютный путь к новому файлу изображения на диске.

Параметры
  • new_image_pathstringобязательный
  • rIdstringобязательный
update_paragraph

Обновить текст и/или стиль существующего абзаца. Аргументы: para_id: paraId обновляемого абзаца. text: Новое текстовое содержимое. Пустая строка оставляет текст без изменений. style: Новое имя стиля абзаца. Пустая строка оставляет стиль без изменений.

Параметры
  • para_idstringобязательный
  • stylestring
  • textstring
update_style

Обновляет свойства basedOn и/или next у существующего стиля. Аргументы: name: Имя стиля или styleId (без учёта регистра). based_on: Новый styleId для basedOn (заменяет существующий). next_style: Новый styleId для next (заменяет существующий).

Параметры
  • based_onstring | null
  • namestringобязательный
  • next_stylestring | null
update_toc

Перегенерировать записи оглавления из текущих заголовков.

Параметры

Без параметров.

validate_endnotes

Сопоставляет идентификаторы концевых сносок между document.xml и endnotes.xml.

Параметры
  • document_handlestring
validate_footnotes

Устанавливает перекрестные ссылки между идентификаторами сносок в document.xml и footnotes.xml.

Параметры
  • document_handlestring
validate_paraids

Проверяет уникальность paraId во всех частях документа.

Параметры
  • document_handlestring
validate_template_data

Проверяет, что словарь данных покрывает все поля шаблона. Возвращает недостающие и лишние ключи.

Параметры
  • dataobjectобязательный
write_part

Заменяет часть DOCX на новый XML. Сначала проверяет корректность. ПРЕДУПРЕЖДЕНИЕ: Прямое манипулирование XML может повредить документ при неправильном использовании.

Параметры
  • part_pathstringобязательный
  • xmlstringобязательный
xpath_query

Выполняет XPath-запрос к любой части DOCX. Предварительно связанные пространства имён: w, w14, r, wp, a, mc. Примеры: xpath="//w:p" — все абзацы xpath="//w:t/text()" — весь текстовый контент xpath="//w:p[w:pPr/w:pStyle/@w:val='Heading1']" — абзацы с заголовком 1

Параметры
  • partstring
  • xpathstringобязательный

Похожие MCP-сервера

UseJunior/safe-docx

UseJunior/safe-docx

Safe Docx — MCP сервер для хирургического редактирования существующих .docx и .odt файлов без потери форматирования. Помогает разработчикам и юристам автоматизировать правки контрактов через ИИ-агентов. Поддерживает отслеживание изменений, комментарии и сноски, сохраняя структуру документа.

TypeScript41
UnMarkdown/mcp-server

UnMarkdown/mcp-server

MCP сервер Unmarkdown преобразует Markdown в документы для Google Docs, Word, Slack и других платформ с 62 шаблонами. Управляет документами и публикует страницы. Идеален для AI-ассистентов, которым нужно быстро оформлять и публиковать контент.

JavaScript1
boldsign/boldsign-mcp

boldsign/boldsign-mcp

MCP сервер для BoldSign: интеграция электронной подписи в AI-агенты. Управляйте документами, шаблонами и контактами через LLM. Полезен для автоматизации отправки, подписания и отслеживания документов.

TypeScript7
dearlordylord/huly-mcp

dearlordylord/huly-mcp

MCP сервер для интеграции с Huly — платформой управления проектами и задачами. Позволяет создавать, обновлять и искать задачи, проекты, документы, комментарии. Полезен командам, использующим Huly в...

TypeScript51
ivo-toby/contentful-mcp

ivo-toby/contentful-mcp

MCP сервер для Contentful, интегрирующийся с API управления контентом: создание, редактирование, публикация записей и медиа, управление комментариями и массовые операции. Полезен разработчикам и контент-менеджерам для автоматизации контент-процессов через LLM.

TypeScript62
conorbronsdon/substack-mcp

conorbronsdon/substack-mcp

MCP сервер для Substack: читает статистику и управляет черновиками. Безопасная архитектура - длинные посты только в черновиках, публикуются лишь Notes. Полезен авторам для подготовки контента перед...

TypeScript30
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин