Opret en MCP-server til Claude Code — en praktisk og opdateret vejledning

CometAPI
AnnaNov 22, 2025
Opret en MCP-server til Claude Code — en praktisk og opdateret vejledning

Model Context Protocol (MCP) er en åben standard, der tillader modeller som Anthropics Claude og udviklerværktøjer som f.eks. Claude kode opkald til eksterne værktøjer, datakilder og prompts på en sikker og standardiseret måde.

Denne guide vil guide dig gennem opbygningen af ​​din egen MCP-server fra bunden, hvilket giver Claude Code adgang til brugerdefinerede funktioner og dermed udvider dens funktionalitet langt ud over de indbyggede funktioner.

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) opretter forbindelse til værktøjsservere og datakilder. Tænk på MCP som en "USB-C-port til LLM'er": den definerer et transport/JSON-RPC-skema og en almindelig måde for servere at udgive tre slags funktioner:

  • Ressourcer — fillignende data eller dokumentdata, som en klient kan læse (f.eks. en databaserække, en tekstfil, en JSON-nyttelast).
  • Værktøjer — kaldbare funktioner, som modellen kan bede værten om at udføre (med brugerens godkendelse).
  • prompter — genbrugelige promptskabeloner eller arbejdsgange, som modellen/klienten kan aktivere.

MCP understøtter flere transporter (stdio, HTTP, SSE) og leverer skemaer, SDK'er og eksempelservere, så du ikke selv behøver at opfinde wire-formatet. Protokollen vedligeholdes offentligt (specifikationer + SDK'er) og har tutorials og et galleri med eksempelservere for at fremskynde implementeringen.

Hvordan er MCP opbygget?

MCP's arkitektur er bevidst enkel og modulær: kerneelementerne er MCP servere, MCP kunderog transporter der bærer JSON-RPC-indrammede beskeder mellem sig. 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 udgiver Værktøjer, ressourcer og prompter. Værktøjer kan udføre bivirkninger eller hente data; ressourcer viser skrivebeskyttet indhold; prompter er genanvendelige promptskabeloner, som klienten kan bede modellen om at tage prøver fra.
  • MCP-klient (vært) — Typisk en del af LLM-værten (f.eks. Claude Code, VS Code-plugin, en browserklient). Den finder tilgængelige servere, præsenterer værktøjsbeskrivelser for modellen og sender modelinitierede kald til servere.
  • protokol — Meddelelser kodes som JSON-RPC; specifikationen definerer livscyklushændelser, værktøjsopdagelse, kald, fuldførelser/sampling og hvordan strukturerede resultater transporteres tilbage til klienten og modellen.

Kommunikationsmønster (hvad sker, når et værktøj bruges)

  1. Klienten sender brugerbesked til modellen.
  2. Modellen analyserer kontekst og beslutter at kalde et værktøj, der er eksponeret af MCP (eller flere værktøjer).
  3. Klienten videresender værktøjskaldet til MCP-serveren via den valgte transport.
  4. Serveren udfører værktøjet og returnerer resultater.
  5. Modellen modtager værktøjets output og sammensætter det endelige svar til brugeren.

Implementeringsprimitiver

  • JSON-RPC Beskeder følger MCP-skemaet.
  • Værktøjsdefinitioner offentliggøres i serverens registreringssvar, så klienter kan præsentere dem i brugergrænsefladen.
  • Ressourcer er refereret af @source:path syntaks af klienter (f.eks. @postgres:...), så modeller kan referere til eksternt indhold uden at indlejre store mængder data i prompten.

Hvorfor integrere Claude Code med MCP-servere?

Claude Code er Anthropics tilbud, der fokuserer på kode- og udviklercentrerede arbejdsgange (editor/IDE-integration, kodeforståelse osv.). Ved at eksponere dine interne værktøjer (kildesøgning, CI-runner, ticketsystem, private registre) via MCP-servere, kan Claude Code kalde dem som ... førsteklasses værktøj inde i kodningssamtaler og agentflows.

Integration af Claude Code med MCP-servere åbner op for praktiske, produktionsrelevante funktioner for en kodningsagent:

1. Lad modellen handle på virkelige systemer

Claude Code kan bede en MCP-server om at forespørge på issue trackers, køre databaseforespørgsler, læse store dokumenter eller producere GitHub PR'er – hvilket muliggør end-to-end automatisering indefra kodningssessionen. Dette understøttes eksplicit af Claude Code-dokumenter (eksempler: forespørgsler på Postgres, Sentry eller oprettelse af PR'er).

2. Aflast store mængder data og specialiseret logik

