📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Claude MCP на Примере. Как Устроен Коннектор

Bohomolov Lab12:39

Transcription

Сегодня я покажу, что такое MCP протокол, и не на словах, а на конкретном примере, которые я собрал сам за два вечера. Для этого я сделал страничку.html. Но не просто лендинг какой-нибудь. страница с моими курсами, которые затягивают данные из Firebase на Google. Еще я сделал файл Python Server, который выступает в роли нашего кастомного коннектора. мы с его помощью можем видеть и менять данные нашей HTML странички. Прямо через окно чата. И все это для того, чтобы четко уяснить и понять, что вообще такое MCP, для кого он. Как появился, и как выглядит, собственно, его код. в конце, конечно же, поговорим про токены, так как MCP их съедает намного больше, чем CLI, например. Но все равно остается самым популярным протоколом в контексте AI. Погнали разбираться.

MCP - это Model Context Protocol. Открытый стандарт, которые Tropic выпустил в ноябре 2024 года. Звучит супер технично, но суть простое. Другими словами, раньше было вот так, как на вот этой первой карточке моего первого слайда. есть, если ты хотел, чтобы I умел работать с твоим сервисом, ты писал интеграцию вручную, то есть читал документацию API, придумал промты, парсел. ответы, и что хуже всего, что у каждого сервиса был свой формат. Теперь разработчик описывает функции своего сервиса в одном формате, и любой EI-агент, который, конечно же, поддерживает MCP, а сейчас это практически все, может с ним работать. есть пишем один раз, и работает везде. Мне клод для объяснения привел аналогию с официантом в ресторане. Ситуация выглядело так. Раньше каждый гость должен был сам идти на кухню и разбираться, что там готовят, и как заказывать. А теперь есть официант. Он знает меню, что умеет кухня, и переводит ваш запрос в нужную форму. Вот, собственно, MCP сервер - это и есть вот этот официант между вами и вашими данными. Сейчас в экосистеме уже больше 13000 готовых MCP серверов для Notion для GitHub для фигма, баз данных, почты, календарей. Ну а сегодня мы посмотрим на то, как сделать свой MCP коннектор с нуля.

Вот из чего состоит мой учебный стенд, скажем так. Напоминаю, это не продакшен. Это именно учебный пример, но в нем все максимально близко к настоящему. Итак, первое - это - это Firebase. Вот так она выглядит внутри, если сюда зайти. То есть - это обычное база данных - и это отдельная большая огромная тема. для тех, кто далек от программирования объясняю, что те данные, которые мы зачастую видим на любой HTML-страничкой. Они не прописаны там жестко. Эти данные все время подтягиваются из какой-нибудь базы данных. Так вот, в нашем случае - вот это Firebase. Их есть много, но у всех принцип одинаковые. Нашим случаем - я выбрал Firebase. И вот здесь у меня есть две коллекции. Заказы и продукты. Как Вы понимаете - конечно же, я это вручную сюда не добавлял. Мне это все помог сделать клод. Самое главное, что эти данные живут в облаке, обновляются в реальном времени, и здесь хранятся, как бы курсы, цена, сколько мест осталось, и так далее.

Следующей частью в нашем примере является Python файл. Это, собственно, и есть вот этот MCP-сервер. есть, когда вам говорят MCP сервер, то по большому счету - это просто файл на питонь, и выглядит он вот так. Вот это и есть этот Python файл. Мой MCP-сервер. Он читает данные из Firebase, и предоставляет их cloud через 6 функций. Видите, вот эта строчка MCP-T-Tool. Это и есть вот это функция. Он правильно, кажется, называется декоратор. А вот этот - вот текст в тройных ковычках, это то, что клод читает, чтобы понять, что делает каждый инструмент. есть, видите их mcp-tool. Был первый, второй, и так далее. 6 инструментов. И вот здесь описание этого инструмента. Но файл, сам по себе - это текст на компьютере. Его нужно куда-то записать. Ему нужен сервер, который всегда включен. Для этого, я задеплоил его на Railway. Это бесплатное хостинг-платформа. Вот так это выглядит, если кому интересно. Я, честно говоря, сам первый раз им пользуюсь, не особо здесь ориентируюсь. Но с клодом. Как мы уже все знаем, не пропадешь. Главное из-за этого - то, что теперь мой Python сервер живет в интернете по конкретному адресу. И именно этот адрес я добавляю, как коннектор в клод.

