MCP (1/3), общая инфа
Второй месяц собираюсь написать про MCP, так что больше не могу молчать, да к тому же его завезли уже почти во все вайб-IDE, включая Cursor (но с нюансами, об этом в третьей части).
Можно для начала рассмотреть диаграмму, а дальше будет кратко про MCP в целом (этот пост), про MCP-сервер - в частности (второй пост) и список текущих проблем + решений части из них (третий пост).
Итак, что такое MCP (Model Context Protocol)?
Это открытый протокол от Anthropic, стандартизирующий процесс общения между LLM и внешними системами и упрощающий построение агентских систем.
Какие это внешние системы могут быть?
Да любые, с которыми можно либо обмениваться данными, либо вызывать у них какие-то функции:
● базы данных, вики, Интернет
● таск-трекеры, мессенджеры, репозитории, почта
● файловая система, сервера, контейнеры
● reddit, youtube, прочие соцсети
● умные лампочки дома, кофеварка, кондиционер, кот
Словом, что угодно, что выставляет наружу хоть какой-то интерфейс, с которым можно программно взаимодействовать.
Какие проблемы решает MCP?
● делает универсальной интеграцию внешних систем с LLM - и это, пожалуй, самое важное, что позволило распространиться этому протоколу с такой скоростью
● обеспечивает доступ LLM к тем системам, которые могут быть чисто внутренними, даже не имеющим доступ в Интернет
● позволяет модели оставаться в пределах единого контекста при решении многоэтапной задачи
Какие компоненты нужны для работы с MCP?
Помимо внешней системы и LLM:
● MCP-хост - программа, которой нужно связать между собой LLM и внешнюю систему - Cursor/Cline/Claude Desktop/etc.
Как правило, это та программа, с которой непосредственно общается пользователь в режиме чата
● MCP-клиент - программный клиент протокола MCP для связи хоста и сервера, является частью хоста.
Вот тут есть список примеров хостов-клиентов и тех фич, которые они поддерживают: https://modelcontextprotocol.io/clients
● MCP-сервер - легковесная программа, выступающая в роли прокси/гейтвея, которая общается с внешней системой, используя её API. Сам же сервер наружу выставляет MCP-специфичный интерфейс, с которым взаимодействует хост.
Тут можно посмотреть на примеры серверов: https://modelcontextprotocol.io/examples
Что входит в интерфейс MCP-сервера?
Из существенного:
● Tools, инструменты - по сути, описания функций, которые могут быть вызваны клиентами.
Когда список инструментов передается LLM, она сама решает, какой из них вызвать для решения своей задачи
● Resources, ресурсы - описания и сами наборы данных, которые сервер может предоставить клиентам для чтения и включения в контекст для LLM.
К примеру, в случае БД это могут быть схемы таблиц, для файлового хранилища - списки файлов и содержимое самих файлов.
Предполагается, что ресурсы должны быть явно выбраны пользователем или клиентом для передачи модели, но не запрещается переложить выбор и на саму модель
● Prompts, промпты - заготовки промптов, которые пользователь может выбрать в хост-программе. Промпты могут быть параметризованными и принимать какие-то динамические значения от пользователя
Какие LLM можно использовать?
Заявляется, что протокол открытый и его можно использовать с любыми LLM, где есть Structured Outputs / Function Calling.
Тут Anthropic, конечно, лукавит, т.к. у них есть преимущество в том плане, что у них в принципе лучшие агентские модели и они вполне могли тюнить тот же Sonnet на работу именно с чем-то MCP-подобным.
Так что пока что для лучших результатов стоит выбирать именно модели Anthropic.
#ai #mcp
Второй месяц собираюсь написать про MCP, так что больше не могу молчать, да к тому же его завезли уже почти во все вайб-IDE, включая Cursor (но с нюансами, об этом в третьей части).
Можно для начала рассмотреть диаграмму, а дальше будет кратко про MCP в целом (этот пост), про MCP-сервер - в частности (второй пост) и список текущих проблем + решений части из них (третий пост).
Итак, что такое MCP (Model Context Protocol)?
Это открытый протокол от Anthropic, стандартизирующий процесс общения между LLM и внешними системами и упрощающий построение агентских систем.
Какие это внешние системы могут быть?
Да любые, с которыми можно либо обмениваться данными, либо вызывать у них какие-то функции:
● базы данных, вики, Интернет
● таск-трекеры, мессенджеры, репозитории, почта
● файловая система, сервера, контейнеры
● reddit, youtube, прочие соцсети
● умные лампочки дома, кофеварка, кондиционер, кот
Словом, что угодно, что выставляет наружу хоть какой-то интерфейс, с которым можно программно взаимодействовать.
Какие проблемы решает MCP?
● делает универсальной интеграцию внешних систем с LLM - и это, пожалуй, самое важное, что позволило распространиться этому протоколу с такой скоростью
● обеспечивает доступ LLM к тем системам, которые могут быть чисто внутренними, даже не имеющим доступ в Интернет
● позволяет модели оставаться в пределах единого контекста при решении многоэтапной задачи
Какие компоненты нужны для работы с MCP?
Помимо внешней системы и LLM:
● MCP-хост - программа, которой нужно связать между собой LLM и внешнюю систему - Cursor/Cline/Claude Desktop/etc.
Как правило, это та программа, с которой непосредственно общается пользователь в режиме чата
● MCP-клиент - программный клиент протокола MCP для связи хоста и сервера, является частью хоста.
Вот тут есть список примеров хостов-клиентов и тех фич, которые они поддерживают: https://modelcontextprotocol.io/clients
● MCP-сервер - легковесная программа, выступающая в роли прокси/гейтвея, которая общается с внешней системой, используя её API. Сам же сервер наружу выставляет MCP-специфичный интерфейс, с которым взаимодействует хост.
Тут можно посмотреть на примеры серверов: https://modelcontextprotocol.io/examples
Что входит в интерфейс MCP-сервера?
Из существенного:
● Tools, инструменты - по сути, описания функций, которые могут быть вызваны клиентами.
Когда список инструментов передается LLM, она сама решает, какой из них вызвать для решения своей задачи
● Resources, ресурсы - описания и сами наборы данных, которые сервер может предоставить клиентам для чтения и включения в контекст для LLM.
К примеру, в случае БД это могут быть схемы таблиц, для файлового хранилища - списки файлов и содержимое самих файлов.
Предполагается, что ресурсы должны быть явно выбраны пользователем или клиентом для передачи модели, но не запрещается переложить выбор и на саму модель
● Prompts, промпты - заготовки промптов, которые пользователь может выбрать в хост-программе. Промпты могут быть параметризованными и принимать какие-то динамические значения от пользователя
Какие LLM можно использовать?
Заявляется, что протокол открытый и его можно использовать с любыми LLM, где есть Structured Outputs / Function Calling.
Тут Anthropic, конечно, лукавит, т.к. у них есть преимущество в том плане, что у них в принципе лучшие агентские модели и они вполне могли тюнить тот же Sonnet на работу именно с чем-то MCP-подобным.
Так что пока что для лучших результатов стоит выбирать именно модели Anthropic.
#ai #mcp