course
För ett och ett halvt år sedan var Model Context Protocol fortfarande en nischterm utanför Anthropic. Nu dyker det upp i intervjuer för AI-engineering, utvecklarrelationer och backendroller eftersom många team som levererar agenter har en MCP-server eller -klient någonstans i stacken.
MCP (Model Context Protocol) är ett öppet protokoll som standardiserar hur AI-applikationer kopplar till externa verktyg, data och promptmallar. Det löser N x M-integrationsproblemet: utan ett gemensamt protokoll kräver varje modell-verktygspar sin egen koppling. Med MCP bygger du kopplingen en gång och alla kompatibla värdar kan använda den. Du kan höra det kallas ”AI:ns USB-C”, vilket funkar som första förklaring och inte så mycket längre.

Vad intervjuare frågar beror mycket på rollen. En juniorutvecklare kan behöva förklara verktyg kontra resurser. En platform engineer får mer sannolikt frågan hur en tillståndslös protokollkärna ändrar driftsättning. Jag har organiserat guiden efter svårighetsgrad och användningsfall, så fokusera på avsnitten som matchar din roll.
Tajmning spelar roll här, och jag är tydlig med det eftersom MCP fortfarande förändras. I skrivande stund är den aktuella stabila specifikationen 2025-11-25. En releasekandidat för 2026-07-28 är låst och ska släppas om cirka fyra veckor, så allt från den RC:n är märkt som framtidsinriktat.
MCP-intervjufrågor för nybörjare
Dessa dyker upp i många skärmar, oavsett senioritet. Jag skulle börja med vokabulären.
Vad är MCP och varför skapades det?
MCP är en öppen standard, ursprungligen byggd av Anthropic och öppen-källkodssläppt i november 2024, för att koppla AI-applikationer till externa verktyg och datakällor. Mer direkt: implementera MCP en gång, och du kan prata med vilken MCP-kompatibel server som helst i stället för att skriva en ny koppling för varje verktyg.
Vad är en MCP-server?
En server är ett program som exponerar verktyg, resurser och prompts för en MCP-klient. Den kan köras som en lokal underprocess över stdio eller som en fristående fjärrprocess åtkomlig via HTTP. Servern känner inte till något om själva modellen; den besvarar förfrågningar enligt protokollet.
Vad är en MCP-klient?
Klienten är kopplingen på protokollnivå som lever inuti en värdapplikation (tänk Claude Desktop, VS Code eller Cursor) och pratar med en server åt gången över JSON-RPC. En enda värd kan köra flera klienter, där varje klient håller sin egen en-till-en-anslutning till en server.
Hur skiljer sig MCP från ett vanligt REST-API?
Ett REST-API är skrivet för att utvecklare ska anropa det från kod. MCP är byggt för att ett LLM ska upptäcka och anropa det i runtime. Den skillnaden är viktigare än wireformatet. En klient kan fråga en server tools/list och få en strukturerad beskrivning av tillgängliga förmågor, något ett typiskt REST-API inte erbjuder som standard. För en enkel integration är ett direkt API-anrop ofta snabbare och billigare.
Vilka typer av resurser kan en server exponera?
Allt som kan adresseras med en URI: filer, databasposter, dokument, konfigurationsvärden, API-svar. Resurser är skrivskyddat sammanhang, inte åtgärder, vilket ofta blandas ihop av nybörjare.
Intervjufrågor om MCP:s kärnkoncept
När vokabulären sitter skiftar intervjuarna till hur delarna pratar med varandra.
Hur ser arkitekturen ut på hög nivå?
Tre roller: värd, klient, server. Värden är applikationen som en person använder. Den instansierar en eller flera klienter, och varje klient håller en enda anslutning till en server. Varje meddelande mellan klient och server är JSON-RPC 2.0, vilket ger ett stabilt wireformat oavsett transport.
Vilka är de tre livscykelfaserna för en anslutning?
Initiering, drift och avstängning. Under initiering skickar klienten sin stödda protokollversion och kapabiliteter, och servern svarar med sina. När båda sidor är överens sker normala förfrågningar som tools/list och tools/call i driftfasen. Avstängning är bara en kontrollerad stängning.
Vilka transporter använder MCP i dag?
stdio för lokala, underprocessbaserade servrar, och Streamable HTTP för fjärrservrar. Streamable HTTP ersatte den äldre HTTP-plus-SSE-transporten i specifikationen 2025-03-26, så att beskriva två separata SSE-endpoints är redan inaktuellt.
Vad är den faktiska skillnaden mellan verktyg, resurser och prompts?
Denna åtskillnad handlar om kontroll, inte datatyp:
- Verktyg styrs av modellen. LLM:et avgör när ett verktyg ska anropas baserat på kontext.
- Resurser styrs av applikationen. Värden eller användaren avgör när en ska laddas.
- Prompts styrs av användaren. En person väljer uttryckligen en mall innan inferensen startar.
Många kandidater definierar dessa efter vilken typ av data de bär, vilket missar poängen.
Intervjufrågor om MCP-verktyg, resurser och prompts
När kontrollmodellen är tydlig är nästa fråga hur dessa primitiv ser ut i praktiken.
Vad innehåller en verktygsdefinition?
Ett name, en description, ett inputSchema skrivet i JSON Schema och, sedan specifikationen 2025-06-18, ett valfritt outputSchema plus annotations som beskriver beteenden såsom om ett verktyg är skrivskyddat eller destruktivt. Klienter bör behandla annoteringar som icke-betrodda om de inte kommer från en betrodd server. De är hintar, inte garantier.
När ska något vara ett verktyg i stället för en resurs?
Om det har en bieffekt eller behöver en färsk, live-beräkning är det ett verktyg. Om det är statisk eller semistatisk referensdata utan bieffekter är det en resurs. En väderuppslagning mot ett live-API är ett verktyg. En cachad lista över stödja städer är en resurs.
Vad gör ett bra MCP-verktyg, utöver att det fungerar?
Designa det utifrån vad användaren försöker få gjort, inte utifrån de endpoints du råkar ha. Ett verktyg ska kapsla in ett komplett arbetsflöde, inte ett enskilt rått API-anrop. Beskrivningen spelar också roll: den texten hamnar i modellens kontext och påverkar om modellen väljer rätt verktyg. Här är ett minimalexempel med Python-SDK:ets FastMCP-lager:
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"}'
Verktygets docstring blir dess beskrivning; resursen är statisk data bakom en URI, inga bieffekter.
Hur hämtar en klient en resurs?
Den anropar resources/read mot en URI den fick från resources/list. Om servern stödjer kapabiliteten listChanged kan den notifiera klienten när resurslistan ändras. Utan den kapabiliteten har klienten ingen signal och måste polla eller uppdatera manuellt.
Intervjufrågor om utveckling av MCP-servrar
Här måste konceptuell kunskap bli något som faktiskt kör.
Vilka officiella SDK:er finns, och är de alla lika mogna?
Nej. SDK:erna är uppdelade i nivåer: TypeScript, Python, C# och Go ligger i nivå 1 med full funktionsstöd, Java och Rust är nivå 2, och Swift, Ruby, PHP och Kotlin är nivå 3. Python-SDK:et inkluderar FastMCP, dess dekoratorbaserade server-API.
Vilket är den vanligaste buggen som bryter en lokal server?
Att skriva till stdout när du inte ska. En stdio-transport använder stdout uteslutande för JSON-RPC-meddelanden, så ett vilset print() eller console.log()-anrop korrumperar meddelandeströmmen och klientens parser kvävs av det. Allt du vill logga för felsökning måste gå till stderr i stället.
Hur fungerar felhantering i MCP, och varför spelar det roll i intervjuer?
Det finns tre nivåer. Fel på transportnivå är anslutningsproblem. Protokollnivåfel använder standardkoder för JSON-RPC (-32700 för parsefel, -32600 till -32603 för ogiltiga förfrågningar, okända metoder och liknande problem). Fel på applikationsnivå, såsom att ett API-anrop inuti ditt verktyg returnerar ett fel, bör komma tillbaka med isError: true i verktygsresultatet så att modellen kan se och reagera på dem.
return {
"content": [{"type": "text", "text": "Rate limit exceeded, try again later"}],
"isError": True
}
Den flaggan låter modellen se felet och prova något annat.
Är MCP tillståndsbaserat just nu?
Ja, sessioner spåras i dag på anslutningsnivå. Detta skapar skalningsproblem för produktionsteam, vilket jag tar upp i avsnittet om systemdesign.
Intervjufrågor om MCP-säkerhet och styrning
Säkerhetsfrågor dyker nu upp i många MCP-intervjuer, särskilt för plattforms- och företagsroller.
Hur skiljer sig autentisering mellan stdio- och HTTP-transporter?
För lokala stdio-servrar är autentisering i praktiken valfri; du litar redan på den process du startade. För HTTP-baserade fjärrservrar är OAuth 2.1 ramen, och servrar klassas som OAuth 2.0-resursservrar enligt specifikationen 2025-06-18. OAuth krävs inte överallt i MCP.
Vad är verktygsförgiftning?
Det är skadliga instruktioner dolda i ett verktygs metadata, oftast beskrivningen eller schemat, som modellen läser när den avgör vilket verktyg som ska anropas. Verktyget behöver inte anropas för att detta ska spela roll, eftersom modellen redan såg instruktionerna när verktyget listades.
Hur skiljer sig en rug pull-attack från verktygsförgiftning?
Verktygsförgiftning är ett inträdespunktsproblem. En rug pull är ett persistensproblem: ett verktyg ser rent ut när du godkänner det, sedan ändras dess definition i efterhand, och de flesta klienter har inget inbyggt sätt att tvinga fram en ny godkännandeprocess. Att försvara sig mot det ena försvarar inte mot det andra.
Vad är Enterprise-Managed Authorization, och varför spelar det roll just nu?
EMA är en MCP-extension som blev stabil den 18 juni 2026. Den flyttar auktorisationsbeslutet till organisationens identitetsleverantör i stället för ett per-server-samtycke från varje anställd. Klienten får en signerad Identity Assertion JWT under single sign-on och byter den mot en scope:ad åtkomsttoken från serverns auktorisationsserver. Anthropic, Microsoft och Okta stödjer det.
Intervjufrågor om MCP och AI-agenter
Här börjar protokollet kopplas till agentdesign.
Varför spelar MCP roll specifikt för agenter?
Agenter behöver kontext och handling. MCP lägger båda i ett och samma protokoll. Som nämnts tidigare låter tools/list en agent upptäcka vad som är tillgängligt i stället för att förlita sig på en hårdkodad lista i agentens kod.

