Techsy
Kontakt
Kom i gang
Tilbage til blog
ai-machine-learning

Model Context Protocol: Byg din første MCP-server i dag

Skrevet af Mert Batur Gürbüz
Mar 17, 2026
18 minutters læsning
Indholdsfortegnelse
Model Context Protocol: Byg din første MCP-server i dag

Model Context Protocol (MCP) er en åben standard, der giver AI-modeller en universel måde at forbinde sig til eksterne værktøjer, datakilder og tjenester på. I stedet for at skrive skræddersyet integrationskode for hver kombination af model og værktøj, skriver du én MCP-server, som enhver kompatibel model kan bruge. Anthropic skabte MCP i slutningen af 2024, Linux Foundation styrer det nu, og OpenAI, Google og resten af økosystemet for agentbaseret AI har adopteret det. Her er alt, hvad du behøver at vide for at forstå, bygge og deploye MCP.

MCP ved et øjekast

Hvis du vil have den korte version, før du dykker ned i 6.000 ord med detaljer, så er den her.

AttributDetalje
Fuldt navnModel Context Protocol (MCP)
Skabt afAnthropic (nov. 2024), nu styret af Linux Foundation / AAIF (dec. 2025)
Hvad det gørUniversel standard til at forbinde AI-modeller med værktøjer, data og tjenester
Problem det løserEliminerer M x N skræddersyede integrationer, ligesom USB-C til AI
KerneprimitiverVærktøjer, ressourcer, prompts og sampling
Transportstdio (lokal udvikling), Streamable HTTP (produktion)
GodkendelseOAuth 2.1 (krævet til HTTP-transport)
SDK'erPython (FastMCP), TypeScript, Java, Kotlin, C#
Økosystemets størrelse10.000+ aktive servere (ifølge Linux Foundation, dec. 2025)
Store adoptørerClaude, ChatGPT, Gemini, Cursor, VS Code Copilot, Windsurf
SpecifikationsstatusÅben standard, under aktiv udvikling (2026-køreplan i gang)
Bedst tilAI-agenter, der skal interagere med virkelige værktøjer og data

Lad os nu udfolde hver af disse punkter, startende med hvad MCP egentlig er, og det problem, der gjorde det nødvendigt.

Hvad er Model Context Protocol?

Model Context Protocol er en åben, JSON-RPC-baseret protokol, der standardiserer, hvordan AI-modeller opdager og interagerer med eksterne værktøjer og data. Tænk på det som HTTP til AI-integrationer – et fælles sprog, som enhver model og ethvert værktøj kan tale.

Du har sandsynligvis hørt USB-C-analogien, og den er nyttig op til et vist punkt: før USB-C skulle hver enhed have sit eget kabel. MCP gør det samme for AI, men analogien undervurderer det. USB-C transporterer kun data og strøm. MCP transporterer værktøjsdefinitioner, datatilgangsmønstre, genanvendelige prompt-skabeloner og lader endda servere anmode om fuldførelser fra modellen. Det er en rigere protokol, end en kabelmetafor antyder.

M x N-problemet, som MCP løser

Uden MCP kræver tilslutning af M modeller til N værktøjer M x N skræddersyede integrationer. Lad os sige, at du understøtter 5 LLM'er (Claude, GPT-4, Gemini, Llama, Mistral) og har brug for, at de får adgang til 10 værktøjer (GitHub, Postgres, Slack, Jira osv.). Det betyder 50 specialdesignede integrationslag, hver med sin egen godkendelse, fejlhåndtering og dataformatering.

Med MCP implementerer hver model MCP-klientprotokollen én gang, og hvert værktøj implementerer en MCP-server én gang. Nu er det 5 + 10 = 15 implementationer i stedet for 50. Tilføjer du en ny model? Den virker straks med alle 10 værktøjer. Tilføjer du et nyt værktøj? Alle 5 modeller kan bruge det.

En kort historie om MCP

Anthropic open-sourcede MCP i november 2024 sammen med SDK'er til Python og TypeScript samt connectors til Claude Desktop. Adoptionen gik hurtigt. OpenAI tilføjede MCP-understøttelse til ChatGPT i marts 2025. Google fulgte efter for Gemini i april 2025. I december 2025 donerede Anthropic MCP til Linux Foundations nye Agentic AI Foundation (AAIF), stiftet sammen med Block og OpenAI, hvilket gjorde MCP til en leverandørneutral standard med tværindustriel styring.

Hvad MCP IKKE er:

  • Ikke en model eller et AI-framework (det er en protokol, ligesom HTTP)
  • Ikke en erstatning for LangChain eller LlamaIndex (disse er orkestreringslag; MCP sidder under dem)
  • Ikke begrænset til Anthropic eller Claude (det er modelagnostisk pr. design)
  • Ikke det samme som funktionskald (mere om det i sammenligningsafsnittet)

