MCP: Różnice pomiędzy wersjami

Z MCP Wiki
Nie podano opisu zmian
Nie podano opisu zmian
 
(Nie pokazano 14 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
= Model Context Protocol (MCP) =
= Model Context Protocol (MCP) =


'''Model Context Protocol''' (w skrócie: '''MCP''') [[protokół]] komunikacyjny służący do wymiany danych między [[Model]]em AI (LLM) a zewnętrznymi [[Server MCP|serwerami]], które nadają [[Model]]owi [[sprawczość]]. Dzięki MCP [[Model]] sztucznej inteligencji może wykonywać działania na zewnątrz (np. wysłać e-mail, pobrać prognozę pogody, zakupić bilet lotniczy).
'''Model Context Protocol''' (w skrócie: '''MCP''') [[protokół]] typu clinet-server, w którym z założenia client posiada dostęp do systemu LLM ( a więc swego rodzaju inteligencje. Serwer nie musi posiadać inteligencji (ale może).
 
== Do czego to przydatne ==
Łączenie personalnych agentów AI z narzedziami, dzięki którym moga wykonywac najróżniejsze zadania w świecie rzeczywistym.
 
== Dlaczego to taki przełom ==
Nie byłoby sztucznej inteligencji bez komputera. Nie byłoby komputera bez elektryczności, nie byłoby elektryczności bez metali, nie byłoby metali bez pieców hutniczych, nie byłoby pieców bez ognia. Wynalazki tworzą ciągi łańcuchy (ogień -> metal -> prąd -> komputer -> AI). Jeden wynalazek pozwala nam na stworzenie czegoś kolejnego, a to coś kolejne pozwala nam na stworzenie jeszcze czegoś. Doszliśmy do etapu w którym komputer rozmawia z nami "po naszemu" - naszym naturalnym jezykiem. Potrafi nie tylko rozmawiać, ale rozumować, analizowac i wyciągać wnioski. Każdy kolejny wynalazek (jak wszystkie poprzednie) musi spełniać 2 kluczowe warunki:
 
# musi byc mozliwy do stworzenia w oparciu o to, co juz wymyśliliśmy
# musi być potrzebny i przydatny
 
 
Takim wynalazkiem jest właśnie MCP. Protokół, który jest użyteczny i  mozliwy dzieki stworzneiu LLM (Large language Model). MCP juz działa, więc punkt nr. 1 możemy odhaczyć. Pozostaje pytanie - czy MCP jest ludziom potrzebny lub przydatny.
 
== Skąd wiadomo, że MCP jest potrzebne? ==
Człowiek to takie dziwne zwierzę. Tak leniwe, że wkłada dużo pracy by coś zautomatyzować. Lubymy wygodę i automatyzację. Nikt juz nie pisze listów odręcznie i nie biega z wydrukowanymi mapami gdy chce gdzies dotrzeć. Wydaje się, że system który automatyzuje nasze życie, my jako ludzkość uważamy za potrzebny i przydatny. Taka jest własnie rola MCP - wykorzystać AI do pełnego zautomatyzowania naszych potrzeb i zachcianek. Jako ludzkość dązymy do tego, by naszym naturalnym językiem wyrazić naszą zachciankę, a system ją po prostu spełni. Dązymy do tego nie dlatego, że jest to łatwe, ale dlatego, że możemy, a przede wszystkim dlatego, że jestesmy leniwi.
 
== Jak to działa? ==
Dążymy do tego by zautomatyzowac jak najwięcej. Posiadamy modele językowe, które stana sie naszymi osobistymi asystentami. Nie wiadomo jednak do końca jak rozwiązac problem ich sprawczości. Jak polecenie "Dodaj do kalendarza..." miałoby poskutkować faktycznym dodaniem czegos do naszego kalendarza. W jaki sposób "wyłąc światło" miałoby poskutkowac wyłączeniem światła?
 
Powstała potrzeba ustanowienia uniwersalnego protokuły komunikacji między LLM a całym swiatem zewnętrznym, zarówno tym wirtualnym jak i realnym.
 
Z jednej strony mamy naszego asystenta, z drugiej nieskończoną ilość aplikacji, serwisówi urządzeń, które muszą być przez tego asystenta obsługiwane. MPC to standard komunikacji dzieki któremu urządzenia, usługi czy serwisy komunikują się z naszym asystentem i przedstawiają mu swoje możliwości. Krótko mówiąc, MPC to sposób, żeby jakies urządzenie (głupie lub madre) mogło zaprezentować asystentowi co można z nim zrobić. Dzieki temu asystent może używać urządzeń, serwisów i usług, o których wcześniej nie miał pojęcia.
 
== Wykluczenie programity p[o stronie klienta ==
W podejściu tradycyjnym, dana usługa czy serwis wystawia API, które musi być ręcznie zaimplem,entowane przez programiste. MCP, to takie API, które same siebie opisuje. Dzieki temu wystarczy podłączyć daną usługę, serwis czy urzadzenie do asystenta AI, a on juz sam dowie sie jakie podłączona rzecz oferuje możliwości i jak z niej korzystać.
 
== Z jakich komponentów składa się MCP ==
 
Kluczowe komponenty po stronie serwra (urządzenie, usługa lub serwis), którymi może się pochwalić przed asystentem AI to:
 
* [[MCP Tools]] - opisuje co możesz zemna zrobić. Sa to polecenie np. podgrzej_wodę(temperatura).
* [[MCP Resources]] - opisuje właściwości lub inne dane związane z danym urzadzeniem czy serwisem (np. poziom wody, nateżenie światła)
* [[MCP Prompts] - przykłady zastosowań danego urzadzenia opisane językiem neturalnym (np. "Podgerzej wodę do temperatury {temperatura} stopni).
Serwer może zawierać jedynie wybrane spośród tych funkcjonalności. W chwili obecnej zdecydowanie najpopulaniejszym zastosowaniem są [[MCP Tools]].


== Trzy podstawowe składniki systemu ==
== Trzy podstawowe składniki systemu ==
Linia 10: Linia 45:
* '''[[Server MCP]]''' – [[Server MCP|serwer]] realizujący konkretne zadania na zlecenie [[Model]]u, np. pobieranie prognozy pogody lub przygotowywanie materiałów do nauki języka.
* '''[[Server MCP]]''' – [[Server MCP|serwer]] realizujący konkretne zadania na zlecenie [[Model]]u, np. pobieranie prognozy pogody lub przygotowywanie materiałów do nauki języka.
* '''[[Host]]''' – aplikacja (np. ChatGPT, Cursor) zapewniająca interfejs użytkownika oraz pośrednicząca między [[Model]]em a [[Server MCP|serwerami MCP]].
* '''[[Host]]''' – aplikacja (np. ChatGPT, Cursor) zapewniająca interfejs użytkownika oraz pośrednicząca między [[Model]]em a [[Server MCP|serwerami MCP]].
Dodatkowo można wyróżnić komponent pomocniczy:
* '''[[Client MCP]]''' – część działająca po stronie hosta, ułatwiająca interakcję z [[Server MCP|serwerami MCP]].
== Podstawowy opis działania na przykładzie ==
# Użytkownik wpisuje w oknie czatu pytanie: „Jaka temperatura będzie jutro o 18:00 w Krakowie?”.
# [[Host]] (czyli aplikacja AI, z której korzysta użytkownik) dołącza do tego pytania [[Context]], czyli dodatkowe informacje, bez których [[Model]] nie byłby w stanie odpowiedzieć. W szczególności musi to być informacja o tym, jak pobrać datę lub czas, oraz jak sprawdzić pogodę.
# [[Model]] otrzymuje pytanie wraz z [[Context|kontekstem]].
# [[Model]] analizuje kontekst i znajduje informację, że może pobrać datę poprzez funkcję ServerDat.getCurrentDate("timezone"), a następnie użyć tej daty w funkcji SerwerPogody.getWeather(date).
# [[Model]] decyduje się najpierw pobrać aktualną datę. Wie, że Kraków znajduje się w strefie czasowej '''Europe/Warsaw'''. Zamiast odpowiadać użytkownikowi, generuje polecenie: 
  '''WYWOŁAJ FUNKCJĘ:''' ServerDat.getCurrentDate("Europe/Warsaw")
# [[Host]] rozpoznaje, że to nie jest odpowiedź dla użytkownika, lecz żądanie danych – i wysyła zapytanie do [[Server MCP]].
# [[Server MCP]] odpowiada tekstem np. `2025-07-01 16:12`.
# [[Host]] przesyła tę informację do [[Model]]u.
# [[Model]], mając już aktualną datę, wylicza datę „jutro o 18:00” i generuje nowe polecenie: 
  '''WYWOŁAJ FUNKCJĘ:''' SerwerPogody.getWeather("2025-07-02 18:00")
# [[Host]] ponownie rozpoznaje intencję i przekazuje zapytanie do [[Server MCP]].
# [[Server MCP]] odsyła dane (np. temperatura, szansa opadów, siła wiatru).
# [[Model]] interpretuje te dane i tworzy odpowiedź: „Jutro w Krakowie o 18:00 będzie 27 stopni Celsjusza”.
# [[Host]] przekazuje gotową odpowiedź użytkownikowi w interfejsie czatu.
[[Kategoria:Sztuczna inteligencja]]
[[Kategoria:Protokóły komunikacyjne]]
[[Kategoria:Architektura systemów]]

Aktualna wersja na dzień 15:21, 3 lip 2025

Model Context Protocol (MCP)

Model Context Protocol (w skrócie: MCP) protokół typu clinet-server, w którym z założenia client posiada dostęp do systemu LLM ( a więc swego rodzaju inteligencje. Serwer nie musi posiadać inteligencji (ale może).

Do czego to przydatne

Łączenie personalnych agentów AI z narzedziami, dzięki którym moga wykonywac najróżniejsze zadania w świecie rzeczywistym.

Dlaczego to taki przełom

Nie byłoby sztucznej inteligencji bez komputera. Nie byłoby komputera bez elektryczności, nie byłoby elektryczności bez metali, nie byłoby metali bez pieców hutniczych, nie byłoby pieców bez ognia. Wynalazki tworzą ciągi łańcuchy (ogień -> metal -> prąd -> komputer -> AI). Jeden wynalazek pozwala nam na stworzenie czegoś kolejnego, a to coś kolejne pozwala nam na stworzenie jeszcze czegoś. Doszliśmy do etapu w którym komputer rozmawia z nami "po naszemu" - naszym naturalnym jezykiem. Potrafi nie tylko rozmawiać, ale rozumować, analizowac i wyciągać wnioski. Każdy kolejny wynalazek (jak wszystkie poprzednie) musi spełniać 2 kluczowe warunki:

  1. musi byc mozliwy do stworzenia w oparciu o to, co juz wymyśliliśmy
  2. musi być potrzebny i przydatny


Takim wynalazkiem jest właśnie MCP. Protokół, który jest użyteczny i mozliwy dzieki stworzneiu LLM (Large language Model). MCP juz działa, więc punkt nr. 1 możemy odhaczyć. Pozostaje pytanie - czy MCP jest ludziom potrzebny lub przydatny.

Skąd wiadomo, że MCP jest potrzebne?

Człowiek to takie dziwne zwierzę. Tak leniwe, że wkłada dużo pracy by coś zautomatyzować. Lubymy wygodę i automatyzację. Nikt juz nie pisze listów odręcznie i nie biega z wydrukowanymi mapami gdy chce gdzies dotrzeć. Wydaje się, że system który automatyzuje nasze życie, my jako ludzkość uważamy za potrzebny i przydatny. Taka jest własnie rola MCP - wykorzystać AI do pełnego zautomatyzowania naszych potrzeb i zachcianek. Jako ludzkość dązymy do tego, by naszym naturalnym językiem wyrazić naszą zachciankę, a system ją po prostu spełni. Dązymy do tego nie dlatego, że jest to łatwe, ale dlatego, że możemy, a przede wszystkim dlatego, że jestesmy leniwi.

Jak to działa?

Dążymy do tego by zautomatyzowac jak najwięcej. Posiadamy modele językowe, które stana sie naszymi osobistymi asystentami. Nie wiadomo jednak do końca jak rozwiązac problem ich sprawczości. Jak polecenie "Dodaj do kalendarza..." miałoby poskutkować faktycznym dodaniem czegos do naszego kalendarza. W jaki sposób "wyłąc światło" miałoby poskutkowac wyłączeniem światła?

Powstała potrzeba ustanowienia uniwersalnego protokuły komunikacji między LLM a całym swiatem zewnętrznym, zarówno tym wirtualnym jak i realnym.

Z jednej strony mamy naszego asystenta, z drugiej nieskończoną ilość aplikacji, serwisówi urządzeń, które muszą być przez tego asystenta obsługiwane. MPC to standard komunikacji dzieki któremu urządzenia, usługi czy serwisy komunikują się z naszym asystentem i przedstawiają mu swoje możliwości. Krótko mówiąc, MPC to sposób, żeby jakies urządzenie (głupie lub madre) mogło zaprezentować asystentowi co można z nim zrobić. Dzieki temu asystent może używać urządzeń, serwisów i usług, o których wcześniej nie miał pojęcia.

Wykluczenie programity p[o stronie klienta

W podejściu tradycyjnym, dana usługa czy serwis wystawia API, które musi być ręcznie zaimplem,entowane przez programiste. MCP, to takie API, które same siebie opisuje. Dzieki temu wystarczy podłączyć daną usługę, serwis czy urzadzenie do asystenta AI, a on juz sam dowie sie jakie podłączona rzecz oferuje możliwości i jak z niej korzystać.

Z jakich komponentów składa się MCP

Kluczowe komponenty po stronie serwra (urządzenie, usługa lub serwis), którymi może się pochwalić przed asystentem AI to:

  • MCP Tools - opisuje co możesz zemna zrobić. Sa to polecenie np. podgrzej_wodę(temperatura).
  • MCP Resources - opisuje właściwości lub inne dane związane z danym urzadzeniem czy serwisem (np. poziom wody, nateżenie światła)
  • [[MCP Prompts] - przykłady zastosowań danego urzadzenia opisane językiem neturalnym (np. "Podgerzej wodę do temperatury {temperatura} stopni).

Serwer może zawierać jedynie wybrane spośród tych funkcjonalności. W chwili obecnej zdecydowanie najpopulaniejszym zastosowaniem są MCP Tools.

Trzy podstawowe składniki systemu

System opiera się na trzech głównych komponentach:

  • Model – językowy model AI (np. LLaMA, GPT-4, Claude), który na podstawie tekstu wejściowego (prompt) generuje odpowiedź.
  • Server MCPserwer realizujący konkretne zadania na zlecenie Modelu, np. pobieranie prognozy pogody lub przygotowywanie materiałów do nauki języka.
  • Host – aplikacja (np. ChatGPT, Cursor) zapewniająca interfejs użytkownika oraz pośrednicząca między Modelem a serwerami MCP.