Skip to main content
Glama

Функциональные возможности

  • Чтение и запись: возможность как чтения документов, так и генерации файлов Word / PowerPoint на основе структурированных параметров

  • Широкая поддержка форматов: поддержка TXT, CSV, Markdown, DOC, DOCX, PDF, PPT, PPTX, EPUB, XLSX, XLS

  • Структурированное создание: поддержка генерации абзацев, таблиц, титульных страниц, маркированных списков и таблиц для презентаций

  • Экспорт в старые форматы: при установленном LibreOffice возможен экспорт в .doc и .ppt

  • Протокол MCP: соответствует стандарту MCP, может использоваться как инструмент для ИИ-ассистентов (например, Trae IDE)

  • Легкость интеграции: простая настройка для немедленного использования

  • Надежность: автоматизированное тестирование охватывает чтение, генерацию, резервное преобразование и интерфейсы инструментов

  • Поддержка файловой системы: прямое чтение и запись документов из файловой системы


📚 Центр документации

Руководство пользователя · Справочник API · Руководство по внесению вклада · Журнал изменений · Лицензия


Архитектура

graph TB
    A[AI Assistant / User<br/>AI 助手 / 用户] -->|Call MCP tools<br/>调用 MCP 工具| B[MCP Document Reader<br/>MCP 文档读取器]
    B -->|Read<br/>读取| C[Document Readers<br/>文档读取器]
    B -->|Generate<br/>生成| D[Document Writers<br/>文档生成器]
    C -->|TXT / CSV / MD| E[Text-based Readers<br/>文本类读取器]
    C -->|DOC / DOCX| F[Word Readers<br/>Word 读取器]
    C -->|PPT / PPTX| G[Presentation Readers<br/>演示读取器]
    C -->|PDF / EPUB / Excel| H[Structured Readers<br/>结构化读取器]
    D -->|write_word_document| I[DOCX Builder<br/>DOCX 生成器]
    D -->|write_presentation| J[PPTX Builder<br/>PPTX 生成器]
    I -->|Optional conversion<br/>可选转换| K[LibreOffice -> DOC]
    J -->|Optional conversion<br/>可选转换| L[LibreOffice -> PPT]
    E --> M[Return text / metadata<br/>返回文本 / 元数据]
    F --> M
    G --> M
    H --> M
    K --> M
    L --> M
    M --> A
    
    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#f0f0f0
    style D fill:#e8f5e9
    style E fill:#e8f5e9
    style F fill:#e8f5e9
    style G fill:#e8f5e9
    style H fill:#fff9c4

Поддерживаемые форматы

Возможность

Формат

Расширение

Примечание

Чтение

Текст

.txt

Поддержка извлечения текста с разной кодировкой

Чтение

CSV

.csv

Нормализация в текст с разделителями-табуляциями

Чтение

Markdown

.md, .markdown

Прямое извлечение текста Markdown

Чтение

Word

.doc, .docx

.doc читается через команду / резервное чтение LibreOffice

Чтение

PDF

.pdf

Извлечение текста

Чтение

PowerPoint

.ppt, .pptx

.pptx нативный парсинг, .ppt резервное чтение

Чтение

EPUB

.epub

Извлечение глав на основе порядка spine

Чтение

Excel

.xlsx, .xls

Извлечение содержимого листов и ячеек

Генерация

Word

.docx

Нативная генерация, поддержка абзацев и таблиц

Генерация

Word

.doc

Генерация через преобразование docx -> doc в LibreOffice

Генерация

PowerPoint

.pptx

Нативная генерация, поддержка заголовков, текста, списков, таблиц

Генерация

PowerPoint

.ppt

Генерация через преобразование pptx -> ppt в LibreOffice

Установка

Использование pip (рекомендуется)

pip install mcp-documents-reader

Если требуется функция генерации PowerPoint, убедитесь, что в среде выполнения доступен python-pptx.

Если требуется экспорт в старые форматы .doc или .ppt, установите LibreOffice и убедитесь, что soffice или libreoffice добавлены в PATH.

Установка из исходного кода

git clone https://github.com/xt765/mcp_documents_reader.git
cd mcp_documents_reader
pip install -e .

Инструменты MCP

Данный сервер предоставляет следующие инструменты:

read_document

Использует унифицированный интерфейс для чтения любого поддерживаемого типа документа.

Параметры:

  • filename (string, обязательно): путь к файлу документа, поддерживаются абсолютные или относительные пути.

extract_document_images

Извлекает встроенные изображения из файлов DOCX и возвращает структурированные метаданные JSON.

Параметры:

  • filename (string, обязательно): путь к файлу DOCX.

  • output_dir (string, опционально): каталог для экспорта изображений.

write_word_document

Генерирует документ Word .docx или экспортирует .doc через преобразование LibreOffice.

Параметры:

  • filename (string, обязательно): путь вывода, расширение должно быть .docx или .doc.

  • title (string, опционально): заголовок документа.

  • paragraphs (массив string, опционально): абзацы, записываемые по порядку.

  • tables (массив object, опционально): определение таблицы, поддерживает title, headers, rows.

write_presentation

Генерирует презентацию .pptx или экспортирует .ppt через преобразование LibreOffice.

Параметры:

  • filename (string, обязательно): путь вывода, расширение должно быть .pptx или .ppt.

  • title (string, опционально): заголовок титульной страницы.

  • subtitle (string, опционально): подзаголовок титульной страницы.

  • slides (массив object, опционально): определение слайдов, поддерживает title, paragraphs, bullets, table.

