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

Первый вызов инструмента

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

Первый полезный результат у нас очень небольшой: получить задачу get_task по taskId. Я сознательно начинаю с чтения. Так проще увидеть контракт, не отвлекаясь на необратимые изменения и платные API.

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

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

Сначала найдите инструмент через tools/list и прочитайте inputSchema. Затем отправьте tools/call с name и arguments. Проверьте id ответа, resultType и содержимое результата. Прикладной isError не стоит выдавать за успешное выполнение только из-за HTTP 200. В проверяемой лаборатории значения taskId и id индивидуальны для попытки: копирование чужого ответа не завершит ваш урок.

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

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

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

{
  "jsonrpc": "2.0",
  "id": "call-1",
  "method": "tools/call",
  "params": {
    "name": "get_task",
    "arguments": {
      "taskId": "task-101"
    },
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientCapabilities": {},
      "io.modelcontextprotocol/clientInfo": {
        "name": "course-client",
        "version": "1.0.0"
      }
    }
  }
}

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

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

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

Сервер валидирует arguments и доступ к конкретной задаче. То, что taskId соответствует JSON Schema, ещё не означает, что задача принадлежит пользователю. Я держу эти проверки рядом, но не смешиваю их результаты в логах.

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

Собрать полный обмен tools/list → tools/call → результат. Сервер проверяет исправление двух повреждённых сообщений.

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

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

Попробовать локально

Скачать reference-проект с lockfile и тестами (после входа). Распакуйте в отдельную папку, используйте Node.js 22.14 или новее.

npm ci
npm test
npm start

npm start запускает локальный stdio-сервер задач. Остановите его после практики. Тесты используют официальный TypeScript SDK v2.3.1, проверяют современный HTTP handler, MRTR, отказ и подмену состояния. Fake AS проверяет PKCE, issuer, audience и одноразовый code без внешнего аккаунта. Это учебный проект: production требует долговременного хранилища, настоящей проверки токенов и транзакционной идемпотентности.

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

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

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

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

Как вызвать инструмент?

Что проверять после schema validation?

Что означает isError инструмента?