Svenska
  • MCP
  • Model Context Protocol
  • AI

Vad är MCP (Model Context Protocol) och hur det fungerar

En lättförståelig guide till Model Context Protocol (MCP), som förklarar hur det hjälper LLM att få tillgång till externa resurser för att övervinna kunskapsbegränsningar och bygga mer kraftfulla AI-applikationer.

Yijun
Yijun
Developer

Sluta slösa veckor på användarautentisering
Lansera säkra appar snabbare med Logto. Integrera användarautentisering på några minuter och fokusera på din kärnprodukt.
Kom igång
Product screenshot

Vad är MCP?

MCP (Model Context Protocol) är ett öppet, universellt protokoll som standardiserar hur applikationer förser stora språkmodeller (LLMs) med kontextinformation.

Enkelt uttryckt, precis som HTTP-protokollet tillåter olika webbplatser och webbläsare att utbyta information enligt samma regler, är MCP som HTTP-protokollet i AI-världen. MCP gör det möjligt för olika AI-modeller att ansluta till olika datakällor och verktyg på ett standardiserat sätt. Denna standardisering gör det enklare för utvecklare att bygga AI-applikationer utan att behöva skapa specialiserade gränssnitt för varje modell eller datakälla.

Varför behöver vi MCP?

Stora språkmodeller (LLMs) är kraftfulla, men de står inför flera viktiga begränsningar:

  • Kunskapsbegränsningar och uppdateringsutmaningar: LLMs känner bara till information som ingår i deras träningsdata. Till exempel sträcker sig GPT-4:s kunskap fram till april 2023. Att träna stora språkmodeller kräver enorma datorkapaciteter och tid, ofta tar det sex månader eller mer att slutföra en ny version. Detta skapar ett svårt problem: modellkunskap är alltid "föråldrad" medan uppdateringar är extremt dyra och tidskrävande. När en ny modell är färdigtränad har dess kunskap redan börjat bli föråldrad.

  • Brist på specialiserad domänkunskap: LLMs tränas med allmänt tillgängliga data. De kan inte förstå specialiserad data och information i specifika affärsscenarier. Till exempel är en medicinsk institutions interna processer, ett företags produktkatalog eller en organisations specifika kunskap inte inkluderade i modellens träningsområde.

  • Inget enhetligt standard för åtkomst till extern data: För närvarande finns det många metoder för att tillhandahålla ytterligare information till LLMs, såsom RAG (Retrieval-Augmented Generation), lokala kunskapsbaser, internetsökningar, etc. Olika utvecklingsteam erbjuder olika integrationslösningar, vilket leder till höga integrationskostnader mellan system. System med specialiserad domändata (som CRM, ERP, medicinska journalsystem, etc.) är svåra att integrera sömlöst med LLMs. Varje integration kräver en anpassad utveckling och saknar en gemensam, standardiserad metod.

Det är därför vi behöver MCP. MCP tillhandahåller ett standardiserat protokoll som gör det möjligt för LLMs att få tillgång till extern information och verktyg på ett konsekvent sätt, vilket löser alla ovanstående problem. Genom MCP kan vi få följande viktiga fördelar:

  • Rika förbyggda integrationer: MCP erbjuder många färdiga serverintegrationer, inklusive filsystem, databaser (PostgreSQL, SQLite), utvecklingsverktyg (Git, GitHub, GitLab), nätverksverktyg (Brave Search, Fetch), produktivitetsverktyg (Slack, Google Maps) och mer. Detta betyder att du inte behöver bygga dessa integrationer från början. Du kan helt enkelt använda dessa förbyggda kontakter för att låta LLMs få åtkomst till data i dessa system.

  • Flexibelt byte mellan LLM-leverantörer: Idag kanske du använder GPT-4, imorgon kanske du vill prova Claude eller Gemini, eller använda olika LLMs för olika scenarier. Med MCP behöver du inte skriva om hela applikationens integrationslogik. Du behöver bara ändra den underliggande modellen och alla data- och verktygsintegrationer förblir oförändrade.

  • Bygga komplexa AI-arbetsflöden: Föreställ dig ett juridiskt dokumentanalysystem som behöver fråga flera databaser, använda specifika verktyg för dokumentjämförelse och generera rapporter. MCP tillåter dig att bygga sådana komplexa agenter och arbetsflöden ovanpå LLMs.

Hur fungerar MCP

I MCP finns tre kärnroller: MCP Server (tillhandahåller verktyg och dataåtkomst), MCP Client (inbäddad i LLM och kommunicerar med MCP Server), och MCP Hosts (applikationer som integrerar LLMs och Klienter, såsom Claude Desktop, Cursor, etc.). Låt oss titta närmare på dessa tre roller för att se hur de samverkar.

MCP Server

MCP Server är ett program som tillhandahåller verktyg och dataåtkomstmöjligheter för LLMs att använda. Till skillnad från traditionella fjärranrop API-servrar kan MCP Server köras som en lokal applikation på användarens enhet eller distribueras till en fjärrserver.

Varje MCP Server tillhandahåller en uppsättning specifika verktyg som ansvarar för att hämta information från lokala data eller fjärrtjänster. När en LLM bestämmer att den behöver använda ett visst verktyg när den bearbetar en uppgift, kommer den att använda de verktyg som tillhandahålls av MCP Server för att få den nödvändiga datan och återlämna den till LLM.

MCP Client

MCP Client är bron som sammankopplar LLMs och MCP Servrar. Inbäddad i LLM, är den ansvarig för:

  • Ta emot förfrågningar från LLM
  • Vidarebefordra förfrågningar till motsvarande MCP Server
  • Återvända resultat från MCP Server tillbaka till LLM

Du kan läsa mer om att integrera MCP Klient med LLMs genom att kolla Utveckla en MCP Klient.

