Дайте вашему ИИ-агенту доступ к живым веб-данным (с MCP)
TL;DR
Агенту ИИ нужен веб-инструмент, когда его ответ зависит от информации, более новой, чем его контекст модели, или специфичной для текущей страницы. MCP предоставляет стандартные границы инструмента; это не делает полученный контент надежным само по себе.
Минимальный сервер MCP для обхода может предоставить один инструмент только для чтения read_web_page(url), поддерживаемый Nstproxy Crawl. Этот инструмент получает авторизованный публичный URL и возвращает чистый Markdown с его исходным URL.
Работающий пример на Python ниже использует текущий API MCPServer версии 2.x. Он был установлен и протестирован с реальным клиентом MCP в процессе, который обнаружил read_web_page и его требуемый вход url.
Курсор может зарегистрировать локальный сервер в .cursor/mcp.json; текущий путь Claude Desktop: Настройки → Расширения. Рассматривайте скопированные устаревшие учебники FastMCP и claude_desktop_config.json как чувствительные к версии.
Держите агента в рамках. Проверяйте URL, ограничивайте разрешенные хосты, где это возможно, сохраняйте источники цитирования, кешируйте повторные чтения и требуйте одобрение, прежде чем инструмент получит доступ к частным или чувствительным данным.
Модель ИИ не может знать, изменилось ли страница продукта сегодня утром, страница статуса восстановилась пять минут назад или политика была пересмотрена после завершения ее обучения. Живой веб-инструмент закрывает этот пробел в доказательствах, извлекая страницу в момент ответа.
Полезная архитектура сознательно мала: хост решает, когда нужна страница, MCP описывает и вызывает инструмент, а API обхода обрабатывает извлечение и сбор информации. Этот гид создает это соединение с текущими интерфейсами MCP 2.x и Nstproxy Crawl, а затем прикрепляет его к Claude Desktop или Cursor.
Nstproxy Crawl дает агенту ИИ управляемый слой извлечения страниц, который может возвращать очищенный Markdown, метаданные страниц, ссылки и другие настроенные артефакты. Агент получает контент, который он может читать, не используя рабочие процессы браузера, правила извлечения, очереди или маршрутизацию прокси.
MCP предоставляет контракт интеграции. Сервер MCP публикует именованные инструменты с описаниями и схемами вводимых типов; совместимый хост перечисляет эти инструменты и решает, когда их вызывать. текущая спецификация MCP определяет границу протокола, в то время как официальная документация по MCP Python SDK предоставляет используемые здесь API серверов и клиентов.
Это разделение имеет значение с операционной точки зрения. Модель никогда не должна получать токен Nstproxy. Локальный сервер считывает секрет из своей среды, отправляет запрос страницы и возвращает лишь запрошенный контент и его происхождение.
Ранее приведенный учебник веб-поиска MCP сервера демонстрирует модель поиска-сначала-читания с двумя инструментами. Эта статья сосредоточена на более безопасной примитивной адаптации: одном инструменте для чтения URL, который вы можете прикрепить к нескольким хостам и протестировать перед добавлением открытия.
Почему агентам ИИ нужны данные с живого веба
Агентам ИИ нужны данные с живого веба для актуальности, специфики источника и верификации. Статическая модель может объяснять концепцию, но она не может надежно сообщить о текущем журнале изменений, состоянии инвентаризации, параметрах документации или публичном инциденте без извлечения доказательств.
Типичные ограниченные случаи использования включают:
чтение текущей страницы документации перед генерацией кода интеграции;
сбор свежих доказательств для исследовательской записки;
обновление одного документа в базе знаний RAG;
чтение страницы за указанным пользователем URL перед ее обобщением.
Живой доступ не убирает необходимость в суждениях. Страницы могут быть устаревшими, манипулированными, специфичными для региона или враждебными к агентам. Возвращаемый текст может содержать инъекцию подсказки, которая просит модель игнорировать инструкции или раскрывать данные. Рассматривайте веб-контент как доказательство, а не как авторитет над правилами хоста.
Для более широких принципов проектирования инструментов см. руководство Nstproxy по инструментам агента, безопасности и оценке. Хорошо спроектированный веб-инструмент имеет узкое имя, явный контракт ввода, предсказуемый вывод, таймаут, журнал аудита и четкое поведение при сбое.
Предварительные условия и проверка версии
Вам нужен Python 3.10 или новее, аккаунт Nstproxy с токеном API Crawl и совместимый с MCP хост. Создайте виртуальную среду и установите точные версии, проверенные для этой статьи 4 сентября 2026 года:
Закрепления версий делают пример воспроизводимым. Проверьте официальные заметки о выпуске SDK перед обновлением: MCP 2.x заменил старый класс FastMCP и путь импорта на MCPServer. Устаревший учебник может работать некорректно, даже если базовая структура все еще корректна.
Экспортируйте ваш токен Crawl только в окружении сервера:
exportNSTDATA_API_TOKEN="replace-with-your-token"
Не добавляйте токен в файл сервера, конфигурацию проекта или в публичный репозиторий. Получение страницы с проверкой подлинности из примера является необходимым шагом в этой статье, поскольку токен учетной записи не был доступен во время проверки; импорт сервера MCP и обратный проход инструментов были успешно выполнены.
Дайте вашему агенту свежий веб-контекст
Используйте Nstproxy Crawl, чтобы преобразовать одобренные публичные URL в чистый Markdown для инструментов MCP.
Сервер ниже выставляет один инструмент, который принимает общедоступный HTTP(S) URL и возвращает размеченный Markdown. Сохраните его как mcp_server.py.
import os
from mcp.server import MCPServer
from nstdata_ai_crawl import Format, NstDataClient, ScrapeRequestDto
server = MCPServer("nstproxy-live-web", instructions="Получить авторизованные общедоступные веб-страницы в виде чистого Markdown.",)@server.tool()defread_web_page(url:str)->str:"""Получить одну авторизованную общедоступную HTTP(S) страницу и вернуть Markdown."""ifnot url.startswith(("https://","http://")):raise ValueError("url должен использовать http:// или https://") token = os.environ["NSTDATA_API_TOKEN"]with NstDataClient(token)as client: result = client.submit_scrape_task_sync( ScrapeRequestDto( url=url, formats=[Format.MARKDOWN], onlyMainContent=True, timeout=60000,))ifnot result.success ornot result.data: message = result.errorMessage or result.errorCode or"неизвестная ошибка"raise RuntimeError(f"не удалось получить страницу: {message}") markdown = result.data.get_markdown()ifnot markdown:raise RuntimeError("страница получена, но не вернула Markdown")returnf"Источник: {url}\n\n{markdown}"if __name__ =="__main__": server.run(transport="stdio")
Функция намеренно синхронная, потому что текущий метод Nstproxy SDK ожидает результат одной страницы. Для более длительных обходов сайта выставите инструмент отправки и отдельный инструмент статуса вместо того, чтобы удерживать один вызов MCP открытым бесконечно.
Проверка схемы является только отправной точкой. Производственный сервер, который принимает произвольные URL, также должен блокировать localhost, частные IP-диапазоны, конечные точки метаданных облака, нестандартные порты, повторное связывание DNS и перенаправления на запрещенные адреса. Список утвержденных доменов безопаснее, чем открыватель URL.
Проверьте инструмент MCP перед открытием Claude или Cursor
Проверьте контракт сервера с клиентом в процессе, прежде чем добавлять конфигурацию хоста. Сохраните это как test_server.py рядом с сервером:
import asyncio
from mcp import Client
from mcp_server import server
asyncdefmain()->None:asyncwith Client(server)as client: tools =await client.list_tools()for tool in tools.tools:print(tool.name, tool.input_schema.get("required"))asyncio.run(main())
Этот результат доказывает, что установленный клиент MCP может подключиться к объекту сервера и обнаружить сгенерированную схемy инструментов. Это не доказывает, что токен Nstproxy действителен, поскольку перечисление инструментов не вызывает API ползунка.
Вы также можете проверить сервер, используя официальные инструменты разработки MCP, описанные в руководстве по началу работы с MCP Python SDK. Проверьте недопустимые схемы, отсутствующие переменные окружения, пустой Markdown, тайм-ауты и ошибки поставщика, прежде чем предоставлять доступ к хосту.
Добавьте сервер MCP к Cursor
Cursor регистрирует специфичные для проекта сервера MCP в .cursor/mcp.json и глобальные серверы в ~/.cursor/mcp.json. официальная документация MCP Cursor описывает поддерживаемые транспорты и конфигурационные места.
Используйте абсолютный интерпретатор и путь к скрипту, чтобы Cursor не зависел от своего рабочего каталога:
Перезапустите или перезагрузите Cursor, откройте панель доступных инструментов и подтвердите, что read_web_page отображается. Спросите: “Используйте read_web_page, чтобы резюмировать текущую общедоступную страницу на https://example.com и указать источник URL.” Проверьте аргументы инструмента перед утверждением.
Для дополнительного контекста выбора сервера, сравнение серверов MCP Nstproxy для Cursor объясняет, как отличаются локальные и удаленные инструменты.
Добавьте сервер MCP к Claude Desktop
Текущий процесс регистрации Claude Desktop - это Настройки → Расширения. Anthropic теперь рекомендует настольные расширения для локальных серверов и Настройки → Коннекторы для удаленных MCP услуг, вместо того чтобы полагаться на старые ручные инструкции JSON для каждой установки. Следуйте текущему руководству по локальным MCP для Claude Desktop.
Для локальной разработки откройте Настройки → Расширения → Расширенные настройки и используйте инструменты разработчика, соответствующие вашей сборке Claude Desktop. Упакуйте протестированный сервер как настольное расширение перед его распространением среди других пользователей. Отметьте поле токена как конфиденциальное, чтобы Claude Desktop хранил его через защищенное хранилище учетных данных операционной системы.
После установки начните новый разговор, проверьте, что инструмент указан, и запросите одну известную публичную страницу. Успешная публикация инструмента подтверждает регистрацию MCP; успешный ответ страницы подтверждает учетные данные Nstproxy и путь обхода. Держите эти проверки onboarding отдельно.
Используйте живые данные из интернета без потери контроля
Агент в производственной среде должен выбрать URL из одобренного источника или по запросу пользователя, вызвать инструмент, проверить возвращаемую метку источника и отвечать только на основе контента, относящегося к вопросу. Требуйте цитаты в инструкции для агента и сохраняйте окончательный URL в случае перенаправлений.
Добавьте эти контролы перед расширением использования:
Политика домена: разрешать только одобренные публичные хосты или требовать подтверждения для нового хоста.
Безопасность сети: отвергать локальные и частные адреса до и после разрешения DNS и перенаправлений.
Минимизация данных: запрашивать только формат контента, необходимый для задания.
Кэширование: избегать многократного получения неизмененной страницы в одной сессии.
Ограничение по размеру: обрезать или сохранять слишком большие результаты, вместо того чтобы заполнять контекст модели.
Сопротивляемость инъекциям запросов: никогда не разрешать текст страницы переопределять системную политику или авторизовать другой инструмент.
Наблюдаемость: регистрировать имя инструмента, нормализованный URL, длительность, состояние результата и несущественный идентификатор запроса.
Руководство по безопасности MCP спецификации подчеркивает контроль пользователя и четкую авторизацию вокруг инструментов. Извлечение данных из веба является только для чтения с точки зрения агента, но оно все равно передает целевой URL третьей стороне и может раскрыть частные URL, если ввод не контролируется.
Соблюдайте условия использования целевого сайта, инструкции для роботов, авторские права, конфиденциальность и применимое законодательство. Поддерживайте объем запросов, привязанный к фактическим задачам пользователей, а не превращайте интерактивный инструмент агента в невостребованный массовый краулер.
Контрольный список по вводу
Надежная последовательность ввода разделяет протокол, учетные данные, извлечение и качество ответов:
зафиксируйте и запишите версии установленных пакетов;
выполните тест обнаружения инструмента MCP в процессе;
добавьте локальный сервер на один хост;
подтвердите, что имя инструмента и url вводятся;
вызовите разрешенную публичную тестовую страницу;
проверьте, что возвращается URL источника и значимый Markdown;
протестируйте недопустимую схему и отсутствующий токен;
включите контролы домена, размера, тайм-аута и логирования;
оцените, упоминает ли окончательный ответ и следует ли retrieved evidence.
Начните с одного читающего инструмента. Добавляйте инструмент поиска только тогда, когда обнаружение является реальной необходимостью, и добавляйте обход сайта как отдельный асинхронный рабочий процесс. Это помогает держать стоимость, разрешения и поведение ошибок понятными как для пользователя, так и для агента.
Дайте вашему агенту проверяемый веб-инструмент
Полезная интеграция MCP для обхода — это узкий канал доказательств, а не неограниченный просмотр. Текущий сервер MCP 2.x выше предоставляет протестированный контракт инструмента, Nstproxy Crawl обрабатывает извлечение страниц, а Claude Desktop или Cursor обеспечивают пользовательский опыт.
Используйте цены на Nstproxy Crawl, чтобы выбрать соответствующую модель использования, затем подтвердите одну репрезентативную страницу от начала до конца с вашим собственным токеном. Расширяйте область домена инструмента или автономию только после того, как журналы аудита и поведение одобрения будут работать.
Сервер Crawl MCP предоставляет веб-извлечение как типизированные инструменты, которые совместимый с MCP ИИ-хост может обнаружить и вызывать, сохраняя при этом учетные данные API внутри процесса сервера.
Q: Почему агенту ИИ нужны данные с веба в реальном времени?
Агенту ИИ нужны данные с веба в реальном времени, когда ответ зависит от текущей, специфичной для источника информации, которая не гарантируется быть в данных тренировки модели или контексте разговора.
Q: Выдает ли сервер MCP токен Nstproxy модели?
Нет. Токен считывается локальным сервером из его окружения и используется для запроса API Crawl; инструмент должен возвращать только содержимое страницы, происхождение и контролируемые детали ошибок.
Q: Может ли один и тот же сервер MCP работать с Claude Desktop и Cursor?
Да. Оба поддерживают инструменты MCP, хотя процессы их установки различаются: Cursor использует mcp.json, в то время как текущие версии Claude Desktop управляют локальными серверами через Расширения.
Ivy Lin
Sep. 4th 2026
110M+ реальных IP с 99.9% успешных доступов
Средний отклик ~0.5с для задач высокой конкуренции
Всего от $0.1/GB
Мгновенный доступ к премиальным residential, datacenter, IPv6 и ISP пулам.