Opprett en MCP-server for Claude Code – en praktisk og oppdatert veiledning

CometAPI
AnnaNov 22, 2025
Opprett en MCP-server for Claude Code – en praktisk og oppdatert veiledning

Model Context Protocol (MCP) er en åpen standard som lar modeller som Anthropics Claude og utviklerverktøy som Claude Code oppringing av eksterne verktøy, datakilder og ledetekster på en trygg og standard måte.

Denne veiledningen vil lede deg gjennom prosessen med å bygge din egen MCP-server fra bunnen av, slik at Claude Code får tilgang til tilpassede funksjoner og dermed kan utvide funksjonaliteten betraktelig utover de innebygde funksjonene.

Hva er modellkontekstprotokollen (MCP)?

MCP (Model Context Protocol) er en åpen spesifikasjon designet for å standardisere hvordan språkmodellklienter (som Claude, Claude Code eller andre LLM-grensesnitt) kobler seg til verktøyservere og datakilder. Tenk på MCP som en «USB-C-port for LLM-er»: den definerer et transport-/JSON-RPC-skjema og en vanlig måte for servere å publisere tre typer funksjoner på:

  • Ressurser — fillignende data eller dokumentdata som en klient kan lese (f.eks. en databaserad, en tekstfil, en JSON-nyttelast).
  • verktøy — kallbare funksjoner som modellen kan be verten om å utføre (med brukerens godkjenning).
  • Ledetekster — gjenbrukbare ledetekstmaler eller arbeidsflyter som modellen/klienten kan påkalle.

MCP støtter flere transporter (stdio, HTTP, SSE) og tilbyr skjemaer, SDK-er og eksempelservere, slik at du ikke trenger å finne opp wire-formatet selv. Protokollen vedlikeholdes offentlig (spesifikasjon + SDK-er) og har veiledninger og et galleri med eksempelservere for å akselerere adopsjonen.

Hvordan er MCP strukturert?

MCPs arkitektur er bevisst enkel og modulær: kjerneelementene er MCP servere, MCP klienterog transporter som bærer JSON-RPC-innrammede meldinger mellom seg. Nedenfor finner du hovedkomponentene du vil samhandle med når du bygger en server for Claude Code (eller andre MCP-klienter).

Server, klient og protokoll

  • MCP-server – En tjeneste som publiserer verktøy, ressurser og ledetekster. Verktøy kan utføre bivirkninger eller hente data; ressurser viser skrivebeskyttet innhold; ledetekster er gjenbrukbare ledetekstmaler som klienten kan be modellen om å ta prøver fra.
  • MCP-klient (vert) — Vanligvis en del av LLM-verten (f.eks. Claude Code, VS Code-plugin, en nettleserklient). Den oppdager tilgjengelige servere, presenterer verktøybeskrivelser for modellen og ruter modellinitierte kall til servere.
  • Protokoll — Meldinger er kodet som JSON-RPC; spesifikasjonen definerer livssyklushendelser, verktøyoppdagelse, aktivering, fullføringer/sampling og hvordan strukturerte resultater transporteres tilbake til klienten og modellen.

Kommunikasjonsmønster (hva skjer når et verktøy brukes)

  1. Klienten sender brukermelding til modellen.
  2. Modellen analyserer kontekst og bestemmer seg for å kalle et verktøy eksponert av MCP (eller flere verktøy).
  3. Klienten videresender verktøykallet til MCP-serveren via den valgte transporten.
  4. Serveren kjører verktøyet og returnerer resultater.
  5. Modellen mottar verktøyutdata og skriver det endelige svaret til brukeren.

Implementeringsprimitiver

  • JSON-RPC Meldingene følger MCP-skjemaet.
  • Verktøydefinisjoner publiseres i serverens oppdagelsessvar, slik at klienter kan presentere dem i brukergrensesnittet.
  • Ressurser er referert av @source:path syntaks av klienter (f.eks. @postgres:...), slik at modeller kan referere til eksternt innhold uten å legge inn store mengder data i ledeteksten.

