Ваш поставщик был приобретён, и «ACME Corp» теперь «Globex Ltd» во всех контрактах, расписаниях, бюджетах и презентациях, где он упоминается. При локальном запуске сервера GroupDocs.Editor MCP, Claude Desktop, Cursor или Copilot выполняют это пакетно: для каждого файла в папке вызывают replace_text, сохраняют форматирование, сообщают, сколько вхождений изменено, и ничего не записывают для файлов, где старое название не встречалось. Ничего не загружается и оригиналы не перезаписываются:
Переименовать ACME Corp в Globex Ltd во всех документах папки contracts, сохранить форматирование и предоставить количество замен в каждом файле.
Пошаговая версия находится в документации: How to find and replace text across a folder of documents without breaking the formatting.
Почему это задача для инструмента, а не для модели?
Потому что результат должен быть проверяемым. Сорок документов — слишком много, чтобы сравнивать их вручную, а модель, которая «обновила все контракты», не даёт ничего, с чем можно сравнить. Инструмент поиска и замены выдаёт число замен для каждого файла. Эти числа являются аудиторским следом: вы знаете, какие файлы изменились, насколько и какие не требовали изменений.
Также процесс должен быть «скучным» в правильном смысле. Жирное название компании остаётся жирным, таблица с тарифами сохраняет сетку, заголовки сохраняют свои стили. Модель никогда не перепечатывает документ: движок открывает его, заменяет слова и сохраняет копию. Один нюанс в версии сервера 26.10.0: копия записывается из HTML‑модели редактирования движка, и нижний колонтитул Word не проходит через неё. Контракт, где поставщик упоминается в нижнем колонтитуле, требует обхода через HTML‑путешествие; FAQ перечисляет, что сохраняет Word‑документ.
Что видит агент
Зафиксировано в GroupDocs.Editor.Mcp 26.10.0 на небольшом синтетическом наборе: соглашение о предоставлении услуг, NDA, приветственное письмо, трёхстраничный бюджет и трёхслайдовая презентация.
-> replace_text {"file":{"filePath":"contracts/msa-northwind.docx"},
"find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'msa-northwind.docx'
Saved to: …/msa-northwind_edited.docx
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"}, ...}
<- Replaced 1 occurrence(s) of 'ACME Corp' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/welcome-letter.docx"}, ...}
<- Text replacement found no matches for 'ACME Corp' in
'welcome-letter.docx'. No file was written.
-> replace_text {"file":{"filePath":"budget.xlsx"}, ..., "worksheet":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in worksheet 1 of 3 of
'budget.xlsx'
-> replace_text {"file":{"filePath":"review.pptx"}, ..., "slide":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in slide 1 of 3 of
'review.pptx'
Отчёт агента пишет сам: шесть в соглашении, одно в NDA, ни одного в приветственном письме, одно в сводке бюджета, одно на первом слайде.
Цикл
contracts/ + budget.xlsx + review.pptx
|
+-- for each file:
| replace_text {"find":"ACME Corp","replace":"Globex Ltd",
| "wholeWord":true} (+ "worksheet"/"slide")
| -> "Replaced N occurrence(s) ..." -> <name>_edited.<ext>
| -> "found no matches ... No file was written."
|
'-- report: file -> count; files with 0 listed separately
Две привычки делают цикл надёжным. Используйте wholeWord: true для имён, чтобы «ACME Corp» не совпадало внутри «ACME Corporation Holdings». И попросите агента перечислить файлы с нулевыми совпадениями, потому что ноль в файле, где ожидалось изменение, — единственное, что стоит проверить повторно.
Проверка пакета перед заменой
Отредактированные копии находятся рядом с оригиналами, пока вы не решите иначе, и именно в этот момент их следует проверить. Три простых проверки ловят почти все проблемы. Сравните количество замен в каждом файле с ожидаемым: соглашение, где поставщик упоминается на каждой странице, не должно сообщать лишь одно вхождение. Не полагайтесь на повторный запуск той же замены: фраза, разбитая форматированием, будет пропущена и во второй раз, и «found no matches» будет выглядеть как полное отсутствие проблем. Попросите агента выполнить extract_html для каждой отредактированной копии; её предварительный просмотр в виде простого текста объединяет фрагменты форматирования, поэтому оставшееся «ACME Corp» будет видно. Вариации написания («Acme Corp.» с точкой, «ACME Corporation») требуют отдельного прохода с matchCase: false или регулярным выражением. И откройте по одному отредактированному файлу каждого типа — контракт, таблицу и презентацию — чтобы убедиться, что форматирование и нижний колонтитул сохранились. Только после этого переместите файлы _edited на место оригиналов или позвольте вашей системе управления документами их версионировать.
Шаблоны, регистр и формат в одном вызове
Переименование — типичный случай, но тот же инструмент покрывает остальные задачи семейства «сделать формулировки единообразными». В том же тестовом запуске:
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"v2\\.3\\b","replace":"v2.4","regex":true,
"outputName":"nda-northwind-v2.4.docx"}
<- Replaced 1 occurrence(s) of 'v2\.3\b' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"acme corp","replace":"Globex Ltd","matchCase":false,
"format":"pdf"}
<- Replaced 1 occurrence(s) of 'acme corp' in 'nda-northwind.docx'
Saved to: …/nda-northwind_edited.pdf
regex: true принимает .NET‑регулярное выражение, что удобно для массового обновления версии или изменения формата даты. matchCase: false ловит несоответствия в регистре. format: "pdf" одновременно редактирует и конвертирует в PDF, создавая копию для другой стороны.
Отступление для программирующих агентов
Тот же шаблон работает в репозитории. Примечания к выпуску в DOCX и спецификации в XLSX невидимы для sed; Claude Code с этим сервером может обновить строку версии в обоих файлах в рамках задачи релиза. Добавьте правило в инструкции проекта, чтобы агент использовал инструмент, а не пытался распаковывать Office‑файлы вручную:
To change wording in .docx/.xlsx/.pptx/.pdf files in this repo, use the
groupdocs-editor MCP server's replace_text (wholeWord for names, regex for
versions). Report the count per file. Never rewrite an Office file by hand.
Честные ограничения
- Сопоставление происходит внутри одного фрагмента форматирования. В нашем соглашении седьмое «ACME Corp», где «ACME» выделено курсивом, не было заменено, и это отразилось в счёте шести. Фразы, разбитые стилями, требуют HTML‑обхода.
- Каждый результат сохраняется в корне выходной папки как
<name>_edited.<ext>, даже если оригинал находился в подпапке. Ничего не перезаписывается: если имя уже занято, к нему добавляется номер (msa-northwind_edited (1).docx), поэтому указывайтеoutputName, когда возможны конфликты. - В версии сервера 26.10.0 отредактированная копия Word‑документа теряет нижний колонтитул, а элементы управления содержимым преобразуются в простой текст. Проверьте документы, где старое название находится в нижнем колонтитуле.
- Таблицы и презентации редактируются по одному листу или слайду за вызов. В режиме оценки можно отредактировать только первые два, и сервер об этом сообщает: “Evaluation mode edits only the first 2 slides of a presentation; slide 3 is beyond them.”
- Режим оценки также добавляет строку‑баннер к каждому выходному файлу, а PDF более двух страниц отклоняется.
FAQ
Можно ли заменить текст в Word, Excel и PowerPoint в одном пакете?
Да. Агент вызывает один и тот же инструмент для каждого файла и добавляет worksheet или slide для таблиц и презентаций.
Как узнать, какие файлы были изменены?
Каждый вызов возвращает количество замен, а файлы без совпадений не записываются вовсе. Попросите агента предоставить таблицу по файлам.
Будут ли оригиналы перезаписаны?
Нет. Каждое редактирование создаёт новый файл; оригиналы остаются без изменений, пока вы их сами не замените.
Углубиться
- Документация, канонический гайд: How to find and replace text across a folder of documents without breaking the formatting
- Центр документации: GroupDocs.Editor MCP Server
- GroupDocs.Editor MCP product page — установка в один клик для VS Code и Cursor, конфиги для всех остальных клиентов
- Начните здесь: Why an AI agent should not rewrite your document to change three words
- Связанные статьи: Fill Word forms from a spreadsheet with an AI agent, locally
- Связанные статьи: Edit one worksheet, keep the workbook: surgical edits with an HTML round-trip
- Связанные статьи: Edit a PDF with an AI agent? Turn it into Word first, locally
- On‑premise и модель безопасности: 3 architectures for AI document processing, and the one that keeps files inside your network
- Вопросы: GroupDocs Editor forum
- Исходный код: GroupDocs.Editor.Mcp on GitHub · NuGet package