Menu
O mnie Kontakt

Mike Tomala w swoim najnowszym odcinku na YouTube zajął się tematem Model Context Protocol (MCP). To interesująca koncepcja, która pozwala na komunikację między modelami językowymi a serwerami. Mike wyjaśnił, że sama sztuczna inteligencja nie jest w stanie wykonać działań w rzeczywistości, takich jak wyłączanie świateł, bez dodatkowych narzędzi. MCP jest formatem, który łączy sztuczną inteligencję z serwerem, umożliwiając wykorzystanie różnych narzędzi, które konkretne serwery mogą oferować. W ten sposób AI może z powodzeniem wykonywać polecenia powiązane z rzeczywistymi zadaniami.

Z filmu dowiadujemy się, że stworzenie serwera MCP jest dość proste. Mike podzielił się przykładem, w którym stworzył dwa podstawowe narzędzia: włącz i wyłącz światło. Każde z nich wymagało odpowiedniego opisu, aby model językowy mogł zrozumieć ich funkcje. Używając API Smart, Mike zademonstrował jak te narzędzia mogą współpracować, aby w rzeczywistości kontrolować oświetlenie. Mike wspomniał również o tym, że można skombinować funkcjonalności i stworzyć jedno narzędzie, które będzie obsługiwało kilka parametrów, co ogranicza zużycie tokenów.

Mike zademonstrował również, jak za pomocą kursora AI utworzyć serwer MCP w stylu Wipe Coding. Dzięki odpowiednim ustawieniom i kodowi, Mike udowodnił, że każdy może stworzyć własny serwer dostosowany do swoich potrzeb, korzystając z dostępnych zasobów. Opisał, jak skonfigurował swój projekt w TypeScript i jakie były wymogi kluczowe do zrealizowania funkcji. Przykładowo, stworzył funkcjonalności zarządzające kolorami żarówki, wszechstronnie definiując parametry przekazywane do serwera.

Po skonfigurowaniu serwera, Mike zaprezentował, jak używać specjalnego inspektora do debugowania, aby upewnić się, że wszystko działa. Dzięki interfejsowi można było przetestować połączenie, a także sprawdzić, czy narzędzia do zmiany światła są dostępne. Mike zakończył odcinek, pokazując, jak poprzez aplikację CLOT Desktop można połączyć swój serwer MCP z AI, co pozwala sztucznej inteligencji na interakcję z fizycznym środowiskiem.

Podsumowując, Mike Tomala dostarczył praktycznego poradnika na temat Model Context Protocol oraz jego zastosowania do tworzenia serwerów automatyki domowej. Na chwilę obecną film na YouTube ma 3076 wyświetleń oraz 146 polubień, co świadczy o dużym zainteresowaniu tą tematyką. Jeśli kogoś fascynuje integracja AI z codziennym życiem, ten materiał jest wart uwagi oraz implementacji własnych rozwiązań w oparciu o MCP.