Hvordan fungerer MCP? Arkitektur-dybdeanalyse

MCP har tre roller, og at blande dem sammen er den mest almindelige begynderfejl. Lad os få styr på forskellen.

<!-- IMAGE: MCP-arkitekturdiagram, der viser host-, klient- og serverroller med rigtige eksempler som Claude Desktop, GitHub MCP Server, Postgres MCP Server -->

Host, klient og server – hvad er forskellen?

KomponentRolleEksemplerHvad det gør
HostApplikationen, som brugeren interagerer medClaude Desktop, Cursor, VS CodeLeverer UI'en, administrerer klientinstanser
KlientProtokolhåndterer inde i hostenIndbygget i host-applikationenOpretholder en 1:1-forbindelse med én MCP-server
ServerEksponerer værktøjer og data via MCPGitHub-server, Postgres-server, Slack-serverIndpakker eksterne API'er/data i MCP-kompatible endpoints

Her er et konkret eksempel: Du beder Claude Desktop om at tjekke dine åbne GitHub pull requests. Claude Desktop er hosten. Dens indbyggede MCP-klient åbner en forbindelse til GitHub MCP-serveren. Serveren kalder GitHub API'en, henter dine PR'er og returnerer resultaterne til klienten, som giver dem videre til modellen.

En enkelt host kan køre flere klienter, hver forbundet til en anden server. Det er sådan, Claude Desktop samtidigt kan få adgang til GitHub, din Postgres-database og Slack – tre separate MCP-servere, tre separate klientforbindelser, én host.

Hvordan beskeder flyder (JSON-RPC 2.0)

Al MCP-kommunikation bruger JSON-RPC 2.0, en letvægts request/response-protokol. Her er hvordan en tools/list-udveksling ser ud på netværksniveau:

json
// Client request: "What tools do you have?"
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}

// Server response: one tool available
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "get_weather",
        "description": "Get current weather for a city",
        "inputSchema": {
          "type": "object",
          "properties": {
            "city": { "type": "string" }
          },
          "required": ["city"]
        }
      }
    ]
  }
}

Modellen læser disse værktøjsdefinitioner, beslutter hvornår de skal kaldes baseret på brugerens anmodning, og klienten sender en tools/call-anmodning tilbage til serveren med de passende argumenter.

Forbindelsens livscyklus

Enhver MCP-session følger den samme livscyklus:

  1. Initialisering, klienten sender kapaciteter, serveren svarer med sine egne
  2. Kapacitetsforhandling, begge sider bliver enige om understøttede funktioner (værktøjer, ressourcer, prompts, sampling)
  3. Klar, forbindelsen er aktiv; anmodninger flyder begge veje
  4. Anmodninger/svar, tools/call, resources/read osv.
  5. Nedlukning, ren afbrydelse

Denne håndtryk sikrer fremadrettet kompatibilitet. Hvis en server tilføjer en ny primitiv, ignorerer ældre klienter den elegant i stedet for at crashe.

MCP-primitiver: Værktøjer, ressourcer, prompts og sampling

MCP definerer fire primitiver, og forståelsen af, hvem der kontrollerer hver enkelt, er nøglen til at designe gode MCP-servere.

PrimitivHvem kontrollerer detRetningEksempelBrugstilfælde
VærktøjerModellen beslutter hvornår de kaldesKlient -> Servercreate_github_issueHandlinger AI'en tager autonomt
RessourcerApplikation/bruger vælgerKlient -> Serverfile://project/README.mdData knyttet til konteksten
PromptsBruger udløserKlient -> Servercode_review skabelonGenanvendelige interaktionsmønstre
SamplingServer anmoder om fuldførelseServer -> KlientServer beder modellen om at opsummereAgent-loops, hvor serveren bruger LLM'en

Værktøjer (modelkontrollerede)

Værktøjer er funktioner, som modellen kan kalde. Serveren erklærer dem med et navn, en beskrivelse og en JSON Schema-inputdefinition. Modellen læser disse definitioner, og når en brugers anmodning kræver det, beslutter modellen at invocere værktøjet.

json
// Client sends tools/call request
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": { "city": "Berlin" }
  }
}

Hvis du har brugt OpenAI-funktionskald, vil værktøjer føles bekendte, men de er standardiserede på tværs af alle MCP-kompatible modeller.

Ressourcer (applikationskontrollerede)

Ressourcer er read-only dataendpoints. I modsætning til værktøjer beslutter modellen ikke selv at hente en ressource; host-applikationen eller brugeren knytter eksplicit ressourcer til samtalekonteksten. Tænk på dem som GET-endpoints: postgres://mydb/users/schema, file://docs/api-reference.md.

Ressourcer understøtter abonnementer via resources/subscribe, så klienten kan blive notificeret, når data ændres.

Prompts (brugerkontrollerede)

