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.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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 |
| Ссылка для загрузки любого локального файла (XLSX, PDF, DWG, PNG, ZIP…) в хранилище: presigned PUT, публичный URL и готовая команда |
| Откат к последнему снимку |
| Структурное чтение: секции, поля, заголовки, абзацы с индексами, таблицы, колонтитулы, изображения |
| Чтение 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: TianshangScribe
Примеры
Сборка документа из 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.
Related MCP Connectors
Convert, create and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Online office suite for AI agents: edit docs, sheets, slides and PDFs in browser or via MCP.
1Convert DOCX documents to and from PDF, TXT, HTML, ODT, JPG and RTF.
Composable APIs for document extraction, image transformation, and document & sheet generation.
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.1222 npm1MIT
- AlicenseAqualityBmaintenanceMCP 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.1231 PyPIApache 2.0
- AlicenseAqualityBmaintenanceEnables 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.1016AGPL 3.0
- AlicenseBqualityBmaintenanceEnables AI clients to create, inspect, edit, analyze, review, and finalize Word, Excel, and PowerPoint files, with optional native Windows Office automation for full-fidelity editing, calculation, rendering, PDF export, and visual review.34132 npm1MIT