MCP-сервер для конвертации форматов документов через Pandoc. AI-агент может конвертировать Markdown, HTML, PDF, DOCX, CSV, RST, LaTeX и другие форматы прямо в разговоре — без ручного запуска команд.
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "mcp-pandoc": { "command": "uvx", "args": ["mcp-pandoc"] } } }
# Claude Code (CLI):
claude mcp add mcp-pandoc -- uvx mcp-pandoc
# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "mcp-pandoc": { "type": "local", "command": ["uvx", "mcp-pandoc"] } } }
Официально включён в проект открытого ПО Model Context Protocol servers. 🎉
Сервер протокола Context Model для преобразования форматов документов с использованием pandoc. Этот сервер предоставляет инструменты для преобразования содержимого между различными форматами документов с сохранением форматирования и структуры.
Обратите внимание, что mcp-pandoc находится на ранней стадии разработки. Поддержка PDF находится в процессе разработки, функциональность и доступные инструменты могут изменяться и расширяться по мере продолжения улучшения сервера.
Благодарности: Этот проект использует Pandoc Python package для преобразования документов, что составляет основу данного проекта.
Новичок в mcp-pandoc? Ознакомьтесь с 📖 ШПАРГАЛКОЙ.md для получения:
Идеально для быстрого поиска и скорого начала работы!
Скриншоты
Скоро будет больше...
convert-contentscontents (string): Исходное содержимое для преобразования (обязательно, если не предоставлен input_file)input_file (string): Полный путь к входному файлу (обязательно, если не предоставлен contents)input_format (string): Исходный формат содержимого (по умолчанию markdown)output_format (string): Целевой формат (по умолчанию markdown)output_file (string): Полный путь для выходного файла (обязателен для форматов pdf, docx, rst, latex, epub)reference_doc (string): Путь к эталонному документу для стилизации (поддерживается для выходного формата docx)defaults_file (string): Путь к файлу defaults для Pandoc (YAML), содержащему параметры преобразованияfilters (array): Список путей к фильтрам Pandoc для применения во время преобразованияИспользуйте файлы defaults для создания многоразовых шаблонов преобразования с единообразным форматированием:
# academic-paper.yaml
from: markdown
to: pdf
number-sections: true
toc: true
metadata:
title: "Academic Paper"
author: "Research Team"
Пример использования: "Преобразовать paper.md в PDF, используя defaults academic-paper.yaml, и сохранить как paper.pdf"
Применяйте пользовательские фильтры для расширенной обработки:
Пример использования: "Преобразовать docs.md в HTML с фильтрами ['/path/to/mermaid-filter.py'] и сохранить как docs.html"
💡 Для получения всеобъемлющих примеров и рабочих процессов см. ШПАРГАЛКУ.md
| Из\В | MD | HTML | TXT | DOCX | RST | LaTeX | EPUB | IPYNB | ODT | |
|---|---|---|---|---|---|---|---|---|---|---|
| Markdown | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| HTML | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| TXT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| DOCX | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RST | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| LaTeX | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| EPUB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| IPYNB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ODT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Этот инструмент использует pandoc для преобразований, что позволяет генерировать PDF-файлы из перечисленных выше форматов. Однако преобразование из PDF в другие форматы не поддерживается. Поэтому PDF следует рассматривать как формат только для вывода.
| Категория | Форматы | Требования |
|---|---|---|
| Базовые | MD, HTML, TXT, IPYNB, ODT | Нет |
| Расширенные | DOCX, PDF, RST, LaTeX, EPUB | Необходимо указать путь к output_file |
| Стилизованные | DOCX с эталонным документом | Поддержка пользовательских шаблонов ⭐ |
Примечание: Для расширенных форматов:
brew install texlive)ПРИМЕЧАНИЕ: Убедитесь, что вы выполнили установку необходимых пакетов, упомянутых ниже в разделе "Критические требования".
Для использования опубликованной версии
{
"mcpServers": {
"mcp-pandoc": {
"command": "uvx",
"args": ["mcp-pandoc"]
}
}
}
💡 Быстрый старт: См. ШПАРГАЛКУ.md для примеров копирования и вставки и типовых рабочих процессов.
Установка Pandoc
Требуется: Установите pandoc — основной движок конвертации документов
```bash # macOS brew install pandoc
# Ubuntu/Debian sudo apt-get install pandoc
# Windows # Загрузите установщик с: https://pandoc.org/installing.html ```
Проверка: pandoc --version
Установка пакета UV
Требуется: Установите пакет uv (включает команду uvx)
```bash # macOS brew install uv
# Windows/Linux pip install uv ```
Проверка: uvx --version
Предпосылки для конвертации в PDF: Требуются только если вам нужно конвертировать и сохранять pdf
TeX Live должен быть установлен до попытки конвертации в PDF
```bash # Ubuntu/Debian sudo apt-get install texlive-xetex
# macOS brew install texlive
# Windows # Установите MiKTeX или TeX Live с: # https://miktex.org/ или https://tug.org/texlive/ ```
Требования к путям файлов
При сохранении или конвертации файлов вы ОБЯЗАНЫ указывать полные пути файлов, включая имя файла и расширение
✅ Правильное использование:
# Конвертация содержимого в PDF
"Convert this text to PDF and save as /path/to/document.pdf"
# Конвертация между форматами файлов
"Convert /path/to/input.md to PDF and save as /path/to/output.pdf"
# Конвертация в DOCX с использованием шаблона эталонного документа
"Convert input.md to DOCX using template.docx as reference and save as output.docx"
# Пошаговый процесс работы с эталонным документом
"First create a reference document: pandoc -o custom-reference.docx --print-default-data-file reference.docx" or if you already have one, use that
"Then convert with custom styling: Convert this text to DOCX using /path/to/custom-reference.docx as reference and save as /path/to/styled-output.docx"
❌ Неправильное использование:
# Отсутствует имя файла и расширение
"Save this as PDF in /documents/"
# Отсутствует полный путь
"Convert this to PDF"
# Отсутствует расширение
"Save as /documents/story"
Конвертация в PDF не удается
Ошибка: "xelatex not found"
Решение: Сначала установите TeX Live (см. команды установки выше)
Конвертация файла не удается
Ошибка: "Invalid file path"
Пример: /path/to/document.pdf вместо просто /path/to/
Конвертация формата не удается
Ошибка: "Unsupported format"
Решение: Используйте только поддерживаемые форматы:
Проблемы с эталонным документом
pandoc -o reference.docx --print-default-data-file reference.docxopen ~/Library/Application\ Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.jsonа) Только для локальной разработки и вклада в этот репозиторий
Конфигуляция для разработки/неопубликованных серверов
ℹ️ Замените на путь к вашему локально склонированному проекту
"mcpServers": {
"mcp-pandoc": {
"command": "uv",
"args": [
"--directory",
"<DIRECTORY>/mcp-pandoc",
"run",
"mcp-pandoc"
]
}
}
b) Конфигуляция опубликованных серверов - Пользователям следует использовать эту конфигурацию
"mcpServers": {
"mcp-pandoc": {
"command": "uvx",
"args": [
"mcp-pandoc"
]
}
}
Примечание: Для использования локально настроенного mcp-pandoc следуйте шагу «Конфигурация для разработки/неопубликованных серверов» выше.
Для запуска комплексного набора тестов и проверки всех поддерживаемых двусторонних конвертаций используйте следующую команду:
uv run pytest tests/test_conversions.py
Это обеспечивает обратную совместимость и проверяет основную функциональность инструмента.
Для подготовки пакета к распространению:
uv sync
uv build
Это создаст исходные и wheel дистрибутивы в каталоге dist/.
uv publish
Примечание: Вам нужно будет установить учетные данные PyPI через переменные окружения или флаги команды:
--token или UV_PUBLISH_TOKEN--username/UV_PUBLISH_USERNAME и --password/UV_PUBLISH_PASSWORDПоскольку серверы MCP работают через stdiо, отладка может быть затруднительной. Для наилучшего опыта отладки мы настоятельно рекомендуем использовать MCP Inspector.
Вы можете запустить MCP Inspector через npm с помощью этой команды:
npx @modelcontextprotocol/inspector uv --directory /Users/vivekvells/Desktop/code/ai/mcp-pandoc run mcp-pandoc
При запуске Inspector отобразит URL-адрес, который вы можете открыть в браузере для начала отладки.
Мы приветствуем вклад в развитие mcp-pandoc! Вот как вы можете присоединиться: