Komunikacja Client - Server: Różnice pomiędzy wersjami
(Utworzono nową stronę "== Przebieg rozmowy między klientem a serwerem MCP == === 1. Klient: „Hej, zaczynamy!” === <syntaxhighlight lang="json"> { "method": "initialize", "params": { "protocolVersion": "2025-06-18", "capabilities": { "roots": {} }, "clientInfo": { "name": "claude-code", "version": "1.0.38" } }, "jsonrpc": "2.0", "id": 0 } </syntaxhighlight> '''Opis''': Klient mówi: „Siema serwer, chcę pogadać w wersji 2025-06-…") |
|||
(Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 3: | Linia 3: | ||
=== 1. Klient: „Hej, zaczynamy!” === | === 1. Klient: „Hej, zaczynamy!” === | ||
< | <pre> | ||
{ | { | ||
"method": "initialize", | "method": "initialize", | ||
Linia 19: | Linia 19: | ||
"id": 0 | "id": 0 | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 26: | Linia 26: | ||
=== 2. Serwer: „No hej, oto co umiem” === | === 2. Serwer: „No hej, oto co umiem” === | ||
< | <pre> | ||
{ | { | ||
"jsonrpc": "2.0", | "jsonrpc": "2.0", | ||
Linia 42: | Linia 42: | ||
}, | }, | ||
"tools": { | "tools": { | ||
"listChanged": | "listChanged": true | ||
} | } | ||
}, | }, | ||
Linia 51: | Linia 51: | ||
} | } | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Serwer odpowiada: „Spoko, też działam na wersji 2025-06-18. Lista narzędzi, zasobów i promptów jest stała – nie będzie tu niespodzianek. No i nie obsługuję subskrypcji zmian w plikach.” | Serwer odpowiada: „Spoko, też działam na wersji 2025-06-18. Lista narzędzi, zasobów i promptów jest stała – nie będzie tu niespodzianek. No i nie obsługuję subskrypcji zmian w plikach. Za to jak sie toole zmienia lub dojda nowe, zostaniesz poinformowany.” | ||
=== 3. Klient: „Dobra, gotowy do pracy” === | === 3. Klient: „Dobra, gotowy do pracy” === | ||
< | <pre> | ||
{ | { | ||
"method": "notifications/initialized", | "method": "notifications/initialized", | ||
"jsonrpc": "2.0" | "jsonrpc": "2.0" | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 70: | Linia 70: | ||
=== 4. Klient: „Pokaż, co masz za narzędzia” === | === 4. Klient: „Pokaż, co masz za narzędzia” === | ||
< | <pre> | ||
{ | { | ||
"method": "tools/list", | "method": "tools/list", | ||
Linia 76: | Linia 76: | ||
"id": 1 | "id": 1 | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 83: | Linia 83: | ||
=== 5. Klient: „A jakie masz zasoby?” === | === 5. Klient: „A jakie masz zasoby?” === | ||
< | <pre> | ||
{ | { | ||
"method": "resources/list", | "method": "resources/list", | ||
Linia 89: | Linia 89: | ||
"id": 3 | "id": 3 | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 96: | Linia 96: | ||
=== 6. Klient: „A gotowe prompty też dajesz?” === | === 6. Klient: „A gotowe prompty też dajesz?” === | ||
< | <pre> | ||
{ | { | ||
"method": "prompts/list", | "method": "prompts/list", | ||
Linia 102: | Linia 102: | ||
"id": 2 | "id": 2 | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 109: | Linia 109: | ||
=== 7. Serwer: „Zasoby? Pusto.” === | === 7. Serwer: „Zasoby? Pusto.” === | ||
< | <pre> | ||
{ | { | ||
"jsonrpc": "2.0", | "jsonrpc": "2.0", | ||
Linia 117: | Linia 117: | ||
} | } | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
„Sorry, nie mam żadnych zasobów na tę chwilę.” | „Sorry, nie mam żadnych zasobów na tę chwilę.” | ||
=== 8. Serwer: „Mam tylko jedno narzędzie – | === 8. Serwer: „Mam tylko jedno narzędzie – get_current_date” === | ||
< | <pre> | ||
{ | { | ||
"jsonrpc": "2.0", | "jsonrpc": "2.0", | ||
Linia 153: | Linia 153: | ||
} | } | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
Linia 160: | Linia 160: | ||
=== 9. Serwer: „Promptów też nie mam.” === | === 9. Serwer: „Promptów też nie mam.” === | ||
< | <pre> | ||
{ | { | ||
"jsonrpc": "2.0", | "jsonrpc": "2.0", | ||
Linia 168: | Linia 168: | ||
} | } | ||
} | } | ||
</ | </pre> | ||
'''Opis''': | '''Opis''': | ||
„Niestety, żadnych gotowych tekstów na dziś nie mam.” | „Niestety, żadnych gotowych tekstów na dziś nie mam.” |
Aktualna wersja na dzień 11:17, 5 lip 2025
Przebieg rozmowy między klientem a serwerem MCP
1. Klient: „Hej, zaczynamy!”
{ "method": "initialize", "params": { "protocolVersion": "2025-06-18", "capabilities": { "roots": {} }, "clientInfo": { "name": "claude-code", "version": "1.0.38" } }, "jsonrpc": "2.0", "id": 0 }
Opis: Klient mówi: „Siema serwer, chcę pogadać w wersji 2025-06-18. Oto, co potrafię – dasz znać, co u Ciebie?”
2. Serwer: „No hej, oto co umiem”
{ "jsonrpc": "2.0", "id": 0, "result": { "protocolVersion": "2025-06-18", "capabilities": { "experimental": {}, "prompts": { "listChanged": false }, "resources": { "subscribe": false, "listChanged": false }, "tools": { "listChanged": true } }, "serverInfo": { "name": "simple-server", "version": "1.10.1" } } }
Opis: Serwer odpowiada: „Spoko, też działam na wersji 2025-06-18. Lista narzędzi, zasobów i promptów jest stała – nie będzie tu niespodzianek. No i nie obsługuję subskrypcji zmian w plikach. Za to jak sie toole zmienia lub dojda nowe, zostaniesz poinformowany.”
3. Klient: „Dobra, gotowy do pracy”
{ "method": "notifications/initialized", "jsonrpc": "2.0" }
Opis: Klient mówi: „Jestem gotów, lecimy z tematem.”
4. Klient: „Pokaż, co masz za narzędzia”
{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }
Opis: Klient zagląda do skrzynki z narzędziami: „Masz jakieś młotki albo inne zabawki?”
5. Klient: „A jakie masz zasoby?”
{ "method": "resources/list", "jsonrpc": "2.0", "id": 3 }
Opis: „Masz może jakieś pliki, URI, coś do pobrania?”
6. Klient: „A gotowe prompty też dajesz?”
{ "method": "prompts/list", "jsonrpc": "2.0", "id": 2 }
Opis: „Może masz gotowe teksty, które mógłbym wykorzystać?”
7. Serwer: „Zasoby? Pusto.”
{ "jsonrpc": "2.0", "id": 3, "result": { "resources": [] } }
Opis: „Sorry, nie mam żadnych zasobów na tę chwilę.”
8. Serwer: „Mam tylko jedno narzędzie – get_current_date”
{ "jsonrpc": "2.0", "id": 1, "result": { "tools": [ { "name": "get_current_date", "description": "Get current date and time.", "inputSchema": { "properties": {}, "title": "get_current_dateArguments", "type": "object" }, "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": ["result"], "title": "get_current_dateOutput", "type": "object" } } ] } }
Opis: „Mam tylko jedno narzędzie: takie, które mówi, która jest godzina.”
9. Serwer: „Promptów też nie mam.”
{ "jsonrpc": "2.0", "id": 2, "result": { "prompts": [] } }
Opis: „Niestety, żadnych gotowych tekstów na dziś nie mam.”