Если агенту нужно читать и править рабочую книгу Excel на вашем компьютере, подключают Excel MCP: сервер открывает файл xlsx, отдаёт диапазоны ячеек и записывает в них значения и формулы. В популярном варианте от сообщества, репозитории haris-musa/excel-mcp-server, для этого используется библиотека openpyxl, и сервер работает без установленного Excel. У такой схемы есть неочевидная особенность: формулы сохраняются как текст, а пересчитывает их сама программа, поэтому проверка результата всегда идёт на копии файла и отдельным шагом.

Книга под замком

TL;DR

Excel MCP от сообщества читает и пишет xlsx-файлы напрямую, а доступ ограничивается каталогом через параметр allow-dir или переменную EXCEL_FILES_PATH; без такого ограничения сервер откроет любой файл Excel, путь к которому ему назвали.

README репозитория перечисляет более двадцати инструментов в группах книг, листов, ячеек, форматирования, объектов и макросов: создание книги, read_range, write_range, format_range, create_chart, чтение VBA. Сервер поддерживает запуск через stdio и через streamable-http, лицензия MIT. Это проект сообщества, корпорация Microsoft к нему непричастна, и наряду с ним встречаются другие реализации. Автора, дату изменений и открытые замечания смотрите перед установкой. Версия 1.0 от 28 сентября 2026 года переименовала инструменты, поэтому примеры для линейки 0.x к ней непригодны. Из защит README называет проверку формул перед записью (функции, выходящие в сеть или к другим программам, отклоняются), режим только чтения и отказ молча перезаписывать существующую книгу; копия и проверка результата остаются обязательными.

Условный пример: бухгалтер хранит в книге реестр платежей, и агенту поручено сверить столбец сумм с выпиской. Для такой задачи достаточно чтения одного листа, запись агенту можно закрыть полностью флагом --read-only или переменной EXCEL_MCP_READ_ONLY=1. Первое решение касается папки. Документация предлагает флаг --allow-dir с каталогом, и тогда сервер откроет книги только внутри него, включая подпапки. Альтернатива — переменная EXCEL_FILES_PATH. Без этих настроек разрешён любой абсолютный путь к файлу Excel, а значит, агент дотянется и до бухгалтерской книги, лежащей на соседнем диске. Заведите отдельную папку «для агента» и кладите туда копии, оригиналы оставляйте на месте.

Сценарий отличается от сценариев ChatGPT в Excel и от подключения моделей к облачным таблицам: речь о локальном файле и о вызовах инструментов из агента, поэтому Google Таблицы и генерация новых таблиц целиком остаются за рамками разбора.

Формулы и значения

Главная ловушка записана в README одной фразой: формулы хранятся как текст, а вычисляет их сама программа. Читая диапазон, сервер возвращает значения, которые Excel последний раз записал в файл. Если агент записал формулу и тут же прочитал результат, ячейка окажется пустой или покажет старое значение: пересчёт произойдёт только когда книгу откроет Excel или LibreOffice. Вывод агента вида «формула работает, итог равен такому-то» без пересчёта остаётся пустым утверждением.

Для рабочей книги это важно вдвойне: в ней часто лежат вложенные формулы, ссылки на другие листы и условное форматирование, а значение в ячейке зависит от цепочки расчётов. Из этого следует правило: проверять нужно пересчитанное значение, а запись формулы остаётся лишь намерением. Скрипт открывает копию в LibreOffice в фоновом режиме или в Excel, сохраняет и читает значения ещё раз. Расхождение между ожидаемым и полученным результатом ловится только на этом шаге. Ожидаемые значения лучше вычислить независимо, например отдельным скриптом на pandas от исходных данных.

Есть и менее заметные риски, они тоже отмечены в README. При вставке и удалении строк и столбцов формулы, диаграммы и таблицы сохраняют старые ссылки. Возможности книги, неизвестные openpyxl, например фигуры и срезы, могут пропасть при сохранении. Устаревший формат xls и файлы csv остаются за пределами поддержки. Настоящие сводные таблицы библиотека создавать неспособна: инструмент create_summary_table пишет статичную сводку. Код макросов в файлах xlsm сохраняется, а сервер лишь читает VBA без запуска. Поэтому рабочую книгу со сложным форматированием и макросами первый раз правят на копии.

Копия и диапазон

  1. Скопируйте книгу в папку агента (облачную синхронизацию на время работы отключите, иначе версии разойдутся), к имени файла добавьте дату и метку «тест».
  2. Сохраните исходный файл как эталон и посчитайте его контрольную сумму, чтобы позже доказать, что оригинал остался прежним.
  3. Перечислите диапазоны, которые агенту разрешено менять, например лист и столбцы с нужными данными. Всё остальное считается запретной зоной.
  4. Попросите агента прочитать диапазон и пересказать структуру: заголовки, типы значений, пустые строки. Сверьте пересказ с книгой.
  5. Дайте одно узкое изменение: заполнить столбец формулой или исправить регистр в колонке названий. Принимайте результат только после пересчёта и сравнения с эталоном.

