Metodele și notificările MCP (referință 2026-07-28) în Model Context Protocol (MCP)

Protocol și Arhitectură Specificația MCP 2026-07-28

Lista completă a celor 21 de metode și notificări din specificația MCP 2026-07-28, cu direcția și funcționalitatea fiecăreia.

Specificație & cod MCP
cerere: <grup>/<acțiune>   |   notificare: notifications/<grup>/<eveniment>

Ce face Metodele și notificările MCP (referință 2026-07-28)

Specificația MCP 2026-07-28 este revizia curentă (/specification/latest). Protocolul a devenit fără stare: nu mai există handshake initialize, iar fiecare cerere își poartă în _meta versiunea de protocol și capabilitățile clientului. Orice interacțiune pornește de la client: clientul trimite cereri și notificări, serverul răspunde cu un rezultat sau o eroare, eventual precedate de notificări legate de acea cerere.

Serverele nu mai trimit cereri JSON-RPC proprii. Când un server are nevoie de ceva de la client (o întrebare către utilizator, o completare LLM, lista de rădăcini), întoarce un InputRequiredResult cu cererile elicitation/create, sampling/createMessage sau roots/list în câmpul inputRequests, iar clientul reîncearcă cererea originală cu răspunsurile. Notificările de schimbare (liste, resurse) circulă pe stream-ul unei cereri subscriptions/listen.

Tabelul de mai jos este lista din schema oficială: 10 cereri client → server, 3 cereri de input purtate în rezultate și 8 notificări. Sampling, Roots și Logging sunt depreciate din 2026-07-28 (rămân cel puțin 12 luni). Extensiile oficiale, cum este Tasks (io.modelcontextprotocol/tasks), adaugă metode proprii în afara nucleului.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
server/discover Client → server. Versiunile suportate, capabilitățile și identitatea serverului. Serverele trebuie s-o implementeze.
tools/list Client → server. Lista uneltelor; suportă paginare și cache.
tools/call Client → server. Apelează o unealtă; poate primi InputRequiredResult.
resources/list Client → server. Lista resurselor; paginare și cache.
resources/templates/list Client → server. Șabloanele de resurse (URI templates); paginare și cache.
resources/read Client → server. Conținutul unei resurse; cache; poate primi InputRequiredResult.
prompts/list Client → server. Lista prompturilor; paginare și cache.
prompts/get Client → server. Mesajele unui prompt cu argumentele date; poate primi InputRequiredResult.
completion/complete Client → server. Sugestii de autocompletare pentru argumentele prompturilor și șabloanelor de resurse.
subscriptions/listen Client → server. Deschide un stream de lungă durată pentru notificările de schimbare alese.
elicitation/create Cerere de input în inputRequests: serverul cere date utilizatorului (mod form sau url).
sampling/createMessage Cerere de input în inputRequests: serverul cere o completare LLM. Depreciată.
roots/list Cerere de input în inputRequests: serverul cere rădăcinile clientului. Depreciată.
notifications/tools/list_changed Server → client, pe subscriptions/listen cu toolsListChanged.
notifications/prompts/list_changed Server → client, pe subscriptions/listen cu promptsListChanged.
notifications/resources/list_changed Server → client, pe subscriptions/listen cu resourcesListChanged.
notifications/resources/updated Server → client, pentru URI-urile din resourceSubscriptions.
notifications/subscriptions/acknowledged Server → client, primul mesaj al unui stream subscriptions/listen.
notifications/progress Server → client, legată de o cerere care a trimis progressToken.
notifications/message Server → client, mesaj de log legat de o cerere cu logLevel. Depreciată.
notifications/cancelled Client → server pe stdio, pentru a anula o cerere. Serverul o trimite doar ca să închidă un stream subscriptions/listen.

Exemple practice

Exemplul 1: O cerere completă cu metadatele obligatorii

Exemplul CallToolRequest din schema oficială. Fără protocolVersion și clientCapabilities în _meta, serverul respinge cererea cu -32602.

{
  "jsonrpc": "2.0",
  "id": "call-tool-example",
  "method": "tools/call",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientInfo": {
        "name": "ExampleClient",
        "version": "1.0.0"
      },
      "io.modelcontextprotocol/clientCapabilities": {}
    },
    "name": "get_weather",
    "arguments": {
      "location": "New York"
    }
  }
}

Greșeli frecvente și bune practici

  • Cauți initialize, ping, logging/setLevel sau resources/subscribe în revizia curentă. Au fost eliminate în 2026-07-28; vezi pagina despre metodele eliminate.
  • Tratezi sampling/createMessage, elicitation/create și roots/list ca cereri trimise direct de server. Din 2026-07-28 ele călătoresc doar în inputRequests, în interiorul unui rezultat.
  • Implementezi Sampling, Roots sau Logging într-un proiect nou. Specificația le-a depreciat și recomandă alternative: API-ul furnizorului LLM, parametri de unealtă sau configurare, stderr ori OpenTelemetry.

Comenzi înrudite