Hvorfor integrere Claude Code med MCP-servere?

Claude Code er Anthropics tilbud som fokuserer på kode- og utviklersentriske arbeidsflyter (editor/IDE-integrasjon, kodeforståelse osv.). Ved å eksponere dine interne verktøy (kildesøk, CI-løper, billettsystem, private registre) gjennom MCP-servere, kan Claude Code kalle dem som førsteklasses verktøy inne i kodesamtaler og agentflyter.

Integrering av Claude Code med MCP-servere åpner opp praktiske, produksjonsrelevante funksjoner for en kodeagent:

1. La modellen handle på virkelige systemer

Claude Code kan be en MCP-server om å spørre problemsporere, kjøre databasespørringer, lese store dokumenter eller produsere GitHub PR-er – noe som muliggjør ende-til-ende-automatisering fra kodeøkten. Dette støttes eksplisitt av Claude Code-dokumenter (eksempler: spørring av Postgres, Sentry eller oppretting av PR-er).

2. Avlast store mengder data og spesialisert logikk

I stedet for å legge inn hver datakilde i ledeteksten (som bruker tokener), publiserer du data og verktøy via MCP. Modellen kaller verktøyet, får et strukturert svar og resonnerer med det – dette reduserer tokenbruken og lar servere håndtere tungt arbeid (DB-spørringer, lange fillesninger, autentisering).

3. Sikkerhet og styring

MCP sentraliserer tilgangskontroll og revisjon på serverlaget, slik at organisasjoner kan hvitliste godkjente servere, kontrollere hvilke verktøy som er tilgjengelige og begrense utdata. Claude Code støtter også MCP-konfigurasjon for bedrifter og samtykke per område.

4. Gjenbrukbarhet og økosystem

MCP-servere kan brukes om igjen på tvers av klienter og team. Bygg én gang, og mange Claude/LLM-klienter kan bruke de samme tjenestene (eller bytte implementeringer).

Hva trenger du før du begynner?

Minstekrav

  • En utviklingsmaskin med Python 3.10+ (vi bruker Python i eksemplet). Alternativt støttes Node/andre språk av MCP SDK-er.
  • uv (Astrals verktøy) eller tilsvarende løper for å kjøre MCP stdio-servere (MCP-opplæringen bruker uv). Installasjonstrinnene er vist nedenfor.
  • Claude Code installert eller tilgang til Claude-klienten (desktop eller CLI) for å registrere og teste serveren din; eller en hvilken som helst MCP-kompatibel klient. Claude Code støtter HTTP-, SSE- og lokale stdio-servere.
  • SikkerhetsmerknadLegg bare til pålitelige MCP-servere i Claude Code i team- eller bedriftsinnstillinger – MCP gir servere tilgang til sensitive data, og det er risiko for umiddelbar injeksjon hvis en server returnerer skadelig innhold.

Slik installerer og verifiserer du Claude Code CLI

Dette er Installasjons- og bruksveiledning for Claude Code.

1) Kort oppsummering – anbefalte installasjonsmetoder

Bruke innebygd installasjonsprogram (anbefales) eller Homebrew på macOS/Linux. NPM er tilgjengelig hvis du trenger en Node-basert installasjon. Windows får PowerShell/CMD-installasjonsprogrammer. Kilde: offisielle Claude Code-dokumenter og GitHub.


2) Forutsetninger

  • macOS 10.15+, Ubuntu 20.04+/Debian 10+ eller Windows 10+ (WSL anbefales på Windows).
  • Node.js 18+ bare nødvendig for NPM-installasjonsmetoden.

3) Installasjonskommandoer (velg én)

Native (anbefalt — ingen nodeavhengighet), 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 offisielle, innebygde installasjonsskriptene).

NPM (hvis du ønsker en nodebasert global installasjon):