Prompts er genanvendelige skabeloner, som en MCP-server eksponerer. En code_review-prompt kan acceptere en filsti og generere en struktureret review-anmodning. Brugeren (eller host-UI'en) udløser prompts eksplicit; de bliver ikke auto-invokeret af modellen.

Sampling (serverinitieret), avanceret

Her er den primitiv, de fleste guides springer over. Sampling lader serveren bede klienten om at generere en fuldførelse ved hjælp af LLM'en. Dette vender den sædvanlige flow om: i stedet for at modellen kalder et værktøj, kalder værktøjet modellen.

Hvorfor? Agent-loops. Forestil dig en MCP-server, der behandler supportbilletter. Den læser billetten (en ressource), bruger sampling/createMessage til at bede modellen om et resumé og bruger derefter dette resumé til at rute billetten via et værktøj. Serveren orkestrerer et flertrins-workflow ved hjælp af modellens intelligens.

Sampling er begrænset af host-applikationen; brugeren skal godkende det, og hosten kontrollerer, hvad serveren kan anmode om. Dette forhindrer ukontrollerede loops og opretholder menneskelig tilsyn.

Byg din første MCP-server: Python og TypeScript side om side

Nok teori. Lad os bygge en fungerende MCP-server, der eksponerer et get_weather-værktøj. Jeg viser både Python og TypeScript, så du kan sammenligne udvikleroplevelsen og vælge den stack, der passer til dit projekt.

Python med FastMCP

FastMCP er det officielle højniveaus Python-SDK. Det håndterer al protokollens infrastruktur, så du kan fokusere på din værktøjslogik.

bash
# Install FastMCP
pip install fastmcp
python
# weather_server.py
from fastmcp import FastMCP

mcp = FastMCP("Weather Server")

@mcp.tool()
def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    # In production, call a real weather API here
    weather_data = {
        "Berlin": "Cloudy, 12°C",
        "Tokyo": "Sunny, 22°C",
        "New York": "Rainy, 8°C",
    }
    return weather_data.get(city, f"No data for {city}")

if __name__ == "__main__":
    mcp.run()

Det var det – 15 linjer. FastMCP udleder værktøjets input-schema fra Python-typehintsene og docstringen. Ingen JSON Schema-boilerplate.

TypeScript med det officielle SDK

TypeScript SDK (@modelcontextprotocol/sdk) er lidt mere eksplicit, men giver dig fuld kontrol over schemadefinitionerne.

bash
# Install the SDK and Zod for schema validation
npm install @modelcontextprotocol/sdk zod
typescript
// weather-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "Weather Server",
  version: "1.0.0",
});

server.tool(
  "get_weather",
  "Get the current weather for a city",
  { city: z.string() },
  async ({ city }) => {
    const weatherData: Record<string, string> = {
      Berlin: "Cloudy, 12°C",
      Tokyo: "Sunny, 22°C",
      "New York": "Rainy, 8°C",
    };
    return {
      content: [
        { type: "text", text: weatherData[city] ?? `No data for ${city}` },
      ],
    };
  }
);

const transport = new StdioServerTransport();
await server.connect(transport);

TypeScript-versionen bruger Zod-schemas i stedet for typehints og returnerer strukturerede indholdsblokke. Mere verbose, men typesikkerheden er fremragende.

Forbind til Claude Desktop

For at forbinde enten server til Claude Desktop skal du tilføje den til din claude_desktop_config.json:

json
{
  "mcpServers": {
    "weather-python": {
      "command": "python",
      "args": ["weather_server.py"],
      "cwd": "/path/to/your/project"
    },
    "weather-typescript": {
      "command": "npx",
      "args": ["tsx", "weather-server.ts"],
      "cwd": "/path/to/your/project"
    }
  }
}

Genstart Claude Desktop, og begge vejrsservere vises på værktøjslisten. Spørg "Hvad er vejret i Berlin?", og modellen kalder dit get_weather-værktøj automatisk.

Test med MCP Inspector

Før du forbinder din server til en host, skal du teste den isoleret med MCP Inspector:

bash
npx @modelcontextprotocol/inspector python weather_server.py

Inspectoren åbner en browser-UI, hvor du kan se opdagede værktøjer, invoke dem manuelt og inspicere de JSON-RPC-beskeder, der går frem og tilbage. Det er det absolut bedste debuggingsværktøj i MCP-økosystemet – brug det tidligt og ofte.

MCP-transports: stdio til udvikling, Streamable HTTP til produktion

MCP-beskeder skal have en måde at rejse mellem klient og server på. Det er transportlaget, og valget af det rigtige er vigtigt.

TransportBrugstilfældeFordeleUlemperStatus
stdioLokal udvikling, personlige værktøjerNul konfiguration, simpelt, hurtigtKun samme maskineAktiv
Streamable HTTPProduktion, remote servere, multi-brugerVirker over netværk, understøtter streaming via SSE, stateless-venligKræver HTTP-server, behov for authAktiv (2025-spec)
HTTP+SSE (gammel)Legacy remote transportVar den oprindelige remote mulighedErstattet af Streamable HTTPForældet

