Komunikacja Client - Server: Różnice pomiędzy wersjami

Z MCP Wiki
Nie podano opisu zmian
Nie podano opisu zmian
Linia 26: Linia 26:
=== 2. Serwer: „No hej, oto co umiem” ===
=== 2. Serwer: „No hej, oto co umiem” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "jsonrpc": "2.0",
   "jsonrpc": "2.0",
Linia 51: Linia 51:
   }
   }
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 58: Linia 58:
=== 3. Klient: „Dobra, gotowy do pracy” ===
=== 3. Klient: „Dobra, gotowy do pracy” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "method": "notifications/initialized",
   "method": "notifications/initialized",
   "jsonrpc": "2.0"
   "jsonrpc": "2.0"
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 70: Linia 70:
=== 4. Klient: „Pokaż, co masz za narzędzia” ===
=== 4. Klient: „Pokaż, co masz za narzędzia” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "method": "tools/list",
   "method": "tools/list",
Linia 76: Linia 76:
   "id": 1
   "id": 1
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 83: Linia 83:
=== 5. Klient: „A jakie masz zasoby?” ===
=== 5. Klient: „A jakie masz zasoby?” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "method": "resources/list",
   "method": "resources/list",
Linia 89: Linia 89:
   "id": 3
   "id": 3
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 96: Linia 96:
=== 6. Klient: „A gotowe prompty też dajesz?” ===
=== 6. Klient: „A gotowe prompty też dajesz?” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "method": "prompts/list",
   "method": "prompts/list",
Linia 102: Linia 102:
   "id": 2
   "id": 2
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 109: Linia 109:
=== 7. Serwer: „Zasoby? Pusto.” ===
=== 7. Serwer: „Zasoby? Pusto.” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "jsonrpc": "2.0",
   "jsonrpc": "2.0",
Linia 117: Linia 117:
   }
   }
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 124: Linia 124:
=== 8. Serwer: „Mam tylko jedno narzędzie – zegarek” ===
=== 8. Serwer: „Mam tylko jedno narzędzie – zegarek” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "jsonrpc": "2.0",
   "jsonrpc": "2.0",
Linia 153: Linia 153:
   }
   }
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
Linia 160: Linia 160:
=== 9. Serwer: „Promptów też nie mam.” ===
=== 9. Serwer: „Promptów też nie mam.” ===


<syntaxhighlight lang="json">
<pre>
{
{
   "jsonrpc": "2.0",
   "jsonrpc": "2.0",
Linia 168: Linia 168:
   }
   }
}
}
</syntaxhighlight>
</pre>


'''Opis''':   
'''Opis''':   
„Niestety, żadnych gotowych tekstów na dziś nie mam.”
„Niestety, żadnych gotowych tekstów na dziś nie mam.”

Wersja z 11:14, 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": false
      }
    },
    "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.”

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 – zegarek”

{
  "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.”