Создание сервера MCP для извлечения веб-данных в режиме реального времени
Сервер MCP позволяет любому агенту, совместимому с MCP, обращаться к вашим инструментам для работы с веб-данными по стандартному протоколу. Для извлечения данных в режиме реального времени вам необходимо предоставить загрузить или поиск инструмент, бэкэнд которого загружает страницы в режиме реального времени и возвращает очищенные, структурированные данные с исходными URL-адресами. В результате агент не использует HTTP, ротацию IP-адресов или разбор HTML-кода. Он вызывает именованную функцию и получает в ответ код в формате Markdown.
Именно в этом и заключается весь смысл. Логика вашей модели остается простой. Вся сложная часть — получение незаблокированной страницы и преобразование её в формат, понятный LLM — остается за пределами одного инструмента, которым вы управляете.
Основные выводы
- Сервер MCP предоставляет клиентам MCP инструменты с именами (функции со схемами); для веб-данных обычно используются две следующие:
extract_page(url)ипоиск(запрос). - Официальный справочный сервер MCP Fetch уже загружает URL-адрес и преобразует HTML в формат Markdown, так что у вас уже есть готовый исходный вариант.
- Направляйте запросы через API рендеринга и сеть исходящего трафика реальных устройств; запросы с IP-адресов серверов блокируются, а в 2025 году на долю автоматизированных ботов приходилось 51 % веб-трафика, поэтому меры защиты носят агрессивный характер.
- Возвращайте формат Markdown, а не исходный HTML. Это значительно снижает затраты агента на токены и обеспечивает возможность анализа ответов.
- Всегда прилагайте исходные URL-адреса к контенту, чтобы агент (и ваш журнал аудита) мог отследить происхождение каждого заявления.
Что такое сервер MCP и какие функции он предоставляет?
Сервер MCP — это программа, которая предоставляет клиентам MCP инструменты в виде именованных функций с типизированными схемами ввода и вывода через протокол Model Context Protocol. Такие клиенты, как Claude, Cursor или ваш собственный агент, обнаруживают эти инструменты при подключении и вызывают их так же, как локальные функции. Для контекста: по прогнозам Gartner, к концу 2026 года 40 % корпоративных приложений будут оснащены специализированными ИИ-агентами (Gartner, К 2026 году 40 % корпоративных приложений будут оснащены специализированными ИИ-агентами(2025 г.), поэтому стоит тщательно продумать четкие границы инструмента.
Инструмент (в MCP) состоит из трёх компонентов: имени, схемы входных данных и структуры результатов. Для извлечения данных из веб-ресурсов ваш контракт может выглядеть следующим образом: extract_page(url: string) -> markdown и search(query: string) -> results[]. Агент видит только эти сигнатуры. Все, что касается того, как вы загружаете, повторяете запрос и очищаете страницу, остается скрытым за ними.
Вам не нужно начинать с нуля. В официальном репозитории серверов MCP поставляется сервер-справочник Fetch, который принимает URL-адрес, загружает его и преобразует HTML в формат Markdown (modelcontextprotocol/серверы). Сначала ознакомьтесь с описаниями инструментов. В них указаны форматы входных и выходных данных, которые необходимо скопировать, благодаря чему вы сможете сосредоточиться на разработке бэкэнда, а не на налаживании протоколов. В данной статье речь пойдет о замене этого бэкэнда на такой, который не будет блокироваться. Что касается более широкого контекста стандартов, агентная сеть и WebMCP в котором рассказывается о том, в каком направлении развиваются MCP и предложение WebMCP, реализуемое на стороне браузера.
Почему механизм получения данных имеет большее значение, чем сам протокол?
Слой MCP — это самая простая часть. Сложность заключается в том, чтобы вообще получить доступ к действующей странице, поскольку прямой запрос на IP-адрес сервера блокируется. В 2025 году на долю автоматизированных ботов приходилось 51 % всего веб-трафика — впервые за десятилетие боты обогнали людей, причем доля вредоносных ботов составила 37 % (Imperva, Отчет о вредоносных ботах за 2025 год(2025 г.). Другими словами, сайты настроили свои системы защиты именно под тот тип трафика, который генерирует ваш сервер.
Ситуация ухудшилась, в частности, для веб-мастеров. 1 июля 2025 года компания Cloudflare начала по умолчанию блокировать ИИ-сканеры примерно на 20 % веб-сайтов и запустила платформу, предлагающую услуги сканирования по модели «оплата за сканирование» (Cloudflare, Cloudflare только что изменила подход к сбору данных в Интернете с помощью ИИ-ботов(2025 г.). Новостные сайты пошли по тому же пути: примерно 79 % крупных новостных сайтов в настоящее время блокируют ботов, используемых для обучения ИИ, а около 49 % заблокировали GPTBot по имени (Press Gazette, В настоящее время восемь из десяти крупнейших новостных сайтов мира блокируют ботов, используемых для обучения искусственного интеллекта(2025 г.).
Таким образом, простой сервер MCP для загрузки контента не справляется с важными задачами. Решением этой проблемы является маршрут выхода. Поэтому направляйте запросы на загрузку через API рендеринга в сети реальных устройств, чтобы запрос выглядел как запрос реального пользователя из реального местоположения, а не как запрос из диапазона IP-адресов дата-центра, который блокируется сразу же.
Как создать инструмент для загрузки данных?
Сначала определите контракт инструмента, а затем настройте его бэкэнд на использование API рендеринга. Ваш выдержка_страницы Этот инструмент принимает URL-адрес и возвращает код в формате Markdown вместе с исходным URL-адресом. Внутри он вызывает конечную точку рендеринга, которая загружает актуальную страницу, выполняет JavaScript и напрямую возвращает очищенный код Markdown, благодаря чему вашему инструменту не приходится самостоятельно заниматься разбором HTML.
Здесь необходимо подключить Massive Web Render API. API рендеринга — это сервис, который загружает страницу, запускает ее JavaScript-код в реальном браузере и возвращает готовый результат вместо исходного кода. Его конечная точка «Browsing» принимает формат=markdown в качестве готового результата: страница возвращается в формате, готовом для обработки LLM, без необходимости извлечения DOM в коде вашего инструмента. Запрос проходит через сеть реальных устройств, насчитывающую около 1,3 млн активных устройств в день в более чем 195 странах, поэтому исходящий IP-адрес принадлежит реальному потребительскому устройству, а не заблокированному диапазону серверов. Например, вы можете осуществлять геотаргетинг по стране, административному району или городу, если страница отображается по-разному в зависимости от региона, и поддерживать фиксированную сессию до 12 минут на одном и том же исходящем IP-адресе с помощью Файл cookie: session=<id> заголовок для многоэтапных процессов.
По результатам наших тестов поставщиков, успешность подключений с частных IP-адресов на защищенных сайтах, как правило, значительно выше, чем у IP-адресов из центров обработки данных (приблизительные диапазоны: частные IP — ~85–99 %, IP из центров обработки данных — ~20–40 %). Рассматривайте это как ориентир для поставщиков, а не как результаты независимого исследования. Тем не менее, это объясняет часто наблюдаемую нами тенденцию: команды внедряют эту технологию в качестве резервного варианта, а затем переключаются на неё в качестве основного решения, как только замечают снижение показателя блокировок.
Возвращайте структурированные данные, а не BLOB. Каждый выдержка_страницы Ответ должен содержать текст в формате Markdown и URL-адрес исходного ресурса, чтобы агент мог определить его происхождение, а ваши журналы — обеспечить возможность аудита. Для инструмента, работающего по принципу поиска, конечная точка Search извлекает результаты SERP из основных поисковых систем с возможностью географической таргетизации, что позволяет вам поиск(запрос) использовать механизм автоматического обнаружения вместо списка URL-адресов, заданных напрямую.
Почему возвращается формат Markdown, а не исходный HTML?
Возвращайте код в формате Markdown, поскольку он требует гораздо меньше токенов, чем необработанный HTML, и при этом остается читабельным. Необработанный HTML в основном состоит из тегов, скриптов и стилей, которые модели не нужны. Преобразование в Markdown удаляет этот «шум» и существенно сокращает количество токенов — на типичных страницах более чем вдвое (dev.to, Инструменты браузера для ИИ-агентов. Часть 4: Отказ от использования браузера(2026 г.). Меньшее количество токенов означает снижение затрат и более быстрый отклик при каждом вызове инструмента.
Есть и качественная причина. Модели лучше обрабатывают чистые заголовки и списки в формате Markdown, чем сложные вложенные блоки div. На практике это позволяет использовать меньше токенов и одновременно получить более надежные результаты извлечения. Компромиссы, связанные с использованием Markdown, а также то, насколько он действительно помогает сэкономить ресурсы, рассмотрены в обход браузера для сокращения затрат на токены агента, с которой стоит ознакомиться, прежде чем выбрать формат вывода.
Поскольку Web Render API возвращает формат=markdown непосредственно: ваш инструмент MCP выполняет преобразование на серверной стороне, а не в контексте агента. В результате агент получает готовый код Markdown и тратит свой бюджет токенов на вычисления, а не на разбор «супа тегов».
Как протестировать инструмент с помощью агента?
Проведите тестирование, подключив сервер к реальному клиенту MCP и отслеживая время прохождения сигнала в обоих направлениях. Настройте ваш агент (Claude Desktop, Cursor или пользовательский клиент) для загрузки сервера, подтвердите выдержка_страницы и поиск появится в списке инструментов, после чего предложите ему загрузить страницу в режиме реального времени. Убедитесь, что ответ представлен в формате Markdown, содержит исходный URL-адрес и был получен без ограничений.
Намеренно выбирайте сложные задачи. Проводите тестирование на сайте с большим количеством JavaScript-кода и на странице, которая, как известно, блокирует ботов, поскольку простые страницы скрывают те сбои, для предотвращения которых вы и создали этот бэкенд. Судя по тому, что мы наблюдаем в нагрузках агентов, первая сложная цель — это место, где большинство наивных серверов незаметно выходят из строя. Для сравнения: инструмент для извлечения данных с поддержкой рендеринга выдерживает нагрузку. Также проверьте, работает ли геотаргетинг, отправив запрос на один и тот же URL из двух разных стран и убедившись, что контент различается там, где и должен.
Как только инструмент извлечения данных будет отлажен, он станет базовым компонентом для систем более высокого уровня. Тот же инструмент, который обеспечивает данными одного агента, может питать конвейер извлечения данных, который постоянно обновляется, что как раз и является создание конвейера RAG на основе данных из реального веб-трафика основан на инструменте для оперативной загрузки данных, подобном этому.
Источники
- Imperva, Отчет о вредоносных ботах за 2025 год, 2025 год. https://www.imperva.com/resources/resource-library/reports/2025-bad-bot-report/
- Cloudflare, Cloudflare только что изменила подход к сканированию Интернета с помощью ИИ-ботов, 2025 год. https://www.cloudflare.com/press/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/
- Press Gazette, В настоящее время восемь из десяти крупнейших новостных сайтов мира блокируют ботов, используемых для обучения искусственного интеллекта, 2025 год. https://pressgazette.co.uk/platforms/eight-in-ten-of-worlds-biggest-news-websites-now-block-ai-training-bots/
- Gartner, К 2026 году 40 % корпоративных приложений будут оснащены специализированными ИИ-агентами, 2025 год. https://www.gartner.com/en/newsroom/press-releases/26.08.2025 — Gartner прогнозирует, что к 2026 году 40 % корпоративных приложений будут оснащены ИИ-агентами для выполнения конкретных задач, тогда как в 2025 году их доля составит менее 5 %.
- dev.to, Инструменты браузера для ИИ-агентов. Часть 4: Отказ от использования браузера, 2026 год. https://dev.to/stevengonsalvez/browser-tools-for-ai-agents-part-4-skip-the-browser-save-80-on-tokens-304c
- dev.to, Создание сервера MCP для извлечения веб-данных в режиме реального времени, 2026 г. https://dev.to/alterlab/build-an-mcp-server-for-real-time-web-data-extraction-3725
- Протокол контекста модели, Официальные серверы MCP (сервер Fetch). https://github.com/modelcontextprotocol/servers
Frequently Asked Questions
Мне нужно писать сервер MCP с нуля?
Нет. Начните с официального сервера-справочника Fetch, расположенного в репозитории MCP servers. Он уже обеспечивает получение URL-адресов и преобразование HTML в Markdown, поэтому вам достаточно скопировать его структуру и заменить бэкэнд на API рендеринга, который не будет блокироваться.
Почему бы просто не получить URL-адрес непосредственно в коде моего инструмента?
Запросы на получение IP-адреса сервера блокируются на защищенных сайтах. В 2025 году на долю ботов приходилось 51 % веб-трафика, и Cloudflare начала по умолчанию блокировать ИИ-краулеры примерно на 20 % веб-сайтов, в результате чего прямые запросы на целевые ресурсы, представляющие для вас интерес, завершаются неудачей. Использование маршрута выхода через реальное устройство позволяет избежать этой проблемы.
Что на самом деле возвращает этот инструмент?
Очищенный код Markdown и URL-адрес исходного ресурса, возвращаемые в виде структурированных данных. Использование Markdown позволяет снизить затраты на токены, а URL-адрес исходного ресурса дает возможность агенту привязывать заявки и обеспечивает возможность проверки каждого запроса.
Представить один инструмент или несколько?
Обычно два: extract_page(url) для известной страницы и поиск(запрос) для обнаружения. Стремитесь к тому, чтобы схема каждого инструмента была лаконичной, а формат возвращаемых данных — предсказуемым, чтобы любой клиент MCP мог вызывать их без специальной обработки.
