Sari la conținutul principal

Întrebări de interviu MCP: Începător până la avansat (2026)

Pregătește-te pentru interviuri MCP cu întrebări despre arhitectură, instrumente, agenți, securitate și design de sisteme din lumea reală, toate verificate față de specificația curentă a protocolului.
Actualizat 5 iul. 2026  · 6 min. citire

Acum un an și jumătate, Model Context Protocol era încă un termen de nișă în afara Anthropic. Acum apare în interviuri pentru roluri de AI engineering, developer relations și backend, pentru că multe echipe care livrează agenți au un server sau client MCP undeva în stack.

MCP (Model Context Protocol) este un protocol deschis care standardizează modul în care aplicațiile de AI se conectează la instrumente externe, date și șabloane de prompt. El rezolvă problema de integrare N x M: fără un protocol comun, fiecare pereche model-instrument are nevoie de propriul conector. Cu MCP, construiești conectorul o singură dată și orice gazdă conformă îl poate folosi. Poate îl vei auzi numit „USB-C-ul AI-ului”, o analogie utilă ca primă explicație, dar nu mult mai departe.

Întrebările de interviu depind mult de rol. Un developer junior ar putea avea de explicat diferența dintre instrumente și resurse. Un platform engineer are mai multe șanse să fie întrebat cum schimbă un nucleu de protocol fără stare modul de deploy. Am organizat ghidul după dificultate și caz de utilizare, așa că concentrează-te pe secțiunile care se potrivesc rolului tău.

Timpul contează aici și o spun explicit pentru că MCP încă se schimbă. La momentul scrierii, specificația stabilă curentă este 2025-11-25. Un release candidate pentru 2026-07-28 este blocat și urmează să fie lansat în aproximativ patru săptămâni, astfel încât orice din acel RC este etichetat ca orientat spre viitor.

Întrebări de interviu MCP pentru începători

Acestea apar în multe discuții de screening, indiferent de nivel. Aș începe cu vocabularul.

Ce este MCP și de ce a fost creat?

MCP este un standard deschis, construit inițial de Anthropic și open-sourced în noiembrie 2024, pentru conectarea aplicațiilor AI la instrumente și surse de date externe. Mai direct: implementezi MCP o dată și poți vorbi cu orice server compatibil MCP în loc să scrii un conector nou pentru fiecare instrument.

Ce este un server MCP?

Un server este un program care expune instrumente, resurse și prompturi către un client MCP. Poate rula ca subproces local prin stdio sau ca proces remote independent accesibil prin HTTP. Serverul nu știe nimic despre modelul în sine; răspunde la cereri conform protocolului.

Ce este un client MCP?

Clientul este conectorul la nivel de protocol care trăiește în interiorul unei aplicații-gazdă (gândește-te la Claude Desktop, VS Code sau Cursor) și vorbește cu un singur server la un moment dat prin JSON-RPC. O singură gazdă poate rula mai mulți clienți, fiecare ținând propria conexiune unu-la-unu către un server.

Cum diferă MCP de o API REST obișnuită?

O API REST este scrisă pentru ca developerii să o apeleze din cod. MCP este construit pentru ca un LLM să descopere și să apeleze la runtime. Această distincție contează mai mult decât formatul pe fir. Un client poate cere unui server tools/list și primește o descriere structurată a capabilităților disponibile, ceva ce o API REST tipică nu oferă implicit. Pentru o integrare simplă, un apel direct la o API este adesea mai rapid și mai ieftin.

Ce fel de resurse poate expune un server?

Orice este adresabil printr-un URI: fișiere, înregistrări din baze de date, documente, valori de configurare, răspunsuri din API-uri. Resursele sunt context doar-citire, nu acțiuni, ceea ce e o confuzie des întâlnită la început.

Întrebări de interviu despre conceptele de bază MCP

Odată ce vocabularul e clar, intervievatorii trec la cum comunică părțile între ele.

Care este arhitectura la nivel înalt?

Trei roluri: gazdă, client, server. Gazda este aplicația folosită de o persoană. Ea instanțiază unul sau mai mulți clienți, iar fiecare client ține o singură conexiune către un server. Fiecare mesaj între client și server este JSON-RPC 2.0, ceea ce îți oferă un format pe fir stabil, indiferent de transport.

