Model Context Protocol (MCP) er en åben standard, der giver modeller som Anthropics Claude og udviklerværktøjer som Claude Code mulighed for at kalde eksterne værktøjer, datakilder og prompts på en sikker og standardiseret måde.
Denne guide fører dig gennem processen med at bygge din egen MCP-server fra bunden, så Claude Code kan få adgang til brugerdefinerede funktioner og dermed udvide sin funktionalitet langt ud over det indbyggede.
Hvad er Model Context Protocol (MCP)?
MCP (Model Context Protocol) er en åben specifikation, designet til at standardisere, hvordan sprogmodelklienter (som Claude, Claude Code eller andre LLM-frontends) forbinder til værktøjsservere og datakilder. Tænk på MCP som en “USB-C-port til LLM’er”: den definerer en transport-/JSON-RPC-skema og en fælles måde for servere at publicere tre typer kapabiliteter:
- Ressourcer — fil- eller dokumentlignende data, som en klient kan læse (f.eks. en database-række, en tekstfil, en JSON-payload).
- Værktøjer — kaldbare funktioner, som modellen kan bede værten om at udføre (med brugerens godkendelse).
- Prompter — genbrugelige promptskabeloner eller workflows, som modellen/klienten kan påkalde.
MCP understøtter flere transporter (stdio, HTTP, SSE) og leverer skema, SDK’er og eksempelservere, så du ikke behøver at opfinde wire-formatet selv. Protokollen vedligeholdes offentligt (spec + SDK’er) og har tutorials samt et galleri af eksempelservere for at accelerere adoptionen.
Hvordan er MCP arkitekteret?
MCP’s arkitektur er bevidst enkel og modulær: kernekomponenterne er MCP-servere, MCP-klienter og transporter, der bærer JSON-RPC-indrammede meddelelser mellem dem. Nedenfor er de vigtigste komponenter, du vil interagere med, når du bygger en server til Claude Code (eller andre MCP-klienter).
Server, klient og protokollen
- MCP-server — En tjeneste, der publicerer værktøjer, ressourcer og prompter. Værktøjer kan udføre sideeffekter eller hente data; ressourcer eksponerer skrivebeskyttet indhold; prompter er genbrugelige promptskabeloner, som klienten kan bede modellen om at bruge.
- MCP-klient (vært) — Typisk en del af LLM-værten (f.eks. Claude Code, VS Code-plugin, en browserklient). Den opdager tilgængelige servere, præsenterer værktøjsbeskrivelser for modellen og videresender modelinitierede kald til servere.
- Protokol — Meddelelser er kodet som JSON-RPC; specifikationen definerer livscyklusbegivenheder, værktøjsopdagelse, påkaldelse, completions/sampling, samt hvordan strukturerede resultater transporteres tilbage til klienten og modellen.
Kommunikationsmønster (hvad sker der, når et værktøj bruges)
- Klienten sender brugermeddelelse til modellen.
- Modellen analyserer konteksten og beslutter at kalde et værktøj eksponeret via MCP (eller flere værktøjer).
- Klienten videresender værktøjskaldet til MCP-serveren over den valgte transport.
- Serveren udfører værktøjet og returnerer resultater.
- Modellen modtager værktøjsoutput og komponerer det endelige svar til brugeren.
Implementeringsprimitiver
- JSON-RPC-meddelelser følger MCP-skemaet.
- Værktøjsdefinitioner publiceres i serverens discovery-svar, så klienter kan præsentere dem i UI’et.
- Ressourcer refereres af klienter via
@source:path-syntaks (f.eks.@postgres:...), så modeller kan henvise til eksternt indhold uden at inline enorme datamængder i prompten.
Hvorfor integrere Claude Code med MCP-servere?
Claude Code er Anthropics tilbud med fokus på kode- og udviklercentriske arbejdsgange (editor/IDE-integration, kodeforståelse osv.). Ved at eksponere dine interne værktøjer (kildesøgning, CI-runner, ticketsystem, private registries) gennem MCP-servere kan Claude Code kalde dem som førsteklasses værktøjer inde i kode-samtaler og agentflows.
At integrere Claude Code med MCP-servere låser op for praktiske, produktionsrelevante kapabiliteter for en kodeagent:
1. Lad modellen handle på rigtige systemer
Claude Code kan bede en MCP-server om at forespørge issue-trackere, køre databaseforespørgsler, læse store dokumenter eller oprette GitHub PRs — hvilket muliggør end-to-end-automatisering direkte fra kodningssessionen. Dette er eksplicit understøttet af Claude Code-dokumentationen (eksempler: forespørgsel af Postgres, Sentry eller oprettelse af PRs).
2. Aflast store datamængder og specialiseret logik
I stedet for at indlejre hver datakilde i prompten (som bruger tokens), publicerer du data og værktøjer gennem MCP. Modellen kalder værktøjet, modtager et struktureret svar og ræsonnerer ud fra det — dette reducerer tokenforbrug og lader servere håndtere tungt arbejde (DB-forespørgsler, lange fil-læsninger, auth).
3. Sikkerhed og governance
MCP centraliserer adgangskontrol og revision på serverlaget, så organisationer kan whiteliste godkendte servere, kontrollere hvilke værktøjer der er tilgængelige og begrænse outputs. Claude Code understøtter også enterprise-MCP-konfiguration og samtykke pr. scope.
4. Genbrug og økosystem
MCP-servere kan genbruges på tværs af klienter og teams. Byg én gang, og mange Claude/LLM-klienter kan bruge de samme tjenester (eller udskifte implementeringer).
Hvad skal du have på plads, før du starter?
Minimumskrav
- En udviklermaskine med Python 3.10+ (vi bruger Python i eksemplet). Alternativt understøttes Node / andre sprog af MCP-SDK’er.
uv(Astrals værktøj) eller tilsvarende runner til at køre MCP-stdio-servere (MCP-tutorialen brugeruv). Installationsskridt vises nedenfor.- Claude Code installeret eller adgang til Claude-klienten (desktop eller CLI) for at registrere og teste din server; eller enhver MCP-kompatibel klient. Claude Code understøtter HTTP, SSE og lokale stdio-servere.
- Sikkerhedsnote: Tilføj kun betroede MCP-servere til Claude Code i team- eller enterprise-opsætninger — MCP giver servere adgang til følsomme data, og prompt-injektionsrisici eksisterer, hvis en server returnerer ondsindet indhold.
Sådan installerer og verificerer du Claude Code CLI
Dette er Claude Code installations- og brugervejledning.
1) Hurtigt overblik — anbefalede installationsmetoder
Brug den native installer (anbefalet) eller Homebrew på macOS/Linux. NPM er tilgængelig, hvis du har brug for en Node-baseret installation. Windows har PowerShell / CMD-installere. Kilde: officielle Claude Code-dokumenter & GitHub.
2) Forudsætninger
- macOS 10.15+, Ubuntu 20.04+/Debian 10+ eller Windows 10+ (WSL anbefales på Windows).
- Node.js 18+ er kun påkrævet for NPM-installationsmetoden.
3) Installationskommandoer (vælg én)
Native (anbefalet — ingen Node-afhængighed), macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
# optional: install latest explicitly
curl -fsSL https://claude.ai/install.sh | bash -s latest
# or install a specific version
curl -fsSL https://claude.ai/install.sh | bash -s 1.0.58
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
# or for latest: & (::Create((irm https://claude.ai/install.ps1))) latest
(Dette er de officielle native installer-scripts).
NPM (hvis du vil have en Node-baseret global installation):
# requires Node.js 18+
npm install -g @anthropic-ai/claude-code
Brug ikke sudo npm install -g — advar mod sudo-globale installationer (rettigheds-/sikkerhedsproblemer). Hvis du støder på rettighedsfejl, så brug nvm eller ret din npm-global prefix i stedet for at bruge sudo.
4) Verificér, at binæren blev installeret (grundlæggende tjek)
Kør disse lokalt umiddelbart efter installationen:
# is the command on PATH?
which claude
# version (or -v)
claude --version
# or
claude -v
# help (sanity check)
claude --help
Forventning: which viser en sti (f.eks. /usr/local/bin/claude eller ~/.nvm/.../bin/claude) og claude --version udskriver en semver-lignende streng. Dokumentationen og README viser begge claude som primær CLI-entrypoint.
5) Verificér installationens sundhed og konfiguration (anbefalede tjek)
a) claude doctor, kør:
claude doctor
Denne indbyggede diagnostik tjekker din installationstype, almindelige problemer (som npm-rettighedsproblemer), afhængigheder såsom ripgrep, og foreslår rettelser. Dokumentationen anbefaler eksplicit at køre claude doctor efter installation.
b) Kør en smoke test (ikke-interaktiv)
Fra din projektmappe:
cd /path/to/your/project
claude -p "Explain this project in 3 sentences"
Dette bruger print-tilstand (-p) til at sende en enkelt prompt og derefter afslutte; godt til CI eller hurtige funktionelle tjek.
c) Verificér autentificering (sørg for at CLI’en kan nå Anthropic)
Claude Code understøtter flere auth-flows (Console OAuth, API-nøgle, provider-integrationer). Almindelige tjek:
- Hvis du bruger en API-nøgle (CI / headless / lokal miljøvariabel):
export ANTHROPIC_API_KEY="sk-..."
# then
claude auth status
claude auth whoami # or `claude auth whoami` / `claude whoami` depending on version
Du kan bruge CometAPI‘s API-nøgle til at bruge Claude Code. Ved at bruge Claude’s API via CometAPI får du 20% rabat.
- Hvis du brugte OAuth via konsollen — kør:
claude auth status
claude auth whoami
Du bør se konto-/planinfo eller en bekræftelse på, at du er autentificeret.
Trin-for-trin miljøforberedelse
Nedenfor er konkrete trin til at forberede to almindelige udviklerstakke (TypeScript og Python), efterfulgt af hurtige tjek for at sikre, at alt virker.
H3 — A. TypeScript / Node-opsætning (hurtigste vej)
- Opret projekt og installer SDK:
mkdir mcp-demo && cd mcp-demo
npm init -y
npm install @modelcontextprotocol/sdk express zod
npm install --save-dev typescript tsx @types/node @types/express
- Opret
server.ts. (Vi giver et fuldt eksempel i afsnittet “Hvordan bygger man hurtigt…”.) - Kør:
npx -y tsx server.ts
- Test lokalt med MCP Inspector eller tilføj til Claude Code:
npx @modelcontextprotocol/inspector
# or (for Claude Code)
claude mcp add --transport http my-server http://localhost:3000/mcp
(Inspector og Claude-kommandoer lader dig validere discovery og påkalde værktøjer.)
Hvordan bygger man hurtigt en MCP-server til Claude Code?
hurtig tjekliste
1.Start din server (Streamable HTTP anbefales): node server.ts eller uvicorn server:app.
- Fra din udviklermaskine, enten:
- Brug MCP Inspector til at validere (
npx @modelcontextprotocol/inspector) og bekræfttools/listogresources/list; eller - Tilføj serveren til Claude Code:
claude mcp add --transport http <name> http://<host>:<port>/mcp(eller følg web-UI-flowet, hvis din klient understøtter remote MCP).
Hvis du planlægger at bruge Anthropics Messages API-connector til remote MCP (ingen separat klient), så læs Claude-dokumentationen — et beta-header kan være påkrævet (tjek dokumentationen for det præcise header og aktuel understøttelsesstatus).
Nedenfor er to komplette men kompakte servereksempler, du kan kopiere, køre og forbinde til Claude Code (eller MCP Inspector). TypeScript-eksemplet bruger Express + TypeScript-SDK’et; Python-eksemplet demonstrerer en FastAPI-mounting.
Bemærk: koden nedenfor følger de offentlige SDK-eksempler og er intentionelt minimal for klarhed. Til produktion bør du tilføje autentificering, logging, rate limiting og inputvalidering ud over SDK-standarderne.
Eksempel 1: TypeScript + Express (Streamable HTTP)
Opret server.ts (komplet):
// server.ts
import express from "express";
import * as z from "zod/v4";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
const server = new McpServer({ name: "claude-code-demo", version: "0.1.0" });
// Register a simple tool: add two numbers
server.registerTool(
"add",
{
title: "Add",
description: "Add two numbers a and b",
inputSchema: { a: z.number(), b: z.number() },
outputSchema: { result: z.number() }
},
async ({ a, b }) => {
const output = { result: a + b };
return {
content: ,
structuredContent: output
};
}
);
// Register a resource: greet user (dynamic)
server.registerResource(
"greeting",
new ResourceTemplate("greeting://{name}", { list: undefined }),
{ title: "Greeting", description: "Return a greeting for the name" },
async (uri, params) => {
return {
contents:
};
}
);
// Express + Streamable HTTP transport
const app = express();
app.use(express.json());
app.post("/mcp", async (req, res) => {
const transport = new StreamableHTTPServerTransport({ enableJsonResponse: true });
// Close transport when connection closes
res.on("close", () => transport.close());
await server.connect(transport);
await transport.handleRequest(req, res, req.body);
});
const port = parseInt(process.env.PORT || "3000", 10);
app.listen(port, () => console.log(`MCP server listening: http://localhost:${port}/mcp`));
Kør:
npm install
npx -y tsx server.ts
Tilslut derefter i Claude Code (eksempel):
# Add the remote server to your Claude Code MCP list (local dev)
claude mcp add --transport http my-demo http://localhost:3000/mcp
Dette eksempel er tilpasset fra det officielle TypeScript SDK Quick Start og demonstrerer, hvordan man registrerer værktøjer og ressourcer og derefter eksponerer dem over Streamable HTTP.
Eksempel 2: Python + FastAPI (FastMCP + Streamable HTTP)
Opret server.py (komplet):
# server.py
from fastapi import FastAPI
from mcp.server.fastmcp import FastMCP
app = FastAPI()
mcp = FastMCP("claude-python-demo", stateless_http=True)
# tool: simple sum
@mcp.tool()
def add(a: int, b: int) -> dict:
"""Add two integers"""
return {"result": a + b}
# resource: simple greeting resource template
@mcp.resource("greeting://{name}")
def greeting(name: str):
return {"contents": }
# mount the streamable-http MCP endpoint (FastMCP exposes an ASGI app)
app.mount("/mcp", mcp.streamable_http_app())
# optional endpoint to demonstrate other API routes
@app.get("/")
async def root():
return {"status": "OK"}
Kør:
uvicorn server:app --reload --port 8000
Tilslut med Inspector:
npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp
Python-SDK-eksempler og FastMCP-værktøjer gør det ligetil at registrere @mcp.tool() og @mcp.resource()-dekorerede funktioner, som LLM’en kan opdage og kalde.
Hvordan kalder Claude Code faktisk dine værktøjer?
Når en LLM beslutter at bruge et værktøj, sender klienten en JSON-RPC-påkaldelse til MCP-serveren. Serveren udfører det ønskede værktøj (for eksempel forespørger en DB, kører tests eller kalder en ekstern API) og returnerer struktureret indhold og præsenterbart indhold. Klienten (Claude Code) kan derefter inkludere det strukturerede output i modellens kontekst, så modellen kan fortsætte sin ræsonnering med pålidelige data — ikke kun serverens tekstuelle output. TypeScript-SDK’et understøtter registrering af inputSchema og outputSchema (zod), så argumenter og outputs valideres og er maskintyper.
Hvilke test- og debug-værktøjer bør du bruge?
MCP Inspector
MCP Inspector er det officielle visuelle udviklerværktøj til test af MCP-servere. Det lader dig forbinde til en server (stdio, SSE eller streamable-HTTP), liste værktøjer, påkalde dem manuelt og inspicere livscyklussen for JSON-RPC-meddelelser — uvurderligt under udvikling. Start det via npx @modelcontextprotocol/inspector.
Lokal vs. remote test
- Lokal (stdio) — hurtig iterationscyklus for desktop-apps og offline debugging.
- Streamable HTTP — test med Inspector eller forbind til Claude Code ved hjælp af
claude mcp add-CLI’en eller MCP-connectoren i Messages API til remote tests. Sørg for at angive eventuelle auth-headere, som din server kræver.
Konklusion
MCP er den praktiske bro mellem moderne LLM’er og de systemer, der faktisk rummer dataene og udfører handlingerne. For kodningsarbejdsgange giver integration af Claude Code med en MCP-server modellen struktureret, reviderbar adgang til repositories, CI, issue-trackere og brugerdefinerede værktøjer — hvilket resulterer i mere præcis automatisering og sikrere sideeffekter. Med officielle SDK’er i TypeScript og Python, Streamable HTTP til fjernhosting og værktøjer som MCP Inspector kan du bygge en minimal server på få minutter og iterere mod en produktionsimplementering.
Udviklere kan få adgang til Claude Sonnet 4.5 API og Claude Opus 4.1 API osv. via CometAPI. den seneste modelversion opdateres altid i takt med den officielle hjemmeside. For at komme i gang kan du udforske modellens kapabiliteter i Playground og konsultere API-guiden for detaljerede instruktioner. Før adgang, skal du sikre, at du er logget ind på CometAPI og har fået API-nøglen. CometAPI tilbyder en pris, der er langt lavere end den officielle pris for at hjælpe dig med at integrere.
Klar til at komme i gang?→ Tilmeld dig CometAPI i dag!
Hvis du vil have flere tips, guider og nyheder om AI, så følg os på VK, X og Discord!