Давайте покажу это для демонстрации. Давайте я зайду сюда в свои коннекторы, и удалю тот, который у меня уже здесь есть. Нажимаю вот здесь в правым верхнем Remove. И Remove. Выглядит это, значит, вот так. Заходим на страничку вот этого нашего удаленного сервера, на котором сидит вот этот, собственно, файл. Python файл, которые я вам показывал. И как только Вы разместите там свой файл, разных сервисах это будет выглядеть по-разному, но обязательно должно быть что-то вроде такого. Networking. И публичное, как бы ссылка, по которой мы можем обращаться. есть доступ к нашей аппликации через HTTP-протокол. вот мы копируем эту ссылку. Возвращаемся в клод. Заходим в коннекторы. Плюсик. Ad Custom Connector. И вот сюда, собственно, вставляем эту ссылочку на наш MCP-сервер. Как я уже сказал раньше. Это ссылка просто на файл, который находятся на каком-нибудь серверы в интернете. Сюда ее вставляем. И пишем имя. Пусть это будут курсы. Итак, немножко. Пришлось подправить ссылочку. Значит, впереди нужно добавить Https, и в конце через slash MCP. И тогда все будет работать. Вводим наше имя, пусть будут курсы. И нажимаем добавить. вот, как видите, в нашем коннекторе курсы. Есть вот эти 6 доступных инструментов. То есть, GET, All Products, Get Discount-Code. Это абсолютно те же функции, которые мы видели вот здесь коде вот этого Python файла. Наверняка здесь и иконку можно поменять, но сегодня не об этом.

Итак, вот наша страничка HTML. есть, как видите, это обычное страничкой HTML. Я думаю, что. Тех, кто смотрит, наверняка вы с этим хоть раз сталкивались. И этот html файл через JavaScript. Вот, как видите, вот здесь читает наши данные из облака из вот этой Firebase Базы данных. Ну и, собственно, сама Firebase база. Она. Выглядит вот так. И давайте, например, обратим внимание, пускай это будет в продуктах. Вот базовый курс по AI. И, не знаю, возьмем какую-нибудь цифру. Модули C. есть, это база данных - это как бы наш источник правды. И наша HTML страничка берет отсюда данные, и через секунду я покажу, что клот тоже берет эти данные отсюда же. и давайте можем еще посмотреть на заказы. И давайте посмотрим на их статусы. То есть здесь в первом заказе. Закончен. Второй. Ожидает. И в третьем процессе обработки. Эти все данные выдуманы. Ну, допустим, я уже стал таким крутым программистом, что у меня в день по три заказа моих курсов. И теперь благодаря нашему коннектору давайте спросим у Cloud, что он знает про эти наши курсы. Откроем новый чат и давайте для начала вставим вот такой вот промпт. Какие курсы есть в магазине и покажи с ценами и остатками мест. Нажимаем Отправить. Нажимаем всегда Разрешать. видите, он сразу понял, что нужно вызвать наш коннектор, наш инструмент. вот как видите, он прочитал всю информацию, которая находятся в нашей базе данных. есть, какие есть курсы, какие есть воркшопы, их цена, рейтинг, места, и так далее. Все точно как в нашей базе. Мы можем даже спросить, вот помните, там был один заказ со статусом ожидать. Давайте спросим про это. вот, он сразу же прочитал это в нашей базе данных. Вот заказ Order 002. Вот его цена, кто. И что заказывал человек. Прочитал дату, и так далее. Вот так это выглядит FireBase. Вот он второй этот заказ. И вот он. Наш Михаил. есть, понимаете, в обычных больших проектах. Вот эти данные все зачитываются в какой-нибудь CMR-системе. Где менеджер по продажам, например, видит все эти заказы. Ну а мы можем подключить клот, и использовать вместо CMS-системы. Вот так вот, просто чат с помощью чата спрашивать любые наши данные. Будь это интернет-магазин. Либо вот такая вот площадка по продаже курсов. если вы досмотрели до этого момента, то поставьте лайк под видео. Это поможет мне понять, что тема интересная, и нужно продолжать в том же духе.