Care sunt cele trei faze din ciclul de viață al unei conexiuni?

Inițializare, operare și închidere. În timpul inițializării, clientul trimite versiunea de protocol și capabilitățile suportate, iar serverul răspunde cu ale sale. Odată ce ambele părți cad de acord, cererile normale precum tools/list și tools/call au loc în faza de operare. Închiderea este doar o închidere curată.

Ce transporturi folosește MCP astăzi?

stdio pentru servere locale bazate pe subprocese și Streamable HTTP pentru servere remote. Streamable HTTP a înlocuit vechiul transport HTTP plus SSE în specificația din 2025-03-26, așa că descrierea a două endpointuri SSE separate este deja depășită.

Care este diferența reală între instrumente, resurse și prompturi?

Această distincție ține de control, nu de tipul de date:

  • Instrumentele sunt controlate de model. LLM decide când să apeleze unul în funcție de context.
  • Resursele sunt controlate de aplicație. Gazda sau utilizatorul decide când să încarce una.
  • Prompturile sunt controlate de utilizator. O persoană selectează explicit un șablon înainte să înceapă inferența.

Mulți candidați definesc aceste elemente după tipul de date pe care îl poartă, ceea ce ratează esența.

Întrebări de interviu despre instrumente, resurse și prompturi MCP

După ce modelul de control e clar, următoarea întrebare este cum arată aceste primitive în practică.

Ce include o definiție de instrument?

Un name, o description, un inputSchema scris în JSON Schema și, din specificația 2025-06-18, un outputSchema opțional plus annotations care descriu comportamente precum dacă un instrument este doar-citire sau distructiv. Clienții ar trebui să trateze adnotările ca neîncredere până când provin de la un server de încredere. Sunt indicii, nu garanții.

Când ar trebui ca ceva să fie instrument în loc de resursă?

Dacă are efecte secundare sau are nevoie de un calcul proaspăt, live, este un instrument. Dacă este date de referință statice sau semi-statice fără efecte secundare, este o resursă. O interogare meteo către o API live este un instrument. O listă cache-uită de orașe suportate este o resursă.

Ce face un instrument MCP bun, dincolo de faptul că funcționează?

Proiectează-l în jurul a ceea ce încearcă utilizatorul să rezolve, nu în jurul endpointurilor pe care le ai la îndemână. Un instrument ar trebui să învelească un flux de lucru complet, nu un singur apel brut la o API. Contează și descrierea: acel text intră în contextul modelului și influențează dacă modelul alege instrumentul potrivit. Iată un exemplu minimal cu stratul FastMCP din SDK-ul Python:

from mcp.server.fastmcp import FastMCP

app = FastMCP("weather-demo")

@app.tool()
async def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return f"Weather data for {city}"

@app.resource("config://units")
async def get_units() -> str:
    """Static configuration for the unit system in use."""
    return '{"temperature": "celsius"}'

Docstring-ul instrumentului devine descrierea sa; resursa este date statice în spatele unui URI, fără efecte secundare.

Cum recuperează un client o resursă?

Apelează resources/read pentru un URI obținut din resources/list. Dacă serverul suportă capabilitatea listChanged, poate notifica clientul când lista de resurse se schimbă. Fără acea capabilitate, clientul nu are niciun semnal și trebuie să facă polling sau refresh manual.

Întrebări de interviu despre dezvoltarea serverelor MCP

Aici cunoștințele conceptuale trebuie să se transforme în ceva care rulează efectiv.

Ce SDK-uri oficiale există și sunt toate la fel de mature?

Nu. SDK-urile sunt pe niveluri: TypeScript, Python, C# și Go sunt în Tier 1 cu suport complet de funcții, Java și Rust sunt Tier 2, iar Swift, Ruby, PHP și Kotlin sunt Tier 3. SDK-ul Python include FastMCP, API-ul său pentru servere bazat pe decoratori.

Care este cel mai des întâlnit bug care strică un server local?