stdio fungerer ved at spawn'e MCP-serveren som en underproces og kommunikere over stdin/stdout. Det er det, du brugte i guiden ovenfor; ingen porte, ingen TLS, ingen auth nødvendig. Perfekt til udvikling og single-user lokale værktøjer.

Streamable HTTP er produktions-transporten, tilføjet i 2025-spec-opdateringen. Klienter sender standard HTTP POST-anmodninger til serveren. Serveren kan svare synkront eller åbne en SSE-stream for længere operationer. Det er stateless-venligt, fungerer bag load balancere og understøtter standard HTTP-godkendelse.

Hvis du ser ældre tutorials, der nævner "HTTP+SSE" som to separate transports (én til sending, én til modtagelse), er det den forældede tilgang. Streamable HTTP konsoliderer begge til en enkelt, renere mekanisme.

Beslutningen er ligetil: brug stdio, når du udvikler lokalt, skift til streamable-http, når du deployer til andre.

typescript
// Switching from stdio to Streamable HTTP in TypeScript
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

const transport = new StreamableHTTPServerTransport({ port: 3001 });
await server.connect(transport);

MCP vs. funktionskald vs. REST APIs – hvornår skal du bruge hvad?

Dette er spørgsmålet, der dukker op i hver MCP-diskussion, så lad os afgøre det med en direkte sammenligning.

FunktionMCPFunktionskaldREST APIs
StandardiseringÅben protokol, modelagnostiskPer-leverandør (OpenAI, Anthropic har hver deres)Universel
VærktøjsopdagelseIndbygget (tools/list)Ingen, du sender schemas per anmodningIngen, kræver docs eller OpenAPI-spec
DatatilgangRessource-primitivIkke understøttetStandard endpoints
Prompt-skabelonerPrompt-primitivIkke understøttetIkke relevant
AuthOAuth 2.1 (spec-niveau)Leverandør API-nøgleVarierer (API-nøgler, OAuth osv.)
StreamingSSE via Streamable HTTPLeverandørafhængigVarierer
Multi-modelVirker med enhver MCP-kompatibel modelLåst til én leverandørs APIModelagnostisk (med glue code)
Server-økosystem10.000+ forudbyggede servereN/AMillioner af APIs
OpsætningskompleksitetKør en MCP-serverSend JSON i API-kaldHTTP-klient
Bedst tilMulti-model, multi-værktøjs agentmiljøerSimpel single-model apps med få værktøjerService-til-service kommunikation

Når funktionskald er nok

Hvis du har færre end 5 værktøjer og bruger én model, er funktionskald simplere. Du definerer dine værktøjsschemas inline med hvert API-kald, modellen returnerer funktionsnavnet og argumenterne, og du eksekverer dem i din applikationskode. Ingen server at køre, ingen protokol at lære. Til en chatbot, der tjekker ordrestatus og slår FAQs op, er funktionskald helt fint.

Når MCP bliver det værd

MCP retfærdiggør sin kompleksitet, når:

  • Du understøtter flere LLM'er og ikke vil omskrive værktøjsdefinitioner for hver leverandør
  • Du har brug for værktøjsopdagelse, modellen kan spørge, hvad der er tilgængeligt, i stedet for at du hardcoder schemas
  • Du ønsker ressourcer og prompts, ikke bare værktøjskald
  • Du bygger AI-agenter, der koordinerer autonomt og har brug for et standardiseret integrationslag
  • Dit team vokser, og forskellige ingeniører bygger forskellige værktøjer; MCP lader dem arbejde uafhængigt

Dom: MCP vinder, når du har brug for standardiseret, multi-model værktøjsadgang. Funktionskald vinder til simple, single-model brugstilfælde. REST APIs forbliver det rigtige valg til traditionel service-til-service kommunikation, der ikke involverer en LLM.

MCP-økosystemet i 2026: Hvem understøtter det, og hvad er tilgængeligt

MCP gik fra at være et Anthropic-sideprojekt til en industristandard på under 18 måneder. Her er status.

Hvilke LLM'er understøtter MCP?

LLMMCP-understøttelseSidenNoter
ClaudeNaturlig, fuld understøttelseNov. 2024Skabte MCP; dybeste integration
ChatGPTOfficiel understøttelseMar. 2025Via OpenAIs MCP-integration
GeminiOfficiel understøttelseApr. 2025Google Cloud MCP-servere til Google-tjenester
Llama / Open-SourceVia adapters2025LangChain, LlamaIndex og custom adapters
Copilot (VS Code)Naturlig i agent-tilstand2025Microsoft leverer MCP-understøttelse i VS Code