I stedet for at integrere alle datakilder i prompten (som forbruger tokens), publicerer du data og værktøjer via MCP. Modellen kalder værktøjet, får et struktureret svar og ræsonnerer med det – dette reducerer tokenforbruget og lader servere håndtere tungt arbejde (DB-forespørgsler, lange fillæsninger, godkendelse).

3. Sikkerhed og styring

MCP centraliserer adgangskontrol og revision på serverlaget, hvilket giver organisationer mulighed for at hvidliste godkendte servere, kontrollere, hvilke værktøjer der er tilgængelige, og begrænse output. Claude Code understøtter også MCP-konfiguration for virksomheder og samtykke pr. scope.

4. Genbrugelighed og økosystem

MCP-servere kan genbruges på tværs af klienter og teams. Bygg én gang, og mange Claude/LLM-klienter kan bruge de samme tjenester (eller bytte implementeringer).

Hvad har du brug for, før du starter?

Minimumskrav

  • En udviklingsmaskine 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-vejledningen bruger uv). Installationstrin vist 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.
  • SikkerhedsnotatTilføj kun betroede MCP-servere til Claude Code i team- eller virksomhedsindstillinger — MCP giver servere adgang til følsomme data, og der er risiko for hurtig indsprøjtning, hvis en server returnerer skadeligt indhold.

Sådan installeres og verificeres Claude Code CLI

Dette er Installations- og brugsvejledning til Claude Code.

1) Kort oversigt — anbefalede installationsmetoder

Brug indbygget installationsprogram (anbefales) eller Homebrew på macOS/Linux. NPM er tilgængelig, hvis du har brug for en Node-baseret installation. Windows får PowerShell/CMD-installationsprogrammer. Kilde: officielle Claude Code-dokumenter og GitHub.


2) Forudsætninger

  • macOS 10.15+, Ubuntu 20.04+/Debian 10+ eller Windows 10+ (WSL anbefales på Windows).
  • Node.js 18+ kun påkrævet for NPM-installationsmetoden.

3) Installationskommandoer (vælg én)

Native (anbefales — ingen nodeafhæ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

(Disse er de officielle native installationsscripts).

NPM (hvis du ønsker en nodebaseret global installation):

# requires Node.js 18+

npm install -g @anthropic-ai/claude-code

Må ikke brug sudo npm install -g — advarer mod globale sudo-installationer (tilladelses-/sikkerhedsproblemer). Hvis du støder på tilladelsesfejl, skal du bruge nvm eller retter dit globale npm-præfiks i stedet for at bruge sudo.

4) Bekræft, at den binære fil er installeret (grundlæggende kontroller)

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

Forventet: which viser en sti (f.eks. /usr/local/bin/claude or ~/.nvm/.../bin/claude) og claude --version udskriver en semver-lignende streng. Både dokumentationen og README viser claude som det primære CLI-indgangspunkt.


5) Bekræft installationens tilstand og konfiguration (anbefalede kontroller)

a) claude doctor,Løbe:

claude doctor

Denne indbyggede diagnosticering kontrollerer din installationstype, almindelige problemer (som f.eks. problemer med npm-tilladelser), afhængigheder som f.eks. ripgrep, og foreslår rettelser. Dokumentationen anbefaler eksplicit at køre claude doctor efter installation.

b) Kør en røgtest (ikke-interaktiv)

Fra din projektmappe:

cd /path/to/your/project
claude -p "Explain this project in 3 sentences"

Dette bruger trykke tilstand (-p) for at sende en enkelt prompt og derefter afslutte; god til CI eller hurtige funktionstjek.