Scrierea pe stdout când nu ar trebui. Un transport stdio folosește stdout exclusiv pentru mesajele JSON-RPC, astfel încât un print() sau console.log() rătăcit corupe fluxul de mesaje și parserul clientului eșuează. Orice vrei să loghezi pentru debugging trebuie să meargă pe stderr.

MCP Inspector afișând instrument și resursă. Video de autor.

Cum funcționează gestionarea erorilor în MCP și de ce contează la interviu?

Există trei niveluri. Eșecurile la nivel de transport sunt probleme de conexiune. Erorile la nivel de protocol folosesc coduri standard JSON-RPC (-32700 pentru eroare de parsare, -32600 până la -32603 pentru cereri invalide, metode necunoscute și probleme similare). Eșecurile la nivel de aplicație, cum ar fi o eroare returnată de un apel API în interiorul instrumentului tău, ar trebui să revină cu isError: true în rezultatul instrumentului, astfel încât modelul să le poată vedea și reacționa.

return {
    "content": [{"type": "text", "text": "Rate limit exceeded, try again later"}],
    "isError": True
}

Acest flag permite modelului să vadă eșecul și să încerce altceva.

Este MCP cu stare în prezent?

Da, sesiunile sunt astăzi urmărite la nivel de conexiune. Asta creează probleme de scalare pentru echipele de producție, pe care le voi acoperi în secțiunea de design de sistem.

Întrebări de interviu despre securitate și guvernanță MCP

Întrebările de securitate apar acum în multe interviuri MCP, în special pentru roluri de platformă și enterprise.

Cum diferă autentificarea între transporturile stdio și HTTP?

Pentru serverele locale stdio, autentificarea este opțională în practică; oricum ai încredere în procesul pe care l-ai lansat. Pentru serverele remote bazate pe HTTP, cadrul este OAuth 2.1, iar serverele sunt clasificate ca OAuth 2.0 resource servers începând cu specificația din 2025-06-18. OAuth nu este obligatoriu peste tot în MCP.

Ce este „tool poisoning”?

Sunt instrucțiuni malițioase ascunse în metadatele unui instrument, de obicei în descriere sau schemă, pe care modelul le citește în timp ce decide ce instrument să apeleze. Instrumentul nu trebuie invocat ca să conteze, deoarece modelul a văzut deja instrucțiunile când instrumentul a fost listat.

Cum diferă un atac de tip „rug pull” de tool poisoning?

Tool poisoning este o problemă de punct de intrare. Un rug pull este o problemă de persistență: un instrument arată curat când îl aprobi, apoi definiția lui se schimbă ulterior, iar majoritatea clienților nu au o modalitate încorporată de a forța re-aprobarea. A te apăra de unul nu te apără și de celălalt.

Ce este Enterprise-Managed Authorization și de ce contează acum?

EMA este o extensie MCP care a devenit stabilă pe 18 iunie 2026. Mută decizia de autorizare la furnizorul de identitate al organizației, în loc de un clic de consimțământ per server de la fiecare angajat. Clientul primește un Identity Assertion JWT semnat în timpul single sign-on și îl schimbă pe un token de acces cu domeniu restrâns de la serverul de autorizare al serverului. Anthropic, Microsoft și Okta o suportă.

Întrebări de interviu despre MCP și agenți AI

Aici protocolul începe să se conecteze cu designul de agenți.

De ce contează MCP în mod specific pentru agenți?

Agenții au nevoie de context și acțiune. MCP pune ambele într-un singur protocol. După cum am menționat mai devreme, tools/list permite unui agent să descopere ce este disponibil, în loc să se bazeze pe o listă hardcodată în codul agentului.

Diagram showing an AI agent's host and client connecting over JSON-RPC to an MCP server that exposes tools, resources, and prompts.

Modelul gazdă agent, client și server. Imagine de autor.

Care este diferența între MCP și A2A?

Regula scurtă este: MCP conectează agenții la instrumente, A2A conectează agenții între ei. Ambele protocoale sunt acum sub Agentic AI Foundation, așa că de obicei sunt discutate ca straturi separate, nu competitori.

Ce este „sampling”-ul și ar trebui să-l mai menționez?

