AmigaОбучение ИИ
Модуль 6 · Итоги · урок 14 из 14

Обзор MCP: что мы построили

5 мин чтения▶ есть видеоверсия

Курс закончился, и у вас есть работающий MCP-сервер с тремя примитивами и клиент, в котором Claude сам вызывает ваши инструменты. Этот урок — короткая сводка: что построено, что запомнить и что делать дальше.

Что у нас получилось

Сервер docs_server.py — около восьмидесяти строк:

Примитив Что Кто использует
Инструменты read_doc, edit_doc Модель, по ходу задачи
Ресурсы docs://list, шаблон docs://{name} Пользователь, через @имя
Промпты summarize, to_theses Пользователь, через /имя

Клиент client.py — около ста строк: запускает сервер по stdio, переводит инструменты в формат Anthropic API, крутит цикл tool_use → call_tool → tool_result, прикладывает ресурсы по упоминанию и запускает разговор с промпта.

Тот же сервер без изменений подключается к Claude Code одной командой claude mcp add и к приложению Claude через файл конфигурации. Это и была обещанная идея протокола: сервер написан один раз, клиентов у него сколько угодно.

Что стоит унести с собой

Три роли и три примитива. Хост, клиент, сервер. Инструменты — модель, ресурсы — приложение, промпты — человек. Если вы помните, кто контролирует примитив, вы правильно спроектируете сервер.

Описания пишутся для модели. Имя, docstring, Field(description=...) — единственное, что модель знает об инструменте. ToolError с подсказкой — способ дать ей исправиться.

stdio-сервер молчит в stdout. Логи только через logging. Инспектор покажет, если вы забыли.

Цикл вызова инструментов — это не магия. Ответ модели в историю целиком, результаты всех инструментов одним сообщением с tool_use_id, повторять, пока stop_reason не перестанет быть tool_use.

Подтверждение человеком — ответственность хоста. Наш клиент выполнял всё подряд; настоящий спрашивает. Аннотации read_only_hint и честные описания помогают хосту решать.

Чего не хватает до настоящего

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

  • Настоящее хранилище вместо словаря: папка, вики, база. Мы обращались к DOCS через несколько функций, так что замена локальна.
  • Аутентификация и Streamable HTTP, если сервер должен жить не на ноутбуке, а на общем хосте.
  • Уведомления: сообщать хосту, что список документов изменился, вместо того чтобы ждать перечитывания.
  • Прогресс и логи в хост для долгих операций.
  • Тесты — SDK подключает Client к серверу в том же процессе, и это идеальная основа для pytest.

Куда дальше

Курс «MCP: продвинутые темы» продолжает ровно с этого места: устройство JSON-сообщений, транспорты stdio и Streamable HTTP в деталях, уведомления о логах и прогрессе, работа с состоянием и подготовка сервера к продакшену. Там же разбираются sampling и roots — клиентские примитивы, которые помечены устаревшими, но встречаются в существующих серверах.

Если хочется практики без нового курса — подключите project-docs к Claude Code и поработайте с ним день: @project-docs:docs://brief.md для ресурсов, /mcp__project-docs__summarize для промптов. Быстро станет видно, чего не хватает.

Документация протокола — modelcontextprotocol.io/docs, Python SDK — py.sdk.modelcontextprotocol.io, подключение к Claude Code — code.claude.com/docs/en/mcp.

Попробуйте сами

10–15 мин на рабочем месте
  1. Замените словарь DOCS на чтение папки docs/ и подключите сервер к Claude Code с областью project. Закоммитьте .mcp.json, чтобы коллега мог подключиться той же командой.
  2. Напишите один тест на pytest с Client(mcp, raise_exceptions=True): у каждого инструмента есть описание, и у каждого параметра — тоже.
  3. Возьмите сервис из своей работы, для которого вы проектировали примитивы в уроке про них, и напишите для него сервер по образцу project-docs. Начните с одного инструмента и одного промпта.

Коротко

  • Построен сервер с двумя инструментами, двумя ресурсами и двумя промптами и клиент с циклом вызова инструментов.
  • Тот же сервер без изменений подключается к Claude Code и приложению Claude.
  • Главное: кто контролирует примитив, описания для модели, тишина в stdout, устройство цикла, подтверждение человеком.
  • До настоящего сервера не хватает хранилища, транспорта HTTP, уведомлений и тестов.
  • Дальше — курс «MCP: продвинутые темы».

Видеоверсия

Сценарий озвучки · 280 слов, ≈ 2 мин

Курс закончился. У вас есть работающий MCP-сервер и клиент, в котором Claude сам вызывает ваши инструменты. Давайте коротко подведём итоги.

Что построено. Сервер «документы проекта» — около восьмидесяти строк. Два инструмента, прочитать и отредактировать документ, — их вызывает модель по ходу задачи. Два ресурса, список документов и содержимое по имени, — их прикладывает пользователь через упоминание. Два промпта, выжимка и тезисы, — их пользователь выбирает как команды. И клиент в сто строк: запускает сервер, переводит инструменты в формат API, крутит цикл вызовов, прикладывает ресурсы и запускает разговор с промпта. Тот же сервер без изменений подключается к Claude Code одной командой. Это и была обещанная идея протокола: сервер написан один раз, клиентов у него сколько угодно.

Что стоит унести с собой. Три роли и три примитива: хост, клиент, сервер; инструменты — модель, ресурсы — приложение, промпты — человек. Если помнить, кто контролирует примитив, сервер спроектируется правильно. Описания пишутся для модели — это единственное, что она знает об инструменте. Сервер на стандартном вводе-выводе молчит в стандартный вывод. Цикл вызова инструментов — не магия: ответ модели в историю целиком, результаты одним сообщением, повторять, пока модель просит инструменты. И подтверждение человеком — ответственность хоста, а не протокола.

Чего не хватает до настоящего сервера. Настоящего хранилища вместо словаря. Транспорта эйч-ти-ти-пи и аутентификации, если сервер должен жить не на ноутбуке. Уведомлений об изменениях. Прогресса для долгих операций. И тестов — SDK подключает клиент к серверу в том же процессе, это идеальная основа.

Куда дальше. Курс «MCP: продвинутые темы» продолжает ровно с этого места: устройство сообщений, транспорты в деталях, уведомления, состояние, подготовка к продакшену. А если хочется практики — подключите свой сервер к Claude Code и поработайте с ним день. Вы быстро увидите, каких инструментов не хватает, и это лучший источник задач для следующей версии.

Спасибо, что прошли курс.

Отметка хранится только в вашем браузере