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:

SkillsMCP-servere
Hvad er det?Viden og instruktioner pakket som markdown + filerEn kørende proces, der eksponerer værktøjer og data
Giver Claude…at vide hvordan en opgave løsesevnen til at gøre noget eksternt
FormatEn mappe med SKILL.mdEt 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:

TransportBeskrivelseTypisk brug
stdioLokal proces, kommunikation via standard ind/udLokale værktøjer, filsystem, databaser
httpFjernserver over HTTPCloud-tjenester, delte team-servere
sseServer-Sent Events over HTTPStreaming 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 $HOME er 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:

  1. En MCP-server giver Claude adgang til jeres ticket-system og database.
  2. 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

> 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?