И точно так работает в другую сторону. Если мы поменяем вот здесь в нашей базе данных. Пусть это будет либо прямо здесь, либо через какую-нибудь CRM, либо через какое-то приложение подключены к нашей базе данных. Давайте для начала проверим. И спросим уклона. Сколько свободных мест осталось в нашем воркшопе. Итак, пишет, что осталось 12 мест. И давайте тут же зайдем нашу базы данных, и поменяем это число 12 на пусть будет 5. Нажимаем Update. И наше число 5. Давайте спросим еще раз. А сколько теперь свободных мест для воркшопа. есть, как видите, он видит уже 5 мест было 12. Он тут же это отчитал, и статус изменился на то, что мало мест. И смотрите, как он логически мыслит. То есть он у нас уже подталкают, и уже пытаются нам помочь. Хотя мы его об этом даже и не просили. Помогает нам напомнить, чтобы Михаил не остался в пролете.

Теперь поговорим про одну вещь, про которую мы просто обязаны сказать. У MCP есть особенность, про которую не все говорят. Я при это прямо переписывался со своими подписчиками в Telegram. MCP есть токены. Очень много. Вот как это работает. Когда Вы подключаете MCP коннектор клод при каждом запросе загружает в контекст описания всех инструментов этого сервера. Еще до вашего первого сообщения. есть один хорошо задокументированный инструмент - это 200-500 токенов, и умножьте это например в нашем случае на 6 инструментов. Обратите, кстати, внимание во всех этих MCP коннекторов вот этих инструментов внутри не так уж и много. есть там понимают, чем это может обернуться. есть другой подход CLI. Это когда вы вместо MCP просто даете клод конкретную команду с конкретными параметрами. Вот 6 инструментов и разберись там сам. А выполни вот эту команду прямо сейчас. То есть для простых повторяющихся задач CLI дешевле в разы. Проводились исследования, и была показана разница в 302 раза. По токенам на одну и ту же задачу. тут возникает резонный вопрос, а зачем тогда вообще MCP? Во-первых, удобства для разработчиков. Один раз описали инструменты, и они доступны любому и агенту, который поддерживает этот протокол. Не нужно писать интеграции под каждую отдельную модель под каждое отдельное приложение. Во-вторых, MCP нужен там, где задача динамическая, где агент сам решает, что вызвать и в каком порядке. другими словами, это не выполнить команду, а разберитесь с ситуации. CLI, конечно же, побеждает на скорости и цене для повторяющихся задач, но MCP побеждает на гибкости агента. есть, это как бы не конкуренция, это разные инструменты для разных задач. Кстати еще одно наблюдение - хороший разработчик всегда считает токены. Не потому что жадный, а потому что это прямой индикатор эффективности. Если ваш агент тратит 70% контекстного окна на схемы инструментов, то что-то здесь не так. Держите активными только те коннекторы, которые нужны вам прямо сейчас, остальные выключайте.

Окей, давайте подведем итог. MCP - это стандарт для подключения внешних сервисов к И-агентам. И по сути, это просто Python файл с несколькими функциями, загруженными на хостинг. Если хотите попробовать сделать свой MCP сервер. Файл сервера, как мы уже разобрались, то, клод вам в этом поможет. если хотите сделать прям красиво и быстро, то я покопался на GitHub, поговорим с клодом. Собрал отзывы у Perplexity, и нашел классный скилл для клод под названием MCP Builder от ребят из Composio HQ. Это не мой skill - скажу сразу, но он сделан классно, много хороших отзывы. Ничего плохого об этом не слышал. Там и Python, и Type Script, и примеры. Ссылочка будет в моем Telegram канале. А ссылочка на телеграм-канал в описании под видео. Кто досмотрел до сюда, поддержите меня и жду Вас в комментариях, какие MCP коннекторы клод, вы больше всего используете. Какие сервисы. И как вам вообще видео - планах снять несколько подобных серии. Следующее - точно будет про скиллы. После skill скорее всего будут агенты, так что подписывайтесь, чтобы не пропустить. Цените себя, цените свой опыт. Пока.