# MCP-servere til Claude Code i 2026: 7 integrationer og installation

> Hvad MCP er, og hvordan du forbinder det på 5 minutter med kommandoen claude mcp add. 7 servere: GitHub, Postgres, Slack, Notion, Sentry, Playwright. Tilladelsesliste via hooks.

Source: https://ailoot.ai/blog/da/mcp-servers-claude-code/
Canonical: https://ailoot.ai/blog/da/mcp-servers-claude-code/
Language: da
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-172
Revision: sha256-3e53913d8e70545ffc37e2b862f07b911f31da40d67accc56c0f57899f205306


Yderligere instruktioner til arbejdet med Ailoot findes i [dokumentationen](https://ailoot.ai/docs/).



## Hvad er en MCP-server, og hvorfor har Claude Code brug for en?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

MCP (Model Context Protocol) er en åben standard fra Anthropic, der giver Claude Code adgang til eksterne værktøjer og data via en samlet grænseflade. Én protokol i stedet for ti forskellige API'er. Anthropic kalder den ”USB-C til AI-applikationer”: Tilslut porten, så kan Claude se din database, e-mail, messenger eller dit repository.

</div>

Anthropic annoncerede MCP den 25. november 2024 som en åben standard. På et år blev protokollen en branchestandard: OpenAI, Google DeepMind og Microsoft understøtter den. Det officielle repository `modelcontextprotocol/servers` indeholder referenceservere fra selve MCP-projektet (Filesystem, Memory, Sequential Thinking, Fetch og andre); leverandører—GitHub, Notion, Stripe, Linear, Cloudflare og Sentry—udgiver MCP-servere i deres egne repositories. Community-indekser rummer tusindvis af servere.

Teknisk set kører MCP over JSON-RPC 2.0. Arkitekturen er enkel: din Claude Code er klienten, enhver tjeneste er en server, og MCP-serveren imellem dem har tre entiteter: `tools` (hvad AI'en kan kalde), `resources` (hvad AI'en kan læse) og `prompts` (færdige skabeloner).

<figure>
<blockquote>
Ligesom USB-C giver en standardiseret måde at forbinde enheder med forskellige eksterne enheder på, giver MCP en standardiseret måde at forbinde AI-modeller med forskellige datakilder og værktøjer på.
</blockquote>
<figcaption>— Model Context Protocol, https://modelcontextprotocol.io/</figcaption>
</figure>

Hvorfor er det vigtigt for en vibe-koder? Før MCP var hver forbindelse mellem Claude og en tredjepartstjeneste en separat integration med sin egen wrapper. Med MCP kræver det tre lignende kommandoer at forbinde Postgres, Slack og GitHub, og det er lige så nemt at afbryde dem, når du ikke længere har brug for tjenesten.

## Hvordan adskiller MCP sig fra Skills og Subagents?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

De tre mekanismer ligner hinanden, men løser forskellige problemer. Skills er dine arbejdsgange og prompts som kode. Subagents er separate, specialiserede ”kolleger” med deres egen kontekst. MCP stiller eksterne værktøjer til rådighed, som Claude kan bruge til at nå tjenester og data. Deres tokenomkostninger er forskellige: En skill er billigst, mens MCP normalt er dyrere. MCP placerer først kun værktøjsnavne og serverinstruktioner i konteksten; Claude indlæser de fulde beskrivelser efter behov. Den største omkostning kommer fra tjenesternes svar: De kan være store og forblive i samtalen.

</div>

En enkel tabel, der gør det let at holde forskellene adskilt:

| Mekanisme | Hvad det er | Hvornår du skal bruge den | Tokenomkostning |
|----|----|----|----|
| Skill | En fil med instruktioner og prompts i `.claude/skills/` | En arbejdsgang gentages: skrive en e-mail, udarbejde en rapport, offentliggøre et opslag | Lav. Indlæses ved en udløser |
| Subagent | En separat agent med sin egen kontekst og sine egne værktøjer | En lang opgave, der udføres parallelt: gennemgang, audit, research | Mellem. Egen kontekst |
| MCP-server | En tjeneste med værktøjer/ressourcer over JSON-RPC | Der er brug for liveadgang til data: database, e-mail, messenger, repository | Mellem eller høj. Kun værktøjsnavne forbliver i konteksten; beskrivelser indlæses efter behov, og tjenestesvar kan være store |

Praktisk konklusion: Hvis en opgave er beskrevet én gang og gentages som tekst, er det en skill. Hvis AI'en har brug for et live-svar fra et eksternt system, er det MCP. Hvis opgaven er lang, har mange forgreninger og kræver en separat hjerne, er det en subagent.

Mere om de to beslægtede mekanismer: [Claude Code Skills: Sådan bygger du dit eget bibliotek](https://ailoot.ai/blog/da/claude-code-skills-library/) og [Claude Code Subagents: 5 færdige eksempler](https://ailoot.ai/blog/da/claude-code-subagenter/).

## Sådan installerer du en MCP-server: din første kommando på 5 minutter

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Den samme syntaks virker i alle tilfælde: `claude mcp add [name] -- [launch command]`. Serveren vises på listen fra `claude mcp list`. Claude finder derefter serverens værktøjer og begynder at bruge dem i samtalen. Ingen manuel redigering af konfigurationen—alt foregår via CLI.

</div>

Fuld syntaks fra den officielle dokumentation:

```bash
claude mcp add <name> [options] -- <command> [args...]
```

Der understøttes tre transporttyper: `--transport stdio` (standard, en lokal proces), `--transport http` (fjern-HTTP) og `--transport sse` (markeret som forældet; brug den kun, hvis serveren endnu ikke er migreret).

Der understøttes tre scopes via flaget `--scope`:

- `local` — kun i den aktuelle projektmappe (standard).
- `project` — skrives til `.mcp.json`, committes til repositoryet og er tilgængelig for hele teamet.
- `user` — globalt for alle projekter på maskinen.

Et minimalt eksempel med MCP-projektets reference-Filesystem-server. Den starter på et halvt minut:

```bash
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
claude mcp list
```

Efter `list` kan du se `filesystem` på listen, hvis mappen fra kommandoen findes; uden den starter serveren ikke. Den får adgang til Claude Codes arbejdsmapper—altså mappen, hvor du startede den. Nedenfor i 5.2 forklarer jeg, hvorfor det forholder sig sådan, og hvornår denne server faktisk er nyttig.

Kontrollér, at MCP er forbundet, ved at køre `/mcp` i en Claude Code-session. Den viser alle servere, deres status og deres værktøjslister. Yderligere instruktioner til arbejdet med Ailoot findes i [dokumentationen](https://ailoot.ai/docs/). Se README-filen for den valgte MCP-server for dens specifikke kommandoer.

## stdio eller HTTP: Hvilken transport skal du vælge?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

stdio er en lokal proces på din maskine; alt fungerer uden netværk, og OAuth er ikke nødvendigt. HTTP er en fjerntjeneste, som tilgås med et token eller OAuth, og som kan deles mellem enheder. Hvis en MCP-server installeres via `npx` eller `uvx`, bruger den stdio. Hvis en tjeneste har sin egen offentlige tjenesteadresse, bruger den HTTP. SSE er officielt markeret som forældet, så stol ikke på den.

</div>

Sammenligning ud fra de vigtigste kriterier:

| Kriterium | stdio | HTTP |
|----|----|----|
| Hvor den kører | Lokalt (en underproces til Claude Code) | Fjernserver |
| Autorisation | Ikke nødvendig | OAuth 2.1 eller Bearer-token |
| Netværksporte | Ingen | Offentlig adresse |
| Anvendelser | Filesystem, Postgres, lokale værktøjer | GitHub, Slack, Notion, Linear, Sentry |
| Genforbindelse | Ikke nødvendig | Eksponentiel backoff, op til 5 forsøg |
| Udrulning | Lokal pakkeinstallation | Leverandørtjeneste |

Tommelfingerregel: Alt, der ligger på din disk eller i en lokal database, bruger stdio. Alt i skyen bruger HTTP. SSE er officielt forældet; vælg den ikke.

## 7 færdige MCP-servere til iværksættere

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Her er syv opsætninger, der dækker 80% af en vibe-koders opgaver: kode (GitHub), filer (Filesystem), database (Postgres via DBHub), teamkommunikation (Slack), vidensbase (Notion), fejlsporing (Sentry) og browserarbejdsgange (Playwright). For hver opsætning nedenfor giver jeg en installationskommando på én linje og et eksempel på præcis, hvordan du kan bede Claude om at udføre arbejdet i en rigtig samtale.

</div>

### 5.1. GitHub MCP — den officielle server fra GitHub

Hvad den gør: Giver Claude Code adgang til issues, pull requests, repositoryfiler og action-kørsler. Serveren er open source og har mere end 30,000 stjerner på GitHub.

Installation (HTTP via OAuth):

```bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
```

Alternativt kan du bruge stdio via Docker, hvis du har brug for et PAT-token i stedet for OAuth.

Eksempel: ”Læs de åbne issues med mærket `bug`, gruppér dem efter komponent, og foreslå rækkefølgen for at lukke dem.” Claude kalder GitHub MCP, læser alle issues og returnerer en prioriteret liste.

Repository: [github/github-mcp-server](https://github.com/github/github-mcp-server).

### 5.2. Filesystem MCP — MCP-projektets referenceserver

Hvad den gør: Giver AI'en adgang til filer på computeren i godkendte mapper. Den udgives af selve MCP-projektet; npm-registret angiver Model Context Protocol a Series of LF Projects, LLC som ophavsmand.

Installation (stdio) med en fastlåst version:

```bash
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
```

Når Claude Code forbinder, sender den sine arbejdsmapper til serveren, hvilket erstatter alt det, der er angivet i kommandoen. Claude Codes arbejdsmapper er den mappe, hvor du startede den, plus dem, der er føjet til med kommandoen `/add-dir` eller flaget `--add-dir`. Du kan ikke angive en separat mappe med mockups til serveren via kommandoen. Mappen i kommandoen skal stadig findes, ellers starter serveren ikke.

I Claude Code er dette derfor for det meste en gentagelse af de indbyggede værktøjer. For at få adgang til filer i en anden mappe er `/add-dir` nok: Derefter kan Claude Codes egne værktøjer også læse mappen. Serveren er mere nyttig for programmer, der ikke har deres egen filadgang. I Claude Desktop kan der opstå et andet problem: serverens værktøjer afvises, fordi deres beskrivelser bruger et gammelt skemaformat; problemet er stadig åbent.

Giv kun adgang til de mapper, du faktisk har brug for, både i kommandoen og via `/add-dir`. Giv ikke adgang til diskens rodmappe—det er det første sikkerhedshul.

Eksempel: Kør først `/add-dir ~/Documents/design`, og bed derefter: ”Flyt alle mockups fra `~/Documents/design/landing-v3/` til det aktuelle projekt, og omdøb dem efter konventionen `hero-*.png`.”

### 5.3. Postgres MCP — DBHub (Bytebase)

Hvad den gør: Forbinder Claude til Postgres, MySQL, SQL Server, MariaDB eller SQLite. Den understøtter skrivebeskyttet tilstand, så AI-agenten ikke kan slette databasen med én kommando. Den bruges ofte som erstatning for Anthropics arkiverede referenceserver `server-postgres`.

Installation (HTTP, skrivebeskyttet):

```bash
claude mcp add postgres -- npx -y @bytebase/dbhub --dsn "postgresql://user:pass@localhost:5432/mydb?sslmode=disable" --readonly
```

Til en produktionsdatabase skal du altid bruge en separat bruger med skrivebeskyttede rettigheder og anonymisere personoplysninger via en VIEW eller en mellemliggende API-rute. Forbind ikke til en produktionsdatabase med skriverettigheder.

Eksempel: ”Find kunder med abonnementsstatussen `expired` fra den seneste måned, og vis de 20 øverste efter samlet betalingsbeløb.”

Repository: [bytebase/dbhub](https://github.com/bytebase/dbhub).

### 5.4. Slack MCP — teamkommunikation

Hvad den gør: Giver Claude adgang til at læse Slack-kanaler og sende beskeder. Nyttigt til automatisering: ”Når buildet består, så skriv i `#releases`”; ”Lav en ugentlig opsummering fra `#engineering`.”

Installation (stdio via en npx-wrapper, f.eks. `@modelcontextprotocol/server-slack` eller en tilsvarende fra leverandøren):

```bash
claude mcp add slack \
  -e SLACK_BOT_TOKEN=xoxb-... \
  -e SLACK_TEAM_ID=T0... \
  -- npx -y @modelcontextprotocol/server-slack
```

Autorisation sker med en Slack Bot Token; adgangen begrænses via scopes på Slacks side. Du kan give AI'en kun `chat:read` og `chat:write:user`, så den ikke kan redigere arbejdsområdets indstillinger. Se README-filen for den valgte server for aktuelle kommandoer; økosystemet ændrer sig hurtigt.

Eksempel: ”Send hver morgen kl. 9:00 en liste over gårsdagens mergede PR'er til `#daily`.”

### 5.5. Notion MCP — vidensbase

Hvad den gør: Giver Claude adgang til Notion-sider og databaser. Det er en vidensbase uden for dit projekt: Hvis du opbevarer noter, et kunderegister eller en redaktionel politik der, kan AI'en læse dem.

Installation (HTTP via OAuth):

```bash
claude mcp add --transport http notion https://mcp.notion.com/mcp
```

Alternativt kan du bruge Anthropics officielle plugin `@makenotion/claude-code-notion-plugin`.

Eksempel: ”Find alle i Notion-databasen ’Customers’, hvis status er ’active’, og som ikke har haft et opkald i mere end to uger. Skriv et udkast til en e-mail til hver af dem.”

Guide fra Notion: [developers.notion.com/guides/mcp](https://developers.notion.com/guides/mcp/get-started-with-mcp).

### 5.6. Sentry MCP — fejlsporing

Hvad den gør: Forbinder Claude med fejl i dit produktionssystem. Når en side fejler med en 500, kan du spørge: ”Vis de 10 seneste issues i Sentry for projektet, og forklar rodårsagen til hver af dem”, og straks få en analyse.

Installation (HTTP):

```bash
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
```

Autorisation sker via Sentry OAuth. Adgangen kan begrænses til et bestemt projekt.

Eksempel: ”Find de tre hyppigste issues fra de seneste 24 timer. Forklar på almindeligt engelsk, hvad der skete, og foreslå, hvordan det kan løses.”

Repository: [getsentry/sentry-mcp](https://github.com/getsentry/sentry-mcp).

### 5.7. Playwright MCP — browserarbejdsgange

Hvad den gør: Giver Claude en browser. AI'en kan åbne en side, klikke, udfylde en formular og tage et skærmbillede. Nyttigt til UI-kontroller, manuel test efter publicering og fortolkning af arbejdsgange.

Installation (stdio):

```bash
claude mcp add playwright -- npx -y @playwright/mcp@latest
```

Version v0.0.75, udgivet den 7. maj 2026, vedligeholdes aktivt af Microsoft (mere end 32,000 stjerner).

Eksempel: ”Åbn startsiden på vores websted, kontrollér, at alle kort vises korrekt, og tag et skærmbillede på desktop og mobil.”

Repository: [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp).

Se README-filen for den valgte Playwright MCP-version for kommandoen med en fastlåst version, flaget til flere samtidige sessioner og almindelige installationsfejl.



## Sådan styrer du sikkerheden med en PreToolUse-hook

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

MCP giver AI'en meget magt: Den kan skrive til databaser, sende beskeder og slette filer. En PreToolUse-hook kan styre matchende værktøjskald, men en SQL-præfiksregex er ikke databasegodkendelse, og en matcher kun for Postgres dækker ikke Slack- eller filværktøjer. Brug først reelle tjeneste- og filsystemtilladelser, og test hookens præcise scope særskilt.

</div>

En sortliste over SQL-præfikser er ikke en skrivebeskyttet adgangsgrænse: SQL med små bogstaver, kommentarer, `UPDATE`, `INSERT`, `ALTER`, flere statements og funktioner med bivirkninger dækkes ikke af tre præfikser med store bogstaver. Giv databaseforbindelsen en separat rolle med skrivebeskyttede rettigheder, og verificér dem på en testdatabase, der kan kasseres. En hook er ekstra kontrol af værktøjskald, ikke en erstatning for rettighederne.

Her er et bevidst snævert **karantæneeksempel**: Afvis alle kald gennem de tre navngivne MCP-serverfamilier, indtil du har gennemgået og testet en mere specifik politik. Det blokerer både læsning og skrivning. Match dine faktiske server-/værktøjsnavne; en omdøbt server, indbygget Bash eller en anden forbindelse er uden for mønstrene.

Læg disse separate regler i `.claude/settings.json`:

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "mcp__postgres__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      },
      {
        "matcher": "mcp__slack__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      },
      {
        "matcher": "mcp__filesystem__.*",
        "hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
      }
    ]
  }
}
```

Gem scriptet som `.claude/hooks/deny-unapproved-mcp.sh`. Det returnerer den dokumenterede [PreToolUse-beslutningskontrakt](https://code.claude.com/docs/en/hooks#pretooluse-decision-control), ikke den gamle topniveauform `decision: approve/block`:

```bash
#!/bin/bash
printf '%s\n' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"deny","permissionDecisionReason":"This MCP server family is quarantined pending a reviewed policy."}}'
```

Scriptet parser eller klassificerer ikke SQL. Det afviser altid et matchende kald. Kontrollér matchning og hookresultat i en isoleret session før forbindelse til værdifulde data: `SELECT 1`, `delete` med små bogstaver, `UPDATE` med foranstillet kommentar, et Slack-læse- eller sendeværktøj og Filesystem-læsning af `.env` skal alle afvises, når værktøjsnavnene matcher. Et værktøj fra en anden serverfamilie er uden for eksemplet; verificér den separate grænse udtrykkeligt.

Brug verificerede databaserettigheder, og erstat karantænen med en gennemgået politik for de faktiske værktøjer for at tillade skrivebeskyttet databasearbejde. Brug til Slack en legitimation uden senderettigheder, når opgaven kun kræver læsning. Begræns filserverens tilladte rødder og processens filsystemtilladelser. Hævd ikke, at hooken forhindrer adgang gennem andre værktøjer, shellkommandoer, promptvedhæftninger eller en politikfil, agenten kan redigere.

Den samme tilgang gennemgås mere detaljeret i guiden [Plan Mode i Claude Code](https://ailoot.ai/blog/da/claude-code-plan-mode/)—med lignende logik for at ”kontrollere før udførelse”.

## Hvad skal du gøre, hvis du har 40+ værktøjer, og Claude farer vild?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Syv servere kan let betyde 50–100 værktøjer. Claude Code bruger Tool Search som standard: Ved opstart kommer kun værktøjsnavne og serverinstruktioner ind i konteksten, og Claude indlæser den fulde beskrivelse, når den skal bruge et værktøj. Hvis søgning er slået fra, indlæses alle beskrivelser på én gang, og efter cirka 40 værktøjer begynder Claude at blive forvirret: Den vælger det forkerte værktøj eller griber til MCP, når en almindelig kommando ville være nok.

</div>

Ifølge [Claude Code-dokumentationen](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search) er den nu aktiveret som standard og behøver ikke at blive slået til manuelt.

Undtagelser, hvor Claude Code indlæser alle værktøjer med det samme: arbejde gennem en tredjepartsproxy (når `ANTHROPIC_BASE_URL` er sat til en anden adresse end Anthropics), modeller ældre end generation 4.5 i Google Cloud og Microsoft Foundry-udrulninger på Azure. Variablen `ENABLE_TOOL_SEARCH` ændrer adfærden:

- ikke angivet — alle MCP-værktøjer udsættes og indlæses efter behov;
- `true` — samme adfærd, plus at Claude Code forsøger at aktivere søgning gennem en proxy;
- `auto` — tærskeltilstand: Så længe alle værktøjsbeskrivelser fylder mindre end 10% af kontekstvinduet, indlæses de med det samme; over grænsen udsættes de;
- `auto:N` — samme adfærd, men med en brugerdefineret procenttærskel, f.eks. `auto:5`;
- `false` — den gamle adfærd; alle værktøjer er i konteksten med det samme.

Til kritiske værktøjer, der altid skal være synlige, findes flaget `alwaysLoad: true` i `.mcp.json` ved siden af serverbeskrivelsen. Hvert sådant værktøj optager plads i konteksten fra første minut, så brug kun dette til værktøjer, Claude har brug for i næsten hvert svar.

Hvis du har fem eller flere MCP-servere, og Claude bliver forvirret over, hvilket værktøj den skal kalde, skal du først kontrollere, om søgning er deaktiveret: Se efter `ENABLE_TOOL_SEARCH=false` i indstillingerne, og kontrollér, om du arbejder gennem en proxy.

Det kan også hjælpe at [reducere konteksten med /compact](https://ailoot.ai/blog/da/claude-code-token-limits-saving/).

## Hvornår har du ikke brug for MCP: Er en Skill, Subagent eller CLI bedre?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

MCP er den dyreste måde at give Claude eksterne funktioner på målt i tokens. Hvis en opgave kan klares med et færdigt CLI-værktøj (`gh issue list`, `psql`, `curl`) eller en énsides skill, skal du bruge dem i stedet for at oprette MCP-servere. Reglen er: MCP er kun relevant, når AI'en har brug for en live tovejssamtale med en tjeneste, ikke et engangssvar.

</div>

Hierarki efter tokenomkostning og kompleksitet:

1.  **CLI-kommando via Bash** — næsten gratis. AI'en kører `gh pr list`, `psql -c` eller `curl` og får et svar som en almindelig terminalbruger.
2.  **Skill** — billig. En færdig promptskabelon med instruktioner om, hvad der skal kaldes, og hvordan resultatet skal behandles. Indlæses ud fra en udløser i mappenavnet.
3.  **Subagent** — mellem. Separat kontekst til en lang opgave med sin egen tokensession.
4.  **MCP-server** — dyr. Kun værktøjsnavne forbliver i konteksten, men værktøjsbeskrivelsen indlæses, når Claude finder den før et kald, og tjenestesvar kan være store: Claude Code advarer, når et værktøjssvar overstiger 10,000 tokens. Dertil kommer en OAuth-session for HTTP.

Et råd, der kan virke kontraintuitivt: Vælg **CLI**, ikke MCP, til at parse websider, arbejde med git, åbne PDF'er og bruge open source-værktøjer. AI'en kan kalde terminalkommandoer lige så godt som en person, og tokens bruges kun på kommandoen og dens svar, uden værktøjsbeskrivelser eller serveroverhead.

MCP er relevant i to tilfælde:

- Tjenesten er **lukket**: Slack, Notion, Sentry, Linear. Der findes også CLI-værktøjer, men MCP giver mere detaljeret adgang via OAuth og scope-kontroller.
- Der er brug for en **live tovejssamtale**: AI'en forbinder til Postgres, kontrollerer skemaet, stiller et opfølgende spørgsmål, får dataene og tager det næste skridt. Med CLI ville det blive til 10 manuelle kommandoer.

## 6 antipatterns for MCP-forbindelser

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Seks konkrete fejl, som giver vibe-kodere problemer i deres første uger med MCP. Hvert antipattern kan rettes på et minut: Åbn `claude mcp list`, gennemgå listen, og kontrollér scopes og hooks. De fleste problemer løses ved at fjerne en unødvendig server, ikke ved at tilføje en ny; dette afsnit er en kort tjekliste, du kan gennemgå fra top til bund.

</div>

1.  **MCP-skab.** Du har forbundet 10 servere ”for en sikkerheds skyld”; Claude bliver forvirret over, hvilket værktøj den skal kalde, og deres svar fylder konteksten. Løsning: Behold 3–5 servere til det aktuelle projekt, og fjern resten med `claude mcp remove`.

2.  **Skriveadgang til en produktionsdatabase.** Du har forbundet Postgres MCP til en produktionsdatabase uden `--readonly`, en separat bruger eller en tilladelsesliste-hook. Ét prompt—”slet testposterne”—og produktionsdata bliver slettet. Løsning: En separat databaserolle med verificerede skrivebeskyttede rettigheder, serverens skrivebeskyttede tilstand hvor relevant, og testede værktøjskontroller. En præfikssortliste med `DROP|TRUNCATE|DELETE` er utilstrækkelig godkendelse.

3.  **Personhenførbare oplysninger uden anonymisering.** Du har forbundet en database med kundernes e-mailadresser, telefonnumre og pasoplysninger direkte. Claude ser dataene, og de ender i Anthropics logfiler. Løsning: En VIEW eller en mellemliggende API-rute, der returnerer maskeret data som `j***@gmail.com`.

4.  **MCP i stedet for en skill.** Du skal ”oprette en salgsrapport i format X”—en rutineopgave, der løses med en skill og et færdigt prompt. Opret ikke en MCP-server.

5.  **MCP i stedet for en open source-CLI.** Du skal konvertere en PDF til tekst. Der findes `pdftotext`. Byg ikke en ”PDF MCP”—det spilder bare tokens.

6.  **Ikke at holde styr på tokenomkostninger.** Du kan se den tilsluttede server i `claude mcp list`, men ikke hvor meget den bruger i hver samtale. Efter en uge aner du ikke, at ”MCP brugte 40% af konteksten, og jeg har betalt for det hele tiden”. Løsning: Deaktivér ubrugte servere med jævne mellemrum, og følg ændringerne i forbruget via [sporing af forbrugsgrænser i Claude Code](https://ailoot.ai/blog/da/claude-code-token-limits-saving/).

## Sådan fejlsøger du en MCP-forbindelse, der ikke virker

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

De mest almindelige problemer: OAuth-callbacken virker ikke, servernavnet er i konflikt med et eksisterende navn, eller værktøjet vises ikke i `claude mcp list` efter `add`. Standardfejlsøgningen løser problemerne: `list` viser, hvad der blev forbundet, `status` kontrollerer statusindikatoren, og hvis den er rød, returnerer `logs` et stack trace. Genstart alt efter at have ændret `--scope` eller en ENV-variabel.

</div>

Tjekliste trin for trin:

1.  **Er serveren synlig på listen?**

    ```bash
    claude mcp list
    ```

    Hvis ikke, blev `claude mcp add` ikke gennemført. Den hyppigste årsag er `--scope`: Du føjede den til med `local` og kontrollerer fra et andet projekt.

2.  **Er serverstatus grøn?**

    ```bash
    claude mcp status <name>
    ```

    Rød betyder, at processen ikke startede (for stdio), eller at serveren ikke svarede (for HTTP).

3.  **Siger serverloggene noget nyttigt?**

    ```bash
    claude mcp logs <name>
    ```

    Hvis du ser et stack trace, skyldes problemet normalt pakken (`npx` kunne ikke finde den, eller Node-versionen er under 20).

4.  **Kommer OAuth-callbacken ikke tilbage?** Problemet skyldes normalt `--callback-port` eller et netværksfilter. Videresend en bestemt port:

    ```bash
    claude mcp add --transport http --callback-port 8765 [name] [url]
    ```

5.  **Konflikt mellem værktøjsnavne?** To servere stiller et værktøj med samme navn til rådighed, og Claude kalder det forkerte. Brug Tool Search (se den forrige H2), eller fjern den ekstra server manuelt med `claude mcp remove`.

6.  **Kan du ikke se claude.ai-udvidelser (connectors)?** Det er et kendt problem: Udvidelser (connectors) fra claude.ai-webgrænsefladen er ikke tilgængelige for Claude Code, når den bruger en API-nøgle. Løsning: Forbind MCP via CLI, ikke via webgrænsefladen.

## Hvad nu: OAuth, dine egne MCP-servere og pluginmarkedspladsen

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Efter de syv færdige servere er de næste tre trin OAuth til dine egne HTTP-servere (hvis du vil dele MCP med dit team), at skrive din egen MCP til en unik tjeneste og at oprette forbindelse til Anthropics Plugin Marketplace. Marketplace blev lanceret den 9. oktober 2025 og pakker MCP ind i plugins, der kan installeres med én kommando.

</div>

Plugin Marketplace gør det hurtigere for alle, der ikke vil huske installationskommandoer. Formatet er et `.claude-plugin/marketplace.json`-manifest, der beskriver et sæt servere i én pakke.

Installér et plugin fra markedspladsen:

```bash
claude plugin install <plugin-name>
```

Et plugin kan indeholde flere MCP-servere, skills og subagents på én gang—en pakket opsætning til et bestemt scenarie: e-handel, marketing eller en juridisk afdeling.

Skriv din egen MCP-server efter specifikationen på `modelcontextprotocol.io`. En minimal skabelon bruger Anthropics Python- eller TypeScript-SDK; beskriv derefter værktøjerne, og tilslut en transport. Kompleksiteten svarer til at skrive en REST-API med FastAPI.

Hvis dit projekt allerede har en [konfigureret CLAUDE.md](https://ailoot.ai/blog/da/claude-md-template/) og en forståelse af [kontekstteknik](https://ailoot.ai/blog/da/context-engineering/), tager det en dag at tilføje din egen MCP. Uden det er det bedre først at lære det grundlæggende.

<div class="section" role="doc-bibliography" aria-label="Kilder">

### Kilder

- [Model Context Protocol — officielt websted](https://modelcontextprotocol.io/)
- [Anthropic introducerer MCP — 25. november 2024](https://www.anthropic.com/news/model-context-protocol)
- [Claude Code MCP-dokumentation](https://code.claude.com/docs/en/mcp)
- [Claude Code: MCP Tool Search](https://code.claude.com/docs/en/mcp#scale-with-mcp-tool-search)
- [Claude Code Plugins-annoncering — 9. oktober 2025](https://claude.com/blog/claude-code-plugins)
- [Code with Claude 2026](https://claude.com/code-with-claude)
- [modelcontextprotocol/servers — officielt register](https://github.com/modelcontextprotocol/servers)
- [github/github-mcp-server](https://github.com/github/github-mcp-server)
- [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp)
- [bytebase/dbhub — Postgres MCP](https://github.com/bytebase/dbhub)
- [getsentry/sentry-mcp](https://github.com/getsentry/sentry-mcp)
- [makenotion/claude-code-notion-plugin](https://github.com/makenotion/claude-code-notion-plugin)
- [Notion MCP-guide](https://developers.notion.com/guides/mcp/get-started-with-mcp)
- [Anthropics Claude Code-repository — issues og ændringslog](https://github.com/anthropics/claude-code)

</div>





Fortsæt arbejdet med modeller på [Ailoot](https://ailoot.ai/).

## Spørgsmål og svar

### Gør hooken produktionsdatabaseadgang skrivebeskyttet?

Nej. Eksemplet sætter alle kald, der matcher de navngivne MCP-familier, i karantæne; det klassificerer ikke SQL. Skrivebeskyttet databaseadfærd skal komme fra en separat rolle med verificerede skrivebeskyttede rettigheder, mens hooks er en ekstra kontrol.

### Hvordan tester jeg hookens scope?

Kontrollér i en isoleret session, at matchende værktøjsnavne afvises ved både læsning og skrivning, også SQL med små bogstaver eller foranstillede kommentarer. Kontrollér derefter, at et uvedkommende værktøj ligger uden for matcheren; den udækkede vej kræver egne tilladelser eller politik.


## Ailoot · Virksomheden og dens projektportefølje

Ailoot bygger på solid driftserfaring, en stor kundebase, stabil service og løbende kontrol af KPI.

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Ailoot bruger denne driftserfaring til API-adgang til AI-funktioner i kundernes produkter, agenter, applikationer og automatiseringer.
