Erodenn/fetch-guard

Erodenn/fetch-guard

от erodenn
FetchGuard - MCP-сервер и CLI для безопасного извлечения веб-контента в чистый Markdown. Защищает от prompt-инъекций, скрытых элементов, бот-блоков и paywall. Полезен при интеграции веб-данных в LL...

Fetch Guard

PyPI Downloads CI Python License: MIT

fetch-guard MCP server

An MCP server and CLI tool that fetches URLs and returns clean, LLM-ready markdown. A purpose-built extraction pipeline sanitizes HTML, pulls structured metadata, detects prompt injection attempts, and handles the edge cases that break naive fetchers: bot blocks, paywalls, login walls, non-HTML content types, and pages that require JavaScript to render.

The core problem is straightforward: LLMs need web content, but raw HTML is noisy and potentially hostile. Fetched pages can contain hidden text, invisible Unicode, off-screen elements, and outright prompt injection attempts embedded in the content itself. This pipeline strips all of that before the content reaches the model.

Three layers handle the injection defense specifically:

  1. Pre-extraction sanitization removes hidden elements (display:none, visibility:hidden, opacity:0, font-size:0, transform:scale(0), clip:rect(0,0,0,0), zero-height overflow containers, and elements with matching foreground and background colors), elements hidden via CSS class/ID rules in <style> tags, off-screen positioned content, aria-hidden elements, <noscript> and <template> tags, and 26 categories of non-printing Unicode characters including bidi isolates and Unicode Tags. This happens before content extraction, so trafilatura never sees the attack vectors.
  2. Pattern scanning runs a four-phase scan against the extracted text and metadata fields. Phase one applies 50 compiled regex patterns covering system prompt overrides, ignore-previous instructions, role injection, fake conversation tags, and hidden instruction markers, in English, Spanish, French, German, Japanese, Simplified Chinese, and Portuguese. Phase two normalizes the text via NFKC and confusable-character mapping, then rescans to catch homoglyph bypasses (Cyrillic or mathematical Unicode characters substituted for Latin, etc.). Phase three finds base64, hex-encoded, and URL percent-encoded blocks, decodes them, and scans against high-severity patterns. Phase four decodes the full document with ROT13 and scans against high-severity patterns. Metadata fields (title, description, og:title, etc.) are scanned independently with matches namespaced to their source field.
  3. Session-salted output wrapping generates a random 8-character hex salt per invocation and wraps the body in <fetch-content-{salt}> tags. Since the salt is unpredictable, injected content cannot spoof the wrapper boundaries.
Инструменты были проиндексированы:
fetch

Загружает URL и возвращает чистую разметку Markdown, готовую для LLM, с метаданными и сканированием на внедрение промптов. Аргументы: url: Загружаемый URL. timeout: Таймаут запроса в секундах. max_words: Опциональное ограничение количества слов в извлечённом содержимом. strict: Если True и обнаружена инъекция высокого риска, ответ помечается как ошибочный. js: Использовать Playwright для страниц, отрендеренных через JavaScript (требуется playwright + chromium). links: Режим извлечения ссылок — «domains» (по умолчанию) или «full» для всех URL с текстом привязки. auth_token: Bearer-токен для заголовка Authorization (например, «my-api-key»). headers: Устарел. Вместо него используйте auth_token. Пользовательские HTTP-заголовки для запроса. Возвращает: Структурированный словарь с url, body (markdown), metadata, links, risk_level, injection_matches, статистикой санитизации и информацией о граничных случаях.

Параметры
  • auth_tokenstring | null
  • headersobject | null
  • jsboolean
  • linksenum
  • max_wordsinteger | null
  • strictboolean
  • timeoutinteger
  • urlstringобязательный

Похожие MCP-сервера

jae-jae/fetcher-mcp

jae-jae/fetcher-mcp

MCP сервер для извлечения веб-контента через Playwright. Работает с динамическими сайтами, поддерживает JavaScript, умное выделение текста и пакетную загрузку. Идеален для сбора данных и разработки.

TypeScript1084
zcaceres/fetch-mcp

zcaceres/fetch-mcp

MCP сервер для загрузки веб-контента и преобразования его в HTML, Markdown, JSON, читаемый текст или транскрипты YouTube. Полезен разработчикам для извлечения статей, данных и субтитров без лишнего...

TypeScript823
just-every/mcp-read-website-fast

just-every/mcp-read-website-fast

MCP-сервер для быстрого извлечения веб-контента и преобразования в чистый Markdown. Минимизирует расход токенов, использует Mozilla Readability и кэширование. Идеален для Claude Code, IDE и AI-пайп...

TypeScript161
hyperbrowserai/mcp

hyperbrowserai/mcp

MCP сервер Hyperbrowser для скрапинга, краулинга и извлечения структурированных данных. Включает браузерные агенты OpenAI CUA и Claude. Для веб-автоматизации и сбора данных LLM.

TypeScript789
mzxrai/mcp-webresearch

mzxrai/mcp-webresearch

MCP-сервер для веб-исследований, подключающий Claude к интернету: поиск в Google, извлечение содержимого страниц, создание скриншотов и трекинг сессии. Полезен, чтобы получать актуальную информацию...

JavaScript300
kagisearch/kagimcp

kagisearch/kagimcp

MCP-сервер для поиска и извлечения контента через Kagi API. Поддерживает веб, новости, видео, подкасты, изображения и выгрузку страниц в Markdown. Полезен разработчикам MCP-клиентов.

Python509
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин