# Практика по уровню данных MCP | Протокол MCP - 05

## Метаданные

- **Канал:** Andrey Sozykin
- **YouTube:** https://www.youtube.com/watch?v=zh9ixncXqPQ
- **Дата:** 19.04.2026
- **Длительность:** 14:12
- **Просмотры:** 1,045
- **Источник:** https://ekstraktznaniy.ru/video/51466

## Описание

Практика по уровню данных протокола MCP.

Как поддержать курс: 
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!

MCP Inspector - https://modelcontextprotocol.io/docs/tools/inspector
MCP сервер Context 7, сайт - https://context7.com/
MCP сервер Context 7 - https://mcp.context7.com/mcp
MCP сервер Hugging Face - https://huggingface.co/mcp
Статья Model Context Protocol (MCP): Landscape, Security Threats, and Future Research Directions - https://arxiv.org/abs/2503.23278
JSON Schema - http://json-schema.org/draft-07/schema#

Мой канал в telegram - https://t.me/a_sozykin
VK - https://vk.com/sozykin_it
Дзен - https://dzen.ru/asozykin

Если YouTube работает плохо, то видео можно смотреть на других площадках:
- Дзен - https://dzen.ru/video/watch/69e63afc7a6609727fcfedb1
- VK - https://vkvideo.ru/video-211221104_456239088

00:00 - Подключение к MCP серверу Context7
00:41 - Инициализация соединения MCP
02:10 - Просмотр инструментов

## Транскрипт

### Подключение к MCP серверу Context7 []

Привет, я Андрей Сазыкин. Это практическое занятие по курсу Протокол MCP. Сегодня с помощью MCP инспектор мы подробно рассмотрим, как устроен уровень данных в протоколе MCP. Мы начнём с подключения к удалённому MCP-серверу Context 7. Его мы уже рассматривали ранее. Ссылка на подключение выглядит вот таким образом. Она есть в описании видео. В MCP инспектор нажимаем connect. И для того, чтобы посмотреть, что происходит на уровне данных в протоколе MCP, увеличим нижнюю часть окна, раздел окна History, история. Видим, что первым

### Инициализация соединения MCP [0:41]

указан вызов метода Insalize. Напомню, что он используется для того, чтобы установить соединение между клиентом и сервером. MCP-инспектор показывает данные в сокращённом варианте. Вот запрос. Request. Здесь вы можете видеть, что нет ни версии Jсоon, ни идентификатора соединения. Также нет информации о клиенте. Всё это скрыто. Подробно показан только метод, который используется в запросе Initialize. Установка соединения. Затем идёт ответ сервера. Давайте его рассмотрим подробно. Также не указывается версия Jon RPC, идентификатор ответа, только содержательная часть. Capabilities возможности сервера. Есть только Tools, инструменты. Для Tools показана возможность list change true. Означает, что инструменты на этом сервере могут меняться, и сервер может отправить клиенту уведомление о том, что набор инструментов изменился. В этом случае клиенту лучше запросить список инструментов заново. Информация о сервере Context 7 версия и инструкция. Для чего языковая модель может использовать этот сервер? Следующий шаг. Нам нужно узнать, а какие же инструменты есть на сервере. Для этого в MCP

### Просмотр инструментов MCP сервера Context7 [2:10]