Agentvärd, klient och servermodell. Bild av författaren.
Vad är skillnaden mellan MCP och A2A?
Den korta regeln är: MCP kopplar agenter till verktyg, A2A kopplar agenter till andra agenter. Båda protokollen ligger nu under Agentic AI Foundation, så de diskuteras vanligtvis som separata lager, inte konkurrenter.
Vad är sampling-primitive:n, och ska jag fortfarande nämna den?
Sampling låter en server begära en modellkomplettering via klienten, vilket är hur en server kan köra agentlikt beteende utan att hålla API-nycklar. Känn till primitive:n, men lägg till förbehållet: RC:n 2026-07-28 markerar Sampling, Roots och Logging som utfasade enligt den nya livscykelpolicyn för funktioner. De förblir fungerande i minst tolv månader, men serverförfattare uppmanas i allt större utsträckning att anropa en modellleverantörs API direkt i stället.
Hur undviker agenter att spränga sin kontextfönster med verktygsdefinitioner?
Genom att inte ladda varje verktygsdefinition i förväg. Anthropics Tool Search-ansats skjuter upp inläsning av verktygsscheman tills de behövs, och teknikgenomgången rapporterar en 85-procentig minskning av tokenanvändning för verktygstunga uppsättningar samtidigt som hela verktygsbiblioteket är nåbart. I ett intervjusvar skulle jag para fördröjd inläsning med snävt avgränsade servrar.
Intervjufrågor om MCP-systemdesign
Scenariobaserade frågor testar om du kan tillämpa idéerna under begränsningar, inte bara rabbla definitioner.
Designa ett dokumentåtervinningssystem med MCP.
MCP och RAG konkurrerar inte här. RAG hanterar förindexerad vektoråtervinning; MCP exponerar den återvinningen som ett verktyg eller en resurs som agenten kan anropa live, sida vid sida med andra åtgärder agenten behöver. Behandla frågan som hur de två delarna passar ihop, inte vilken som ersätter den andra.
Designa en MCP-server för intern företagsdata.
Börja från single responsibility: en server per domän, såsom en databasserver och en separat filserver, i stället för en server som gör allt. Lägg till OAuth 2.1, minst möjliga behörighet per verktyg och revisionsloggning från start, eftersom åtkomstkontroll är svårare att fixa efter att en server gått live.
Hur skulle du skala en MCP-distribution i dag, innan den tillståndslösa specen släpps?
Kandidater snubblar ofta genom att beskriva framtida spec som om den redan är släppt. Tillståndsbiten från serveravsnittet är skalningsfrågan här: horisontell skalning kräver klistrig routning, en delad sessionslagring eller en MCP-gateway. RC:n 2026-07-28 tar bort sessions på protokollnivå, men den delen är inte live ännu.
Hur hindrar du en stor multi-server-distribution från att dränka modellen i tokens?
Idén om fördröjd inläsning från agentavsnittet hjälper även här. På distributionsnivå, filtrera och aggregera data på serversidan innan de når modellens kontext, och paginera allt som returnerar en lista. Huvudregeln är att styra vad som kommer in i kontextfönstret.
Intervjufrågor om MCP-integration
Integrationsfrågor kollar om du förstår var MCP dyker upp i vanliga utvecklarverktyg.
Hur syns MCP i hela Claude-produktfamiljen?
Claude.ai, Claude Desktop och Claude Code stödjer alla MCP, och Anthropic driver en kopplingskatalog med färdigbyggda servrar. Det finns också en MCP-koppling i Messages API för fjärrservrar, fortfarande i beta vid skrivande stund.