c) Godkendelsesbekræftelse (sørg for, at CLI'en kan nå Anthropic)

Claude Code understøtter adskillige godkendelsesflows (konsol OAuth, API-nøgle, udbyderintegrationer). Almindelige kontroller:

  1. 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 for at bruge Claude Code. Brug af Claudes API via CometAPI giver dig 20% ​​rabat.

  1. Hvis du brugte OAuth via konsollen — løb:
claude auth status
claude auth whoami

Du bør se konto-/planoplysninger eller en bekræftelse på, at du er godkendt.

Trin-for-trin miljøforberedelse

Nedenfor er konkrete trin til at forberede to almindelige udviklerstakke (TypeScript og Python), efterfulgt af hurtige kontroller for at sikre, at alt fungerer.

H3 — A. TypeScript / Nodeopsætning (hurtigste sti)

  1. 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
  1. Opret server.ts. (Vi giver et komplet eksempel i afsnittet “Sådan bygger du hurtigt…”).
  2. Løb:
npx -y tsx server.ts
  1. Test lokalt med MCP-inspektør eller tilføj til Claude Code:
npx @modelcontextprotocol/inspector
# or (for Claude Code)

claude mcp add --transport http my-server http://localhost:3000/mcp

(Med kommandoerne Inspector og Claude kan du validere opdagelse og aktivere værktøjer.)

Hvordan bygger man hurtigt en MCP-server til Claude Code?

hurtig tjekliste

  1. Start din server (streambar HTTP anbefales): node server.ts or uvicorn server:app.

  2. Fra din udviklermaskine, enten:

  • Brug MCP-inspektør at validere (npx @modelcontextprotocol/inspector) og bekræft tools/list og resources/listEller
  • Tilføj serveren til Claude Code: claude mcp add --transport http <name> http://<host>:<port>/mcp (eller følg web-UI-flowene, hvis din klient understøtter fjern-MCP).

Hvis du planlægger at bruge Anthropics Messages API-connector til fjern MCP (ingen separat klient), skal du læse Claude-dokumentationen — en beta-header kan være påkrævet (se dokumentationen for den nøjagtige header og den aktuelle supportstatus).

Nedenfor er to komplette, men kompakte servereksempler, som du kan kopiere, køre og oprette forbindelse til Claude Code (eller MCP Inspector). TypeScript-eksemplet bruger Express + TypeScript SDK; Python-eksemplet demonstrerer en FastAPI-montering.

Bemærk: Koden nedenfor følger de offentlige SDK-eksempler og er bevidst minimalistisk for klarhedens skyld. Tilføj godkendelse, logføring, hastighedsbegrænsning og inputvalidering ud over SDK-standarderne i produktionsøjemed.


Eksempel 1: TypeScript + Express (streambar 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`));

Løb:

npm install
npx -y tsx server.ts

Forbind 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 den officielle TypeScript SDK Quick Start og demonstrerer, hvordan man registrerer værktøjer og ressourcer og derefter eksponerer dem via Streamable HTTP.


Eksempel 2: Python + FastAPI (FastMCP + Streambar 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"}

Løb:

uvicorn server:app --reload --port 8000

Kontakt inspektøren:

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 nemt at registrere sig @mcp.tool() og @mcp.resource() dekorerede funktioner, som LLM'en kan opdage og kalde.


Hvordan kalder Claude Code egentlig dine værktøjer?

Når en LLM beslutter sig for at bruge et værktøj, sender klienten et JSON-RPC-kald til MCP-serveren. Serveren udfører det anmodede værktøj (for eksempel forespørger en database, kører tests eller kalder en ekstern API) og returnerer struktureret indhold og præsentabelt indholdKlienten (Claude Code) kan derefter inkludere det strukturerede output i modellens kontekst, så modellen kan fortsætte med at ræsonnere med disse pålidelige data – ikke kun serverens tekstbaserede output. TypeScript SDK understøtter registrering inputSchema og outputSchema (zod) så argumenter og output valideres og maskintypes.


Hvilke test- og fejlfindingsværktøjer skal du bruge?

MCP-inspektør

MCP-inspektør er det officielle visuelle udviklerværktøj til test af MCP-servere. Det giver dig mulighed for at oprette forbindelse til en server (stdio, SSE eller streamable-HTTP), liste værktøjer, kalde dem manuelt og inspicere livscyklussen for JSON-RPC-meddelelser – uvurderligt under udvikling. Start det via npx @modelcontextprotocol/inspector.

Lokal vs. fjerntestning

  • Lokal (stdio) — hurtig iterationscyklus for desktop-apps og offline-fejlfinding.
  • Streambar HTTP — test med inspektøren eller opret forbindelse til Claude Code ved hjælp af claude mcp add CLI eller MCP-connectoren i Messages API til fjerntest. Sørg for at angive alle nødvendige godkendelsesheadere til din server.

Konklusion

MCP er den praktiske bro mellem moderne LLM'er og de systemer, der rent faktisk opbevarer dataene og udfører handlinger. Til kodearbejdsgange giver integration af Claude Code med en MCP-server modellen struktureret, auditerbar adgang til repositories, CI, issue trackers og brugerdefinerede værktøjer – hvilket resulterer i mere præcis automatisering og sikrere bivirkninger. 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 Claude Sonnet 4.5 API og Claude Opus 4.1 API osv. via CometAPI, den nyeste modelversion opdateres altid med den officielle hjemmeside. For at begynde, udforsk modellens muligheder i Legeplads og konsulter API guide for detaljerede instruktioner. Før du får adgang, skal du sørge for at være logget ind på CometAPI og have fået API-nøglen. CometAPI tilbyde en pris, der er langt lavere end den officielle pris, for at hjælpe dig med at integrere.

Klar til at gå? → Tilmeld dig CometAPI i dag !

Hvis du vil vide flere tips, guider og nyheder om AI, følg os på VKX og Discord!

Læs mere

500+ modeller i én API

Op til 20% rabat