Inspector нажимаем кнопку Tools и нажимаем на кнопку List Tools. MCP инспектор показывает нам два инструмента сервера Context 7. Мы их ранее уже подробно рассматривали. Теперь давайте рассмотрим, как данные об этих инструментах передаются в MCP инспектор. Какой запрос отправляет наш клиент? Мы вызываем метод Tools list. прислать список всех инструментов, которые есть на сервере. Список параметров пустой. Вот ответ. Ну и давайте его увеличим. Сейчас мы ответ можем рассмотреть более подробно. Он содержит массив Tools. В нём два элемента: нулевой и первый. Нулевой - это инструмент Resolve Library ID. Второй Qy Docs. Найти идентификатор библиотеки. Отправить запрос к документации. Точно такой же список мы видим в интерфейсе MCP Инспектора. Давайте подробно рассмотрим, что сервер нам передал по каждому инструменту. Title. Как называется функция? Описание. Описание функции достаточно большое. В том числе здесь написано, что сначала нужно вызвать именно эту функцию, чтобы найти идентификатор библиотеки в context se только потом вызывать функцию quir docs. Quir documentation, запрос к документации, подробное описание результатов, что возвращается по каждой найденной библиотеке, и какие-то рекомендации, что нужно сделать, чтобы получать лучшие результаты. Подробно описано, как выполняется процесс выбора и описан формат выбора. Есть ещё три дополнительных элемента. Давайте их тоже рассмотрим. Инпутсхема говорит о том, какие параметры нужно передать при вызове метода Resolve Library ID. Первый параметр Quiry запрос, тип string и его подробное описание. Второй параметр library name, название библиотеки. также типстрин. Ну, здесь описание гораздо короче. Название библиотеки, которую мы хотим найти. Дальше поле Required, которое говорит о том, какие параметры являются обязательными. Здесь оба параметры и library name являются обязательными. И также есть поле схема, которая говорит о том, какая именно схема Jon. Если перейти по ссылке, то можно посмотреть, что представляет из себя эта jonхема. Ещё одно поле аннотация. Аннотация read only hint установлена в true. Что такое аннотация? По каждому инструменту показывается, какие у него есть особенности. Например, для инструмента Resolve Contex 7 Library ID установлена галочка read only. выполняется только чтение данных и три других галочки не установлены. Ну, точнее, используется значение по умолчанию. Destructive. Выполняю деструктивные методы. В аннотации нашего инструмента нет ничего на эту тему, поэтому по умолчанию галочка установлена. И патент и патентный метод, то есть можно его несколько раз вызывать с одними и теми же аргументами, и не будет дополнительных эффектов. Галочка не установлена. Open W инструмент может взаимодействовать с внешним миром. Так как в нашем описании ничего нет, то по умолчанию используется значение yes. Взаимодействие с внешним миром возможно. И последнее поле Execution Task support forbidden. Можно ли вызывать этот инструмент в виде задачи Task, которая выполняется длительное время? Такой вызов запрещён. Второй инструмент Quir Docs. Структура очень похожа, описание достаточно подробное. И в описании снова указано, что перед тем, как вызывать этот инструмент, нужно сначала вызвать Resolve Context 7 Library ID. Схема входных данных. Два параметра: Library ID Quiry, идентификатор библиотеки, вот его описание, и запрос. По запросу описание достаточно подробное. Есть примеры хороших описаний и плохих описаний. Оба параметра являются обязательными. Используется та же самая схема из аннотации. Подсказка read only hint используется только для чтения. И также этот метод нельзя вызывать в виде задач. Ну что такое задачи? Как они работают, мы рассмотрим более подробно дальше в курсе. Теперь давайте рассмотрим, что произойдёт, если мы вызовем какой-то из инструментов.

### Вызов инструмента MCP сервера Context7 [7:10]

Давайте мы вызовем инструмент Quiry Documentation. Нам нужно указать library ID. Мы уже знаем, как искать идентификатор библиотеки. Давайте перейдём на сайт Context 7 и найдём нужную нам библиотеку. Это библиотека Pandas. Вот она. Копируем идентификатор, вставляем вебсайт Spand data и пишем запрос. Как получить максимальное значение в столбцефрейма? Нажимаем на кнопку Run Tool, запустить инструмент. И вот здесь мы можем видеть результат работы инструмента. Но давайте посмотрим, что у нас передаётся на уровне данных. Клиент вызывает метод tools call. В параметрах указываем, какой именно инструмент мы хотим вызвать. Quy docs аргументы, параметры, которые мы указали. Идентификатор библиотеки и наш запрос. Вот это ответ от сервера. Полетент, один элемент. И здесь несколько примеров, как получить максимальное значение. именно то, что мы запрашивали. Причём примеров достаточно много. Языковая модель вполне может сориентироваться по этим примерам. Именно вот эта часть, скорее всего, и будет добавлена в контекст языковой модели для того, чтобы она смогла подготовить правильный ответ. Теперь давайте рассмотрим какой-нибудь другой MCP-сервер. И в качестве примера давайте

