Skills og MCP-servere i Claude og Claude Code
Claude er ikke længere bare en chatbot, du stiller spørgsmål. Med Agent Skills og MCP-servere kan man udvide Claude med specialiseret viden og give modellen adgang til rigtige værktøjer, filer og API’er. I denne artikel ser jeg på, hvad de to mekanismer er, hvordan de adskiller sig, og hvordan man bruger dem konkret i terminalen med Claude Code (claude CLI’en).
To forskellige måder at udvide Claude på
Det er nemt at forveksle de to begreber, men de løser hver sit problem:
| Skills | MCP-servere | |
|---|---|---|
| Hvad er det? | Viden og instruktioner pakket som markdown + filer | En kørende proces, der eksponerer værktøjer og data |
| Giver Claude… | at vide hvordan en opgave løses | evnen til at gøre noget eksternt |
| Format | En mappe med SKILL.md | Et program, der taler Model Context Protocol |
| Eksempel | ”Sådan skriver vi commit-beskeder her” | Læs/skriv i en database, kald GitHub-API’et |
Kort sagt: Skills er knowhow, MCP-servere er hænder. De to kombineres ofte – en Skill kan instruere Claude i hvornår og hvordan et MCP-værktøj skal bruges.
Agent Skills
En Skill er ganske enkelt en mappe med en SKILL.md-fil. Filen har en YAML-frontmatter med et navn og en beskrivelse, og en brødtekst med instruktioner. Claude læser kun beskrivelsen som udgangspunkt og indlæser først hele indholdet, når opgaven er relevant. Det kaldes progressive disclosure og holder context-vinduet rent. [^1]
Anatomien af en Skill
---
name: dansk-commit
description: Brug denne skill når der skal laves en git commit i dette projekt. Sikrer korte, danske commit-beskeder i imperativ.
---
# Commit-konventioner
Når du laver en commit i dette repo:
1. Skriv beskeden på dansk i imperativ ("Tilføj", ikke "Tilføjede").
2. Hold første linje under 50 tegn.
3. Brug et prefix: `feat:`, `fix:`, `docs:`, `chore:`.
4. Kør altid `npm run build` før commit.
Beskrivelsen i frontmatter er afgørende: det er på baggrund af den, at Claude beslutter, om en Skill er relevant for den aktuelle opgave. Skriv derfor en beskrivelse, der tydeligt siger hvornår skillen skal bruges.
Hvor placeres en Skill?
Claude Code leder efter Skills to steder:
- Personlige Skills:
~/.claude/skills/<navn>/SKILL.md– tilgængelige på tværs af alle dine projekter. - Projekt-Skills:
.claude/skills/<navn>/SKILL.md– versioneres med repoet og deles med teamet.
En Skill kan også indeholde mere end markdown. Du kan lægge hjælpescripts, skabeloner eller referencedokumenter i mappen, som Claude kan læse eller køre, når den arbejder:
.claude/skills/rapport-generator/
├── SKILL.md
├── skabelon.md
└── scripts/
└── byg_pdf.py
I SKILL.md henviser man så til de øvrige filer, og Claude indlæser dem efter behov i stedet for at proppe det hele ind i konteksten på én gang.
MCP-servere
Model Context Protocol (MCP) er en åben standard, oprindeligt lanceret af Anthropic, der definerer, hvordan en AI-applikation forbinder til eksterne systemer. En MCP-server kan eksponere tre slags ting til Claude: [^2]
- Tools – funktioner Claude kan kalde (f.eks. “kør en SQL-forespørgsel”).
- Resources – data Claude kan læse (f.eks. en fil eller et dokument).
- Prompts – foruddefinerede prompt-skabeloner.
Pointen er standardisering: i stedet for at hver integration skal bygges specifikt til hver model, taler alle samme protokol. En MCP-server til f.eks. GitHub kan derfor bruges af både Claude Code, Claude-desktop-appen og andre MCP-klienter.
Transport-typer
MCP-servere kommunikerer over én af tre transporter:
| Transport | Beskrivelse | Typisk brug |
|---|---|---|
stdio | Lokal proces, kommunikation via standard ind/ud | Lokale værktøjer, filsystem, databaser |
http | Fjernserver over HTTP | Cloud-tjenester, delte team-servere |
sse | Server-Sent Events over HTTP | Streaming fra fjernservere |
Tilføj en MCP-server i Claude Code
Servere administreres med claude mcp-kommandoen. Et lokalt eksempel (stdio), hvor vi giver Claude adgang til et filsystem-værktøj:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/projekter
En fjernserver over HTTP med en API-nøgle som header:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp \
--header "Authorization: Bearer $SENTRY_TOKEN"
Du kan inspicere og administrere de tilføjede servere:
claude mcp list # vis alle konfigurerede servere
claude mcp get filesystem # detaljer om én server
claude mcp remove sentry # fjern en server
Scopes – hvor gemmes konfigurationen?
Det er vigtigt at forstå, hvor en server registreres, især af sikkerhedshensyn: [^3]
- local (standard) – kun for dig i dette projekt.
- project – gemmes i en
.mcp.json-fil, der versioneres og deles med teamet. - user – tilgængelig på tværs af alle dine projekter.
En .mcp.json i projektroden kan se sådan ud:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
}
}
Sikkerhed: et must, ikke et tillæg
Som IT-sikkerhedsstuderende kan jeg ikke lade være med at understrege dette. Når du giver Claude adgang til en MCP-server, giver du reelt en sprogmodel hænder ud i dine systemer. Det rejser konkrete risici:
- Prompt injection: Hvis en MCP-server returnerer data fra eksterne kilder (f.eks. en webside eller en issue-tekst), kan ondsindet indhold forsøge at manipulere Claude til at misbruge andre værktøjer.
- Over-privilegerede servere: En filsystem-server med adgang til hele
$HOMEer en langt større angrebsflade end én, der kun peger på ét projekt. - Tredjeparts-servere: Installerer du en MCP-server fra en ukendt kilde, kører du fremmed kode på din maskine – behandl det som enhver anden dependency.
Praktiske råd: følg mindste-rettighedsprincippet (peg servere på den smallest mulige mappe/scope), gennemgå en .mcp.json fra et delt repo, før du godkender den, og opbevar API-nøgler i miljøvariabler frem for direkte i konfigurationen.
Skills og MCP i samspil
Den virkelige styrke opstår, når man kombinerer de to. Forestil dig et workflow til at håndtere supportsager:
- En MCP-server giver Claude adgang til jeres ticket-system og database.
- En Skill beskriver jeres interne procedure: hvordan en sag prioriteres, hvilke felter der skal udfyldes, og hvornår en sag eskaleres.
MCP-serveren leverer evnen til at handle; skillen leverer den organisatoriske viden om hvordan der skal handles. Resultatet er en agent, der både kan røre ved jeres systemer og gøre det på jeres måde.
Konklusion
Skills og MCP-servere er to komplementære byggesten i moderne Claude-brug. Skills pakker viden og konventioner som lette markdown-filer med progressive disclosure, mens MCP-servere via en åben standard giver Claude konkret adgang til værktøjer og data. I Claude Code administreres MCP-servere med claude mcp-kommandoen og forskellige scopes, og Skills opdages automatisk fra .claude/skills/. Brug dem sammen – men husk, at hver ny forbindelse også er en ny angrebsflade, der skal behandles med samme omhu som enhver anden afhængighed.
Kilder
- Claude Docs: Agent Skills – Anthropics dokumentation for Skills i Claude Code
- Model Context Protocol – officiel specifikation – den åbne standard for MCP
- Claude Docs: Connect Claude Code to tools via MCP – opsætning, transporter og scopes i
claudeCLI’en
> Quiz: Test din viden
1. Hvad er en Agent Skill i sin grundform – altså hvilken fil definerer den?
2. Hvad står forkortelsen MCP for?
3. Hvilken kommando bruges i Claude Code til at tilføje en ny MCP-server?
4. Hvilket sikkerhedsprincip bør man følge, når man giver en MCP-server adgang til mindst mulig data?