Populære MCP-servere, det er værd at kende

KategoriServerHvad det gør
KodeGitHubPR'er, issues, repos, kodesøgning
KodeGitLabMerge requests, pipelines, projektledelse
DatabasePostgreSQLSchema-inspektion, query-eksekvering
DatabaseMySQLQuery- og schema-adgang
SaaSSlackKanalbeskeder, søgning, notifikationer
SaaSGoogle DriveFiladgang, søgning, dokumentlæsning
SaaSNotionSidelæsning, databasequeries
SøgningBrave SearchWebsøgeresultater
DevOpsDockerContaineradministration
InfraAWSCloud-resourceadministration

Linux Foundations AAIF-annonce citerede 10.000+ aktive servere og 97 millioner månedlige SDK-downloads på tidspunktet for MCP-donationen i december 2025. Økosystemet er ikke længere eksperimentelt; det er produktionsklart.

MCP Apps er en ny primitiv introduceret i januar 2026. Det lader servere levere interaktive UI-komponenter, der renderes inde i host-applikationen. Stadig tidligt, men det signalerer MCP's evolution fra en dataprotokol til et fuld agent-applikationsframework. Værd at holde øje med.

Styring: Fra Anthropic til Linux Foundation

MCP styres af Agentic AI Foundation (AAIF) under Linux Foundation, stiftet af Anthropic, Block og OpenAI. Dette er vigtigt for enterprise-adoption: MCP er ikke bundet til én leverandørs roadmap. 2026-køreplanens prioriteter er transportevolution, agent-til-agent kommunikation (en ny "Tasks"-primitiv), styringsmodenhed og enterprise-readiness.

For teams, der bygger produktions-AI-systemer, integrerer frameworks som et autonomt AI-agent framework som OpenClaw allerede med MCP-servere for at give agenter virkelige evner.

MCP-sikkerhed: OAuth 2.1, trusler og en praktisk tjekliste

Sikkerhed er det område i MCP-økosystemet, der har mest jord at dække. Og tallene maler et skarpt billede.

88%-problemet: Hvorfor de fleste MCP-servere er usikre

Astrix Security analyserede 5.200+ open-source MCP-serverimplementationer og fandt, at 88% kræver legitimationsoplysninger af en art, men 53% relies on insecure long-lived static secrets like API keys and personal access tokens hardcoded in config files. Kun 8,5% implementerer OAuth.

Det betyder, at det overvældende flertal af MCP-servere i naturen bruger den autentificeringsækvivalent, der svarer til at tape husnøglen til yderdøren.

OAuth 2.1 til MCP-servere

MCP-specifikationen kræver OAuth 2.1 for alle HTTP-baserede servere fra juni 2025-opdateringen. Flowet fungerer sådan: MCP-klienten initierer en OAuth 2.1-autorisationsflow med serveren, opnår et scoped access token og inkluderer det med hver efterfølgende anmodning. PKCE (Proof Key for Code Exchange) er påkrævet for alle klienter, ingen undtagelser.

Hvis du bygger en MCP-server, der kører over Streamable HTTP, er OAuth 2.1 ikke valgfrit. Det er spec-påkrævet.

Trusselsmodel: Hvad kan gå galt

Fire trusler fortjener opmærksomhed i enhver MCP-deployment:

  • Prompt-injektion via værktøjer: En ondsindet eller kompromitteret datakilde returnerer indhold designet til at manipulere modellen. Hvis et værktøj henter en webside, og siden indeholder skjulte instruktioner, kan modellen udføre dem.
  • Confused deputy-angreb: Modellen invokerer et værktøj med bredere tilladelser, end brugeren intendede. Hvis MCP-serveren har admin-adgang til en database, kunne modellen teoretisk set droppe en tabel.
  • Token-koncentrationsrisiko: En MCP-server, der holder API-nøgler til GitHub, Slack og din produktionsdatabase, er et enkelt højværdimål. Kompromitter én server, kompromitter alt, den forbinder til.
  • Usikker transport: At køre en HTTP MCP-server uden TLS eksponerer hver anmodning, inklusive OAuth-tokens og følsomme data, i plaintext.

Sikkerhedstjekliste til produktions-MCP

  1. Implementer OAuth 2.1 for enhver server eksponeret over HTTP. Ingen statiske API-nøgler i konfigurationsfiler.
  2. Anvend least-privilege scoping. Hvis dit værktøj kun læser data, bør serverens credentials være read-only. Giv ikke et rapporteringsværktøj write-adgang.
  3. Isoler credentials. Hver MCP-server bør have sine egne scoped tokens. Del ikke et enkelt "god-token" på tværs af servere.
  4. Håndhæv TLS overalt. Streamable HTTP uden HTTPS er et automatisk no-go til produktion.
  5. Valider og sanitiser værktøjsoutputs. Behandle data returneret af værktøjer på samme måde, som du ville behandle brugerinput – stol ikke blindt på det.
  6. Rate-limit værktøjsinvokationer. Et ukontrolleret agent-loop, der kalder et værktøj tusindvis af gange, kan udtømme API-kvoter eller forårsage utilsigtede bivirkninger.
  7. Auditer og log hvert værktøjskald. Inkluder request IDs, timestamps, den kaldende model og værktøjsargumenterne. Du har brug for dette til debugging og til sikkerhedsincidentrespons.

