MCP на Python: создаём свой сервер инструментов

Практический курс по MCP на Python: вы создадите два собственных сервера инструментов, подключите к ним клиентов, научитесь проверять вызовы, находить ошибки и писать тесты с pytest. Пять модулей, видеолекции и самостоятельный проект — бесплатно, без платных моделей и API-ключей.
Начальный уровень
4–5 часов в неделю

Чему вы научитесь

  • Объяснять назначение MCP и различать роли приложения, клиента, сервера и инструмента
  • Подготавливать Python-проект с MCP SDK и запускать собственные локальные серверы инструментов
  • Регистрировать Python-функции как MCP-инструменты и определять их аргументы и возвращаемые результаты
  • Создавать сервер заказов с инструментами поиска заказа по идентификатору и расчёта его стоимости
  • Самостоятельно разрабатывать отдельный сервер доставки с поиском тарифа и расчётом стоимости по зоне и весу
  • Читать учебные данные из JSON-файлов и использовать их в предметной логике MCP-инструментов
  • Описывать обязательные аргументы и типы данных инструментов и проверять входные параметры
  • Подключать Python-клиента к MCP-серверу через stdio с запуском сервера отдельным процессом
  • Получать список доступных инструментов через MCP-клиент и проверять их обнаружение
  • Вызывать инструменты заказов и доставки из Python-клиента и разбирать возвращаемые результаты
  • Проверять правильность расчётов стоимости заказа и доставки на конкретных входных данных
  • Обрабатывать неизвестные идентификаторы заказов, несуществующие зоны доставки и недопустимый вес
  • Отличать ошибки проверки аргументов от ошибок исполнения инструмента и анализировать неудачные вызовы
  • Писать позитивные и негативные тесты MCP-инструментов с помощью pytest
  • Проверять взаимодействие клиента и сервера через реальный stdio-процесс, а не только прямой вызов Python-функции
  • Самостоятельно диагностировать неверную стоимость доставки по аргументам вызова и фактическим результатам инструментов
  • Подтверждать исправление повторными расчётами, тестами pytest и проверкой stdio-взаимодействия

О курсе

MCP на Python: учебный проект и практический результат

🧭 Отправная точка

Клиент находит инструмент calculate_delivery_cost на MCP-сервере и вызывает его, но возвращённая стоимость доставки отличается от ожидаемой. Чтобы разобраться, нужно проверить аргументы запроса, данные о тарифе и результат вычисления. Такой случай вы самостоятельно исследуете в конце курса.

MCP (Model Context Protocol) позволяет приложениям получать список доступных инструментов и вызывать их через единый протокол. На курсе вы создадите два небольших MCP-сервера на Python, напишете клиентов для работы с ними и научитесь проверять успешные и ошибочные вызовы.

Сначала вместе с курсом разработаете сервер заказов: поиск заказа по идентификатору и расчёт его стоимости. Затем самостоятельно создадите сервер доставки с поиском тарифа и расчётом цены по зоне и весу. У каждого сервера будет своя логика и локальный JSON-файл с данными.

🎯 Цель курса — научиться самостоятельно создавать MCP-инструменты, подключать к ним Python-клиентов, находить ошибки и подтверждать правильность работы тестами.

Два самостоятельных MCP-сервера в учебном проекте

⚙️ Что вы будете делать

  • ⚙️ Создавать MCP-серверы и инструменты. Зарегистрируете функции get_order и calculate_order_total для заказов, затем самостоятельно реализуете get_tariff и calculate_delivery_cost для доставки. Разберёте аргументы, возвращаемые значения и чтение данных из JSON.

  • 🔗 Подключать MCP-клиентов. Напишете Python-клиентов, которые получают список инструментов и вызывают их с нужными аргументами. Проверите запуск сервера отдельным процессом и обмен через stdio.

  • 🧩 Обрабатывать неверные данные и ошибки. Исследуете обязательные аргументы, их типы, неизвестные заказы и зоны доставки, недопустимый вес. Научитесь отличать ошибку проверки входных данных от ошибки при выполнении инструмента и проверять результат на стороне клиента.

  • 🧪 Писать тесты и разбирать неисправности. Добавите pytest-проверки для обоих серверов: обнаружение инструментов, правильные расчёты и ожидаемые отказы. Отдельно проверите взаимодействие через stdio, а в финале восстановите неисправный вызов и повторите тесты.

🔥 Чем отличается курс

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

Вы проверите работу инструментов двумя способами. Сначала тесты обращаются к MCP-серверу через клиент SDK. Затем отдельная проверка запускает оба сервера как самостоятельные процессы и связывается с ними через stdio. Так вы увидите, работает ли взаимодействие за пределами прямого вызова Python-функции.

Ошибочные запросы входят в обычную практику: неизвестный заказ, неверная зона, неподходящий тип аргумента или недопустимый вес должны давать ожидаемый результат ошибки. Тесты будут проверять ответы MCP-клиента и конкретные значения, в том числе стоимость заказа и доставки.