MCP Värdar

Program som Claude Desktop, IDEs (Cursor, etc.), eller AI-verktyg som vill få åtkomst till data genom MCP. Dessa applikationer tillhandahåller användargränssnitt för att interagera med LLMs, medan de integrerar MCP Klient för att ansluta till MCP Servrar och utöka LLM-funktioner med de verktyg som tillhandahålls av MCP Servrar.

MCP Arbetsflöde

De tre rollerna ovan bildar slutligen en AI-applikation byggd på MCP.

Ett exempel arbetsflöde för detta system är som följer:

Hur man bygger en MCP Server

MCP Server är den mest kritiska länken i MCP-systemet. Den bestämmer vilka verktyg LLM kan använda för att få tillgång till vilken data, vilket direkt påverkar de funktionella gränserna och kapaciteterna för AI-applikationen.

För att börja bygga din egen MCP Server rekommenderas det att först läsa den officiella MCP snabbstartsguiden, som beskriver hela processen från miljöinställningar till MCP Server-implementering och användning. Vi kommer endast att förklara de grundläggande implementeringsdetaljerna.

Definiera verktyg som tillhandahålls av MCP Server

Kärnfunktionen i en MCP Server är att definiera verktyg genom server.tool()-metoden. Dessa verktyg är funktioner som LLM kan anropa för att erhålla extern data eller utföra specifika operationer. Låt oss titta på ett förenklat exempel med Node.js:

I detta exempel definierar vi ett verktyg kallat search-documents som accepterar en frågesträng och maximalt antal resultat som parametrar. Verktygets implementering skulle ansluta till ett kunskapsbassystem och returnera sökresultat.

LLM kommer att besluta om det ska använda detta verktyg baserat på verktygets definition och användarens fråga. Om det behövs kommer LLM att anropa detta verktyg, få resultaten och generera ett svar som kombinerar resultaten med användarens fråga.

Bästa praxis för att definiera verktyg

När du bygger sådana verktyg kan du följa dessa bästa praxis:

  • Tydliga beskrivningar: Tillhandahåll detaljerade, noggranna beskrivningar för varje verktyg, där dess funktionalitet, tillämpbara scenarion och begränsningar tydligt anges. Detta hjälper inte bara LLM att välja rätt verktyg utan gör det också enklare för utvecklare att förstå och underhålla koden.
  • Parameterverifiering: Använd Zod eller liknande bibliotek för att strikt verifiera inmatningsparametrar, säkerställa korrekta typer, rimliga värdeintervall, och avvisa icke-kompatibla inmatningar. Detta förhindrar att fel förökas till backend-system och förbättrar den övergripande stabiliteten.
  • Felinhantering: Implementera omfattande felhanteringsstrategier, fånga möjliga undantag och returnera användarvänliga felmeddelanden. Detta förbättrar användarupplevelsen och tillåter LLM att tillhandahålla meningsfulla svar baserat på fellägen, snarare än att helt enkelt misslyckas.
  • Dataåtkomstkontroll: Säkerställ att backend-resursernas API:er har robusta autentiserings- och auktorisationsmekanismer, och utform noga behörighetsområden för att begränsa MCP Server till att bara ha åtkomst till och returnera data som användaren är auktoriserad för. Detta förhindrar läckage av känslig information och säkerställer datasäkerhet.

Hur man säkerställer säkerheten för datautbytet mellan MCP (AI-modeller) och externa system

Vid implementering av MCP Servrar som ansluter AI-modeller med externa system finns det två viktiga säkerhetsutmaningar i MCP-implementeringen:

  • Autentisering: Till skillnad från traditionella applikationer kan användaren i MCP-miljön inte logga in med traditionella inloggningsflöden (som användarnamn/lösenord, e-post/verifieringskod, etc.) för att få åtkomst till det externa systemet.
  • Åtkomstkontroll för MCP Server-förfrågningar: Användare som använder system via AI-verktyg är samma individer som kan använda ditt system direkt. MCP Server fungerar som deras representant när de interagerar via AI-verktyg. Att designa om en hel åtkomstkontrollmekanism enbart för att tillgodose MCP Server skulle kräva betydande ansträngningar och kostnader.

Den nyckellösning för dessa utmaningar är att implementera Personliga Åtkomsttoken (PATs). PATs erbjuder ett säkert sätt för användare att bevilja åtkomst utan att dela sina autentiseringsuppgifter eller kräva interaktiv inloggning.

Så här fungerar arbetsflödet:

Denna metod gör det möjligt för din befintliga tjänst att bibehålla sina autentiseringsmekanismer medan den säkert möjliggör MCP-integration.

Du kan referera till blogginlägget: Stärka ditt företag: koppla AI-verktyg till din befintliga tjänst med åtkomstkontroll med ett komplett exempelkällkod för att lära dig hur man använder Logtos Personliga Åtkomsttoken (PATs) i kombination med Rollbaserad Åtkomstkontroll (RBAC) för att begränsa resurserna som MCP kan få åtkomst till från backend-tjänster.

Sammanfattning

MCP (Model Context Protocol) ger revolutionära förändringar i kombinationen av LLMs och specifika verksamheter. Det löser problemen med kunskapsbegränsningar hos stora språkmodeller, bristen på specialiserad domänkunskap och icke-enhetliga standarder för extern dataåtkomst.

Att använda MCP för att ansluta dina egna tjänster kommer att bringa nya möjligheter till ditt företag. MCP är bron som kopplar AI till affärsvärde. Du kan skapa AI-assistenter som verkligen förstår ditt företags interna kunskap, utveckla intelligenta verktyg som får tillgång till den senaste datan och bygga professionella applikationer som uppfyller branschspecifika behov.