Jak protokół kontekstu modelu umożliwia agentom AI odkrywanie i wywoływanie narzędzi
Jasne wyjaśnienie MCP: jak hosty, klienci i serwery umożliwiają aplikacji AI odkrywanie narzędzi, wywoływanie ich za pomocą ustrukturyzowanych danych wejściowych oraz określanie jej ograniczeń.
Zapytaj asystenta AI, aby „stworzył minimalną stronę startową w Figma dla usługi SaaS opartej na sztucznej inteligencji o nazwie FlowAI, z ciemnym tłem, jednym nagłówkiem, przyciskiem zachęcającym do działania oraz trzema kartami z funkcjami”, a dobrze przystosowany asystent może to zrobić: wygeneruje szablon w Figma bez konieczności otwierania aplikacji lub pisania specjalnej integracji z Figma. Pierwszy wynik stanowi punkt wyjścia, a można dalej pracować nad projektem, prosząc o nowe ekrany lub zmiany w typografii i czcionkach. Ten sam podejście sprawdza się przy wielu innych aplikacjach.
To rodzi oczywiste pytania. Jak model językowy kontroluje inną aplikację? Czy MCP to po prostu kolejna API? Co tak naprawdę dzieje się pomiędzy zapytaniem a wynikiem, i dlaczego protokół ten jest tak szeroko omawiany? Ten artykuł odpowiada na każde z tych pytań, abyś mógł rozumieć MCP jako inżynier, a nie traktować go jak czarną skrzynkę.
Czym jest MCP
MCP, czyli Model Context Protocol, to standardowy sposób, w jaki aplikacje AI mogą odkrywać zewnętrzne narzędzia i je wykorzystywać. W przypadku Figma najprostszym obrazem jest łańcuch: aplikacja AI komunikuje się z MCP, a MCP z Figma. Opisujesz to, czego chcesz, model interpretuje żądanie, sprawdza, jakie narzędzia są dostępne przez MCP, i wybiera to, które pasuje do zadania.
Figma to tylko jeden przykład. Za pomocą tego samego protokołu aplikacja AI może uzyskać dostęp do bazy danych, Slacka, GitHuba oraz praktycznie każdego innego systemu, który oferuje serwer MCP.
W tym kontekście „narzędzie” oznacza po prostu funkcję, którą usługa udostępnia modelowi do wywołania, taką jak „stworzyć ramkę”, „przeszukać wiadomości” lub „wykonać zapytanie”. MCP nadaje tym funkcjom wspólną strukturę, dzięki czemu każda kompatybilna aplikacja AI może je znaleźć i wykorzystać.
Problem integracji, który rozwiązuje MCP
Bez wspólnego protokołu każda para aplikacji AI i narzędzia wymaga własnego, dostosowanego kodu. Połączenie jednego asystenta z Figma to jedna integracja, drugiego asystenta z Figma – kolejna. Dodanie Slacka oznacza jeszcze jedną integrację, a bazy danych – kolejną. Liczba integracji rośnie wraz z ilością aplikacji pomnożoną o liczbę narzędzi, a ich utrzymanie szybko staje się niemożliwe do zarządzania.
Dzięki MCP każdy dostawca narzędzi udostępnia swoje funkcje raz poprzez protokół, a każda aplikacja AI implementuje ten protokół również raz. Wtedy każda kompatybilna aplikacja może korzystać z dowolnego kompatybilnego narzędzia. Przydatne ujęcie tego zjawiska: MCP działa jak uniwersalny adapter pomiędzy modelami AI a narzędziami, których potrzebują.
Czy MCP jest zamiennikiem API?
Nie. API nie znikną. Figma, Stripe i Slack nadal mają swoje API, a twoja baza danych PostgreSQL wciąż istnieje pod tym, co na niej budujesz. W praktyce wiele serwerów MCP stanowi cienką warstwę nad istniejącymi API.
Zmienia się tylko sposób prezentacji tych możliwości aplikacji AI oraz sposób ich wykorzystywania przez nią. W tradycyjnej integracji programista czyta dokumentację API, wybiera odpowiedni endpoint, pisze kod klienta, zajmuje się autoryzacją, wysyła żądania i analizuje odpowiedzi. Wszystkie te decyzje są podejmowane z góry i umieszczone w kodzie.
Dzięki MCP aplikacja AI może podczas działania zapytać serwer o dostępne narzędzia. Serwer sklepu internetowego może odpowiedzieć na przykład narzędziami takimi jak:
- szukanie produktów
- pobieranie zamówienia
- tworzenie zwrotu pieniędzy
Każde narzędzie ma nazwę, opis swojego przeznaczenia oraz ustrukturyzowany schemat danych wejściowych, który model może odczytać. Na podstawie żądania użytkownika model wybiera odpowiednie narzędzie i dostarcza argumenty zgodne ze schematem. Decyzja o wykonywanej operacji przechodzi od kodu napisanego z góry na rozumowanie modelu w momencie otrzymania żądania.
Trzy elementy składowe: host, klient i serwer
MCP jest zorganizowany wokół trzech ról.
Host
Host to aplikacja AI, z którą faktycznie wchodzi w interakcję użytkownik: asystent czatowy, narzędzie do programowania AI lub każda aplikacja, której rdzeniem jest model językowy. To on kontroluje rozmowę i model oraz decyduje, jakie serwery mogą być przez niego używane.
Klient MCP
Klient to komponent wewnątrz hosta, który zarządza komunikacją z serwerem MCP. W projekcie protokołu host zazwyczaj uruchamia jeden klient na każde połączenie z serwerem, więc asystent podłączony do Figma i GitHub utrzymuje dwie oddzielne sesje klienta.
Serwer MCP
Serwer udostępnia narzędzia aplikacji AI i łączy je z rzeczywistymi systemami. Gdy wywołuje się narzędzie, to serwer faktycznie komunikuje się z API Figma, wykonywa zapytanie do bazy danych lub wysyła wiadomość do Slacka.
Co dzieje się podczas wywołania narzędzia
Gdy połączymy te trzy role, przepływ staje się jasny. Klient umożliwia hostowi odkrycie narzędzi oferowanych przez serwer i ich wywołanie za pomocą prawidłowo skonstruowanych parametrów, gdy model uzna je za potrzebne.
To nie jest pojedyncza prośba typu „wykonaj i zapomnij”. To rozmowa pomiędzy klientem a serwerem. Najpierw nawiązują sesję i uzgadniają możliwości, potem klient prosi o listę narzędzi, a następnie wysyła żądania do tych narzędzi i otrzymuje ich wyniki. W rzeczywistości te wiadomości wykorzystują format JSON-RPC, przekazywany albo przez standardowe wejście i wyjście w przypadku serwerów działających lokalnie, albo przez HTTP w przypadku serwerów zdalnych.
To właśnie model językowy odróżnia tę metodę od tradycyjnej integracji. Nie ma tu sztywno zdefiniowanych sekwencji żądań; model czyta opisy narzędzi, określa, które z nich służą realizacji celu użytkownika, i wysyła żądania w takiej kolejności, jaka jest wymagana przez tok rozmowy.
Przykład asystenta e-commerce
Rozważmy asystenta obsługi klienta w sklepie internetowym, którego serwer MCP udostępnia trzy narzędzia:
get_order
search_productscreate_refundKlient pisze: „Gdzie jest moja zamówienie?” Model rozpoznaje intencję, zauważa, że dostępna jest funkcja get_order, i postanawia ją wywołać, podając identyfikator zamówienia klienta. Prośba trafia od klienta do serwera, który wyszukuje informacje w bazie danych zamówień lub w wewnętrznym API zamówień i zwraca ustrukturyzowane dane na temat zamówienia. Następnie model przekształca te dane w naturalną odpowiedź, na przykład: „Państwa zamówienie zostało wysłane wczoraj i powinno dotrzeć w czwartek.”
Klient odpowiada: „Właściwie, zwróć pieniądze”. Ponieważ model nadal ma dostęp do kontekstu rozmowy, wie, do której zamówienia odnosi się „to”. Widzi, że funkcja create_refund jest dostępna, i wywołuje ją z tymi samymi danymi zamówienia. Jeśli serwer udostępnia również narzędzie takie jak notify_finance, model może włączyć ten krok do procesu pracy.
To podział zadań stanowi istotę MCP. Model decyduje, jakie narzędzie użyć i z jakimi argumentami. Serwer wykonuje faktyczną operację. W systemie produkcyjnym do tego procesu dodanoby jeszcze jeden element: zwrot pieniędzy jest czynnością nieodwracalną, więc wiele zespołów wymaga wyraźnej potwierdzenia użytkownika lub weryfikacji zgodnie z zasadami na serwerze przed jej wykonaniem, zamiast polegać wyłącznie na ocenie modelu.
Co daje MCP
Wyróżniają się trzy korzyści.
- Standaryzacja: aplikacje AI wchodzą w interakcję z zewnętrznymi narzędziami w jeden spójny sposób, zamiast używać różnych schematów przy każdej integracji.
- Elastyczność: model sam odkrywa dostępne narzędzia i bezpośrednio czyta ich schematy, dzięki czemu nie musisz już ręcznie opisywać każdej funkcji w rozbudowanym poleceniu systemowym.
- Możliwość ponownego użycia: serwer MCP jest budowany raz i może następnie obsługiwać wiele kompatybilnych aplikacji AI.
Czego MCP nie robi
Warto być precyzyjnym co do jego ograniczeń, ponieważ histeria wokół tego protokołu może je zatrzeć.
- MCP to nie magia i nie sprawia, że leżąca u jego podstaw API staje się bardziej zdolna, niż już jest.
Wykorzystywanie AI do wywoływania API nie jest nowością; programiści od lat łączą modele z API. MCP dodaje standaryzowaną interfejs, dzięki któremu model może odkrywać i używać wielu różnych narzędzi bez konieczności tworzenia indywidualnej integracji dla każdego z nich.
Główne wnioski
- MCP to protokół służący do łączenia aplikacji AI z narzędziami. Działa na wierzchu API, zamiast je zastępować.
- Serwery udostępniają narzędzia wraz z opisami i schematami danych wejściowych; host oraz jego klienci zajmują się ich znajdowaniem i komunikacją.
- Model decyduje, które narzędzie wywołać i z jakimi argumentami; serwer wykonuje faktyczną operację.
- Standaryzacja przekształca rosnącą sieć jednorazowych integracji w komponenty, które są budowane raz i ponownie wykorzystywane.
- Odpowiedzialność za niezawodność, autoryzację, zasadę najmniejszych uprawnień oraz potwierdzenie ryzykownych działań pozostaje po stronie użytkownika.
Jeśli dopiero zaczynasz, rozpocznij od połączenia istniejących serwerów MCP, takich jak te dla GitHuba, Slacka czy Figma, z asystentem, którego już używasz, i obserwuj, w jaki sposób model wybiera narzędzia. Gdy zrozumiesz ich wartość, naturalnym następnym krokiem będzie stworzenie własnego serwera dla wewnętrznej bazy danych lub usługi. Aby zobaczyć, jak MCP wpisuje się w większe ramy agentów, przeczytaj nasz artykuł na temat standaryzacji integracji narzędzi w LangGraph za pomocą MCP.