Model Context Protocol (MCP) и server-card.json: интеграция сайтов с AI-агентами

Современные LLM (ChatGPT, Claude, Perplexity) перестали быть просто чат-ботами. Они активно превращаются в агентов, способных выполнять действия: бронировать билеты, заказывать товары, проверять статусы заказов, получать курсы валют в реальном времени. Ключевой вопрос — как сайту или веб-сервису «рассказать» агенту о своих возможностях так, чтобы интеграция была безопасной, структурированной и автоматической? Ответ — Model Context Protocol (MCP).

Что такое Model Context Protocol (MCP)?

MCP — это открытый протокол, разработанный Anthropic (создатели Claude) для стандартизированного взаимодействия между AI-агентами и внешними источниками данных или сервисами. Если говорить упрощённо, это аналог OpenAPI/Swagger для AI, только с упором на контекст и инструменты, которые агент может вызывать.

В отличие от классических REST API, где всё завязано на HTTP-методы и эндпоинты, MCP фокусируется на инструментах (tools) — функциях, которые агент может выполнить. Инструмент описывает:

имя и описание (что делает);

входные параметры (схема JSON, которую агент разбирает);

выходные данные (что вернётся агенту в ответ).

Такой подход позволяет LLM не просто читать текст сайта, а целенаправленно вызывать нужные функции, получать структурированные ответы и использовать их для генерации финального ответа пользователю.

Зачем сайту/сервису публиковать server-card.json?

server-card.json — это дескриптор, который размещается в стандартном месте: /.well-known/mcp/server-card.json. Он сообщает AI-агенту: «Я поддерживаю MCP, вот мои возможности». Без этого файла даже самый продвинутый сервис остаётся «невидимым» для агентов — они не знают, какие инструменты у него есть, и не могут их вызвать.

Преимущества публикации server-card.json:

Прямая интеграция без парсинга HTML. Агент не тратит токены на чтение страниц и угадывание структуры — он получает чёткое описание инструментов.

Безопасность. Вы сами решаете, какие функции открыты агенту, а какие — нет. Никакого скрытого доступа.

Автоматическое обнаружение. Агенты (Claude, ChatGPT, Perplexity) при обращении к вашему домену могут автоматически запросить /.well-known/mcp/server-card.json и сразу понять, как с вами работать.

Выход в новую экосистему. MCP становится стандартом де-факто для AI-интеграций. Раннее внедрение даёт конкурентное преимущество.

Как выглядит server-card.json?

Файл имеет следующую структуру (пример для гипотетического сервиса погоды):

{
"name": "weather-service",
"version": "1.0.0",
"description": "Позволяет получать текущую погоду в любом городе мира",
"transport": "http+json",
"tools": [
{
"name": "get_current_weather",
"description": "Получить текущую температуру, влажность и скорость ветра для указанного города",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Название города на английском или русском"
}
},
"required": ["city"]
}
}
]
}

Обязательные поля: name, version, description, transport (как правило, http+json или stdio), а также массив tools. Каждый инструмент должен иметь name, description и inputSchema — описание параметров в формате JSON Schema.

Практическая инструкция: как проверить и настроить server-card.json

Шаг 1. Создайте файл

Сформируйте JSON по образцу выше. Убедитесь, что все поля заполнены корректно. Особое внимание уделите inputSchema — агент будет разбирать именно эту схему для формирования запроса. Если схема невалидна, инструмент не сработает.

Шаг 2. Разместите файл на сервере

Поместите файл по пути: /.well-known/mcp/server-card.json в корне вашего домена. Например, если ваш сайт example.com, файл должен быть доступен по адресу https://example.com/.well-known/mcp/server-card.json.

Убедитесь, что сервер отдаёт файл с правильным Content-Type (application/json) и что он доступен без авторизации (агент должен иметь возможность его прочитать).

Шаг 3. Проверьте корректность

Даже небольшая опечатка в JSON или неверное поле сломают интеграцию. Рекомендуется воспользоваться специализированным инструментом, который анализирует все обязательные поля, валидность JSON, наличие tools и их схем. Вы можете проверить свой файл с помощью бесплатного инструмента «MCP Server Card» oWeb Solutions. Он покажет, какие поля заполнены, а какие — нет, и даст рекомендации по исправлению.

Шаг 4. Протестируйте интеграцию

Если вы используете Claude или другой MCP-совместимый клиент, добавьте свой сервер в настройки и проверьте, что агент видит инструменты. Можно задать вопрос, который инициирует вызов инструмента (например, «Какая погода в Москве?» для сервиса погоды).

Почему это важно именно для AI-агентов, а не для поисковиков?

Классические поисковики (Google, Яндекс) индексируют страницы через HTML-контент, ссылки и мета-теги. Им не нужен server-card.json — они парсят весь сайт целиком. AI-агенты же работают иначе: они не индексируют, а взаимодействуют. Агент не может «понять» ваш JavaScript-виджет или форму бронирования, просто прочитав текст страницы. Ему нужен чёткий интерфейс — набор инструментов с известными параметрами.

Таким образом, MCP — это мост между статичным вебом и динамическим AI-миром. Если ваш сервис предоставляет какую-то функцию (отслеживание посылки, расчёт стоимости доставки, конвертация валют), публикация server-card.json делает эту функцию доступной для любого MCP-совместимого агента. Это открывает канал прямых заказов и запросов от миллионов пользователей ChatGPT, Claude и Perplexity без необходимости писать отдельного бота или интеграцию под каждую платформу.

Распространённые ошибки при настройке

Отсутствие поля version. Агент может отказаться от использования сервера без версии.

Некорректный transport. Чаще всего используется http+json, но если вы планируете локальное взаимодействие через stdin/stdout, укажите stdio.

Пустой массив tools. Файл должен содержать хотя бы один инструмент, иначе он бесполезен.

Сложные inputSchema. Чрезмерная вложенность или необязательные поля запутывают агента. Делайте схемы плоскими и явно помечайте обязательные параметры.

Отсутствие описания у инструмента. Агент принимает решение на основе description — пишите его на языке, понятном LLM (лучше на английском, если аудитория глобальная).

Что дальше?

MCP активно развивается. Уже сейчас Anthropic, OpenAI и Perplexity заявляют о поддержке протокола. В ближайшие год-два он станет стандартом для AI-интеграций, как OpenAPI стал стандартом для REST API. Публикация server-card.json сегодня — это инвестиция в будущее: вы подготавливаете свой сервис к миру, где AI-агенты будут основным интерфейсом взаимодействия с цифровыми услугами.

Начните с малого: создайте один инструмент, протестируйте его, убедитесь, что файл корректен. В следующей статье мы разберём, как написать обработчик для инструмента на стороне сервера и как логировать запросы от агентов.