Sampling permite unui server să solicite o completare de model prin client, ceea ce este modul în care un server poate rula comportamente de tip agent fără a deține chei de API. Cunoaște primitiva, dar adaugă avertismentul: RC-ul 2026-07-28 marchează Sampling, Roots și Logging ca depreciate sub noua politică de ciclu de viață a funcțiilor. Rămân funcționale cel puțin douăsprezece luni, dar autorilor de servere li se recomandă tot mai mult să apeleze direct API-ul unui furnizor de modele.

Cum evită agenții să-și explodeze fereastra de context cu definiții de instrumente?

Prin a nu încărca toate definițiile de instrumente din start. Abordarea Tool Search de la Anthropic amână încărcarea schemelor de instrumente până când sunt necesare, iar studiul tehnic raportează o reducere de 85% a consumului de tokeni pentru setup-uri cu multe instrumente, păstrând întreaga bibliotecă de instrumente accesibilă. Într-un răspuns de interviu, aș asocia încărcarea întârziată cu servere cu domenii înguste.

Întrebări de interviu despre design de sistem MCP

Întrebările de tip scenariu testează dacă poți aplica aceste idei sub constrângeri, nu doar să reciți definiții.

Proiectează un sistem de regăsire a documentelor folosind MCP.

MCP și RAG nu concurează aici. RAG se ocupă de regăsirea pre-indexată vectorial; MCP expune acea regăsire ca instrument sau resursă pe care agentul o poate apela live, alături de orice alte acțiuni necesare. Tratează întrebarea ca pe modul în care cele două piese se potrivesc, nu care o înlocuiește pe cealaltă.

Proiectează un server MCP pentru date interne ale companiei.

Pornește de la responsabilitate unică: un server per domeniu, cum ar fi un server de baze de date și un server de fișiere separat, în loc de un server care face totul. Adaugă OAuth 2.1, scope-uri cu privilegii minime per instrument și audit logging de la început, deoarece controlul accesului e mai greu de reparat după ce un server e live.

Cum ai scala un deployment MCP astăzi, înainte să apară specificația fără stare?

Candidații se poticnesc des descriind specificația viitoare ca și cum ar fi deja lansată. Caracterul cu stare din secțiunea server este problema de scalare aici: scalarea orizontală are nevoie de rutare sticky, un magazin de sesiuni partajat sau un gateway MCP. RC-ul 2026-07-28 elimină sesiunile la nivel de protocol, dar acea parte nu este încă live.

Cum împiedici un deployment mare cu mai multe servere să inunde modelul cu tokeni?

Ideea de încărcare întârziată din secțiunea despre agenți ajută și aici. La nivel de deployment, de asemenea filtrează și agregă datele pe partea de server înainte să ajungă în contextul modelului, și pagina orice returnează o listă. Regula principală este să controlezi ce intră în fereastra de context.

Întrebări de interviu despre integrarea MCP

Întrebările de integrare verifică dacă înțelegi unde apare MCP în instrumentele obișnuite pentru developeri.

Cum apare MCP în produsele Claude?

Claude.ai, Claude Desktop și Claude Code suportă toate MCP, iar Anthropic menține un director de conectori cu servere preconstruite. Există și un conector MCP în Messages API pentru servere remote, încă în beta la momentul scrierii.

Claude Desktop developer settings showing a locally connected MCP server with one available tool.

Claude Desktop afișând un server MCP conectat. Imagine de autor.

MCP este util doar cu Claude?

Nu. OpenAI a adoptat MCP în întregul său Agents SDK și Apps SDK începând din martie 2025. VS Code a livrat suport pentru întregul standard la mijlocul lui 2025, Cursor suportă MCP prin mcp.json, iar Google Cloud avea peste 50 de servere MCP managed, fie disponibile general, fie în preview, până în aprilie 2026.

Cum diferă MCP de RAG, concret?

Aceasta este versiunea mai scurtă a răspunsului de design de sistem: RAG răspunde dintr-o bază de cunoștințe actualizată programat, în timp ce MCP gestionează lookup-uri live și acțiuni.

Întrebări de interviu MCP avansate

Întrebările avansate testează dacă urmărești protocolul pe măsură ce se schimbă, nu doar cum funcționează azi.

Poți parcurge istoricul versiunilor specificației?

