PullMD — страницы и файлы в Markdown для агента

PullMD

Свой сервис на Docker превращает ссылки, документы, YouTube и ветки Reddit в чистый Markdown. К агенту подключается как MCP, скилл Claude Code или API

  • 492 ★ репозитория
  • Последний коммит
  • AGPL-3.0
MCP-сервер

Расширенный доступ

Почему такой уровень

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

aeternalabshq/pullmd

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/pullmd

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

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

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

PullMD принимает адрес страницы или файл и возвращает Markdown без навигации, баннеров и скриптов. Источник и метаданные лежат в YAML-шапке, а не в тексте. Для веб-страниц сервис пробует цепочку: готовый Markdown от Cloudflare, затем Readability с Trafilatura, затем `headless` Chromium для страниц на JavaScript. Сервис умеет разбирать ветки Reddit и Hacker News вместе с деревом комментариев, PDF, Word, PowerPoint, Excel и EPUB, а также расшифровку YouTube с кликабельными таймкодами без ключа API. Картинки и аудио обрабатывает любая OpenAI-совместимая или локальная модель. В запросе параметр `query` возвращает только разделы, подходящие под вопрос, и сокращает вывод на 70–95 процентов токенов. К агенту сервис подключается тремя путями. Удаленный MCP-сервер по адресу `/mcp` дает инструменты read_url, get_share и list_recent. Скилл Claude Code ставят из архива pullmd.zip, а универсальный промпт годится для любого чата. Работает все это на вашем сервере через docker `compose`.

Для кого. Для разработчиков и команд, которые держат свой сервер и хотят, чтобы агенты читали сайты, документы и видео дешевле по токенам, чем сырой HTML.

Подходит, если

  • Встроенный инструмент выборки не справляется с PDF, сайтами на JavaScript или ветками Reddit, где бот-проверка блокирует обычный запрос
  • Агенту нужен ответ из длинной статьи, а целиком она не помещается в контекст: параметр `query` вернет только подходящие разделы
  • Нужна расшифровка YouTube с таймкодами, которая попадает в заметки или отчет
  • Нужна постоянная ссылка /s/<id> на разобранную страницу: сервис обновит копию старше часа и отдаст последний удачный снимок, если источник пропал
  • Вы подключаете агента из Claude Desktop или с claude.ai: для них в PullMD есть OAuth 2.1

Не подходит, если

  • У вас нет сервера или нельзя запускать Docker: сервис ставится только на собственную машину
  • Нужно обходить закрытый доступ или платные стены: PullMD читает общедоступные страницы и документы
  • Мало места на диске: дополнительный контейнер Playwright добавляет около 3,7 ГБ к кэшу образов, хотя его можно не подключать
  • Подойдет облачный сервис без обслуживания: PullMD нужно развернуть, обновлять и защищать самостоятельно

Пример запроса к агенту

Прочитай эту статью через PullMD и ответь только на вопрос о лимитах запросов, не загружая страницу целиком

MCP

Транспорт
http
Авторизация
ключ необязателен

Переменные окружения

PUBLIC_URL
Публичный адрес сервиса, по умолчанию http://localhost:3000
OAUTH_JWT_SECRET секрет
Секрет для OAuth 2.1, нужен для Claude Desktop и claude.ai
PULLMD_TRUST_PROXY
Включает доверие к обратному прокси
PLAYWRIGHT_URL
Адрес побочного контейнера Playwright для страниц на JavaScript

Ограничения

  • Сервис нужно развернуть и обновлять самостоятельно. Лицензия AGPL-3.0.
  • Все побочные контейнеры (Trafilatura, Playwright, MarkItDown) необязательны, без них качество разбора страниц и документов снижается, о чем сервис сообщает в метаданных.
  • Claude Desktop не принимает заголовок Bearer в форме подключения, поэтому для него нужен включенный OAuth через `OAUTH_JWT_SECRET` или прокси с токеном в пути адреса.
  • За обратным прокси с версии 3.13 нужна переменная `PULLMD_TRUST_PROXY`.
  • Ответ YouTube может прийти со статусом `blocked` или `error`. Это временные состояния, в кэш они не попадают.