Debugging af MCP: Inspector, logging og almindelige fejl

Du vil støde på fejl. Det gør alle udviklere. Her er hvordan du fikser dem hurtigt.

MCP Inspector er det officielle debuggingsværktøj og din første forsvarslinje. Det forbinder til enhver MCP-server, opdager dens værktøjer/ressourcer/prompts og lader dig invoke dem manuelt, mens det viser den rå JSON-RPC-trafik.

bash
# Launch Inspector against your Python server
npx @modelcontextprotocol/inspector python weather_server.py

# Or against a TypeScript server
npx @modelcontextprotocol/inspector npx tsx weather-server.ts

Inspectoren åbner en browserbaseret UI med faner for Værktøjer, Ressourcer, Prompts og et notifications-pane. Du kan kalde ethvert værktøj med custom arguments og se præcis, hvilken JSON der går over ledningen. Brug det, før du forbinder til en host-applikation; det er meget lettere at debugge serveren isoleret.

Almindelige fejl og fixes

  • "Server not found" i Claude Desktop: Næsten altid et stiproblem i claude_desktop_config.json. Dobbelttjek at command resolver til en rigtig binary, og at cwd peger på den korrekte mappe. På macOS skal du bruge absolutte stier.
  • Værktøjs-schema-valideringsfejl: Hvis modellen sender argumenter, der ikke matcher værktøjets inputSchema, afviser serveren kaldet. Tjek at dine schematyper matcher, hvad modellen forventer. Zod (TypeScript) og typehints (Python) fanger de fleste af disse på definitionstidspunktet.
  • Transport-forbindelsesafbrydelser: For stdio betyder dette normalt, at serverprocessen crashe. Tjek stderr-output. For Streamable HTTP skal du verificere timeout-indstillinger; langvarige værktøjer kan overskride standard HTTP-timeouts.
  • "Permission denied" eller 401-fejl: OAuth-scope for snævert. Serveren afviser tokenet, fordi det ikke har de nødvendige tilladelser. Udvid scopet, men kun så meget som værktøjet faktisk har brug for.

Logging best practices

Strukturer dine logs med request IDs, så du kan spore en enkelt brugeranmodning på tværs af MCP-klienten, serveren og eventuelle downstream-API'er. Log hver tools/call-invokation med værktøjsnavn, argumenter, responstid og resultatstatus. I produktion skal du sende disse logs til en observabilitetsplatform; når noget går galt kl. 3 om natten, vil du være glad for, at du gjorde det.

Hvordan Techsy bygger med MCP

Vi har integreret MCP i klientprojekter siden starten af 2025, og det mønster, vi ser oftest, er dette: Et team har en AI-funktion, der virker med én model og en håndfuld værktøjer, men de planlægger at scale – flere modeller, flere datakilder, flere agentevner. Det er vendepunktet, hvor MCP begynder at betale sig.

Vores tilgang følger tre trin:

  1. Vurdér fit. Ikke hvert projekt har brug for MCP. Hvis du kalder to værktøjer fra en enkelt model, er funktionskald simplere, og det vil vi fortælle dig. MCP giver mening, når du forbinder 3+ datakilder, understøtter flere modeller eller bygger agent-workflows, hvor værktøjer skal være discoverable.
  2. Byg og test servere isoleret. Vi udvikler custom MCP-servere til hver datakilde – interne databaser, SaaS-API'er, proprietære tjenester – og validerer dem med MCP Inspector, før vi forbinder til nogen host.
  3. Deploy med Streamable HTTP og OAuth 2.1. Til produktion kører vi MCP-servere som containeriserede services bag TLS, med scoped OAuth-tokens og struktureret logging fra dag ét. Ingen statiske secrets.

De mest almindelige integrationer, vi bygger: Forbindelse af AI-assistenter til interne Postgres-databaser, bygning af custom MCP-servere til klient-SaaS-platforme og migration af teams fra spredte funktionskalds-setups til en standardiseret MCP-arkitektur.

Bygger du AI-drevne værktøjer, der skal forbinde til din infrastruktur? Vi hjælper teams med at arkitekture og implementere MCP-integrationer. Få en gratis konsultation

Ofte stillede spørgsmål om MCP

Hvad er Model Context Protocol (MCP)?

