Hva om du aldri trengte å kopiere og lime inn igjen? Hva om AI-assistenten din bare… visste hva som sto i kalenderen din, hvilke saker som lå åpne, og hvilke filer du jobbet med?
Det er nettopp det MCP – Model Context Protocol handler om. Det er en teknisk standard som gjør at AI kan kommunisere med verktøyene dine, hente informasjon og utføre handlinger – på lik linje med at du gjør det selv, bare raskere.
USB-porten for AI
Tenk på det som en universalplugg
Før USB fantes, hadde alle enheter forskjellige kontakter. Skriveren hadde én type plugg, musa en annen, og kameraet en tredje. Kaos.
USB løste dette – én standard som fungerer med alt. Du plugger inn, og det bare virker.
MCP er det samme for AI. Før MCP måtte hvert AI-verktøy lage sin egen spesialintegrasjon mot hvert enkelt system. Med MCP finnes det én felles standard – og alle kan koble seg til den.
Det betyr at en AI-assistent som Claude, GPT eller Gemini kan bruke akkurat samme «plugg» for å koble seg til Google Calendar, Slack, GitHub, Jira eller din egen database. Utviklerne trenger bare å bygge én MCP-server per verktøy – ikke hundre individuelle integrasjoner.
Hva kan MCP brukes til?
La oss gjøre det konkret. Her er situasjoner du sikkert kjenner deg igjen i:
«Hva ser uken min ut som?»
AI-en leser Google Calendar direkte og gir deg en oppsummering – uten at du trenger å kopiere inn noe.
«Skriv et svar til den siste e-posten fra Kari»
AI-en henter e-posten fra Gmail, leser innholdet, og skriver et utkast til svar – klart til å sende.
«Hva ble diskutert i #produkt-kanalen sist uke?»
AI-en leser Slack-historikken og gir deg en kortfattet oppsummering av de viktigste punktene.
«Finn kvartalsrapporten vi lagde i Q3»
AI-en søker i Google Drive, finner filen og viser deg innholdet – eller oppdaterer den direkte.
«Hvilke bugs er åpne på sprint-tavlen vår?»
AI-en kobler seg til Jira eller GitHub Issues og henter en liste over aktive saker.
«Lag et møtereferat og legg det i Notion»
AI-en skriver referatet basert på notatene dine og lagrer det direkte i riktig Notion-side.
Hvem bestemmer hva AI får lov til?
Dette er kanskje det viktigste å forstå: du bestemmer. MCP er bygget med et tillatelsessystem som lar deg velge akkurat hvor mye frihet AI-en skal ha.
De fleste MCP-klienter (som Claude Desktop) lar deg konfigurere tre modi:
Et praktisk eksempel: e-post
Si at du gir Claude tilgang til Gmail via MCP. En fornuftig oppsett kan være:
Lese e-post AUTOMATISK
Claude kan hente og lese e-poster uten å spørre. Ingen risiko – det er bare lesing.
Sende e-post BEKREFT
Før Claude sender noe, ser du utkastet og godkjenner. Du har alltid siste ord.
Slette e-post BEKREFT
Slikt vil du aldri at AI-en skal gjøre uten at du vet om det. Alltid manuell godkjenning.
Dette mønsteret – lese automatisk, skrive med bekreftelse – er det mest vanlige og fornuftige oppsettet for de fleste brukere.
Slik er MCP bygget opp
MCP følger en enkel klient–server-arkitektur. Når du snakker med Claude, sitter det en MCP-klient i applikasjonen som videresender forespørsler til en MCP-server for hvert verktøy du har koblet til.
Flyplassen-analogien
Claude er passasjeren. MCP-klienten er gate-agenten som vet hvilke fly som finnes. Hver MCP-server er et fly til ulike destinasjoner – Calendar, Gmail, GitHub, Notion, din egen database.
Du (passasjeren) sier hva du vil. Gate-agenten finner riktig fly. Flyet tar deg dit du skal.
En minimal MCP-server i Python
La oss si du vil lage en MCP-server som lar Claude hente løpsøktene dine fra en lokal database (eller en CSV-fil). Her er skjelettet:
# Installer med: pip install mcp from mcp.server import FastMCP import json # Opprett MCP-serveren og gi den et navn mcp = FastMCP("treningslogg") # Simulert treningsdatabase okter = [ {"dato": "2025-03-10", "type": "løp", "km": 12.4, "puls": 148}, {"dato": "2025-03-08", "type": "sykling", "km": 32.0, "puls": 135}, {"dato": "2025-03-06", "type": "løp", "km": 8.5, "puls": 155}, ] # Definer et "tool" – noe Claude kan kalle på @mcp.tool() def hent_okter(antall: int = 5) -> str: """Henter de siste N treningsøktene fra loggen.""" siste = okter[:antall] return json.dumps(siste, ensure_ascii=False, indent=2) @mcp.tool() def legg_til_okt(dato: str, type: str, km: float, puls: int) -> str: """Legger til en ny treningsøkt i loggen.""" ny = {"dato": dato, "type": type, "km": km, "puls": puls} okter.insert(0, ny) return f"Lagt til: {type} på {km} km den {dato}" # Start serveren if __name__ == "__main__": mcp.run()
Koble serveren til Claude Desktop
Når serveren er klar, legger du den til i Claude Desktop sin konfigurasjonsfil. Filen heter claude_desktop_config.json og ligger i app-mappen din:
{
"mcpServers": {
"treningslogg": {
"command": "python",
"args": ["/sti/til/mcp_treningslogg.py"]
}
}
}
Start Claude Desktop på nytt, og nå kan du skrive: «Hva var gjennomsnittspulsen på de tre siste løpeturene mine?» – og Claude finner svaret direkte fra din egen logg.
Definere en «resource» (ikke bare tools)
MCP støtter ikke bare handlinger («tools»), men også ressurser – statisk eller dynamisk innhold som AI-en kan lese som kontekst:
@mcp.resource("treningslogg://statistikk") def vis_statistikk() -> str: """Gir AI-en oversiktsstatistikk som kontekst.""" totalt_km = sum(o["km"] for o in okter) snitt_puls = int(sum(o["puls"] for o in okter) / len(okter)) return f"Totalt {totalt_km:.1f} km logget. Snittspuls: {snitt_puls} bpm."
Tips og triks når du bygger MCPer
-
Skriv gode docstrings. Beskrivelsene på tools og resources er det AI-en leser for å forstå hva den kan gjøre. Vage beskrivelser gir dårlige resultater. Vær konkret: hvem, hva, når, og hva returneres.
-
Et tool – én ting. Skill mellom «hent», «opprett», «oppdater» og «slett». Ikke lag et gigant-tool som gjør alt. Små, fokuserte tools er lettere for AI å velge riktig.
-
Skill lese- og skrivetilgang. Skill eksplisitt mellom tools som bare leser og tools som endrer data. Gi dem ulike navn og beskriv konsekvensene tydelig i docstringen.
-
Returner forståelige feilmeldinger. Hvis noe går galt, ikke returner bare
Noneeller en tom liste. Returner en streng som forklarer hva som feilet – da kan AI-en gi brukeren et fornuftig svar. -
Bruk typer og validering. Definer typer på parametere (int, str, float). FastMCP validerer automatisk inndata og gir AI-en bedre forståelse av hva som forventes.
-
Logg hva som skjer. Spesielt for tools som skriver til databaser eller eksterne API-er – logg kall med tidsstempel. Da kan du se hva AI-en faktisk gjorde.
-
Test tools isolert først. Kall functions direkte fra Python før du kobler til MCP. Sørg for at logikken fungerer, deretter pakk den i MCP-laget.
Ikke stol blindt på MCPer du finner på nettet
MCP er et åpent protokoll-standard. Det betyr at hvem som helst kan publisere en MCP-server – og ikke alle er laget med gode hensikter.
Før du installerer en MCP-server fra en ukjent kilde, still deg disse spørsmålene:
- → Hva har denne serveren tilgang til? Les dokumentasjonen nøye. En MCP-server som kobler seg til filsystemet ditt kan potensielt lese alt.
- → Er kildekoden åpen? Åpen kildekode lar deg (eller noen du stoler på) sjekke hva serveren faktisk gjør. Unngå binære pakker uten kode.
- → Hvem har laget den? Kjente selskaper (Anthropic, Google, Atlassian) publiserer offisielle MCPer. Anonyme GitHub-repoer krever ekstra vurdering.
- → Prompt injection-risiko. En ondsinnet MCP-server kan lure AI-en til å utføre handlinger du ikke ønsket, ved å injisere instruksjoner i dataene den returnerer.
- → Gi minst mulig tilgang. Gi kun tilgang til de systemene serveren faktisk trenger. Ikke gi en kalender-MCP tilgang til filsystemet.
En tommelfingerregel: behandle en MCP-server som du ville behandlet et nettleser-extension. Nyttige, men de har tilgang til mye – og du bør vite hvem du gir den tilliten til.
MCP er ikke framtid – det er nå
MCP er allerede i aktiv bruk. Claude Desktop støtter det. Anthropic, Google og hundrevis av utviklere publiserer servere. Verktøy som Notion, GitHub, Slack, og Google Workspace har allerede offisielle eller uoffisielle MCP-integrasjoner.
Det som er nytt er ikke teknologien i seg selv – det er standardiseringen. Akkurat som USB forandret måten vi kobler til periferiutstyr på, er MCP i ferd med å forandre måten AI integrerer seg i arbeidsflyten vår.
Og det beste? Du trenger ikke være utvikler for å bruke det. Men hvis du er det – er det aldri morsommere å bygge.
Magnus Valmot er dataingeniør og AI-rådgiver i Dataviter. Han hjelper virksomheter med å gå fra data til verdi – ett integrasjonspunkt om gangen.