Toggle timeline summary

  • 00:00 Mike pyta o MCP, a mówca planuje wyjaśnić to i pokazać, jak stworzyć osobisty serwer MCP.
  • 00:04 Mówca podkreśla, że AI nie może samodzielnie wykonać wszystkich zadań.
  • 00:16 AI nie może wyłączyć świateł, co wywołuje dyskusję na temat ograniczeń AI.
  • 00:25 Mówca wprowadza Duże Modele Językowe (LM) jako odwołanie do AI.
  • 00:43 MCP, czyli Model Context Protocol, jest wyjaśnione jako format komunikacyjny dla AI.
  • 01:02 Każdy serwer MCP definiuje własne narzędzia dostępne do użycia przez model językowy.
  • 01:09 Mówca sugeruje zaplanowanie pierwszego serwera MCP z narzędziami do włączania i wyłączania świateł.
  • 01:25 W ramach narzędzi, można wykonać dowolny kod, w tym połączenia API.
  • 01:49 AI musi używać odpowiednich narzędzi w odpowiednich momentach i dostarczać poprawnie sformatowane parametry.
  • 02:10 Mówca wyjaśnia, jak zainicjować rozmowę z AI, podkreślając konteksty wiadomości.
  • 02:27 Ważne jest ograniczenie liczby dostępnych narzędzi, aby zmniejszyć zużycie tokenów.
  • 03:06 Funkcja Wywołania Funkcji została wprowadzona jako cecha, która pozwala AI skutecznie używać narzędzi.
  • 03:45 Mówca przygotowuje się do pokazania, jak stworzyć osobisty serwer za pomocą edytora kursorów AI.
  • 04:41 Podano instrukcje korzystania z API Tuya i powiązanych narzędzi do konfiguracji serwera.
  • 08:01 Serwer jest budowany za pomocą poleceń npm, tworząc niezbędne pliki.
  • 08:14 Narzędzie inspektora zostało wprowadzone do debugowania i testowania serwera MCP.
  • 08:35 Stan połączenia z serwerem MCP jest weryfikowany za pomocą komunikatu o sukcesie.
  • 09:19 Narzędzie do kontrolowania świateł jest symulowane i testowane za pośrednictwem serwera MCP.
  • 11:26 Mówca konfiguruje JSON dla serwera MCP w aplikacji CLOT Desktop.
  • 12:00 Po zapisaniu ustawień i ponownym uruchomieniu, narzędzia są weryfikowane pod kątem poprawnej konfiguracji.
  • 12:42 Mówca demonstruje pomyślne działanie narzędzia do kontrolowania świateł za pomocą AI.
  • 13:15 Mówca dyskutuje o rozwijaniu zaawansowanych możliwości serwera MCP dla WordPress.
  • 13:44 Publiczność jest zachęcana do zapisywania się na listę oczekujących na zaawansowany serwer MCP.
  • 13:59 Mówca zaprasza widzów do interakcji poprzez komentarze, dzieląc się swoimi doświadczeniami z MCP.

Transcription