Курс бесплатный: 5 модулей, 21 урок, видеолекции, текстовые объяснения и самостоятельные задания. Для практики достаточно Python 3.12 и Git. Все серверы работают локально, без Docker, платных языковых моделей и API-ключей. Результаты заданий вы проверяете по условиям и тестам, без ручной рецензии.

🎯 Итоговый проект

В собственном GitHub-репозитории у вас будут два MCP-сервера — заказов и доставки, по два инструмента в каждом, Python-клиенты и автоматические тесты.

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

В результате вы сможете создавать MCP-инструменты для собственных задач, подключать их к приложениям и самостоятельно проверять корректность вызовов.

🧪 Поддержка

🧪 Самопроверка вместо ожидания ручной рецензии. Вы сверяете результат по критериям задания, ответам и предусмотренным в курсе локальным проверкам. Разборы самостоятельных упражнений доступны там, где они предусмотрены программой.

Индивидуальная проверка работ преподавателем и персональные консультации в этом курсе не предусмотрены. Формат рассчитан на самостоятельное прохождение.

🚀 О XNova

XNova — практические курсы и учебные проекты для разработчиков, тестировщиков и инженеров. Мы разбираем технологии на работающих примерах: с кодом, наблюдаемым результатом и объяснением инженерных решений.

🔗 xnova.dev — другие курсы и материалы XNova.

📬 Контакты и сообщество

Продолжить знакомство с XNova, следить за новыми материалами или задать организационный вопрос можно здесь:

  • 📣 Telegram-канал: @xnova_dev — анонсы курсов, статьи и новости проекта.
  • 💬 Написать XNova: @xnova_contact — контакт для вопросов о курсах и проекте.
  • ✉️ Почта: contact@xnova.dev — если удобнее написать письмом.
  • 💻 GitHub: xnova-tech — открытые учебные проекты и примеры.

Для кого этот курс

— Python-разработчики, которые хотят разобраться в MCP и научиться предоставлять собственные функции и данные через сервер инструментов, а затем вызывать их из Python-клиента. — QA/AQA-инженеры, которые уже работают с Python и хотят проверять контракты MCP-инструментов, корректность аргументов, результаты вызовов и обработку ошибок автоматическими тестами. — Backend-разработчики, которым нужно понять взаимодействие MCP-клиента и сервера на уровне реального процесса и транспорта stdio и научиться разрабатывать инструменты с проверяемой предметной логикой.

Начальные требования

📚 Что нужно знать

  • Основы Python: функции, типы данных, словари, импорты и обработка ошибок.
  • Базовая работа с Git и терминалом: создавать файлы, запускать Python-скрипты и выполнять простые команды.
  • JSON: понимать, как устроены небольшие файлы с данными.

Знать MCP заранее не требуется. С устройством протокола, созданием инструментов и подключением клиента познакомимся в самом курсе.

🧰 Что понадобится

  • Python 3.12 и возможность устанавливать библиотеки.
  • Git и аккаунт GitHub для своего учебного проекта.
  • Windows, macOS или Ubuntu Linux — настройка окружения описана в первых уроках.

Курс бесплатный. Все практические задания выполняются локально; платные модели, API-ключи, Docker и облачные сервисы не нужны.

Как проходит обучение

🧩 От первого инструмента до двух работающих MCP-серверов. В пяти модулях и 21 уроке видеолекции и текстовые разборы чередуются с вопросами и практикой.

  • 🛠️ Собираете по шагам: создаёте сервер заказов, подключаете собственного клиента и проверяете вызовы инструментов.
  • 🚀 Пробуете самостоятельно: разрабатываете сервер доставки по требованиям задания и разбираетесь с ошибками вызовов.
  • ✅ Подтверждаете результат: запускаете тесты pytest и изучаете решения самостоятельных упражнений после своей попытки.

Программа курса

В курс входят

  • 22 урока
  • 38минут видео
  • 22 теста
загружаем...

Наши преподаватели

Что вы получаете

  • Собственный GitHub-проект с двумя отдельными MCP-серверами на Python для заказов и доставки
  • Сервер заказов с инструментами get_order и calculate_order_total и чтением учебных данных из JSON
  • Самостоятельно реализованный сервер доставки с инструментами get_tariff и calculate_delivery_cost
  • Python-клиенты для получения списка инструментов и выполнения вызовов обоих серверов через MCP
  • Проверки аргументов и обработка ошибок для неизвестных заказов, тарифов, зон доставки и некорректного веса
  • Набор автоматических тестов pytest для обнаружения инструментов, успешных расчётов и ошибочных вызовов
  • Проверенный запуск MCP-серверов отдельными процессами с обменом через stdio
  • Исправленный итоговый сценарий расчёта доставки с подтверждением двух контрольных результатов и повторным запуском тестов

Сколько стоит обучение

Бесплатно

Расскажите о курсе друзьям

Бесплатно