Ce este Protocolul MCP (Model Context Protocol)?

Standardul deschis prin care aplicațiile AI se conectează la servere care expun unelte, resurse și prompturi, în locul integrărilor scrise separat pentru fiecare aplicație.

Denumire completă

MCP – protocol deschis bazat pe JSON-RPC 2.0, prin care aplicațiile AI (host + client) se conectează la servere care expun unelte, resurse și prompturi

Anthropic a publicat Model Context Protocol ca proiect open source pe 25 noiembrie 2024, ca standard pentru conectarea asistenților AI la sistemele în care se află datele. Pe 9 decembrie 2025, Anthropic a donat MCP către Agentic AI Foundation, un fond sub Linux Foundation cofondat de Anthropic, Block și OpenAI.

Arhitectura are trei roluri. Host-ul este aplicația LLM (un IDE, o aplicație de chat, un agent de programare): creează clienții și aplică permisiunile și consimțământul. Fiecare client comunică cu exact un server. Serverele expun trei primitive: tools (controlate de model), resources (date de context, controlate de aplicație) și prompts (controlate de utilizator). Mesajele sunt JSON-RPC 2.0, iar transporturile standard sunt stdio și Streamable HTTP.

În revizia curentă a specificației, 2026-07-28, protocolul este fără stare: nu mai există handshake initialize, fiecare cerere își poartă versiunea și capabilitățile în _meta, iar clientul poate afla capabilitățile serverului cu server/discover. Serverele nu mai trimit cereri proprii; când au nevoie de input (elicitation, sampling, roots), îl cer în răspuns printr-un InputRequiredResult. Sampling, Roots și Logging sunt depreciate. Detalii în secțiunea MCP.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
Host Aplicația LLM; creează clienții, aplică consimțământul și securitatea.
Client Creat de host; relație 1:1 cu un server.
Server Expune tools, resources și prompts; local (stdio) sau la distanță (Streamable HTTP).
Tools tools/list, tools/call: funcții pe care modelul le apelează.
Resources / Prompts resources/list, resources/read; prompts/list, prompts/get.
Revizia 2026-07-28 Fără initialize; server/discover; input cerut prin InputRequiredResult.

Exemple practice și scenarii reale

Exemplul 1: Fluxul unei cereri în revizia 2026-07-28

Rezumat al diagramei de negociere a capabilităților din specificație.

Client -> Server: server/discover (opțional)
Server -> Client: versiuni suportate + capabilități
Client -> Server: tools/call (cu _meta: versiune, clientCapabilities)
Server -> Client: InputRequiredResult (dacă îi trebuie input)
Client -> Server: tools/call (id nou, cu inputResponses)
Server -> Client: rezultat final

Greșeli frecvente și capcane

  • Să instalezi servere din tutoriale vechi. Mai multe servere de referință (PostgreSQL, GitHub, Puppeteer, Slack și altele) au fost arhivate în modelcontextprotocol/servers-archived; GitHub are acum serverul oficial github/github-mcp-server, iar pentru browser există, de exemplu, microsoft/playwright-mcp.
  • Să tratezi un server MCP ca pe un cod de încredere. Serverul rulează cu permisiunile tale, iar descrierile uneltelor ajung în contextul modelului; instalează doar servere verificate și aprobă apelurile sensibile.
  • Să cauți initialize în revizia curentă. A fost eliminat în 2026-07-28; revizia anterioară (2025-11-25) îl folosește încă, iar clienții pot detecta ce variantă vorbește serverul.

Noțiuni și module înrudite