Запись формул в диапазон имеет и безопасный вариант: сначала агент пишет формулы в пустой столбец рядом, человек сверяет результат, и только потом данные переносятся в основной столбец. Ограничение диапазонов задаёт ваша инструкция и ваш скрипт-обёртка, а сам сервер такой границы лишён: инструмент записи принимает любой адрес ячеек внутри разрешённой папки. Поэтому после каждого сеанса скрипт сравнивает запретную зону с эталоном и поднимает тревогу при любом расхождении.

Когда копий много, имя файла становится частью дисциплины: дата, исполнитель, назначение прогона. По имени видно, какой файл эталонный, какой рабочий, а какой остался от неудачной попытки. Удаляйте черновые копии по правилам компании, а журнал прогонов храните дольше.

● Discovery · 1 час · бесплатно

Какие книги Excel у вас ведутся вручную дольше всего?

Прийти на Discovery →

Diff ячеек

У xlsx нет привычного построчного diff, как у кода, но его легко построить. Скрипт читает обе версии книги и сравнивает ячейки по адресу, отдельно формулы и отдельно пересчитанные значения. Результат — таблица изменений, которую просматривает сотрудник.

Что сравниваетсяКак получитьЧто означает расхождение
Формулы в ячейкахЧтение книги без вычисления значенийАгент поменял логику расчёта
Значения после пересчётаОткрытие копии в Excel или LibreOffice, сохранение, повторное чтениеИтог расходится с ожидаемым
Запретная зонаСравнение с эталоном по адресамАгент вышел за разрешённый диапазон
Структура книгиСписок листов, таблиц, диаграмм, имёнЧто-то пропало или добавилось при сохранении
ФорматированиеВыборочное сравнение стилей и ширины столбцовПострадал внешний вид отчёта

Просматривайте diff целиком, пересказ агента годится лишь как подсказка. Рассказ модели о проделанном помогает понять, куда смотреть в первую очередь. Проверка записанной формулы человеком быстрее всего идёт в режиме показа формул, когда в ячейке виден текст формулы вместо числа. Контрольные ячейки пригодятся и при будущих обновлениях книги: те же проверки сработают, когда формулы поменяет уже сотрудник. Для сложных книг имеет смысл вести список контрольных ячеек: итоги по листам, суммы, проверочные разности. Они меняются при любой ошибке в расчётах и ловят то, что глаз пропускает.

Допуск и запись

Считает скрипт, модель объясняет таблицу и предлагает правку, а подменить рабочую книгу разрешает только человек. Схема допуска делится на три ступени: чтение копии, запись в копию с проверкой diff, перенос результата в рабочую книгу сотрудником. Прямую запись агента в боевой файл мы исключаем на всех ступенях пилота.

Права проверяются там, где их можно проверить. Сервер читает файл напрямую с диска, поэтому права доступа к книгам задаёт операционная система, а флаг allow-dir добавляет к ним границу папки; запись в сетевую папку возможна только при её прямом подключении к машине. Сервер открывает файлы с правами того пользователя, под которым запущен, поэтому заведите для него отдельную учётную запись без доступа к остальным папкам. В журнале храните имя файла, список вызванных инструментов, время и контрольные суммы до и после. Содержимое ячеек с персональными или коммерческими данными должно попадать в журнал только в виде адресов ячеек. Если команде нужен контур с ролями и приёмкой, его собирают как проект, и разговор об этом удобно начать на странице про ИИ-агентов; о более широкой работе с таблицами рассказывает статья про ИИ для Excel и таблиц.

// с чего начать

Выберите небольшую книгу с одним расчётным листом, положите её копию в папку агента, ограничьте сервер этой папкой и поручите агенту добавить один столбец с формулой. Пересчитайте файл в LibreOffice, сравните значения с независимым расчётом и только затем расширяйте разрешённые диапазоны.

Частые вопросы

Что такое Excel MCP?
Это MCP-сервер, который даёт агенту инструменты для работы с файлами xlsx: чтение диапазонов, запись значений и формул, форматирование, диаграммы. Популярный вариант от сообщества использует библиотеку openpyxl и работает без установленного Excel.
Нужен ли установленный Excel для Excel MCP?
Для сервера haris-musa/excel-mcp-server нужен только он сам: файлы он обрабатывает через openpyxl. Но формулы без Excel или LibreOffice остаются непросчитанными, поэтому для проверки результата программа всё равно понадобится.
Как ограничить Excel MCP одной папкой?
Запустите сервер с флагом --allow-dir и указанием каталога либо задайте переменную EXCEL_FILES_PATH. Тогда книги открываются только внутри этой папки, включая вложенные. Без настройки допустим любой абсолютный путь.
Почему агент записал формулу, а результата нет?
Сервер сохраняет формулу как текст, а вычисление оставляет программе Excel. Значение появится после открытия и сохранения книги в Excel или LibreOffice. До пересчёта читаемый результат пустой или остаётся прежним.
Можно ли доверить агенту рабочую книгу с макросами?
Сначала проверьте на копии. README пишет, что код макросов в xlsm сохраняется, сервер лишь читает его без запуска, а фигуры, срезы и часть встроенных объектов при правке могут пропасть. Рабочую книгу с макросами, сводными таблицами и сложным форматированием агенту без копии отдавать нельзя.