Mike, wszędzie słyszę o MCP, ale co to właściwie jest? Wiesz co, to może ci to najpierw rozrysuję, żebyś lepiej zrozumiał, a później pokażę ci jak zrobić własny serwer MCP, okej? Super! To do dzieła. Sama sztuczna inteligencja nie potrafi wszystkiego. Gdy poprosisz AI, aby zgasiła światło, bo idziesz spać, to sztuczna inteligencja tego nie zrobi. Jak mówimy sztuczna inteligencja, to zazwyczaj odnosimy się do modelu językowego, czyli Large Language Model, w skrócie LM. To jak sztuczna inteligencja może użyć słów do wyłączenia światła? Aby zamienić słowa w czyny, musimy wyposażyć sztuczną inteligencję w dodatkowe narzędzia. I tutaj z pomocą przychodzi MCP. MCP, czyli Model Context Protocol, to format komunikacji między modelem językowym, a specjalnie przygotowanym serwerem. Sztuczna inteligencja może być podłączona do wielu różnych serwerów MCP jednocześnie, choć istnieją pewne limity, ale o tym później. Każdy serwer definiuje własne narzędzia, które mogą zostać wykorzystane przez model językowy. Zaplanujmy teraz swój pierwszy serwer MCP. Możemy przygotować np. dwa narzędzia. Włącz światło oraz wyłącz światło. Każde narzędzie musi zostać opisane w taki sposób, aby model językowy mógł zrozumieć jego działanie i w odpowiednim momencie zdecydować o wykorzystaniu danego narzędzia. We wnętrzu tych narzędzi możemy wykonać dowolny kodw. W tym przypadku wykonamy połączenie do API Smart żarówki, aby ją zgasić albo zapalić. Co więcej, narzędzia mogą określać także różne parametry. Możemy stworzyć kolejne narzędzie z miń kolor. W tym narzędziu określimy wymagany parametr o nazwie nowy kolor. Sztuczna inteligencja będzie musiała nie tylko w odpowiednim momencie zdecydować, czy użyć tego narzędzia, ale także przekazać odpowiednio sformatowany nowy kolor światła w postaci szesnastkowej. Analogicznie jak w poprzednich narzędziach, może nastąpić wtedy request do API Smart żarówki, aby zmieniła kolor. Ok, czyli mogę sobie zrobić takie narzędzia do wszystkiego i zbudować swój smart home, tak? I tak, i nie. Wróćmy do naszego serwera. Gdy rozpoczynasz czat ze sztuczną inteligencją, to informacja o dostępnych narzędziach jest dołączana do kontekstu wiadomości. Po prostu model językowy musi wiedzieć, jakie narzędzia ma dostępne. Przekazanie tej informacji zwiększa zużycie tokenów, dlatego warto ograniczyć liczbę narzędzi dostępnych na serwerze MCP. Zamiast tworzyć osobne narzędzia do podobnych czynności, możesz zrobić jedno narzędzie, które będzie przyjmowało różne parametry i na ich podstawie wykonywać różne czynności. Stwórzmy więc jedno narzędzie – zmień światło, które będzie wymagało dwóch parametrów nowy kolor oraz stan, który określi, czy światło ma zostać włączone czy wyłączone. Gdy w czacie napiszesz prompt idę spać, zgaś światło, to model wiedząc o dostępnych narzędziach może zdecydować się na ich użycie. Za pomocą specjalnej funkcjonalności, która nazywa się Function Calling, model językowy określa narzędzie, które może wykorzystać do osiągnięcia stawianego przed nim celu. Następuje wtedy połączenie do serwera MCP. Komunikacja między czatem, czyli klientem MCP, a serwerem odbywa się poprzez standard JSON-RPC 2.0. W odcinku o anatomii agentów AI opowiadałem o możliwościach modeli językowych, która nazywa się Function Calling. Dzięki tej funkcji możliwe jest wykorzystanie narzędzi oraz przekazanie do nich właściwych parametrów. Jeśli jeszcze nie oglądałeś tamtego odcinka, to zachęcam do obejrzenia. Dobra, już wiem jak to działa. Pokażesz teraz jak zrobić własny serwer? Pewnie, że pokażę, ale nie ja stworzę kod tego serwera, a zrobi to edytor kursora AI, czyli stworzymy ten serwer w stylu Wipe Coding. Otwieram teraz zupełnie nowy projekt w kursor AI i wklejam przygotowany wcześniej prompt w okienko czatu. W prompcie opisałem kilka wymagań odnośnie serwera MCP, który chcę otrzymać. Chciałbym, aby została wykorzystana oficjalna biblioteka Model Context Protocol. Serwer ma być oczywiście zgodny z dokumentacją MCP, dlatego podałem link do dokumentacji. Podaję informację o narzędziu, którą jeszcze za chwilę rozbuduję, oraz np. to, że projekt ma być stworzony w TypeScript. W dalszej części podaję więcej szczegółów na temat narzędzia Zmień Światło. Opisuję wymagane parametry, czyli nowy kolor oraz stan, a także w prostych słowach opisuję, jak ma działać to narzędzie. Poniżej umieściłem jeszcze informacje na temat połączenia do API Smart Żarówki. Skorzystam tutaj z chmury od firmy Tuya. Swoim narzędziu MCP możesz jednak skorzystać z dowolnego API lub po prostu wykonać dowolny kod. Na końcu umieściłem jeszcze kilka dodatkowych wymagań. Upewnię się jeszcze teraz, czy mamy wybrany odpowiedni model, czyli CLOUD 3.7 SONIC i możemy rozpocząć generowanie. Jeśli nie masz doświadczenia z Cursor AI, to polecam obejrzeć inny film na moim kanale. Pokazywałem w nim, jak działa Cursor AI i jak w czterech prostych krokach zrobić fullstackową aplikację. Generowanie aplikacji będzie chwilę trwało, a w międzyczasie pokażę Ci fajną funkcję Cursor AI, którą niedawno odkryłem. Wejdź do zakładki FEATURES w ustawieniach kursora i przeskroluj nieco niżej. Znajdziesz tutaj opcję PLAY SOUND ON FINISH. Dzięki temu usłyszysz delikatny sygnał dźwiękowy, gdy generowanie kodu się zakończy. O, tak jak teraz. Generowanie kodu zostało zakończone i według AI Project jest gotowy do użycia. Zrobię jeszcze szybkie review kodu. Zacznę od pliku package.json i sprawdzę, czy zostały zainstalowane właściwe zależności. Wszystko wygląda ok, więc przejdźmy do głównego pliku serwera mcp. Na początku mamy kod związany z integracją z API TOOIA do zarządzania smart żarówką. Do połączenia z API muszą skonfigurować odpowiednie klucze w pliku .env. W dalszej części mamy inicjalizację serwera mcp. Jako parametry podajemy nazwę serwera oraz numer wersji. W dalszej części wygenerowana została funkcja pomocnicza do zmiany zapisu koloru z postaci szesnastkowej do postaci HSV. Poniżej znajduje się kolejna funkcja pomocnicza kontrolująca żarówkę. W ramach tej funkcji następuje połączenie do API TOOIA oraz wysłanie odpowiednich komend, tak aby wyłączyć bądź włączyć żarówkę lub zmienić jej kolor. W tym miejscu muszę dokonać małej modyfikacji kodu wygenerowanego przez AI. Moja żarówka jest kompatybilna z wersją drugą komendy do zmiany koloru żarówki. Sztuczna inteligencja mogła tego nie wiedzieć. W dalszej części znajduje się bardzo ważny kod związany bezpośrednio z serwerem mcp. Metoda TOOL definiuje narzędzia serwera mcp. Ta metoda przyjmuje trzy parametry. Pierwszy z nich to nazwa narzędzia. Kolejny to definicja parametrów, jakie muszą zostać przekazane do narzędzia. Mamy tutaj zdefiniowane dokładnie te parametry, które zadeklarowaliśmy w prompcie, czyli nowy kolor oraz stan. Wygenerowany kod korzysta z biblioteki z IOD do walidacji schematów, dlatego zapis może wydawać się nieco skomplikowany. Trzeci parametr to funkcja wykonywana podczas uruchamiania tego narzędzia. Ta funkcja jako argumenty przyjmuje zdefiniowane dla narzędzia parametry. W naszym narzędziu wykorzystana została funkcja pomocnicza kontroluj żarówkę, która dokonuje włączenia bądź wyłączenia światła lub zmiany jego koloru. Każde narzędzie musi zwrócić odpowiednio sformatowany obiekt z treścią wiadomości zwrotnej. Wygenerowany kod zawiera także prostą obsługę błędów. Poniżej znajduje się jeszcze kod związany z uruchomieniem i zakończeniem pracy serwera. Kod wygląda ok, więc najwyższy czas przetestować nasz serwer. Zaczniemy od zbudowania wynikowych plików za pomocą komendy npm build. W ten sposób stworzony zostanie katalog dist. z transpilowanymi plikami javascript z kodem serwera mcp. Zanim przetestujemy nasz serwer w połączeniu ze sztuczną inteligencją, przetestujemy go jeszcze na sucho. Do debugowania serwerów w mcp udostępnione zostało specjalne narzędzie inspektor. Za pomocą tej komendy zostanie uruchomiony specjalny interfejs, który pomoże nam przetestować stworzony serwer mcp. Aplikacja inspektora została uruchomiona na porcie lokalnym 6274, więc otwórzmy ją teraz. Oto interfejs aplikacji do debugowania serwerów mcp. Z lewej strony znajduje się kilka ustawień dotyczących połączenia z serwerem mcp. Nas jednak najbardziej interesuje przycisk connect, aby sprawdzić czy uda się połączyć do serwera. Pod dołem widać teraz zieloną kropkę z napisem connected, więc wszystko działa. W okienku na dole znajduje się historia komunikacji z serwerem mcp. W trakcie połączenia została wysłana jedna wiadomość inicjalizacyjna, a wtedy nasz serwer zwróci informację o swojej nazwie i wersji. U góry w inspektorze znajduje się kilka zakładek. Nas jednak najbardziej interesuje zakładka tools. W tej zakładce możemy zasymulować wykonanie narzędzia z serwera mcp. Najpierw kliknę przycisk list tools. W ten sposób wyświetlona zostanie lista narzędzi dostępnych z naszego serwera. W naszym przypadku jest dostępne tylko jedno narzędzie zmyń światła. W historii komunikacji możemy zobaczyć treść wiadomości, jaka została zwrócona przez serwer. Możemy zobaczyć też tablicę narzędzi. Widzimy też schemat parametrów, jakie są niezbędne do działania narzędzia. Dzięki temu model językowy będzie wiedział, jakie parametry przesłać do serwera mcp, wykonując to narzędzie. Wykonamy teraz ręczny test tego narzędzia. Z listy wybierz narzędzie zmyń światło, a z prawej strony pojawi się formularz z polami odpowiadającymi parametrom narzędzia. Wypełnię teraz te pola odpowiednio i klikam przycisk run tool. Sami zobaczcie, co się teraz wydarzyło. Moja lampka zmieniła kolor, a ja dostałem komunikat, że żarówka została włączona z ustawionym kolorem. Spróbuję teraz ją wyłączyć i ponownie uruchomię narzędzie. Jak widzicie nastała ciemność. Żarówka nam się wyłączyła. Wygląda na to, że nasze narzędzie i serwer mcp działa poprawnie. To teraz najwyższy czas podłączyć nasz serwer do prawdziwej sztucznej inteligencji. Wykorzystamy do tego aplikację CLOT Desktop. Jest to chyba najpopularniejsza aplikacja, która wspiera serwery mcp. W końcu protokół mcp został stworzony przez twórców modeli serii CLOT, czyli firmę Antropic. Istnieje już jednak na rynku duża liczba innych narzędzi, które wspierają protokóły mcp. Link do listy tych narzędzi znajdziesz w opisie. A teraz przejdźmy do ustawień CLOT Desktop i do zakładki Developer. W tym miejscu otrzymamy informację o używanych serwerach mcp. Na razie nie mamy skonfigurowanego żadnego narzędzia, więc klikamy przycisk Edit Config. W tym momencie wskazany zostanie plik konfiguracyjny w formacie JSON, który należy otworzyć dowolnym edytorem. W tym pliku należy skonfigurować serwer mcp. Robimy to za pomocą specjalnie przygotowanej struktury JSON. Jest to obiekt z nazwą serwera jako kluczem. Wewnątrz obiektu znajduje się kilka właściwości, które definiują jak serwer ma zostać uruchomiony. W tym przypadku używamy Node.js do uruchomienia aplikacji. Jako parametr ma być wskazana ścieżka do pliku wynikowego z naszym serwerem mcp. Dodatkowo definiuje także zmienne środowiskowe z kluczami połączenia do API Tuya. Gdy uzupełnisz plik należy go zapisać, a następnie zrestartować całą aplikację Cloud Desktop. Po restarcie aplikacji w okienku czatu widzimy dodatkową ikonę, która wskazuje, że wykorzystujemy jeden serwer mcp. Po kliknięciu w nią widzimy listę narzędzi, które są dostępne. Widzimy tutaj nasze narzędzie Zmień Światło, więc wszystko zostało poprawnie skonfigurowane. Spróbujmy więc teraz wykorzystać to narzędzie. Zacznijmy od promptu Idę spać, zgaś światło. Model życzy nam dobranoc, a następnie zgłasza chęć użycia narzędzia Zmień Światło. Zanim jednak go użyje musimy wyrazić na to zgodę. W okienku, które wyskoczyło klikamy przycisk Hello for this chat. I teraz jak widać światło zgasło. W tym miejscu możemy zobaczyć jakie parametry zostały wysłane do naszego narzędzia oraz jaka odpowiedź została zwrócona. Zrobiło się nieco za ciemno, także włączę teraz żarówkę z powrotem, nie ruszając się z miejsca. Wykonam jeszcze kilka testów zmiany ustawień koloru światła. Dobra, koniec tej zabawy. Nasz serwer mcp do sterowania żarówką jest bardzo prosty, ale oczywiście serwery mcp mogą obsługiwać wiele narzędzi, a te narzędzia mogą być znacznie bardziej rozbudowane i skomplikowane. Razem ze swoim zespołem pracujemy nad zaawansowanym serwerem mcp do obsługi wordpressa, który będzie łączył się przez rest API, aby pobierać dane i zmieniać ustawienia. Będzie także uruchamiał komendy wpcli, tworzył motywy, wtyczki i bloki Gutenberga, a jednocześnie testował i analizował kod, aby zwiększyć dokładność generowanych rozwiązań. Jeśli chciałbyś skorzystać z takiego serwera to zapisz się do listy oczekujących dostępnej pod linkiem w opisie. Istnieje już też duża liczba gotowych do użycia serwerów mcp stworzonych przez społeczność. Link do repozytorium z innymi serwerami również znajdziesz w opisie. Jeśli ten odcinek Ci się podobał to zostaw po sobie łapkę w górę i koniecznie daj znać w komentarzu z jakich serwerów mcp korzystasz albo jakie chciałbyś stworzyć. Do zobaczenia w kolejnym odcinku.