MCP er en åben standard, oprindeligt skabt af Anthropic og nu styret af Linux Foundation, der definerer, hvordan AI-modeller forbinder sig til eksterne værktøjer, datakilder og tjenester. Det standardiserer integrationslaget, så én MCP-server virker med enhver kompatibel model, ligesom et universelt stik til AI.

Hvordan fungerer MCP?

MCP bruger en tredelt arkitektur: en host-applikation (som Claude Desktop eller Cursor), en MCP-klient inde i hosten, der administrerer forbindelser, og MCP-servere, der eksponerer værktøjer og data. Al kommunikation bruger JSON-RPC 2.0-beskeder over enten stdio (lokalt) eller Streamable HTTP (remote).

Hvad bruges MCP til?

Almindelige brugstilfælde inkluderer forbindelse af AI-assistenter til databaser (Postgres, MySQL), integration med kodeplatforme (GitHub, GitLab), adgang til SaaS-værktøjer (Slack, Notion, Google Drive) og bygning af autonome AI-agenter, der skal interagere med virkelige tjenester.

Er MCP det samme som funktionskald?

Nej. Funktionskald er modelspecifikt (OpenAIs format adskiller sig fra Anthropics) og per-anmodning; du sender værktøjschemas med hvert API-kald. MCP er en standardiseret protokol, der virker på tværs af modeller, understøtter værktøjsopdagelse og inkluderer ressourcer og prompts udover blot funktionsudførelse.

Hvad er MCP-servere?

MCP-servere er programmer, der eksponerer værktøjer, ressourcer og prompts til AI-modeller via MCP-protokollen. De indpakker eksterne API'er og datakilder i en standardiseret grænseflade. Eksempler inkluderer GitHub MCP-serveren (til PR- og issue-administration) og Postgres MCP-serveren (til databasequeries).

Hvordan bygger jeg en MCP-server?

Brug Python med FastMCP (pip install fastmcp) eller TypeScript med det officielle SDK (npm install @modelcontextprotocol/sdk). Definer dine værktøjer som dekorerede funktioner (Python) eller registrerede handlers (TypeScript), og kør derefter serveren. Se tutorial-afsnittet ovenfor for komplet fungerende kode, eller følg vores trin-for-trin guide til at bygge en MCP-server fra bunden for en fuld gennemgang.

Er MCP sikkert?

Protokollen selv understøtter OAuth 2.1 til godkendelse og scoped tilladelser. Men Astrix Security-research fandt, at 88% af eksisterende MCP-serverimplementationer relies on static secrets rather than OAuth. Protokollen er sikker pr. design, men de fleste real-world deployments har ikke hentet ind endnu.

Hvilke LLM'er understøtter MCP?

Claude har naturlig MCP-understøttelse siden skabelsen i november 2024. ChatGPT tilføjede understøttelse i marts 2025, og Gemini fulgte efter i april 2025. Open-source modeller kan bruge MCP gennem adapters i LangChain og LlamaIndex.

Hvad er forskellen mellem MCP og en REST API?

REST APIs er designet til generel service-til-service kommunikation. MCP er designet specifikt til AI-modelinteraktion; det inkluderer værktøjsopdagelse, schemaforhandling, ressourceadgang og prompt-skabeloner, som REST ikke har. Du ville ikke erstatte dine REST APIs med MCP; de tjener forskellige lag.

Hvem vedligeholder MCP nu?

Linux Foundations Agentic AI Foundation (AAIF), dannet i december 2025, styrer MCP. Det blev stiftet af Anthropic, Block og OpenAI. Denne leverandørneutrale styring er en vigtig grund til, at enterprises adopterer MCP.

Hvad er Streamable HTTP i MCP?

Streamable HTTP er produktions-transportmekanismen tilføjet i 2025 MCP-spec-opdateringen. Den erstatter den ældre HTTP+SSE-transport med et renere design: klienter sender HTTP POST-anmodninger, og servere kan svare synkront eller via SSE-streaming. Det fungerer bag load balancere og understøtter standard HTTP-godkendelse.

Hvor mange MCP-servere findes der?

Linux Foundation citerede 10.000+ aktive servere og 97 millioner månedlige SDK-downloads, da MCP blev doneret til AAIF i december 2025. Økosystemet spænder over databaser, kodeværktøjer, SaaS-integrationer, søgemaskiner og cloud-infrastrukturudbydere.

Konklusion

MCP er gået fra at være Anthropics open-source-eksperiment til industristandardprotokollen for at forbinde AI-modeller med værktøjer på lidt over et år. Her er hvad der betyder noget:

  • MCP løser M x N-problemet: én server virker med enhver kompatibel model, én klient virker med enhver server
  • Du kan bygge en fungerende MCP-server på under 50 linjer Python (FastMCP) eller TypeScript
  • Brug stdio til udvikling, Streamable HTTP til produktion: transportvalget er ligetil
  • Sikr dine servere med OAuth 2.1: 88% af nuværende implementationer gør det ikke, og det er en reel risiko
  • Økosystemet er produktionsklart: 10.000+ servere, alle store LLM'er, leverandørneutral styring under Linux Foundation