Конфигурация

Использование в Trae IDE / Claude Desktop

Добавьте следующее содержимое в ваш файл конфигурации MCP:

Вариант 1: Использование PyPI (рекомендуется)

{
  "mcpServers": {
    "mcp-document-reader": {
      "command": "uvx",
      "args": [
        "mcp-documents-reader"
      ]
    }
  }
}

Вариант 2: Использование репозитория GitHub

{
  "mcpServers": {
    "mcp-document-reader": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/xt765/mcp_documents_reader",
        "mcp_documents_reader"
      ]
    }
  }
}

Вариант 3: Использование репозитория Gitee (быстрее для доступа из Китая)

{
  "mcpServers": {
    "mcp-document-reader": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://gitee.com/xt765/mcp_documents_reader",
        "mcp_documents_reader"
      ]
    }
  }
}

Использование

Как инструмент MCP

После настройки ИИ-ассистент может напрямую вызывать следующие инструменты:

# 读取 DOCX 文件
read_document(filename="example.docx")

# 读取演示文稿
read_document(filename="example.pptx")

# 生成 DOCX 报告
write_word_document(
    filename="report.docx",
    title="周报",
    paragraphs=["本周总结", "下周计划"],
    tables=[
        {
            "title": "指标表",
            "headers": ["名称", "数值"],
            "rows": [["线索", 42], ["成交", 8]],
        }
    ],
)

# 生成 PPTX 汇报
write_presentation(
    filename="briefing.pptx",
    title="季度汇报",
    subtitle="Q2",
    slides=[
        {
            "title": "亮点",
            "paragraphs": ["概述段落"],
            "bullets": ["重点 A", "重点 B"],
        }
    ],
)

Как библиотека Python

from mcp_documents_reader import DocumentReaderFactory

# 使用工厂类(推荐)
reader = DocumentReaderFactory.get_reader("document.pdf")
content = reader.read("/path/to/document.pdf")

# 检查格式是否支持
if DocumentReaderFactory.is_supported("file.xlsx"):
    reader = DocumentReaderFactory.get_reader("file.xlsx")
    content = reader.read("/path/to/file.xlsx")

Подробности интерфейса инструментов

read_document

Чтение любого поддерживаемого типа документа.

Параметр

Тип

Обязательно

Описание

filename

string

Путь к файлу документа, поддерживаются абсолютные или относительные пути

extract_document_images

Извлечение встроенных изображений из файлов DOCX.

Параметр

Тип

Обязательно

Описание

filename

string

Путь к файлу DOCX

output_dir

string

Опциональный каталог для экспорта изображений

write_word_document

Прямая генерация DOCX или экспорт DOC через преобразование LibreOffice.

Параметр

Тип

Обязательно

Описание

filename

string

Путь вывода, расширение должно быть .docx или .doc

title

string

Опциональный заголовок документа

paragraphs

string[]

Абзацы, записываемые по порядку

tables

object[]

Определение таблицы, поддерживает title, headers, rows

write_presentation

Прямая генерация PPTX или экспорт PPT через преобразование LibreOffice.

Параметр

Тип

Обязательно

Описание

filename

string

Путь вывода, расширение должно быть .pptx или .ppt

title

string

Заголовок титульной страницы

subtitle

string

Подзаголовок титульной страницы

slides

object[]

Определение слайдов, поддерживает title, paragraphs, bullets, table

Зависимости

Основные зависимости

  • mcp >= 1.26.0 - реализация протокола MCP

  • python-docx >= 1.2.0 - чтение DOCX и генерация документов Word

  • python-pptx >= 0.6.23 - генерация документов PowerPoint

  • pypdf >= 6.8.0 - чтение файлов PDF (замена PyPDF2)

  • openpyxl >= 3.1.5 - чтение файлов Excel

Опциональные зависимости времени выполнения

  • LibreOffice - обязательно для экспорта в старые форматы .doc или .ppt

  • antiword / catppt - опциональные вспомогательные команды для чтения старых форматов .doc / .ppt

Зависимости для разработки

  • pytest >= 8.0.0 - фреймворк для тестирования

  • pytest-asyncio >= 0.24.0 - поддержка асинхронного тестирования

  • pytest-cov >= 6.0.0 - отчеты о покрытии

  • basedpyright >= 0.28.0 - проверка типов

  • ruff >= 0.8.0 - линтинг и форматирование кода

Лицензия

Проект распространяется по лицензии MIT.

Данный проект является вторичной разработкой на основе отличного open-source проекта xt765/mcp_documents_reader с дальнейшими улучшениями.

В настоящее время мы добавили и расширили следующие возможности:

  • Возможность извлечения изображений из документов

  • Рабочий процесс написания и генерации документов Word и PowerPoint

  • Более полная поддержка создания документов для сценариев MCP

Большое спасибо автору оригинального репозитория за предоставленные базовые возможности и работу над open-source.

Вклад

Приветствуются Issue и Pull Request!

Связанные проекты

  • MCP Document Converter - конвертер документов MCP, поддерживающий преобразование различных форматов

  • Model Context Protocol - официальная документация протокола контекста модели

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/crispvibe/mcp-document-studio'

If you have feedback or need assistance with the MCP directory API, please join our Discord server