### Подключение к MCP серверу Hugging Face [8:50]

подключимся к серверу Hagin Face. Это библиотека, которая содержит большое количество моделей. Подключаемся и как всегда начнём с того, что посмотрим, как выполнялась установка соединения. Опять же, запросы передаются в сокращённом виде от клиента. Мы видим только метод initialize, запрос на инициализацию соединения. Вот ответ от сервера. У сервера Hagenface больше возможностей, чем у сервера Contex 7. Кроме инструментов есть также промты, но зато Котек 7 не поддерживает изменения промтов и инструментов в процессе работы. Информация о сервере Huginface MCP сервер. Название Huginface. Есть иконка, которую можно показать, если это поддерживает клиент MCP. и адрес сайта. Также есть достаточно подробная инструкция, для чего можно использовать Huginface. Давайте начнём с инструментов. Выберем закладку Tools List Tools. И здесь видим, что инструментов не два, а больше. Давайте посмотрим, как это передаётся на уровне данных. Клиент вызывает метод Tools list без

### Просмотр инструментов MCP сервера Hugging Face [10:12]

параметров. И в ответ сервер передаёт массив Tools, где достаточно много инструментов. По каждому инструменту, ну, давайте возьмём вот этот инструмент. Поиск статей, есть описание, есть схема, что нужно передать, чтобы получить информацию о статье. Сам запрос, ограничение по количеству результатов. По умолчанию используется 12. И есть такой параметр конца и only только сокращённая информация возвращает краткую информацию в два предложения по каждой статье. Из всех параметров обязательным является только первый quyum. Что именно мы хотим найти? Не обязательно показывать максимальное количество результатов и consise only. Аннотации здесь уже три пункта. Read only hint true destructive hint. Деструктивного поведения нет и open world hint подключение к открытому миру. Да, раздел execution тоже нельзя запускать инструмент в виде задач. Давайте посмотрим, как выглядит наш метод в MCP Инспекторе. Название PayPй, описание, подсказки установлено Redonly. Destructive сброшено, impent установлено и аргумент обязательный стоит звёздочка resultчение по умолчанию 12 и consise only. Ну, мы уже смотрели, как вызываются инструменты. Давайте лучше на примере haги Face посмотрим, как работать с промтами. Перейдём в

### Просмотр промтов MCP сервера Hugging Face [11:58]

закладку промты. Нажимаем listompts. Получаем список промтов, которые можно использовать на HAGENF MCP сервере. Давайте посмотрим, как это передаётся на уровне данных. Клиент передаёт запрос prompts lists без параметров и ответ. Список промтов. Для каждого промкта указывается его название, описание и аргументы. Ну вот это промт имя пользователя. Prompt pappa summery сгенерировать описание статьи. Нужно показать идентификатор статьи. И есть другие промты, описание модели, описание набора данных. Давайте воспользуемся промтом

### Получение промта с MCP сервера Hugging Face [12:42]

PayPal Summary. Для него нужно указать идентификатор статьи. В качестве примера давайте возьмём статью по MCP. Вот различные форматы, в каком виде указывается идентификатор, в том числе можно указывать номер статьи. Нажимаем get prompt. Ну и здесь мы получаем описание статьи. Давайте рассмотрим, как это происходит на уровне данных. Клиент вызывает метод prompts get, название промта и аргумент PayPть. Ответ: Description, описание статьи. Вот с таким номером само сообщение, ну, сообщение достаточно большое. Здесь есть название статьи, авторы, ссылка на эту статью, её аннотация, связанные модели - это такие модели, где в ключевых словах находится MCP. Указано несколько моделей со ссылками на HAENF. И в конце сам запрос, пожалуйста, подготовь самри этой статьи и связанных ресурсов. Итак, теперь вы знаете, как

### Итоги [13:53]

работает уровень данных протокола MCP и как смотреть сообщение уровня данных в MCP Инспектор. На этом практическое занятие закончено. Спасибо, что смотрели. До свидания. y
