Fetch MCP

modelcontextprotocol/servers· Проверено 12.11.2026· 91,9 тыс.на GitHub

Даёт агенту читать веб-страницы: сервер скачивает адрес, превращает HTML в Markdown и отдаёт текст частями, чтобы длинная страница влезла в контекст.

Как подключить

Что сделать до подключения

1

uv с командой uvx; иначе pip install mcp-server-fetch или образ Docker mcp/fetch

2

По желанию Node.js 14 или новее: тогда HTML разбирает Readability.js и ссылки в тексте сохраняются

Конфиг для вашего клиента

Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code

claude mcp add --transport stdio fetch \
  -- uvx mcp-server-fetch

Проверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.

Инструменты сервера

fetchскачивает страницу и отдаёт Markdown

Что попросить агента

«Прочитай <адрес страницы> и перескажи главное»Агент вызовет fetch с адресом и получит текст страницы в Markdown
«Дочитай эту страницу до конца и найди раздел про <тема>»Агент повторит fetch с start_index, пока не дойдёт до нужного места
«Покажи исходный HTML страницы <адрес>»Агент вызовет fetch с raw: true

Для каких задач

Прочитать статью или документацию по ссылке и пересказать её
Дочитать длинную страницу кусками через start_index
Забрать исходный HTML без переделки в Markdown флагом raw
Ограничить агента списком сайтов через --allowed-hosts
Ходить в интернет через HTTP- или SOCKS5-прокси

Ограничения

!

Сервер входит в набор эталонных реализаций протокола — учебных примеров, которые для продакшена не готовы

!

Защита от частных адресов проверяет имя перед запросом и не спасает от подмены DNS между проверкой и соединением

!

Запросы от модели соблюдают robots.txt: закрытые для роботов страницы не открываются без --ignore-robots-txt

!

Тело ответа читается не больше 5 МиБ; ответы в сжатии br или zstd отклоняются с ошибкой

Если не работает

На Windows сервер зависает и отваливается по таймауту
Добавьте в env переменную PYTHONIOENCODING со значением utf-8.
Ответ начинается с Error executing tool fetch и упоминает robots.txt
Сайт закрыт для роботов. Добавьте в args флаг --ignore-robots-txt, если такой доступ вам допустим.
Ошибка с адресом 127.0.0.1 или 192.168.x.x
Частные и локальные адреса отклоняются по умолчанию. Включите их флагом --allow-private-ips.
Сервер не запускается после правки таймаута
Значение --timeout-ms и FETCH_TIMEOUT_MS должно быть целым числом от 100 до 600000 мс, иначе сервер отказывается стартовать.

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

Сколько текста агент получает за раз?
По умолчанию 5000 знаков. Модель может поднять лимит аргументом max_length или продолжить с нужного места через start_index.
Можно открыть локальный сервер разработки или страницу интранета?
По умолчанию нет: адреса loopback, частных сетей и облачных метаданных вроде 169.254.169.254 отклоняются. Добавьте в args флаг --allow-private-ips.
Как увеличить таймаут?
По умолчанию сервер ждёт 30 секунд. Задайте --timeout-ms=60000 в args или переменную FETCH_TIMEOUT_MS; на один вызов модель передаёт timeout_ms. Допустимо от 100 до 600000 мс.
Зачем ставить Node.js, если сервер на Python?
С Node.js 14 и новее HTML разбирает Readability.js от Mozilla, без него работает извлекатель на Python, который теряет адреса ссылок. При первом запуске сервер скачивает зависимости через npm; флаг --no-readability-js это отключает.
Работает ли сервер из России?
Сервер работает на вашем компьютере и ходит на сайты с вашего IP, ключи не нужны; для недоступных сайтов можно указать прокси через --proxy-url.

Похожие серверы