docx-mcp
Integrates with a LobeChat PostgreSQL database to look up files by ID or name, enabling document processing workflows to retrieve source files from the chat platform.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@docx-mcpCreate a docx from this markdown with a table and formula, then return the link"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
docx-mcp
MCP-сервер для работы с документами Microsoft Word (.docx) в среде Linux: создание и редактирование документов, нативные формулы OMML, таблицы, колонтитулы, режим исправлений (track changes), комментарии, сноски, защита документа.
Транспорт — Streamable HTTP (FastMCP), поддерживается stateless-режим. Файлы загружаются из S3-совместимого хранилища (rustfs) или по ссылке, результат сохраняется в хранилище и возвращается в виде HTTPS-ссылки.
Проект основан на word-mcp-live (Yüce Karapazar), который в свою очередь основан на Office-Word-MCP-Server (GongRzhe). Лицензия — MIT, см. LICENSE.
Возможности
Документы
Инструмент | Назначение |
| Открыть документ из вложения, HTTPS-ссылки или по имени файла из базы LobeChat |
| Сохранить результат в хранилище, вернуть ссылку и контрольную сумму sha256 |
| Откат к последнему снимку |
| Структурное чтение: секции, поля, заголовки, абзацы с индексами, таблицы, колонтитулы, изображения |
| Чтение PDF, DOCX, XLSX, PPTX, EPUB, HTML и изображений в Markdown |
| Новый документ с метаданными |
| Копия документа |
| Список документов в каталоге |
| Свойства и статистика документа |
| Полный текст документа |
| Структура документа (заголовки) |
| Объединение нескольких документов |
| Конвертация в PDF |
Генерация
Инструмент | Назначение |
| Сборка документа из pandoc-markdown: таблицы, формулы, оглавление, нумерация заголовков, добавление разделов через |
| Пустой документ с базовым оформлением (шрифт, поля, номер страницы в колонтитуле) |
| Заполнение шаблона docxtpl (переменные, циклы, условия) из JSON |
| Блок (заголовки, абзацы, формулы) в конец документа одним вызовом |
| Заголовок уровня 1–9 |
| Абзац |
| Таблица из данных |
| Изображение с масштабированием |
| Разрыв страницы |
| Маркированный или нумерованный список |
| Строка или абзац до/после указанного текста |
| Заголовок до/после указанного текста |
Формулы
Инструмент | Назначение |
| Нативные формулы Word (OMML) в LaTeX-нотации: список, вставка (в тело документа или в ячейку таблицы), замена, удаление, очистка ячейки |
| Сквозная нумерация формул «(N)» обычным текстом (без полей SEQ, F9 не требуется) |
Display-формулы оформляются таблицами-врезками 1×2 без границ: формула по центру, номер справа.
Текст и правки
Инструмент | Назначение |
| Поиск и замена по всему документу |
| Форматирование фрагмента текста (шрифт, начертание, цвет) |
| Удаление абзаца по индексу |
| Правки в режиме исправлений |
| Список исправлений |
| Принятие и отклонение исправлений |
| Замена блока абзацев под заголовком |
| Замена блока между ручными якорями |
| Текст с маркерной подсветкой |
| Поиск с учётом регистра и целых слов |
| Текст абзаца по индексу |
| Пользовательский стиль |
Таблицы
Инструмент | Назначение |
| Замена таблицы целиком новой из markdown-разметки |
| Границы и стиль таблицы |
| Заливка ячейки |
| Чередование цветов строк |
| Выделение строки заголовка |
| Горизонтальное и вертикальное выравнивание |
| Форматирование текста ячейки |
| Внутренние отступы ячейки |
| Объединение ячеек |
| Ширина колонок |
| Ширина таблицы и автоподбор |
Оформление
Инструмент | Назначение |
| Колонтитулы |
| Номера страниц |
| Оглавление |
| Закладка |
| Подписи таблиц и рисунков с автонумерацией |
| Перекрёстные ссылки (поля REF/PAGEREF) |
| DOCPROPERTY-поля |
| Выделение текста цветом (поиск и перекраска) |
| Смена шрифта по документу |
| Параметры страницы и разрывы разделов |
| Водяной знак |
| Сноски и концевые сноски |
| Комментарии |
| Гиперссылки |
Защита
Инструмент | Назначение |
| Парольная защита документа |
| Ограничение редактирования отдельными разделами |
| Цифровая подпись |
| Проверка защиты и подписи |
Режим live-редактирования (Windows)
Инструменты word_live_* управляют открытым документом в Microsoft
Word через COM-интерфейс: вставка и форматирование текста, таблицы,
закладки, перекрёстные ссылки, ревизии, снимки и откат. Работают
только в среде Windows с установленным Microsoft Word; в Linux
недоступны.
Related MCP server: MCP-OPENAPI-DOCX
Примеры
Сборка документа из markdown
docx_build принимает текст в диалекте pandoc: таблицы,
формулы $...$ (в строке) и $$...$$ (отдельной строкой),
разрыв страницы \newpage.
# Отчет
## Исходные данные
| Показатель | Значение |
|---|---|
| Объем выборки | 120 |
| Период наблюдения | январь-март |
## Расчет
Среднее значение:
$$\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i$${"ok": true, "filename": "/tmp/doc-editor/report.docx",
"info": {"paragraphs": 12, "tables": 2, "formulas": 1, "sections": 1}}Параметры toc=true (оглавление) и number_sections=true
(нумерация заголовков) включаются при необходимости. Display-формулы
автоматически оформляются врезками: формула по центру, номер справа.
Добавление раздела с формулами
docx_append_block добавляет заголовки, абзацы и формулы в конец
документа одним вызовом:
[
{"type": "heading", "level": 2, "text": "Анализ данных"},
{"type": "p", "text": "Среднее значение по выборке:"},
{"type": "formula", "latex": "\\bar{x} = \\frac{1}{n} \\sum_{i=1}^{n} x_i", "display": true},
{"type": "p", "text": "Результат округляется до двух знаков после запятой."}
]{"ok": true, "paragraphs_added": 3, "formulas_added": 1}После изменения состава формул выполняется docx_number_formulas():
номера «(N)» проставляются обычным текстом в правой ячейке врезки.
Правка существующего документа
docx_open(file_XXXX)— открыть вложение чата, HTTPS-ссылку или файл по имени из базы LobeChat;docx_read(scope="structure")— получить карту документа (секции, заголовки, таблицы, поля);search_and_replace("старый текст", "новый текст")— внести правку;docx_commit()— сохранить результат; в ответе возвращается публичная ссылка и контрольная сумма:
{"ok": true, "url": "https://<host>/<bucket>/doc-editor/<uuid>-report.docx",
"file": "report.docx", "sha256": "<sha256>", "size": 12720}Режим исправлений
Для согласования изменений используются инструменты track_replace,
track_insert, track_delete. Завершение цикла правок:
{"success": true, "accepted": 20}accept_tracked_changes() принимает все исправления,
reject_tracked_changes() отклоняет их, list_tracked_changes()
возвращает перечень с авторами и датами.
Архитектура
MCP-клиент обращается к серверу по Streamable HTTP (порт 9113, FastMCP
в stateless-режиме). Обработка выполняется в рабочем каталоге
/tmp/doc-editor.
Источник файла: S3-совместимое хранилище (rustfs, ключ из таблицы
filesбазы LobeChat) или HTTPS-ссылка.Сохранение результата (
docx_commit): загрузка в rustfs (bucketlobe) по ключуdoc-editor/<uuid>-<имя>, публичная ссылка имеет видhttps://<PUBLIC_BASE_URL>/lobe/doc-editor/<uuid>-<имя>.
Сервер не хранит состояние между вызовами: открытый файл задаётся
путем в аргументах инструментов либо запоминается для текущей сессии.
Снимки для docx_undo хранятся в /tmp/doc-editor/snapshots.
Требования
Python 3.12;
pandoc (конвертация LaTeX в OMML и markdown в docx);
anymd (чтение PDF/XLSX/PPTX/HTML в Markdown);
PostgreSQL с таблицей
filesLobeChat (поиск файлов по id/имени);S3-совместимое хранилище (rustfs).
Переменные окружения
Переменная | Назначение |
| Транспорт: |
| Адрес и путь сервера (по умолчанию |
| Автор изменений (track changes, комментарии) |
| База данных LobeChat |
| Хранилище файлов |
| Доступ к хранилищу |
| База публичных ссылок (адрес, с которого доступно хранилище) |
| Префикс ключей при сохранении (по умолчанию |
| Рабочий каталог (по умолчанию |
| Эталон стилей pandoc для |
Запуск
Сборка образа:
docker build -t docx-mcp .Запуск контейнера:
docker run --name docx-mcp --restart unless-stopped \
-p 127.0.0.1:9113:9113 \
-e MCP_TRANSPORT=streamable-http \
-e MCP_HOST=0.0.0.0 -e MCP_PORT=9113 -e MCP_PATH=/sse \
-e PGHOST=<host> -e PGDATABASE=lobechat -e PGUSER=<user> \
-e PGPASSWORD=<password> \
-e RUSTFS_HOST=<host> -e RUSTFS_BUCKET=<bucket> \
-e RUSTFS_ACCESS_KEY=<key> -e RUSTFS_SECRET_KEY=<secret> \
docx-mcp:latestПример systemd-юнита — в файле doc-editor.service.
Подключение к MCP-клиенту
{
"mcpServers": {
"docx-mcp": {
"url": "http://127.0.0.1:9113/sse"
}
}
}Лицензия
MIT. Код основан на проектах word-mcp-live и Office-Word-MCP-Server (MIT); их авторство сохранено в LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Composable APIs for document extraction, image transformation, and document & sheet generation.
Create, review and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Automate production-ready PDF, Word, Excel and PowerPoint documents from templates and JSON data
Markdown in, any format out. PDFs merged, split, watermarked. Runs on our own doc engines.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables creation, editing, and management of Word documents through JSON schema with support for rich content including text formatting, tables, images, code blocks, and lists. Provides comprehensive DOCX operations including opening existing documents, modifying content, and saving files to disk.1211 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnterprise-grade document editing and management server that enables AI-powered operations on Microsoft Word DOCX files, including creating, editing, formatting, and exporting documents through both MCP protocol and RESTful API.3MIT
- AlicenseAqualityAmaintenanceMCP server for Office documents — create, edit, fill templates, convert, and extract Word/Excel/PowerPoint. LaTeX-style markup, math formulas, PDF export, template loops, and document diff. stdio / SSE / Streamable HTTP with auth and rate limiting.1248 PyPIApache 2.0
- AlicenseAqualityAmaintenanceEnables full-featured editing of Word .docx files through natural language, including merge-aware table operations, bulk cell edits, footnotes/endnotes, TOC management, tracked changes, and document comparison.29250 PyPI9AGPL 3.0