Del 5 av 5: Gör AI faktiskt användbart med Model Context Protocol
Välkommen till vår sista artikel! Vi har byggt RAG-system, finjusterat modeller och skapat anpassad AI från grunden. Nu kommer den mest spännande delen — att göra din AI faktiskt användbar i den verkliga världen. Introduktion till Model Context Protocol (MCP), bron mellan AI och allt annat.
Vad är MCP och varför bör du bry dig?
Tänk på hur frustrerande det är när du frågar ChatGPT att "kontrollera min kalender" eller "skicka det här mejlet" och det säger "Jag kan inte göra det." Det beror på att dessa AI-modeller lever i isolering — de kan tänka och skriva, men de kan inte faktiskt interagera med dina verktyg, databaser och applikationer på ett standardiserat sätt.
Model Context Protocol (MCP), utvecklat av Anthropic, löser detta grundläggande problem. Det handlar inte bara om att ge din AI "händer och ögon" — det handlar om att skapa ett standardiserat sätt för AI-modeller att upptäcka, ansluta till och interagera med externa resurser och verktyg.
Här är den viktigaste insikten: istället för att varje utvecklare bygger sina egna anpassade verktygsintegrationer (som alla fungerar olika), skapar MCP en universell standard. Tänk på det som USB-portar för AI-verktyg — vilken MCP-kompatibel verktyg som helst kan fungera med vilken MCP-kompatibel AI-applikation som helst.
Låt mig visa dig med ett verkligt exempel jag byggde: CmdGenie, som demonstrerar MCP-principerna i aktion.
Låt oss ta en analogi av CmdGenie: ett verktyg jag skapade för terminalkommandon:
CmdGenie är ett kommandoradsverktyg som konverterar dina naturliga språkförfrågningar till faktiska terminalkommandon. Även om det tekniskt sett inte är en MCP-server i sig, demonstrerar det MCP-filosofin: AI ansluten till ditt faktiska system genom standardiserade gränssnitt.
Istället för att googla "hur man hittar stora filer i Linux" och kopiera terminalkommandon, säger du bara:
cmdgenie "find all files larger than 100MB in my home directory"
Och det genererar och erbjuder att utföra:
find ~/ -type f -size +100M -exec ls -lh {} ;
Förstå MCP-arkitektur
Innan vi går djupare in i CmdGenie, låt oss förstå vad MCP faktiskt är:
MCP-servrar — Applikationer som tillhandahåller verktyg och resurser som AI kan använda. Tänk på dem som specialiserade tjänsteleverantörer.
MCP-klienter — AI-applikationer som ansluter till MCP-servrar för att upptäcka och använda tillgängliga möjligheter.
Transporter — Kommunikationslagret (vanligtvis stdio eller Server-Sent Events) som tillåter klienter och servrar att kommunicera.
Här är den avgörande delen: AI-modellen körs på klientsidan, men den kan upptäcka och anropa verktyg som finns på olika MCP-servrar. Detta skapar ett distribuerat ekosystem där:
- Verktyg är standardiserade och återanvändbara
- Säkerhet upprätthålls (servrar körs isolerat)
- Möjligheter kan delas mellan applikationer
- Varje server kan implementera finkorniga åtkomstkontroller
CmdGenie-arkitekturen: MCP-principerna tillämpade
Här är vad som händer när du använder CmdGenie, vilket demonstrerar viktiga MCP-koncept:
1. Kontextupptäckning och standardisering
const systemContext = {
platform: os.platform(), // Windows, Mac, Linux
currentDir: process.cwd(),
availableCommands: checkAvailableCommands(),
userPreferences: loadUserConfig()
};
I sann MCP-anda upptäcker systemet tillgängliga möjligheter och sammanhang. AI:n vet vilket system det körs på och anpassar sig därefter — fråga om "processlist" på Windows, få tasklist; fråga på Linux, få ps aux.
2. Standardisering av flera leverantörer
const providers = {
'openai': { defaultModel: 'gpt-3.5-turbo' },
'anthropic': { defaultModel: 'claude-3-haiku-20240307' },
'google': { defaultModel: 'gemini-pro' },
'cohere': { defaultModel: 'command' }
};
Precis som MCP inte är bunden till en specifik AI-modell, demonstrerar CmdGenie flexibilitet hos leverantörer. Du kan byta mellan olika AI-leverantörer beroende på dina behov, kostnader eller prestandakrav.
3. Säker körning med människa-i-loopen
console.log(`n💡 Generated command: ${command}`);
rl.question('n🚀 Execute this command? (y/N): ', async (answer) => {
if (answer.toLowerCase() === 'y') {
try {
const { stdout, stderr } = await execAsync(command);
if (stdout) console.log(stdout);
if (stderr) console.error(stderr);
} catch (error) {
console.error('❌ Execution error:', error.message);
}
}
});
Detta demonstrerar en avgörande MCP-princip: AI föreslår, människor godkänner. Klienten (din terminal) behåller kontrollen över vad som faktiskt utförs.
Bygga en verklig MCP-server
Medan CmdGenie visar MCP-principerna, låt oss titta på hur du skulle bygga en faktisk MCP-server. Här är en enkel matematisk operationsserver:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(name="mcp-server", host="0.0.0.0", port=8000)
@mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b
@mcp.tool() def multiply(a: int, b: int) -> int: """Multiply two numbers""" return a * b
if __name__ == "__main__": mcp.run(transport="sse")
Det vackra med MCP är standardiseringen:
- Dekoratören
@mcp.tool()genererar automatiskt korrekt verktygsscheman - Vilken MCP-klient som helst kan upptäcka och använda dessa verktyg
- Servern körs oberoende och kan betjäna flera klienter
Bortom CmdGenie: Verkliga MCP-applikationer
Principerna bakom CmdGenie gäller otaliga MCP-scenarier:
E-posthanteringsserver
@mcp.tool() async def send_email(to: str, subject: str, body: str): """Send an email through the configured email service""" # Implementation connects to actual email service pass
Kalenderintegreringsserver
@mcp.tool() async def find_available_slot(duration: int, participants: list): """Find available meeting time for given participants""" # Implementation connects to calendar service pass
Filsystemoperationsserver
@mcp.tool() async def organize_directory(path: str, rules: dict, preview: bool = True): """Organize files in directory according to specified rules""" # Implementation handles actual file operations pass
Den riktiga kraften: Kontextuell AI med standardiserade verktyg
Vad som gör MCP kraftfullt är inte bara att AI kan utföra kommandon — det är att det tillhandahåller ett standardiserat sätt att fatta kontextuellt medvetna beslut. CmdGenie demonstrerar denna kontextmedvetenhet:
Användaren säger: "Visa mig vad som tar upp utrymme"
- På Windows:
dir /s /-c | sort /r - På Linux:
du -h --max-depth=1 | sort -hr - På macOS:
du -h -d 1 | sort -hr
I ett MCP-ekosystem blir denna kontextmedvetenhet ännu kraftfullare eftersom:
- Flera servrar kan tillhandahålla sammanhang (systeminformation, användarinställningar, tillgängliga verktyg)
- AI kan kedja verktyg från olika servrar för att utföra komplexa uppgifter
- Allt följer samma standardiserade protokoll
Bygga din egen MCP-integration
Redo att bygga i MCP-ekosystemet? Här är mönstret:
1. Definiera din MCP-server
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(name="my-custom-server")
@mcp.tool() def my_tool(param: str) -> str: """Description of what this tool does""" # Your implementation here return result
2. Skapa kontextmedvetna verktyg
@mcp.tool() def system_aware_command(user_request: str): """Generate system-appropriate command for user request""" system_info = get_system_context() user_prefs = get_user_preferences()return generate_command(user_request, system_info, user_prefs)
3. Implementera säkerhet och validering
@mcp.tool()
def safe_file_operation(operation: str, path: str):
"""Perform file operation with safety checks"""
if not is_safe_path(path):
raise ValueError("Path not approved for operations")
preview = generate_preview(operation, path)
# In real implementation, you'd have approval mechanism
return execute_with_safety_checks(operation, path)
4. Anslut med MCP-klienter
Vilken MCP-kompatibel klient som helst kan upptäcka och använda din server:
# Client code (simplified)
async def use_mcp_server():
session = await connect_to_mcp_server("http://localhost:8000/sse")
tools = await session.list_tools()
result = await session.call_tool(
name="my_tool",
arguments={"param": "value"}
)
return result
MCP-designprinciper
Från att bygga verktyg som CmdGenie och förstå MCP-arkitekturen, här är de viktigaste principerna:
Standardisering: Verktyg följer konsekventa scheman och protokoll Människa-i-loopen: AI föreslår, människor godkänner kritiska åtgärder Kontextmedvetenhet: AI anpassar sig till miljö, användarinställningar och aktuellt tillstånd Säkerhet först: Validera, förhandsgranska och begränsa potentiellt farliga operationer Transparens: Visa användare exakt vad AI gör Reversibilitet: När det är möjligt, låt användare ångra AI-åtgärder Lärande: Förbättring baserat på framgångar och misslyckanden Interoperabilitet: Vilken MCP-klient som helst kan fungera med vilken MCP-server som helst
Vanliga MCP-fallgropar
Överautomatisering: Automatisera inte allt. Vissa uppgifter bör förbli manuella för säkerhet och övervakning.
Kontextöverbelastning: För mycket sammanhang kan förvirra AI. Var selektiv om vilken information som ska inkluderas.
Säkerhetsblindblek: MCP-servrar har åtkomst till känsliga operationer. Implementera ordentlig säkerhet från dag ett.
Ignorera standarder: MCP:s kraft kommer från standardisering. Skapa inte egna protokoll.
Dålig felhantering: Distribuerade system misslyckas. Planera för nätverksproblem, serveravbrott och kantfall.
Din MCP-resa börjar här
Du behöver inte bygga nästa Cursor för att dra nytta av MCP. Börja i litet:
Välj ett arbetsflöde: Välj något du gör upprepade gånger Identifiera nödvändiga verktyg: Vilka möjligheter skulle en AI behöva för att hjälpa? Bygga eller hitta MCP-servrar: Skapa enkla servrar eller använd befintliga Lägg till säkerhetskydd: Implementera godkännandearbetsflöden och validering Lär och iterera: Förbättring baserat på faktisk användning
Framtiden för AI handlar inte bara om smartare modeller — det handlar om AI som faktiskt kan göra saker i världen genom standardiserade, säkra och återanvändbara protokoll. MCP är det protokollet, och ekosystemet börjar just att blomstra.
Vill du utforska koden? Kolla in CmdGenie här och prova det med npm från här. Avslutande av vår resa
Vi har täckt mycket mark i denna serie:
- Artikel 1: Förstå AI-landskapet
- Artikel 2: Bygga RAG-system för bättre informationsåtkomst
- Artikel 3: Finjustera modeller för dina specifika behov
- Artikel 4: Skapa anpassade modeller från grunden
- Artikel 5: Ansluta AI till den verkliga världen med MCP
Den gemensamma tråden? AI är mest kraftfullt när det är kopplat till ditt specifika sammanhang, data och arbetsflöden. Oavsett om det är genom RAG, finjustering, anpassade modeller eller MCP-integrationer, är målet detsamma: göra AI som faktiskt hjälper dig få saker gjorda.
Verktygen finns. Modellerna är tillgängliga. Den enda frågan är: vad kommer du att bygga?
Framtiden för AI handlar inte om att ersätta människor — det handlar om att utöka mänskliga möjligheter med intelligenta, kontextuella, anslutna system. Och nu vet du hur du bygger dem.
Tack för att du gick igenom denna artikelserie. Jag är alltid öppen för att prata om teknik eller filmer. Du kan nå mig på LinkedIn.


