AmigaОбучение ИИ
Для разработчиков · курс 11

MCP: продвинутые темы

Продвинутые возможности протокола: sampling (сервер просит модель что-то сгенерировать), уведомления о логах и прогрессе, roots, устройство JSON-RPC-сообщений, транспорты STDIO и Streamable HTTP, работа с состоянием и подготовка сервера к продакшену. С разбором того, что изменилось в актуальной ревизии спецификации и какие приёмы считаются устаревшими.

Начать курс
0 из 13 пройдено
Для кого
Разработчики, которые уже написали хотя бы один MCP-сервер.
Что нужно
Курс «Введение в MCP», Python с async, знакомство с SSE.
Объём
13 уроков, 4 модуля, ≈ 3,5 ч с практикой
Модуль 1

Введение

  1. 01НачинаемЧто будет в курсе, для кого он, какая версия спецификации и SDK взята за основу и почему часть тем помечена как устаревшие.5 мин
Модуль 2

Ключевые возможности MCP

  1. 02Sampling: сервер обращается к моделиSampling позволяет MCP-серверу попросить модель хоста сгенерировать текст, не имея собственного ключа к API. Разбираем, зачем это нужно, как устроен запрос sampling/createMessage, что изменилось в ревизии 2026-07-28 и почему возможность помечена устаревшей.11 мин
  2. 03Sampling на практикеСтроим сервер для CI, который по номеру сборки просит модель хоста описать упавший тест, проверяем его in-memory клиентом с подменой модели и смотрим, какие сообщения ходят между сторонами.12 мин
  3. 04Уведомления: логи и прогрессУведомления — сообщения без ответа, которыми сервер сообщает клиенту о ходе долгой операции и присылает логи. Разбираем notifications/progress с токеном прогресса, notifications/message с уровнями syslog, уведомления об изменении списков и то, почему логирование через протокол устарело, а прогресс — нет.11 мин
  4. 05Уведомления на практикеСобираем сервер отчётов по спринту, который шлёт прогресс по ходу работы, смотрим, как уведомления приходят на клиент раньше результата, добавляем логи в stderr и пробуем устаревшее протокольное логирование, чтобы узнать его в чужом коде.12 мин
  5. 06RootsRoots — список папок, которые клиент считает рабочей областью и сообщает серверу. Разбираем запрос roots/list, что roots гарантируют и чего не гарантируют, как их получить в SDK и почему возможность устарела.9 мин
  6. 07Roots на практикеСтроим сервер поиска по проекту, который получает рабочие папки от клиента через roots, проверяем его in-memory клиентом с подставными корнями, ловим попытку выйти за границы и переписываем тот же сервер на рекомендованный способ — папки из конфигурации.11 мин
Модуль 3

Транспорты и коммуникация

  1. 08Типы JSON-сообщенийВсё общение в MCP — это JSON-RPC 2.0. Разбираем четыре вида сообщений (запрос, результат, ошибка, уведомление), правила для id и кодов ошибок, поле _meta и то, как стороны договариваются о версии и возможностях — рукопожатием в старых ревизиях и метаданными в каждом запросе в новой.12 мин
  2. 09Транспорт STDIOSTDIO — транспорт, при котором хост запускает сервер как дочерний процесс и общается с ним через стандартные потоки. Разбираем правила кадрирования, почему stdout принадлежит протоколу, как передаются секреты, как процесс завершается и как всё это выглядит в SDK и в конфигурации хоста.11 мин
  3. 10Транспорт Streamable HTTPStreamable HTTP — транспорт для удалённых серверов. Один endpoint, каждый запрос — отдельный POST, ответ — либо JSON, либо поток Server-Sent Events с уведомлениями. Разбираем заголовки, коды ответов, требования безопасности, запуск в SDK и подключение клиента.12 мин
  4. 11Streamable HTTP в деталяхТранспорт прошёл три поколения, и в поле вы встретите все. Разбираем HTTP+SSE с двумя адресами, Streamable HTTP образца 2025-11-25 с сессиями, GET-потоком и Last-Event-ID, что от этого осталось в 2026-07-28 и как SDK v2 обслуживает старых и новых клиентов сразу.13 мин
  5. 12Состояние и Streamable HTTPMCP объявлен протоколом без состояния, но серверу всё равно приходится что-то помнить. Разбираем, что именно запрещено помнить, где хранить то, что нужно (requestState, внешнее хранилище по явному идентификатору, шина подписок), как масштабировать сервер за балансировщиком и как устроена аутентификация по спецификации.13 мин
Модуль 4

Итоги

  1. 13ИтогиСобираем курс в одну картину — что сервер может просить у клиента, как сообщения ходят по транспортам и что серверу можно помнить — и намечаем, куда двигаться дальше.5 мин