Intervievatorii întreabă asta ca să vadă dacă știi ce s-a schimbat și când. Cinci revizii contează, iar doar una este încă speculativă:

Versiune

Dată

Ce s-a schimbat

2024-11-05

Nov 2024

Lansare inițială

2025-03-26

Mar 2025

Streamable HTTP înlocuiește HTTP+SSE; introdus OAuth 2.1

2025-06-18

Iun 2025

Outputuri structurate pentru instrumente, elicitation, clasificare ca OAuth resource server

2025-11-25

Nov 2025

Spec stabilă curentă; Tasks async (experimental), guvernanță formalizată

2026-07-28

RC blocat Mai 2026

Nucleu fără stare, MCP Apps, cadru pentru extensii

Important este să știi care rând a fost efectiv lansat.

Cine guvernează de fapt MCP acum?

Anthropic a donat protocolul Agentic AI Foundation, un fond direcționat sub Linux Foundation, pe 9 decembrie 2025. Block și OpenAI au co-fondat AAIF alături de Anthropic, cu Google, Microsoft, AWS, Cloudflare și Bloomberg ca membri susținători. Menținătorii au păstrat controlul asupra deciziilor tehnice; guvernanța s-a mutat într-o fundație mai largă.

Ce se schimbă de fapt în lansarea din 2026-07-28?

Principala schimbare este nucleul fără stare din secțiunea de design de sistem: handshake-ul initialize/initialized și headerul Mcp-Session-Id dispar, fiind înlocuite de informații despre capabilități transmise în _meta pe fiecare cerere. Asta elimină cerința de rutare sticky. Un cadru pentru extensii definește, de asemenea, modul în care capabilități opționale precum MCP Apps și Tasks sunt livrate și stabilizate separat.

Ce sunt extensiile MCP și funcționează toate peste tot?

Nu. Extensiile sunt capabilități opționale, precum Enterprise-Managed Authorization, OAuth Client Credentials pentru autentificare mașină-la-mașină și MCP Apps pentru UI interactiv în interiorul unei gazde. Suportul variază de la un client la altul, așa că nu proiecta presupunând suport universal pentru extensii.

Întrebări de interviu MCP bazate pe scenarii

Acestea testează raționamentul de diagnostic mai mult decât faptele memorate, deci structurează răspunsurile ca un drum de la simptom la cauză la remediu.

Apelurile de instrument eșuează intermitent. Ce verifici mai întâi?

Verifică dacă eșecurile revin ca isError: true în rezultatul instrumentului sau ca eroare la nivel de protocol. Asta îți spune dacă problema e în logica instrumentului sau în transport. De acolo, uită-te la rate limits pe ceea ce învelește instrumentul și verifică timeouts înainte să presupui că e o problemă a modelului.

Un agent continuă să acționeze pe baza unor date de resursă învechite. De ce?

Asta revine la întrebarea despre resurse de mai devreme: listChanged este ceea ce îi spune clientului că o resursă s-a schimbat. Fără să fie declarată, clientul nu are niciun semnal și servește în continuare un snapshot cache-uit până când ceva forțează un refresh.

Un server MCP a devenit un blocaj evident. Care e mișcarea ta?

Împarte pe linii de domeniu, adaugă connection pooling și scalează orizontal. Până când apare nucleul fără stare, s-ar putea să ai în continuare nevoie de session affinity discutată la designul de sistem.

Date sensibile au scăpat printr-un apel de instrument. Cum s-a întâmplat?

Două cauze comune sunt un instrument cu permisiuni mai largi decât avea nevoie sau lipsa sanitizării outputului înainte ca datele să ajungă în contextul modelului. Privilegii minime per instrument și un pas de sanitizare înainte de context sunt remedierile. Tool poisoning este legat și el: un model poate fi instruit să retransmită date fără ca cineva să scrie cod de exfiltrare.

Greșeli frecvente în interviurile MCP

Câteva tipare apar suficient de des încât merită menționate direct:

  • Tratarea MCP ca un înlocuitor REST drop-in după distincția despre REST de mai devreme

  • Definirea instrumentelor versus resurselor prin tip de date după ce modelul de control a fost deja explicat

  • Presupunerea că aceeași regulă de autentificare se aplică la stdio și HTTP

  • Oferirea răspunsului legacy cu SSE după schimbarea de transport menționată mai devreme

  • Amestecarea specificației lansate cu RC-ul 2026-07-28

  • Să sari peste riscurile de securitate menționate mai sus când ți se cere să proiectezi un sistem de apelare a instrumentelor

