MCP-клиенты
Чему научитесь
Видео 4:56 и текст урока
К концу урока вы сможете:
- объяснить роль MCP-клиента;
- назвать способы связи клиента и сервера (транспорты);
- пройти весь поток сообщений от вопроса пользователя до ответа Claude.
Видео и текст урока.
Смотреть урок на Skilljar MCP clients · 4:56MCP-клиент — мост между вашим сервером и MCP-серверами. Это ваша точка доступа ко всем инструментам, которые даёт MCP-сервер. Когда нужно воспользоваться внешними инструментами или сервисами, клиент берёт на себя передачу сообщений и все детали протокола.
Независимость от транспорта
Одна из сильных сторон MCP — независимость от транспорта (transport agnostic). Проще говоря, клиент и сервер могут общаться разными способами. Самая распространённая схема — клиент и сервер на одной машине, общаются через стандартный ввод/вывод.
Но вы не ограничены этим вариантом. MCP-клиенты и серверы могут соединяться и через:
- HTTP;
- WebSockets;
- другие сетевые протоколы.
Типы сообщений
После подключения клиент и сервер обмениваются сообщениями определённых типов, заданных в спецификации MCP. Основные:
ListToolsRequest / ListToolsResult: клиент спрашивает сервер «какие у тебя инструменты?» и получает список доступных инструментов.
CallToolRequest / CallToolResult: клиент просит сервер выполнить конкретный инструмент с определёнными аргументами и получает результат.
Полный пример потока
Вот как все части работают вместе в реальном сценарии. Пользователь спрашивает «What repositories do I have?» — полный поток обмена:
Всё начинается, когда пользователь отправляет запрос на ваш сервер. Сервер понимает, что прежде чем делать запрос, Claude нужно передать список доступных инструментов.
Ваш сервер просит у MCP-клиента инструменты; клиент отправляет MCP-серверу ListToolsRequest и получает в ответ ListToolsResult.
Теперь у вашего сервера есть всё для первого запроса к Claude — и вопрос пользователя, и доступные инструменты.
Claude изучает инструменты и решает, что для ответа нужно вызвать один из них. Он отвечает запросом на вызов инструмента.
Ваш сервер просит MCP-клиента выполнить запрошенный Claude инструмент. MCP-клиент отправляет CallToolRequest MCP-серверу, а тот делает настоящий запрос к GitHub.
GitHub возвращает данные о репозиториях. Они идут обратно через MCP-сервер в виде CallToolResult, затем к MCP-клиенту и, наконец, к вашему серверу.
Ваш сервер отправляет результаты инструмента обратно Claude в следующем сообщении. Теперь у Claude есть всё, чтобы составить полный ответ.
Наконец, Claude отвечает оформленным ответом, и ваш сервер передаёт его пользователю.
Да, шагов много, но у каждого компонента своя понятная роль. MCP-клиент скрывает сложность общения с сервером, позволяя сосредоточиться на логике приложения. Когда мы будем реализовывать свои MCP-клиент и сервер, вы увидите, как всё это складывается на практике.
Дальше
Дальше — практика: учебный проект с CLI-чатом, своим MCP-клиентом и своим MCP-сервером.
Оригинал урока: MCP clients.