MCP сервер для конвертации файлов в Markdown с использованием библиотеки MarkItDown от Microsoft.
- 🔄 Конвертация файлов различных форматов в Markdown
- 📁 Большие файлы — результат сохраняется на диск, не загружается в контекст LLM
- 🌍 Поддержка кириллицы в документах и именах файлов
- 💻 Кроссплатформенность — Windows и Linux
- 🔧 Интеграция с RooCode через Model Context Protocol
| Категория | Форматы |
|---|---|
| Документы | PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS |
| Веб | HTML, HTM, XML, URL |
| Данные | CSV, JSON |
| Текст | MD, RST, TXT |
| Изображения (OCR) | PNG, JPG, JPEG, GIF, BMP, TIFF, WEBP |
| Аудио (транскрипция) | MP3, WAV, M4A, OGG, FLAC |
| Архивы | ZIP |
| Электронные книги | EPUB |
⚠️ Для OCR изображений требуется установка Tesseract. Для транскрипции аудио требуется поддержка в системе.
# Установка через pip
pip install flexberry-markitdown-mcp
# Установка с зависимостями для разработки
pip install flexberry-markitdown-mcp[dev]# Клонируйте репозиторий
git clone https://github.com/Flexberry/flexberry-markitdown-mcp.git
cd flexberry-markitdown-mcp
# Создайте виртуальное окружение (опционально, но рекомендуется)
python -m venv .venv
# Активируйте виртуальное окружение
# Linux/macOS:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# Установите зависимости
pip install -e .chmod +x install.sh
./install.shinstall.batДобавьте в настройки RooCode (файл mcp_settings.json или через интерфейс):
{
"mcpServers": {
"flexberry-markitdown": {
"command": "python",
"args": ["-m", "flexberry_markitdown_mcp.server"]
}
}
}Или с виртуальным окружением:
{
"mcpServers": {
"flexberry-markitdown": {
"command": "C:\\path\\to\\flexberry-markitdown-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "flexberry_markitdown_mcp.server"],
"cwd": "C:\\path\\to\\flexberry-markitdown-mcp"
}
}
}{
"mcpServers": {
"flexberry-markitdown": {
"command": "python3",
"args": ["-m", "flexberry_markitdown_mcp.server"]
}
}
}Или с виртуальным окружением:
{
"mcpServers": {
"flexberry-markitdown": {
"command": "/home/user/flexberry-markitdown-mcp/.venv/bin/python",
"args": ["-m", "flexberry_markitdown_mcp.server"],
"cwd": "/home/user/flexberry-markitdown-mcp"
}
}
}Если используется uv:
{
"mcpServers": {
"flexberry-markitdown": {
"command": "uv",
"args": [
"--directory",
"/path/to/flexberry-markitdown-mcp",
"run",
"flexberry-markitdown-mcp"
]
}
}
}Конвертирует файл в Markdown и сохраняет результат рядом с исходным файлом.
Параметры:
file_path(обязательный) — путь к файлу для конвертацииoutput_path(опциональный) — пользовательский путь для сохранения результатаoverwrite(опциональный, по умолчаниюfalse) — перезаписать существующий файл
Пример использования в RooCode:
Convert file /home/user/documents/report.pdf to Markdown
Возвращает список поддерживаемых форматов файлов.
Проверяет существование файла и возвращает информацию о нем.
Convert file C:\Documents\Report 2024.pdf to Markdown
Результат будет сохранен в C:\Documents\Report 2024.md
Convert file /home/user/report.docx with overwrite existing
Convert presentation.pptx and save result to /tmp/output.md
Сервер разработан для работы с файлами любого размера:
- Файл конвертируется через MarkItDown
- Результат сохраняется на диск рядом с исходным файлом
- В контекст LLM возвращается только информация о пути и размере
Это позволяет работать с файлами, которые в 100 раз превышают лимит контекста LLM.
Журналы сервера сохраняются в:
- Linux:
~/.flexberry-markitdown-mcp/server.log - Windows:
C:\Users\<user>\.flexberry-markitdown-mcp\server.log
pip install flexberry-markitdown-mcppip install flexberry-markitdown-mcpУбедитесь, что в терминале используется кодировка UTF-8. Сервер автоматически устанавливает UTF-8 для stdin/stdout/stderr.
Установите Tesseract:
- Windows: загрузите с https://github.com/UB-Mannheim/tesseract/wiki
- Linux:
sudo apt install tesseract-ocr(Ubuntu/Debian)
Для русского языка установите языковой пакет:
- Windows: выберите русский язык во время установки
- Linux:
sudo apt install tesseract-ocr-rus
MarkItDown использует Azure Speech Services для транскрипции. Убедитесь, что переменные среды настроены.
pip install -e ".[dev]"
pytestflexberry-markitdown-mcp/
├── src/
│ └── flexberry_markitdown_mcp/
│ ├── __init__.py
│ └── server.py
├── pyproject.toml
├── README.md
├── install.sh
├── install.bat
├── uninstall.sh
├── uninstall.bat
└── roocode-config-examples.json
MIT License
Разработано командой Flexberry.