Majoritatea acestor greșeli provin din tutoriale mai vechi.

Cum să te pregătești pentru interviuri MCP

Exercițiul practic contează pentru acest protocol.

  • Construiește un server mic cu FastMCP sau SDK-ul TypeScript, expune un instrument și o resursă și pornește-l

  • Instalează Inspectorul oficial (npx @modelcontextprotocol/inspector) și uită-te la traficul JSON-RPC brut pe care ți-l arată

  • Conectează-ți serverul la un client real, Claude Desktop, VS Code sau Cursor, și urmărește cum are loc handshake-ul de inițializare

  • Citește jurnalul de schimbări al specificației, nu un rezumat de mâna a doua, în special intrările din 2025-06-18 și 2025-11-25

  • Alege un scenariu de design de sistem din acest articol și scrie un răspuns complet înainte de interviu

Aceste pași separă cunoașterea de definiții de familiaritatea practică.

Concluzie

Nu cred că memorarea definițiilor MCP mai este suficientă. Partea mai grea este să știi ce răspuns aparține cărei versiuni de specificație. Deploy-urile curente încă se confruntă cu sesiuni la nivel de conexiune; RC-ul 2026-07-28 indică un nucleu fără stare. Dacă amesteci cele două, răspunsul tău de arhitectură sună mai încrezător decât corect.

De aceea aș trata MCP ca pe ceva de testat, nu doar de citit. Construiește serverul mic din secțiunea de pregătire, urmărește cum un client listează instrumente și citește resurse și fii atent unde se termină protocolul și începe designul aplicației tale. Răspunsul util la interviu nu este „MCP este USB-C-ul AI-ului.” Ci „iată ce standardizează MCP, iată ce nu standardizează și iată ce s-a schimbat recent.”

Pentru un follow-up mai structurat, cursul nostru Building Scalable Agentic Systems acoperă MCP și A2A în contextul designului, testării și deploymentului de agenți.

Întrebări frecvente

Trebuie să memorez fiecare dată a versiunii specificației?

Nu. Cunoaște ordinea și ce s-a schimbat la fiecare pas, în special schimbarea de transport și ce versiune a fost lansată. Intervievatorii sunt mai interesați dacă poți raționa de ce a avut loc o schimbare decât dacă poți recita data exactă.

Sampling este depreciat. Merită totuși să-l învăț?

Da, deocamdată. Rămâne pe deplin funcțional cel puțin un an după ce apare deprecarea. Știi de ce este eliminat treptat: expunere de securitate, plus adopție limitată în raport cu complexitatea.

Cu ce SDK ar trebui să încep dacă nu am atins MCP până acum?

Python cu FastMCP este cel mai simplu punct de pornire, pentru că API-ul bazat pe decoratori ascunde majoritatea boilerplate-ului. Folosește TypeScript dacă stack-ul tău este deja centrat pe JavaScript; acel SDK este și el în Tier 1.

Va mai conta MCP odată ce se lansează specificația din 2026-07-28?

Probabil, da. Nucleul fără stare discutat mai devreme este menit să rezolve problemele de scalare în producție cu care s-au confruntat echipele. Un protocol care devine mai simplu sub presiune este adesea un semn de maturitate, nu de declin.

Cât de tehnice devin de fapt interviurile MCP de nivel începător?

Variează în funcție de rol. Un screening general de AI engineering se poate opri la gazdă versus client versus server și instrumente versus resurse. Un rol de platformă sau infrastructură poate trece rapid la transporturi și autentificare, chiar și la un nivel relativ junior.

Subiecte

Învață cu Datacamp

course

Construirea sistemelor agentice scalabile

1 oră 30 min
16K
Descoperă ce îți trebuie pentru a scala agenții AI, cu puțin ajutor de la framework-uri precum MCP și A2A.
Vezi detaliiRight Arrow
Începeți cursul
Vezi mai multRight Arrow