Model Context Protocol (MCP) er en åpen standard som lar modeller som Anthropics Claude og utviklerverktøy som Claude Code kalle ut til eksterne verktøy, datakilder og prompter på en sikker, standardisert måte.
Denne veiledningen tar deg gjennom å bygge din egen MCP-server fra bunnen av, slik at Claude Code kan få tilgang til egendefinerte funksjoner og dermed utvide funksjonaliteten langt utover det som er innebygd.
Hva er Model Context Protocol (MCP)?
MCP (Model Context Protocol) er en åpen spesifikasjon som er designet for å standardisere hvordan språkmodellklienter (som Claude, Claude Code eller andre LLM-grensesnitt) kobler 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 felles måte for servere å publisere tre typer kapabiliteter:
- Resources — fil- eller dokumentlignende data som en klient kan lese (f.eks. en databaserad, en tekstfil, en JSON‑nyttelast).
- Tools — kallbare funksjoner som modellen kan be verten kjøre (med brukersamtykke).
- Prompts — gjenbrukbare promptmaler eller arbeidsflyter som modellen/klienten kan kalle.
MCP støtter flere transportmekanismer (stdio, HTTP, SSE) og tilbyr skjema, SDK-er og eksempelservere slik at du slipper å finne opp wire-formatet selv. Protokollen vedlikeholdes offentlig (spesifikasjon + SDK-er) og har veiledninger og et galleri med eksempelservere for å akselerere adopsjon.
Hvordan er MCP bygget opp?
MCPs arkitektur er bevisst enkel og modulær: kjernedelene er MCP‑servere, MCP‑klienter og transporter som frakter JSON‑RPC‑innrammede meldinger mellom dem. Nedenfor er hovedkomponentene du vil samhandle med når du bygger en server for Claude Code (eller andre MCP‑klienter).
Server, klient og protokollen
- MCP server — En tjeneste som publiserer verktøy, ressurser og prompter. Verktøy kan utføre sideeffekter eller hente data; ressurser eksponerer skrivebeskyttet innhold; prompter er gjenbrukbare promptmaler som klienten kan be modellen å sample fra.
- MCP client (host) — Typisk en del av LLM‑verten (f.eks. Claude Code, VS Code‑utvidelse, en nettleserklient). Den oppdager tilgjengelige servere, presenterer verktøybeskrivelser for modellen og ruter modellinitierte kall til servere.
- Protocol — Meldinger kodes som JSON‑RPC; spesifikasjonen definerer livssyklus‑hendelser, verktøyoppdagelse, kall, completions/sampling og hvordan strukturerte resultater transporteres tilbake til klient og modell.
Kommunikasjonsmønster (hva som skjer når et verktøy brukes)
- Klienten sender brukermelding til modellen.
- Modellen analyserer konteksten og bestemmer seg for å kalle et verktøy eksponert via MCP (eller flere verktøy).
- Klienten videresender verktøykallet til MCP‑serveren over valgt transport.
- Serveren kjører verktøyet og returnerer resultater.
- Modellen mottar verktøyets output og komponerer det endelige svaret til brukeren.
Implementasjonsprimitiver
- JSON‑RPC‑meldinger følger MCP‑skjemaet.
- Verktøydefinisjoner publiseres i serverens discovery‑svar slik at klienter kan vise dem i UI-et.
- Ressurser refereres med syntaksen
@source:pathav klienter (f.eks.@postgres:...), slik at modeller kan referere til eksternt innhold uten å inline store datamengder i prompten.
Hvorfor integrere Claude Code med MCP‑servere?
Claude Code er Anthropics tilbud med fokus på kode- og utvikler‑sentrale arbeidsflyter (editor/IDE‑integrasjon, kodeforståelse, osv.). Ved å eksponere interne verktøy (kildekode‑søk, CI‑runner, ticketsystem, private registre) via MCP‑servere kan Claude Code kalle dem som førsteklasses verktøy inne i kode‑samtaler og agent‑flyter.
Å integrere Claude Code med MCP‑servere låser opp praktiske, produksjonsrelevante kapabiliteter for en kodeagent:
1. La modellen handle på ekte systemer
Claude Code kan be en MCP‑server om å spørrre issuesystemer, kjøre databaseforespørsler, lese store dokumenter eller opprette GitHub‑PR-er — og muliggjøre ende‑til‑ende‑automatisering innenfor kodesesjonen. Dette støttes eksplisitt av Claude Code‑dokumentasjonen (eksempler: spørring mot Postgres, Sentry, eller opprettelse av PR-er).
2. Avlast store datamengder og spesialisert logikk
I stedet for å putte hver datakilde i prompten (som bruker tokens), publiserer du data og verktøy via MCP. Modellen kaller verktøyet, får et strukturert svar og resonnerer over det — dette reduserer tokenbruk og lar servere håndtere tungt arbeid (DB‑spørringer, lange fil‑lesinger, autentisering).
3. Sikkerhet og styring
MCP sentraliserer tilgangskontroll og revisjon i serverlaget, slik at organisasjoner kan hviteliste godkjente servere, kontrollere hvilke verktøy som er tilgjengelige, og begrense utdata. Claude Code støtter også enterprise‑MCP‑konfigurasjon og samtykke per scope.
4. Gjenbruk og økosystem
MCP‑servere er gjenbrukbare på tvers av klienter og team. Bygg én gang og mange Claude/LLM‑klienter kan bruke de samme tjenestene (eller bytte implementasjon).
Hva trenger du før du starter?
Minimumskrav
- En utviklermaskin med Python 3.10+ (vi bruker Python i eksemplet). Alternativt støttes Node / andre språk via MCP‑SDK-er.
uv(Astrals verktøy) eller tilsvarende runner for å kjøre MCP‑stdio‑servere (MCP‑tutorialen brukeruv). Installasjonstrinn vises nedenfor.- Claude Code installert eller tilgang til Claude‑klient (desktop eller CLI) for å registrere og teste serveren; eller en hvilken som helst MCP‑kapabel klient. Claude Code støtter HTTP, SSE og lokale stdio‑servere.
- Sikkerhetsnote: Legg kun til betrodde MCP‑servere i Claude Code i team‑ eller enterprise‑miljøer — MCP gir servere tilgang til sensitive data, og det finnes prompt‑injeksjonsrisikoer hvis en server returnerer ondsinnet innhold.
Hvordan installere og verifisere Claude Code CLI
Dette er Claude Code – installasjons- og bruksveiledning.
1) Rask oppsummering — anbefalte installasjonsmetoder
Bruk native‑installeren (anbefalt) eller Homebrew på macOS/Linux. NPM er tilgjengelig hvis du trenger en Node‑basert installasjon. Windows har PowerShell / CMD‑installere. Kilde: offisiell Claude Code‑dokumentasjon og GitHub.
2) Forutsetninger
- macOS 10.15+, Ubuntu 20.04+/Debian 10+, eller Windows 10+ (WSL anbefales på Windows).
- Node.js 18+ kun påkrevd for NPM‑installasjonsmetoden.
3) Installasjonskommandoer (velg én)
Native (anbefalt — ingen Node‑avhengighet), 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 native‑installasjonsskriptene).
NPM (hvis du vil ha en Node‑basert global installasjon):
# requires Node.js 18+
npm install -g @anthropic-ai/claude-code
Ikke bruk sudo npm install -g — advar mot sudo‑baserte globale installasjoner (rettighets-/sikkerhetsproblemer). Hvis du får rettighetsfeil, bruk nvm eller fiks npm‑global‑prefikset i stedet for å bruke sudo.
4) Verifiser at binæren ble installert (grunnleggende sjekker)
Kjør dette 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 eller ~/.nvm/.../bin/claude) og claude --version skriver en semver‑lignende streng. Dokumentene og README viser claude som primær CLI‑entrypoint.
5) Verifiser installasjonshelse og konfigurasjon (anbefalte sjekker)
a) claude doctor, Kjør:
claude doctor
Denne innebygde diagnosen sjekker installasjonstype, vanlige problemer (som npm‑rettighetsfeil), avhengigheter som ripgrep, og foreslår rettinger. Dokumentasjonen anbefaler eksplisitt å kjøre claude doctor etter installasjon.
b) Kjør en smoke‑test (ikke‑interaktiv)
Fra prosjektmappen din:
cd /path/to/your/project
claude -p "Explain this project in 3 sentences"
Dette bruker print‑modus (-p) for å sende en enkelt prompt og avslutte; bra for CI eller raske funksjonstester.
c) Autentiseringsverifisering (sjekk at CLI-en når Anthropic)
Claude Code støtter flere autentiseringsflyter (Console OAuth, API‑nøkkel, leverandørintegrasjoner). Vanlige sjekker:
- 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 CometAPI sin API‑nøkkel for å bruke Claude Code. Å bruke Claudes API via CometAPI gir deg 20 % rabatt.
- Hvis du brukte OAuth via konsollen — kjør:
claude auth status
claude auth whoami
Du bør se konto-/abonnementsinfo eller en bekreftelse på at du er autentisert.
Steg‑for‑steg miljøforberedelse
Nedenfor er konkrete trinn for å forberede to vanlige utviklerstakker (TypeScript og Python), etterfulgt av raske kontroller for å sikre at alt fungerer.
H3 — A. TypeScript / Node‑oppsett (raskeste vei)
- 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
- Opprett
server.ts. (Vi gir et komplett eksempel i delen «Hvordan bygge raskt …».) - Kjør:
npx -y tsx server.ts
- Test lokalt med MCP Inspector eller legg til i Claude Code:
npx @modelcontextprotocol/inspector
# or (for Claude Code)
claude mcp add --transport http my-server http://localhost:3000/mcp
(Inspector og Claude‑kommandoene lar deg validere discovery og kalle verktøy.)
Hvordan bygge raskt en MCP‑server for Claude Code?
rask sjekkliste
1.Start serveren din (Streamable HTTP anbefales): node server.ts eller uvicorn server:app.
- Fra utviklermaskinen din, enten:
- Bruk MCP Inspector for å validere (
npx @modelcontextprotocol/inspector) og bekrefttools/listogresources/list; eller - Legg til serveren i Claude Code:
claude mcp add --transport http <name> http://<host>:<port>/mcp(eller følg web‑UI‑flytene hvis klienten din støtter fjern‑MCP).
Hvis du planlegger å bruke Anthropics Messages API‑connector for fjern‑MCP (ingen egen klient), les Claude‑dokumentene — et beta‑header kan være påkrevd (sjekk dokumentene for nøyaktig header og gjeldende støtte).
Nedenfor er to komplette, men kompakte servereksempler du kan kopiere, kjøre og koble til Claude Code (eller MCP Inspector). TypeScript‑eksemplet bruker Express + TypeScript‑SDK-en; Python‑eksemplet demonstrerer en FastAPI‑mounting.
Merk: Koden nedenfor følger de offentlige SDK‑eksemplene og er bevisst minimal for klarhet. For produksjon, legg til autentisering, logging, rate‑begrensning og inndata‑validering utover SDK‑standardene.
Eksempel 1: TypeScript + Express (Streamable HTTP)
Opprett server.ts (komplett):
// 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`));
Kjør:
npm install
npx -y tsx server.ts
Koble deretter til 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 eksemplet er tilpasset fra den offisielle TypeScript‑SDK Quick Start og viser hvordan du registrerer verktøy og ressurser, og deretter eksponerer dem over Streamable HTTP.
Eksempel 2: Python + FastAPI (FastMCP + Streamable HTTP)
Opprett server.py (komplett):
# 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"}
Kjør:
uvicorn server:app --reload --port 8000
Koble til med Inspector:
npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp
Python‑SDK‑eksempler og FastMCP‑verktøy gjør det rett frem å registrere @mcp.tool()‑ og @mcp.resource()‑dekorerte funksjoner som LLM-en kan oppdage og kalle.
Hvordan kaller Claude Code faktisk verktøyene dine?
Når en LLM bestemmer seg for å bruke et verktøy, sender klienten et JSON‑RPC‑kall til MCP‑serveren. Serveren kjører det forespurte verktøyet (for eksempel spørrer en DB, kjører tester eller kaller et eksternt API) og returnerer strukturert innhold og presenterbart innhold. Klienten (Claude Code) kan deretter inkludere det strukturerte resultatet i modellens kontekst slik at modellen kan fortsette å resonnere med pålitelige data — ikke bare serverens tekstlige output. TypeScript‑SDK‑en støtter registrering av inputSchema og outputSchema (zod) slik at argumenter og utdata valideres og blir maskin‑typet.
Hvilke test- og feilsøkingsverktøy bør du bruke?
MCP Inspector
MCP Inspector er det offisielle visuelle utviklerverktøyet for å teste MCP‑servere. Det lar deg koble til en server (stdio, SSE eller streamable‑HTTP), liste verktøy, kalle dem manuelt og inspisere livssyklusen til JSON‑RPC‑meldinger — uvurderlig under utvikling. Start det via npx @modelcontextprotocol/inspector.
Lokal vs. fjern testing
- Lokal (stdio) — rask iterasjonssyklus for desktop‑apper og offline‑feilsøking.
- Streamable HTTP — test med Inspector eller koble til Claude Code ved å bruke
claude mcp add‑CLI-en eller MCP‑connectoren i Messages API for fjern‑tester. Sørg for å oppgi eventuelle auth‑headers som kreves av serveren din.
Konklusjon
MCP er den praktiske broen mellom moderne LLM-er og systemene som faktisk holder dataene og utfører handlingene. For kode‑arbeidsflyter gir integrering av Claude Code med en MCP‑server modellen strukturert, reviderbar tilgang til repositories, CI, issuesystemer og tilpassede verktøy — noe som gir mer presis automasjon og tryggere sideeffekter. Med offisielle SDK-er i TypeScript og Python, Streamable HTTP for fjernhosting og verktøy som MCP Inspector kan du bygge en minimal server på minutter og iterere mot en produksjonsdistribusjon.
Utviklere kan få tilgang til Claude Sonnet 4.5 API og Claude Opus 4.1 API osv. via CometAPI. Den nyeste modellversjonen oppdateres alltid i takt med den offisielle nettsiden. For å komme i gang, utforsk modellens kapabiliteter i Playground og se API‑guiden for detaljerte instruksjoner. Før tilgang, sørg for at du er innlogget på CometAPI og har hentet API‑nøkkelen. CometAPI tilbyr en pris langt lavere enn den offisielle for å hjelpe deg å integrere.
Klar til å starte?→ Registrer deg for CometAPI i dag !
Hvis du vil ha flere tips, veiledninger og nyheter om AI, følg oss på VK, X og Discord!