# requires Node.js 18+

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

Ikke bruke sudo npm install -g — advarer mot globale sudo-installasjoner (problemer med tillatelser/sikkerhet). Hvis du støter på tillatelsesfeil, bruk nvm eller fiks det globale npm-prefikset ditt i stedet for å bruke sudo.

4) Bekreft at binærfilen ble installert (grunnleggende kontroller)

Kjør disse lokalt umiddelbart etter installasjon:

# 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 skriver ut en semver-lignende streng. Både dokumentasjonen og README-filen viser claude som det primære CLI-inngangspunktet.


5) Bekreft installasjonstilstand og konfigurasjon (anbefalte kontroller)

a) claude doctor,Løp:

claude doctor

Denne innebygde diagnostikken sjekker installasjonstypen din, vanlige problemer (som problemer med npm-tillatelser), avhengigheter som f.eks. ripgrep, og foreslår løsninger. Dokumentasjonen anbefaler eksplisitt å kjøre claude doctor etter installasjon.

b) Kjør en røyktest (ikke-interaktiv)

Fra prosjektkatalogen din:

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

Dette bruker skrive ut modus (-p) for å sende en enkelt ledetekst og deretter avslutte; bra for CI eller raske funksjonskontroller.

c) Autentiseringsverifisering (sørg for at CLI-en kan nå Anthropic)

