Del 5 af 5: Gøre AI faktisk brugbar med Model Context Protocol
Velkommen til vores sidste artikel! Vi har bygget RAG-systemer, finjusteret modeller og skabt custom AI fra bunden. Nu kommer den mest spændende del — at gøre din AI faktisk brugbar i den virkelige verden. Velkommen til Model Context Protocol (MCP), broen mellem AI og alt det øvrige.
Hvad er MCP og hvorfor skulle du bekymre dig?
Tænk på hvor frustrerende det er, når du spørger ChatGPT om at "tjekke min kalender" eller "sende denne email", og det siger "Det kan jeg ikke". Det er fordi disse AI-modeller lever isoleret — de kan tænke og skrive, men de kan ikke faktisk interagere med dine værktøjer, databaser og applikationer på en standardiseret måde.
Model Context Protocol (MCP), udviklet af Anthropic, løser dette grundlæggende problem. Det handler ikke bare om at give din AI "hænder og øjne" — det handler om at skabe en standardiseret måde for AI-modeller at opdage, forbinde til og interagere med eksterne ressourcer og værktøjer.
Her er nøgleindsigten: i stedet for at hver udvikler bygger deres egen brugerdefinerede værktøjsintegration (som alle virker anderledes), skaber MCP en universal standard. Tænk på det som USB-porte til AI-værktøjer — ethvert MCP-kompatibelt værktøj kan arbejde med enhver MCP-kompatibel AI-applikation.
Lad mig vise dig med et virkelig eksempel, jeg byggede: CmdGenie, som demonstrerer MCP-principper i aktion.
Lad os tage en analogi af CmdGenie: et værktøj, jeg oprettede til terminalkommandoer:
CmdGenie er et kommandolinje-værktøj, der konverterer dine natursproglige anmodninger til faktiske terminalkommandoer. Selvom det ikke teknisk set er en MCP-server selv, demonstrerer det MCP-filosofiens kerne: AI forbundet til dit faktiske system gennem standardiserede interfaces.
I stedet for at google "hvordan man finder store filer i Linux" og kopiere terminalkommandoer, siger du bare:
cmdgenie "find all files larger than 100MB in my home directory"
Og det genererer og tilbyder at udføre:
find ~/ -type f -size +100M -exec ls -lh {} ;
Forståelse af MCP-arkitektur
Før vi dykker dybere ned i CmdGenie, lad os forstå hvad MCP faktisk er:
MCP-servere — Applikationer, der leverer værktøjer og ressourcer, som AI kan bruge. Tænk på dem som specialiserede serviceudbydere.
MCP-klienter — AI-applikationer, der forbinder til MCP-servere for at opdage og bruge tilgængelige muligheder.
Transporter — Kommunikationslaget (typisk stdio eller Server-Sent Events), som tillader klienter og servere at kommunikere.
Her er den afgørende del: AI-modellen køres på klientsiden, men den kan opdage og kalde værktøjer, som ligger på forskellige MCP-servere. Dette skaber et distribueret økosystem hvor:
- Værktøjer er standardiseret og genbrugelige
- Sikkerhed opretholdes (servere køres isoleret)
- Muligheder kan deles på tværs af applikationer
- Hver server kan implementere finkornet adgangskontrol
CmdGenie-arkitekturen: MCP-principper sat i praksis
Her er hvad der sker, når du bruger CmdGenie, demonstrerer vigtige MCP-koncepter:
1. Kontekstregistrering og standardisering
const systemContext = {
platform: os.platform(), // Windows, Mac, Linux
currentDir: process.cwd(),
availableCommands: checkAvailableCommands(),
userPreferences: loadUserConfig()
};
I sand MCP-stil opdager systemet tilgængelige muligheder og kontekst. AI'en ved, hvilket system den kører på, og tilpasser sig derefter — spørg efter "proceslist" på Windows, få tasklist; spørg på Linux, få ps aux.
2. Multi-udbyder-standardisering
const providers = {
'openai': { defaultModel: 'gpt-3.5-turbo' },
'anthropic': { defaultModel: 'claude-3-haiku-20240307' },
'google': { defaultModel: 'gemini-pro' },
'cohere': { defaultModel: 'command' }
};
Ligesom MCP ikke er bundet til en enkelt AI-model, demonstrerer CmdGenie udbyder-fleksibilitet. Du kan skifte mellem forskellige AI-udbydere baseret på dine behov, omkostninger eller ydeevnekrav.
3. Sikker udførelse med menneske-i-løkken
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);
}
}
});
Dette demonstrerer et afgørende MCP-princip: AI foreslår, mennesker godkender. Klienten (din terminal) forbliver i kontrol over hvad der faktisk bliver udført.
Byg en rigtig MCP-server
Selvom CmdGenie viser MCP-principper, lad os se på hvordan du ville bygge en faktisk MCP-server. Her er en enkel matematikoperations-server:
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 smukke ved MCP er standardiseringen:
@mcp.tool()dekoratøren genererer automatisk korrekte værktøjsskemaer- Enhver MCP-klient kan opdage og bruge disse værktøjer
- Serveren køres uafhængigt og kan betjene flere klienter
Ud over CmdGenie: Rigtige MCP-applikationer
Principperne bag CmdGenie gælder for utallige MCP-scenarier:
E-mailhåndterings-server
@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
Kalender-integrations-server
@mcp.tool() async def find_available_slot(duration: int, participants: list): """Find available meeting time for given participants""" # Implementation connects to calendar service pass
Filsystem-operationer-server
@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 rigtige kraft: Kontekstuel AI med standardiserede værktøjer
Hvad der gør MCP kraftfuldt, er ikke bare at AI kan udføre kommandoer — det er at det giver en standardiseret måde at træffe kontekstbevidste beslutninger. CmdGenie demonstrerer denne kontextbevidsthed:
Bruger siger: "Vis mig hvad der fylder plads"
- 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 et MCP-økosystem bliver denne kontextbevidsthed endnu mere kraftfuld, fordi:
- Flere servere kan give kontekst (systeminfo, brugerindstillinger, tilgængelige værktøjer)
- AI kan sammenkæde værktøjer fra forskellige servere for at udføre komplekse opgaver
- Alt følger samme standardiserede protokol
Byg din egen MCP-integration
Klar til at bygge i MCP-økosystemet? Her er mønstret:
1. Definer 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. Opret kontektbevidste værktøjer
@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. Implementer sikkerhed og 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. Forbind med MCP-klienter
Enhver MCP-kompatibel klient kan opdage og bruge 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-designprincipper
Fra at bygge værktøjer som CmdGenie og forstå MCP-arkitektur, her er de vigtigste principper:
Standardisering: Værktøjer følger konsistente skemaer og protokoller Menneske-i-løkken: AI foreslår, mennesker godkender kritiske handlinger Kontektbevidsthed: AI tilpasser sig miljø, brugerindstillinger og nuværende tilstand Sikkerhed først: Valider, forhåndsvis og begræns potentielt farlige operationer Transparens: Vis brugere præcis hvad AI'en gør Reversibilitet: Når det er muligt, tillad brugere at fortryde AI-handlinger Læring: Forbedre baseret på succeser og fejl Interoperabilitet: Enhver MCP-klient kan arbejde med enhver MCP-server
Almindelige MCP-faldgruber
Over-automatisering: Automatisér ikke alt. Nogle opgaver bør forblive manuelle for sikkerhed og kontrol.
Kontekstoverbelastning: For meget kontekst kan forvirre AI. Vær selektiv om hvilken information du inkluderer.
Sikkerhedsblindhed: MCP-servere har adgang til følsomme operationer. Implementer ordentlig sikkerhed fra dag ét.
Ignorerer standarder: Kraften ved MCP kommer fra standardisering. Opret ikke brugerdefinerede protokoller.
Dårlig fejlhåndtering: Distribuerede systemer fejler. Planlæg for netværksproblemer, servere downtime og edge cases.
Din MCP-rejse starter her
Du behøver ikke bygge det næste Cursor for at få gavn af MCP. Start småt:
Vælg ét arbejdsflow: Vælg noget du gør gentagne gange Identificer påkrævede værktøjer: Hvilke muligheder ville en AI have brug for for at hjælpe? Byg eller find MCP-servere: Opret simple servere eller brug eksisterende Tilføj sikkerhedsbarrierer: Implementer godkendelses- og valideringsarbejdsgange Lær og iterer: Forbedre baseret på faktisk brug
Fremtiden for AI er ikke bare smartere modeller — det er AI som faktisk kan gøre ting i verden gennem standardiserede, sikre og genbrugelige protokoller. MCP er den protokol, og økosystemet begynder netop at blomstre.
Vil du udforske koden? Tjek CmdGenie her og prøv det ved hjælp af npm fra her. Opsummering af vores rejse
Vi har dækket meget i denne serie:
- Artikel 1: Forståelse af AI-landskabet
- Artikel 2: Byg RAG-systemer for bedre informationsadgang
- Artikel 3: Finjuster modeller til dine specifikke behov
- Artikel 4: Opret brugerdefinerede modeller fra bunden
- Artikel 5: Forbind AI til den virkelige verden med MCP
Gennemsnittet? AI er mest kraftfuldt når det er forbundet til din specifikke kontekst, data og arbejdsgange. Uanset om det er gennem RAG, finjustering, brugerdefinerede modeller eller MCP-integrationer, er målet det samme: at lave AI som faktisk hjælper dig med at få tingene gjort.
Værktøjerne eksisterer. Modellerne er tilgængelige. Det eneste spørgsmål er: hvad vil du bygge?
Fremtiden for AI handler ikke om at erstatte mennesker — det handler om at udbygge menneskets evner med intelligente, kontekstuelle, forbundne systemer. Og nu ved du hvordan man bygger dem.
Tak fordi du gik gennem denne artikelserie. Jeg er altid åben for at tale om tech eller film. Du kan kontakte mig på LinkedIn.


