Skip to main content
Glama
ManiaSacha
by ManiaSacha

web-mcp

ci PyPI Python License: MIT

Семантический поиск по RSS/Atom-лентам для ИИ-агентов — одностраничный MCP сервер. Без API-ключей, без облака — только те ленты, которые вы выберете.

Укажите несколько RSS/Atom-лент и дайте агенту инструменты для поиска по смыслу (TF-IDF + буст по свежести), просмотра трендов, генерации дайджеста и мониторинга здоровья лент — всё работает локально с лентами, которыми вы управляете.

web-mcp demo

Возможности

  • Добавление/удаление/список лент — RSS 2.0 и Atom

  • Ранжированный поиск — косинусная близость TF-IDF с бустом по свежести, чистая стандартная библиотека (без эмбеддингов, без сетевых вызовов, кроме загрузки самих лент)

  • Трендовые темы — самые частые термины среди недавних статей

  • Здоровье источников — отмечает ленты, которые ошибаются, молчат или устарели

  • Дайджесты в Markdown — сводка недавних статей, сгруппированных по лентам

  • Фоновое обновление — ленты обновляются автоматически по таймеру

Установка

Требуется Python 3.10+.

О названии пакета: проект называется web-mcp, но дистрибутив на PyPI — feed-mcp — PyPI отклоняет web-mcp как слишком похожий на существующий несвязанный пакет webmcp. Поэтому вы делаете pip install feed-mcp, и он устанавливает обе команды: web-mcp и feed-mcp; это одна и та же программа, используйте любую.

Вариант A — плагин Claude Code (рекомендуется)

Устанавливает MCP-сервер и встроенные навыки и агентов одним шагом:

pip install feed-mcp

Затем внутри Claude Code:

/plugin marketplace add ManiaSacha/web-mcp
/plugin install web-mcp@maniasacha-web-mcp

Плагин автоматически регистрирует MCP-сервер web и запрашивает начальный список лент. Если в сводке установки сказано Run /reload-plugins to activate., выполните это.

Шаг pip install обязателен: MCP-сервер плагина вызывает команду web-mcp, которую pip помещает в PATH.

Вариант B — только MCP-сервер

pip install feed-mcp
claude mcp add web -- web-mcp --feeds https://hnrss.org/frontpage

Для Claude Desktop добавьте это в claude_desktop_config.json:

{
  "mcpServers": {
    "web": {
      "command": "web-mcp",
      "args": ["--feeds", "https://hnrss.org/frontpage,https://github.blog/feed/"]
    }
  }
}

Вариант C — из исходников

git clone https://github.com/ManiaSacha/web-mcp.git
cd web-mcp
./install.sh          # Windows: .\install.ps1

Скрипты установки проверяют версию Python, устанавливают пакет и выводят точную следующую команду для вашей конфигурации.

Быстрый старт

Запустите сервер напрямую, чтобы проверить, что он работает:

web-mcp --feeds https://hnrss.org/frontpage,https://github.blog/feed/

Он говорит по MCP через stdio, поэтому будет молча ждать клиента — это нормальное поведение, а не зависание. Нажмите Ctrl+C для выхода.

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

  • «Что сегодня в тренде в моих лентах?»

  • «Найди в моих лентах что-нибудь о производительности Postgres.»

  • «Дай дайджест за последние 24 часа.»

  • «Есть ли сломанные ленты?»

Что входит

Компонент

Имя

Назначение

MCP-сервер

web

9 инструментов ниже

Навык

feed-curation

Добавление, аудит и очистка лент

Навык

feed-digest

Превращение сырых результатов инструментов в синтезированную сводку

Агент

pm

Согласование функций с философией одного файла

Агент

security-reviewer

Аудит поверхности SSRF/загрузки

Агент

git-pipeline

Ветвление, коммиты и передача на ревью

Инструменты

Инструмент

Описание

add_feed(url)

Добавить RSS/Atom-ленту и индексировать её текущие статьи

remove_feed(url)

Удалить ленту и её проиндексированные статьи

list_feeds()

Список настроенных лент с количеством статей

search(query, limit=10, max_days=30)

Ранжированный поиск с бустом по свежести

recent(limit=20)

Последние статьи из всех лент

trending(hours=24, limit=10)

Трендовые термины за последние N часов

digest(hours=24, limit=8)

Дайджест в Markdown, сгруппированный по лентам

source_health()

Какие ленты здоровы, опаздывают или ошибаются

refresh()

Принудительно обновить все ленты немедленно

Замечания по безопасности

add_feed(url) заставляет сервер загружать URL, который мог попасть к агенту с веб-страницы, а не от вас, поэтому этот путь считается недоверенным:

  • Разрешённые схемы — только http:// и https://. file://, ftp://, gopher:// и data: отклоняются.

  • Только публичные адреса — URL отклоняется, если каждый адрес, на который он резолвится, не является публично маршрутизируемым. Loopback, частные, link-local (включая endpoint облачных метаданных 169.254.169.254), multicast и зарезервированные адреса блокируются, как и их IPv4-mapped IPv6 формы.

  • Привязка IP при подключении — проверенный адрес — это тот, к которому фактически выполняется подключение, поэтому DNS не может ответить по-разному между проверкой и соединением (rebinding). TLS по-прежнему проверяет сертификаты по имени хоста.

  • Проверка редиректов на каждом шаге — редиректы обрабатываются вручную и повторно проверяются на каждом шаге, поэтому публичный URL не может перенаправить загрузку на внутренний хост. Максимум 5 переходов.

  • Ограничения ресурсов — 5 МБ на тело ленты, явный таймаут сокета и ограничение на limit каждого инструмента.

Чего это не делает: у него нет аутентификации (он предназначен для локального запуска через stdio — не выставляйте его в сеть), и он не проверяет содержимое лент. Проиндексированный текст статей пишется тем, кто контролирует ленту, поэтому относитесь к нему как к данным, а не как к инструкциям.

Полные детали, включая оставшиеся ограничения, в docs/SECURITY-MODEL.md. Чтобы сообщить об уязвимости, см. SECURITY.md.

Разработка

pip install -e ".[dev]"
pytest              # 53 tests, no network access
ruff check .        # lint
python scripts/validate_plugin.py   # manifests, frontmatter, version sync

CI запускает все три на Python 3.10–3.13 (Linux, плюс macOS и Windows на 3.12), а также дополнительно устанавливает собранное колесо, чтобы убедиться, что консольные скрипты работают.

См. CONTRIBUTING.md для рабочего процесса и CHANGELOG.md для истории релизов.

Лицензия

MIT

-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
3Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

View all MCP Connectors

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/ManiaSacha/web-mcp'

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