Как отключить. Выполните claude mcp `remove` `pullmd` и удалите папку ~/.claude/skills/pullmd, если ставили скилл. Сам сервис останавливает команда docker `compose` `down` в папке с docker-compose.yml, данные лежат в каталоге ./data.

Частые вопросы

Как поставить PullMD в Claude Code?

Сначала запустите сервис: скачайте docker-compose.yml и выполните docker `compose` up -d. Затем подключите MCP командой claude mcp `add` --transport http `pullmd` https://ваш-адрес/mcp. Вместо MCP можно скачать pullmd.zip с вашего сервиса и распаковать в ~/.claude/skills/.

Какие инструменты дает MCP-сервер PullMD?

Три: read_url читает адрес, get_share открывает постоянную ссылку, list_recent показывает недавние преобразования. При включенной авторизации list_recent выводит только ваши.

Сколько токенов экономит PullMD?

Автор измерил на трех страницах с токенизатором cl100k_base: статья энциклопедии 99 458 токенов у curl против 12 549 у PullMD, страница документации 48 611 против 6 591. С параметром `query` выходит 662 и 454 токена.

Читает ли PullMD Reddit, если обычный запрос блокируется?

Да. Ветки Reddit распознаются автоматически, включая короткие ссылки redd.it. В измерении автора обычный curl получил бот-проверку, а PullMD вернул ветку с комментариями на 6 381 токен.

Какую лицензию имеет PullMD и где хранятся данные?

AGPL-3.0. Кэш и история лежат в каталоге ./data, который docker-compose подключает как том.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер, который открывает страницы в безголовом Chromium через Playwright и отдает агенту основной текст в Markdown даже с сайтов на JavaScript

MCP-серверРасширенный доступ1,1 тыс.Звезды репозитория

Скилл читает ссылку и отдает агенту полный текст в Markdown: выбирает отдельный путь для страниц WeChat, документов Feishu, PDF и статей arXiv

СкиллРасширенный доступ509Звезды репозитория
Официальный

Сервер на Rust превращает страницы в Markdown или JSON: поиск, скрейпинг, карта сайта, обход и PDF через MCP, CLI и API, совместимый с Firecrawl

MCP-серверРасширенный доступ1,2 тыс.Звезды репозитория
Официальный

Краулер с открытым кодом превращает сайты в чистый Markdown для ИИ-агентов: ставится из PyPI, запускается в Docker и подключается к Claude Code по MCP

MCP-серверРасширенный доступ86,1 тыс.Звезды репозитория

Веб-поиск через DuckDuckGo и чтение страниц для агента без API-ключей, с ограничением частоты запросов

MCP-серверРасширенный доступ1,6 тыс.Звезды репозитория

MCP сервер для Reddit: агент читает горячие треды сабреддита и разбирает посты вместе с комментариями

MCP-серверРасширенный доступ433Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
PullMD — страницы и файлы в Markdown для агента (эта запись)нетключ необязателен492
MarkItDownдане нужна191 832утилита Microsoft для конвертации файлов в Markdown, без цепочки веб-запросов и сервера с кэшем
Jina AI MCPдаключ необязателен893облачный сервис Jina, а PullMD работает на вашем сервере
webclawнетне нужна2 388локальный инструмент на Rust для извлечения данных со страниц и обхода сайтов

Коротко о README

Раздел «Зачем» объясняет задачу: сырой HTML тратит контекст на навигацию, баннеры и скрипты, а встроенные инструменты выборки спотыкаются о JavaScript, PDF и обсуждения. Дальше идут таблица экономии токенов, перечень форматов, быстрый старт с docker `compose` и описание трех путей подключения агентов. Отдельно разобраны режимы авторизации, совместимость клиентов MCP, OAuth для claude.ai и Claude Desktop и настройка за обратным прокси. В конце лежат справочники по API и параметрам.

Бейдж для README

Сообщить о проблеме

Foxx AIPullMD — страницы и файлы в Markdown для агента
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.