Claude Desktop visar ansluten MCP-server. Bild av författaren.
Är MCP bara användbart med Claude?
Nej. OpenAI antog MCP i hela sitt Agents SDK och Apps SDK från och med mars 2025. VS Code skeppade stöd för hela specifikationen i mitten av 2025, Cursor stödjer MCP via mcp.json, och Google Cloud hade mer än 50 hanterade MCP-servrar antingen allmänt tillgängliga eller i förhandsversion i april 2026.
Hur skiljer sig MCP från RAG, konkret?
Detta är svaret om systemdesign i kortare form: RAG svarar från en schemalagd kunskapsbas, medan MCP hanterar live-uppslag och åtgärder.
Avancerade MCP-intervjufrågor
Avancerade frågor testar om du följer protokollet när det förändras, inte bara hur det fungerar i dag.
Kan du gå igenom versionshistoriken för specen?
Intervjuare frågar detta för att se om du vet vad som förändrades och när. Fem revisioner är viktiga, och bara en är fortfarande spekulativ:
|
Version |
Datum |
Vad som ändrades |
|
2024-11-05 |
Nov 2024 |
Första utgåvan |
|
2025-03-26 |
Mar 2025 |
Streamable HTTP ersätter HTTP+SSE; OAuth 2.1 introduceras |
|
2025-06-18 |
Jun 2025 |
Strukturerade verktygsutdata, elicitation, klassning som OAuth-resursserver |
|
2025-11-25 |
Nov 2025 |
Aktuell stabil spec; asynkrona Tasks (experimentella), styrning formaliserad |
|
2026-07-28 |
RC låst maj 2026 |
Tillståndslös kärna, MCP Apps, ramverk för extensioner |
Nyckeln är att veta vilken rad som faktiskt har släppts.
Vem styr MCP nu egentligen?
Anthropic donerade protokollet till Agentic AI Foundation, en riktad fond under Linux Foundation, den 9 december 2025. Block och OpenAI var med och grundade AAIF tillsammans med Anthropic, med Google, Microsoft, AWS, Cloudflare och Bloomberg som stödjande medlemmar. Underhållarna behöll kontrollen över tekniska beslut; styrningen flyttade till en bredare foundation.
Vad förändras faktiskt i releasen 2026-07-28?
Den största förändringen är den tillståndslösa kärnan från systemdesignavsnittet: initialize/initialized-handshaken och headern Mcp-Session-Id försvinner båda, ersatta av kapabilitetsinformation som följer med i _meta i varje förfrågan. Det tar bort kravet på klistrig routning. Ett ramverk för extensioner definierar också hur valfria kapabiliteter som MCP Apps och Tasks skeppas och stabiliseras på egen hand.
Vad är MCP-extensioner, och fungerar de överallt?
Nej. Extensioner är opt-in-kapabiliteter, som Enterprise-Managed Authorization, OAuth Client Credentials för maskin-till-maskin-autentisering och MCP Apps för interaktiv UI i en värd. Stödet varierar mellan klienter, så designa inte med antagandet om universellt extensionsstöd.
Scenariobaserade MCP-intervjufrågor
Dessa testar diagnostiskt resonemang mer än memorerade fakta, så strukturera svar som en väg från symptom till orsak till åtgärd.
Verktygsanrop misslyckas intermittent. Vad kollar du först?
Kolla om felen kommer tillbaka som isError: true i verktygsresultatet eller som ett fel på protokollnivå. Det visar om problemet ligger i verktygets egen logik eller i transporten. Därifrån, titta på ransoneringsgränser för det som verktyget kapslar in, och kolla efter timeouts innan du antar att det är ett modellproblem.
En agent agerar hela tiden på inaktuell resursdata. Varför?
Detta går tillbaka till resursfrågan tidigare: listChanged är det som talar om för en klient att en resurs ändrats. Utan den deklarerad har klienten ingen signal och fortsätter att leverera en cachad ögonblicksbild tills något tvingar en uppdatering.
En MCP-server har blivit en tydlig flaskhals. Vad gör du?
Dela upp efter domän, lägg till anslutningspoolning och skala horisontellt. Tills den tillståndslösa kärnan släpps kan du fortfarande behöva sessionsaffinitet som diskuterats under systemdesign.
Känslig data läckte ut via ett verktygsanrop. Hur hände det?
Två vanliga orsaker är ett verktyg med bredare behörigheter än det behövde, eller saknad utdata-sanering innan data nådde modellens kontext. Minsta möjliga behörighet per verktyg och ett saneringssteg före kontext är lösningarna. Verktygsförgiftning är också relaterat: en modell kan instrueras att vidarebefordra data utan att någon skriver exfiltrationskod.
Vanliga misstag i MCP-intervjuer
Några mönster dyker upp tillräckligt ofta för att lyftas direkt:
-
Att behandla MCP som en drop-in-ersättare för REST efter skillnaden med REST som täckts tidigare
-
Att definiera verktyg kontra resurser efter datatyp efter att kontrollmodellen redan förklarats
-
Att anta att samma auth-regel gäller för
stdiooch HTTP -
Att ge det föråldrade SSE-svaret efter transportbytet som täckts tidigare
-
Att blanda den släppta specen med RC:n 2026-07-28
-
Att hoppa över säkerhetsriskerna ovan när du ombeds designa ett verktygsanropssystem
De flesta av dessa misstag kommer från äldre guider.
Hur du förbereder dig för MCP-intervjuer
Praktisk övning är viktigt för detta protokoll.
-
Bygg en liten server med FastMCP eller TypeScript-SDK:et, exponera ett verktyg och en resurs, och få den att rulla
-
Installera den officiella Inspector (
npx @modelcontextprotocol/inspector) och titta på den råa JSON-RPC-trafiken den visar -
Koppla din server till en riktig klient, Claude Desktop, VS Code eller Cursor, och se initieringshandshaken ske
-
Läs den faktiska specens ändringslogg i stället för en andrahandsresumé, särskilt posterna 2025-06-18 och 2025-11-25
-
Välj ett systemdesignscenario från den här artikeln och skriv ett fullständigt svar före din intervju
Dessa steg skiljer definitionsnivåkunskap från praktisk förtrogenhet.
Slutsats
Jag tror inte att det räcker att memorera MCP-definitioner längre. Den svårare delen är att veta vilket svar som hör till vilken specversion. Nuvarande distributioner hanterar fortfarande sessions på anslutningsnivå; RC:n 2026-07-28 pekar mot en tillståndslös kärna. Om du suddar ihop de två låter ditt arkitektursvar mer självsäkert än korrekt.
Det är därför jag skulle behandla MCP som något att testa, inte bara läsa om. Bygg den lilla servern från förberedelseavsnittet, se en klient lista verktyg och läsa resurser, och uppmärksamma var protokollet slutar och din applikationsdesign börjar. Det användbara intervjusvaret är inte ”MCP är AI:ns USB-C.” Det är ”det här standardiserar MCP, det här gör det inte, och det här ändrades nyligen.”
För en mer strukturerad uppföljning täcker vår kurs Building Scalable Agentic Systems MCP och A2A i kontexten av agentdesign, testning och driftsättning.
FAQs
Måste jag memorera varje datum för specversion?
Nej. Känn till ordningen och vad som ändrades i varje steg, särskilt transportbytet och vilken version som har släppts. Intervjuare bryr sig mer om ifall du kan resonera om varför en förändring skedde än om du kan rabbla det exakta datumet.
Sampling håller på att fasas ut. Är det fortfarande värt att lära sig?
Ja, för nu. Den förblir fullt fungerande i minst ett år efter att utfasningen släppts. Känn till varför den fasas ut: säkerhetsexponering, plus begränsad användning jämfört med dess komplexitet.
Vilket SDK ska jag börja med om jag aldrig rört MCP?
Python med FastMCP är den enklaste startpunkten eftersom det dekoratorbaserade API:et döljer det mesta av boilerplaten. Använd TypeScript om din stack redan är tung på JavaScript; det SDK:et är också nivå 1.
Kommer MCP fortfarande spela roll när specifikationen 2026-07-28 släpps?
Troligen, ja. Den tillståndslösa kärnan som diskuterats tidigare är tänkt att fixa produktionsskalningsproblem som team har stött på. Att ett protokoll blir enklare under press är ofta ett tecken på mognad, inte tillbakagång.
Hur tekniska blir MCP-intervjuer på nybörjarnivå egentligen?
Det varierar med rollen. En allmän AI-engineering-screen kan stanna vid värd kontra klient kontra server och verktyg kontra resurser. En plattforms- eller infrastrukturroll kan snabbt gå in på transporter och auth, även på en relativt junior nivå.