Med blikket fremad fokuserer 2026-køreplanen på agent-til-agent kommunikation via en ny Tasks-primitiv, forbedret enterprise-sikkerhed og MCP Apps til interaktiv server-drevet UI. MCP er ikke længere bare en protokol til værktøjsadgang; det bliver infrastrukturelaget for agentbaseret AI.

Start med tutorial-koden ovenfor, test den i MCP Inspector, og forbind den til Claude Desktop. Du vil have en fungerende MCP-integration på under en time.

Kilder

  • MCP Specification (2025-11-25)
  • MCP Authorization Specification
  • MCP Transports Specification
  • MCP Inspector Documentation
  • Introducing the Model Context Protocol, Anthropic
  • Donating MCP to the Linux Foundation, Anthropic
  • Linux Foundation AAIF Announcement
  • Google Cloud MCP Support
  • FastMCP Python SDK
  • MCP TypeScript SDK
  • Astrix Security: State of MCP Server Security 2025
  • MCP 2026 Roadmap

Tags

model context protocolmcpmcp serverai agentermcp tutorialmcp arkitekturfastmcpai udvikling

Del denne artikel

Relaterede artikler

Mere fra ai-machine-learning

ai-machine-learning
Jul 24, 2026

Claude Opus 5 er her: Næsten Fable 5-intelligens til halvdelen af prisen

Anthropic udgav Claude Opus 5 den 24. juli 2026. Den mere end fordobler Opus 4.8 på Frontier-Bench og holder Opus-prisen, men taber et par test til Fable 5 og Mythos 5. Her er benchmark-tabellen, prisen og en skift/vent/bliv-vurdering.

10 min read minutters læsning
Læs
ai-machine-learning
Jul 20, 2026

8 bedste AI web scraping-API'er i 2026 (testet på vores egen agent-stack)

Vi testede 8 AI web scraping-API'er med reelle 2026-priser hentet gennem vores egen agent-stack. Firecrawl, Bright Data, ScrapingBee og 5 flere, rangeret efter LLM-klar output, anti-bot og MCP-understøttelse.

9 min read minutters læsning
Læs
ai-machine-learning
Jul 20, 2026

Prompt Engineering til kodning: 7 mønstre, vi bruger dagligt i Claude Code og Cursor (2026)

De fleste artikler om 'AI-kodningsprompts' giver dig 50 skabeloner at kopiere. Denne artikel lærer dig de 7 mønstre, vi bruger hver dag til at drive en 16-agent Claude Code-pipeline, med ægte før-og-efter eksempler for hvert enkelt, samt hvor hvert mønster hører hjemme i Claude Code, Cursor og Copilot i 2026.

11 min read minutters læsning
Læs
Se alle indlæg
Start dit projekt

Klar til at bygge noget ekstraoordinær?

Lad os gøre din vision til virkelighed. Vores team står klar til at hjælpe dig med at skabe software, der gør en forskel.

Book et 30 min. scopemødeSe vores arbejde

Fra biblioteket

Claude Skills

Se alle
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI-automatiseringer

Se alle
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Fra biblioteket

Claude Skills

Se alle
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

AI-automatiseringer

Se alle
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Tjenester

  • Entertainmentløsninger
  • Mobilapps
  • Webapplikationer

Løsninger

  • CRM-systemer
  • AI-integration
  • ERP-løsninger
  • Stemmeargenter
  • Processautomatisering
  • Cybersikkerhed

Bibliotek

  • Blog
  • Portfolio

Fællesskab

  • AI-automatiseringer
  • Claude Skills

Værktøjer

  • Pris på mobil-app
  • OpenAI / LLM API-prisreknemaskine
  • Pris på MVP
  • Pris på stemme-AI-agent

Virksomhed

  • Om
  • Partnere
  • Kontakt

Juridisk

  • Privatlivspolitik
  • Salgsbetingelser
  • Cookiepolitik

Tjenester

  • Entertainmentløsninger
  • Mobilapps
  • Webapplikationer

Løsninger

  • CRM-systemer
  • AI-integration
  • ERP-løsninger
  • Stemmeargenter
  • Processautomatisering
  • Cybersikkerhed

Bibliotek

  • Blog
  • Portfolio

Fællesskab

  • AI-automatiseringer
  • Claude Skills

Værktøjer

  • Pris på mobil-app
  • OpenAI / LLM API-prisreknemaskine
  • Pris på MVP
  • Pris på stemme-AI-agent

Virksomhed

  • Om
  • Partnere
  • Kontakt
JuridiskPrivatlivspolitikSalgsbetingelserCookiepolitik
TECHSY
© 2026 Techsy. Alle rettigheder forbeholdes.