Skip to main content
Glama

Инструмент для извлечения облачных документов Feishu (Feishu Reader)

Это настольное приложение, написанное на Python и PyQt6, предназначенное для того, чтобы помочь пользователям быстро извлекать документы Feishu (Docx / Wiki) и преобразовывать их в формат Markdown для локального хранения.

🌟 Функциональные особенности

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

  • Извлечение в один клик: Поддержка вставки ссылок на документы/базы знаний Feishu, получение и создание файлов в формате .md одним нажатием.

  • Полная поддержка форматов: Парсинг поддерживает текст, многоуровневые заголовки, блоки кода, списки, цитаты, таблицы, диаграммы Mermaid и другие распространенные элементы документов Feishu.

  • Локализация изображений: Автоматическая загрузка изображений из документа в локальную директорию assets_<doc_token>/ с генерацией относительных путей в Markdown.

  • Права доступа и аутентификация:

    • Прямой ввод App ID и App Secret приложения Feishu в интерфейсе для получения Access Token в один клик.

    • Поддержка ручного ввода токена и опция «Запомнить» для сохранения учетных данных локально.

  • Локальное хранилище: Автоматическая генерация имен файлов с временными метками и сохранение в указанную пользователем директорию.

🔑 Настройка приложения Feishu

Этот инструмент обращается к документам через собственное приложение (self-built app) на открытой платформе Feishu. Для первого использования необходимо выполнить следующую настройку.

Шаг 1: Создание собственного приложения

  1. Откройте открытую платформу Feishu и войдите под учетной записью администратора.

  2. Перейдите в консоль разработчика → нажмите Создать приложение в правом верхнем углу → выберите Собственное приложение.

  3. Введите название приложения (например, "Инструмент извлечения документов"), описание, загрузите иконку и нажмите «Подтвердить создание».

  4. Перейдите на страницу сведений о приложении, на вкладке Учетные данные и базовая информация скопируйте:

    • App ID (например, cli_xxxxxxxxxxxxxxxx)

    • App Secret (нажмите «Просмотреть», чтобы скопировать)

Шаг 2: Предоставление необходимых прав

Перейдите на страницу сведений о приложении → Управление правами → найдите и активируйте следующие права:

Идентификатор права

Название права

Описание использования

wiki:wiki:readonly

Получение информации о базе знаний

Доступ к документам базы знаний типа /wiki/

docx:document:readonly

Просмотр новых документов

Чтение содержимого блоков документов Feishu в формате Docx

docs:document.media:download

Загрузка изображений и вложений

Загрузка изображений из документа локально

docs:document.content:read

Просмотр содержимого облачного документа

Получение содержимого документов, доступных приложению

docx:document:readonly

Просмотр новых документов

Получение содержимого новых документов

Примечание: После активации прав перейдите на вкладку Управление версиями и публикация, создайте и опубликуйте версию, чтобы права вступили в силу.

Шаг 3: Предоставление приложению доступа к документу

По умолчанию документы Feishu видны только авторизованным пользователям. Необходимо предоставить доступ к целевому документу (или базе знаний) роботу приложения:

  1. Откройте нужный документ Feishu, нажмите Поделиться в правом верхнем углу.

  2. В появившемся окне найдите название вашего приложения и установите права на Просмотр.

  3. Нажмите «Подтвердить», после чего приложение сможет получить доступ к документу.

Если это документ базы знаний (Wiki), необходимо добавить робота приложения в управление участниками базы знаний и предоставить права на просмотр.


🛠️ Установка и запуск

Системные требования

  • Python 3.10 или выше

Установка зависимостей

pip install -r requirements.txt

Запуск настольного приложения

python main.py

🔌 Режим сервера MCP

Поддерживается запуск в качестве сервера MCP для удобного вызова непосредственно в ИИ-инструментах, таких как Claude или Cursor.

Настройка переменных окружения

export FEISHU_APP_ID="cli_xxxxxxxxxxxxx"
export FEISHU_APP_SECRET="xxxxxxxxxxxxxxxx"

Запуск сервера MCP

python mcp_server.py

Настройка для Claude / Cursor

Добавьте в ~/.claude.json или в конфигурацию MCP проекта:

{
  "mcpServers": {
    "feishu-reader": {
      "command": "python",
      "args": ["mcp_server.py"],
      "env": {
        "FEISHU_APP_ID": "cli_xxxxxxxxxxxxx",
        "FEISHU_APP_SECRET": "xxxxxxxxxxxxxxxx"
      },
      "workingDirectory": "/path/to/feishu-reader-mcp"
    }
  }
}

📖 Руководство пользователя

  1. Ввод учетных данных: Введите App ID и App Secret вашего приложения Feishu в верхней части интерфейса (сохраняются автоматически после первого использования).

  2. Получение токена: Нажмите кнопку [Обновить] справа от строки Access Token для автоматического получения и заполнения токена; также можно вставить токен вручную.

  3. Вставка ссылки на документ: Вставьте ссылку на документ или страницу базы знаний Feishu в поле «URL документа» (поддерживаются ссылки типов /docx/, /doc/, /wiki/).

  4. Начало извлечения: Нажмите [Начать извлечение] и выберите директорию для сохранения Markdown-файла в появившемся окне.

  5. Ожидание завершения: В нижней области логов будет отображаться прогресс в реальном времени. После завершения вы найдете .md файл и директорию с изображениями assets_xxx/ в целевой папке.


📄 Структура проекта

Файл

Описание

main.py

Точка входа, содержит определение интерфейса PyQt6 и логику асинхронных потоков

fetcher.py

Уровень взаимодействия с Feishu OpenAPI, отвечает за получение дерева блоков и загрузку изображений

parser.py

Движок преобразования в Markdown, отображает блоки Feishu в синтаксис Markdown

mcp_server.py

Точка входа для режима сервера MCP

requirements.txt

Список зависимостей Python


💡 Примечания

  • Инструмент адаптирован для нового формата документов Feishu (на базе OpenAPI /docx/v1/documents), в старых версиях документов возможны отклонения в форматировании.

  • Для загрузки изображений приложению требуются права docs:document.media:download, а документ должен быть правильно предоставлен роботу приложения, иначе загрузка изображений будет пропущена, а причина ошибки будет указана в логах.

  • Существуют ограничения на частоту вызовов API (5 запросов в секунду / 10 000 в день), пожалуйста, не извлекайте крупные документы слишком часто.

  • Срок действия токена по умолчанию составляет около 2 часов, после истечения срока просто нажмите [Обновить] для повторного получения.

F
license - not found
-
quality - not tested
C
maintenance

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/ancienthu/feishu-reader-mcp'

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