Claude Code støtter flere autentiseringsflyter (Console OAuth, API-nøkkel, leverandørintegrasjoner). Vanlige kontroller:

  1. Hvis du bruker en API-nøkkel (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 bruke CometAPIs API-nøkkel for å bruke Claude-kode. Bruk av Claudes API gjennom CometAPI gir deg 20 % rabatt.

  1. Hvis du brukte OAuth via konsollen — løp:
claude auth status
claude auth whoami

Du bør se konto-/abonnementsinformasjon eller en bekreftelse på at du er autentisert.

Steg-for-steg miljøforberedelse

Nedenfor finner du konkrete trinn for å forberede to vanlige utviklerstabler (TypeScript og Python), etterfulgt av raske kontroller for å sikre at alt fungerer.

H3 — A. TypeScript / Nodeoppsett (raskeste bane)

  1. Opprett prosjekt 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. Opprett server.ts. (Vi gir et fullstendig eksempel i delen «Slik bygger du raskt ...».)
  2. Løpe:
npx -y tsx server.ts
  1. Test lokalt med MCP-inspektør eller legg til i Claude Code:
npx @modelcontextprotocol/inspector
# or (for Claude Code)

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

(Med Inspector- og Claude-kommandoene kan du validere oppdagelse og aktivere verktøy.)

Hvordan bygge en MCP-server for Claude Code raskt?

rask sjekkliste

  1. Start serveren din (strømmelig HTTP anbefales): node server.ts or uvicorn server:app.

  2. Fra utviklermaskinen din, enten:

  • Bruk MCP-inspektør å validere (npx @modelcontextprotocol/inspector) og bekreft tools/list og resources/list, Eller
  • Legg til serveren i Claude Code: claude mcp add --transport http <name> http://<host>:<port>/mcp (eller følg flytene for nettgrensesnittet hvis klienten din støtter ekstern MCP).

Hvis du planlegger å bruke Anthropics Messages API-kobling for ekstern MCP (ingen separat klient), les Claude-dokumentasjonen – en beta-header kan være nødvendig (sjekk dokumentasjonen for den nøyaktige headeren og gjeldende støttestatus).

Nedenfor finner du to komplette, men kompakte servereksempler som du kan kopiere, kjøre og koble til Claude Code (eller MCP Inspector). TypeScript-eksemplet bruker Express + TypeScript SDK; Python-eksemplet demonstrerer en FastAPI-montering.

Merk: Koden nedenfor følger de offentlige SDK-eksemplene og er bevisst minimal for klarhetens skyld. For produksjon, legg til autentisering, logging, hastighetsbegrensning og inputvalidering utover SDK-standardene.


Eksempel 1: TypeScript + Express (strømbar HTTP)

Opprett server.ts (fullstendig):

// 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øpe:

npm install
npx -y tsx server.ts

Koble deretter til i Claude-koden (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 eksemplet er tilpasset fra den offisielle hurtigstarten for TypeScript SDK og demonstrerer hvordan du registrerer verktøy og ressurser, og deretter eksponerer dem over strømbar HTTP.


Eksempel 2: Python + FastAPI (FastMCP + strømbar HTTP)

Opprett server.py (fullstendig):

# 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øpe:

uvicorn server:app --reload --port 8000

Ta kontakt med inspektøren:

npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp

Python SDK-eksempler og FastMCP-verktøy gjør det enkelt å registrere seg @mcp.tool() og @mcp.resource() dekorerte funksjoner som LLM kan oppdage og kalle.


Hvordan kaller Claude Code egentlig verktøyene dine?

Når en LLM bestemmer seg for å bruke et verktøy, sender klienten et JSON-RPC-anrop til MCP-serveren. Serveren kjører det forespurte verktøyet (for eksempel spør en database, kjører tester eller kaller et eksternt API) og returnerer strukturert innhold og presentabelt innholdKlienten (Claude Code) kan deretter inkludere den strukturerte utdataen i modellens kontekst, slik at modellen kan fortsette å resonnere med de pålitelige dataene – ikke bare serverens tekstutdata. TypeScript SDK støtter registrering inputSchema og outputSchema (zod) slik at argumenter og utdata blir validert og maskinskrevet.


Hvilke test- og feilsøkingsverktøy bør du bruke?

MCP-inspektør

Ocuco MCP-inspektør er det offisielle visuelle utviklerverktøyet for testing av MCP-servere. Det lar deg koble til en server (stdio, SSE eller strømbar-HTTP), liste opp verktøy, starte dem manuelt og inspisere livssyklusen til JSON-RPC-meldinger – uvurderlig under utvikling. Start det via npx @modelcontextprotocol/inspector.

Lokal vs. fjerntesting

  • Lokal (stdio) – rask iterasjonssyklus for skrivebordsapper og feilsøking uten nett.
  • Strømbar HTTP — test med inspektøren eller koble til Claude Code ved hjelp av claude mcp add CLI eller MCP-koblingen i Messages API for eksterne tester. Sørg for å oppgi eventuelle autentiseringsoverskrifter som kreves for serveren din.

Konklusjon

MCP er den praktiske broen mellom moderne LLM-er og systemene som faktisk lagrer dataene og utfører handlinger. For kodearbeidsflyter gir integrering av Claude Code med en MCP-server modellen strukturert, reviderbar tilgang til repositorier, CI, problemsporere og tilpassede verktøy – noe som resulterer i mer presis automatisering og tryggere bivirkninger. Med offisielle SDK-er i TypeScript og Python, strømbar HTTP for ekstern hosting og verktøy som MCP Inspector, kan du bygge en minimalistisk server på få minutter og iterere mot en produksjonsdistribusjon.

Utviklere har tilgang Claude Sonnet 4.5 API og Claude Opus 4.1 API osv. gjennom CometAPI, den nyeste modellversjonen er alltid oppdatert med den offisielle nettsiden. For å begynne, utforsk modellens muligheter i lekeplass og konsulter API-veiledning for detaljerte instruksjoner. Før du får tilgang, må du sørge for at du har logget inn på CometAPI og fått API-nøkkelen. CometAPI tilby en pris som er langt lavere enn den offisielle prisen for å hjelpe deg med å integrere.

Klar til å dra? → Registrer deg for CometAPI i dag !

Hvis du vil vite flere tips, guider og nyheter om AI, følg oss på VKX og Discord!

Les mer

500+ modeller i ett API

Opptil 20 % rabatt