Бета · редакция 2026.10-beta1 · MCP 2026-07-28

Discovery сервера

L03 · MCP 2026-07-28 · открытая бета · редакция 2026.10-beta1

Прежде чем строить интерфейс, я хочу понять, что умеет сервер. Для этого в современном профиле есть server/discover. Сервер обязан его реализовать, а клиент сам решает, нужно ли вызывать discovery заранее: обязательного стартового handshake здесь нет.

Предварительно: L02

Как я это использую

Ответ позволяет изучить supportedVersions, capabilities и информацию о сервере. Я использую discovery для диагностики и выбора совместимого профиля, но каждый рабочий запрос всё равно самодостаточен. Кэш discovery требует осмысленного срока: после обновления сервера набор возможностей может измениться. Отсутствие конкретной функции — повод выбрать запасной сценарий, а не угадать поддержку по названию SDK.

Кто за что отвечает

Разбираем конкретный контракт

Это учебный fixture: поля с доменом .example и идентификаторы вымышлены. Если показан фрагмент, его нужно поместить в соответствующий envelope выбранного профиля.

{
  "jsonrpc": "2.0",
  "id": "discover-1",
  "method": "server/discover",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {},
      "io.modelcontextprotocol/clientInfo": {
        "name": "course-client",
        "version": "1.0.0"
      }
    }
  }
}

Лаборатория · L03

Измените условия, проверьте результат и разберите ошибку. Все адреса и данные учебные.

Что легко сломать

Не копируйте initialize из старого quickstart в профиль 2026-07-28. Старый и новый обмены полезно держать отдельными fixtures. Если сервер сообщает неизвестную версию, покажите понятную несовместимость, вместо тихого смешивания форматов.

Практика и самопроверка

Пройти server/discover и прочитать supportedVersions и capabilities. Успех: discovery не объявлен обязательным первым шагом клиента.

Я советую сначала предсказать результат, затем изменить один параметр в лаборатории и объяснить разницу. Сохраните небольшой fixture с нормальным и ошибочным случаем для своего проекта. Тренажёр открыт без регистрации; для сохранения ответов на тесты и завершения урока войдите в аккаунт.

В конце страницы — три вопроса. После правильных ответов можно завершить урок; ошибка в следующей тренировке не стирает уже полученное подтверждение этой редакции теста.

На что я опирался

Профиль и ссылки проверены 15 октября 2026. Core, deprecated compatibility и extensions в этом курсе помечены отдельно. Примеры объясняют выбранные сценарии; для реализации сверяйте нормативные MUST/SHOULD и schema соответствующей версии.

Проверка знаний

Читайте свободно. Войдите, чтобы отвечать и сохранять прогресс.

Кто обязан поддерживать server/discover?

Обязан ли клиент первым делом вызвать discovery?

Что делать с неизвестной версией?