Пишем MCP-клиент

Урок 66 из 89 курса «Claude в Amazon Bedrock»: официальный курс Anthropic Academy (Антропик) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

Кадр из видеоурока

О чём урок

После того как серверная часть нашего проекта MCP (Modular Claude Project) успешно запущена и функционирует, следующим логичным шагом является создание клиентской стороны. Клиент — это ключевой компонент, который позволяет вашему приложению взаимодействовать с сервером MCP и получать доступ ко всей его функциональности. Он служит мостом, через который ваше приложение может отправлять запросы и получать ответы, используя возможности, предоставляемые сервером. Прежде чем углубляться в детали реализации, важно прояснить один аспект проектов MCP. В реальных условиях вы, как правило, будете разрабатывать либо клиентскую, либо серверную часть MCP, но не обе одновременно. В рамках данного учебного материала мы создаем обе стороны, чтобы наглядно продемонстрировать их совместную работу и взаимодействие. Клиентская часть MCP состоит из двух основных компонентов, работающих в тандеме: Пользовательский класс (Custom Class): Это специально разработанный нами класс, который значительно упрощает использование сессии. Он предоставляет удобный интерфейс для взаимодействия с сервером. Фактическое подключение к серверу: Эта часть реализуется с помощью официального MCP Python SDK, который обеспечивает низкоуровневую связь с сервером. Сессия клиента отвечает за низкоуровневую коммуникацию, но требует тщательной очистки ресурсов при завершении работы вашей программы. Неправильное управление ресурсами может привести к утечкам памяти или другим проблемам. Именно поэтому мы оборачиваем эту функциональность в наш собственный класс. Он автоматически управляет процессом очистки, гарантируя, что все ресурсы будут корректно освобождены, когда они больше не нужны, что делает код более надежным и простым в использовании. Вспомните общую схему работы нашего приложения. Клиент играет ключевую роль в двух критически важных моментах взаимодействия, особенно когда речь идет о работе с Claude через Amazon Bedrock. Наш код интерфейса командной строки (CLI) использует клиент для выполнения следующих задач: Получение списка доступных инструментов для Claude: Перед тем как Claude сможет использовать какие-либо внешние функции, ему необходимо знать, какие инструменты доступны. Клиент запрашивает этот список у сервера MCP и передает его Claude в формате, который он понимает.

План урока

  1. Реализация клиентской части
  2. Архитектура клиентской части
  3. Роль клиента в приложении
  4. Реализация основных функций клиента
  5. Тестирование клиентской части
  6. Важные различия в схемах инструментов
  7. Комплексное тестирование с Claude

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды