---
title: MCP-servere
description: Tilføj lokale og eksterne MCP værktøjer.
---

Du kan tilføje eksterne værktøjer til OpenCode ved hjælp af _Model Context Protocol_ eller MCP. OpenCode understøtter både lokale og eksterne servere.

Når de er tilføjet, er MCP automatisk tilgængelig for LLM sammen med indbyggede værktøjer.

---

#### Forbehold

Når du bruger en MCP-server, føjes den til konteksten. Dette kan hurtigt stige, hvis du har mange værktøjer. Så vi anbefaler at være forsigtig med hvilke MCP-servere du bruger.

:::tip
MCP-servere tilføjer til din kontekst, så du vil være forsigtig med, hvilke du aktiverer.
:::

Visse MCP-servere, som GitHub MCP-servere, har en tendens til at tilføje mange tokens og kan nemt overskride kontekstgrænsen.

---

## Aktivering

Du kan definere MCP-servere i din [OpenCode Config](https://opencode.ai/docs/config/) under `mcp`. Tilføj hver MCP med et unikt navn. Du kan henvise til denne MCP ved navn, når du spørger LLM.

```jsonc title="opencode.jsonc" {6}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "name-of-mcp-server": {
      // ...
      "enabled": true,
    },
    "name-of-other-mcp-server": {
      // ...
    },
  },
}
```

Du kan også deaktivere en server ved at indstille `enabled` til `false`. Dette er nyttigt, hvis du midlertidigt vil deaktivere en server uden at fjerne den fra din konfiguration.

---

### Tilsidesættelse af eksterne standarder

Organisationer kan levere standard MCP-servere via deres `.well-known/opencode`-slutpunkt. Disse servere kan være deaktiveret som standard, hvilket giver brugerne mulighed for at tilmelde sig dem, de har brug for.

For at aktivere en specifik server fra din organisationers fjernkonfiguration skal du tilføje den til din lokale konfiguration med `enabled: true`:

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}
```

Dine lokale konfigurationsværdier tilsidesætter fjernstandarderne. Se [config precedence](/docs/config#precedence-order) for flere detaljer.

---

## Lokal

Tilføj lokale MCP-servere ved hjælp af `type` til `"local"` i MCP-objektet.

```jsonc title="opencode.jsonc" {15}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-local-mcp-server": {
      "type": "local",
      // Or ["bun", "x", "my-mcp-command"]
      "command": ["npx", "-y", "my-mcp-command"],
      "enabled": true,
      "environment": {
        "MY_ENV_VAR": "my_env_var_value",
      },
    },
  },
}
```

Kommandoen er, hvordan den lokale MCP-server starter. Du kan også sende en liste over miljøvariabler ind.

For eksempel kan du tilføje test-MCP-serveren [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything).

```jsonc title="opencode.jsonc"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mcp_everything": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
    },
  },
}
```

Og for at bruge det kan jeg tilføje `use the mcp_everything tool` til mine prompter.

```txt "mcp_everything"
use the mcp_everything tool to add the number 3 and 4
```

---

#### Indstillinger

Her er alle muligheder for at konfigurere en lokal MCP-server.

| Mulighed      | Skriv   | Påkrævet | Beskrivelse                                                                          |
| ------------- | ------- | -------- | ------------------------------------------------------------------------------------ |
| `type`        | String  | Y        | Type MCP serverforbindelse, skal være `"local"`.                                     |
| `command`     | Array   | Y        | Kommando og argumenter til at køre MCP-serveren.                                     |
| `environment` | Object  |          | Miljøvariabler, der skal indstilles, når serveren kører.                             |
| `enabled`     | Boolean |          | Aktiver eller deaktiver MCP-serveren ved opstart.                                    |
| `timeout`     | Nummer  |          | Timeout i ms for at hente værktøjer fra MCP-serveren. Standard er 5000 (5 sekunder). |

---

## Ekstern

Tilføj ekstern MCP-server ved at indstille `type` til `"remote"`.

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-remote-mcp": {
      "type": "remote",
      "url": "https://my-mcp-server.com",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer MY_API_KEY"
      }
    }
  }
}
```

`url` er URL for den eksterne MCP server, og med indstillingen `headers` kan du sende en liste over overskrifter ind.

---

#### Indstillinger

| Mulighed  | Skriv   | Påkrævet | Beskrivelse                                                                          |
| --------- | ------- | -------- | ------------------------------------------------------------------------------------ |
| `type`    | String  | Y        | Type MCP serverforbindelse, skal være `"remote"`.                                    |
| `url`     | String  | Y        | URL af den eksterne MCP-server.                                                      |
| `enabled` | Boolean |          | Aktiver eller deaktiver MCP-serveren ved opstart.                                    |
| `headers` | Object  |          | Overskrifter til at sende med anmodningen.                                           |
| `oauth`   | Object  |          | OAuth-godkendelseskonfiguration. Se afsnittet [OAuth](#oauth) nedenfor.              |
| `timeout` | Nummer  |          | Timeout i ms for at hente værktøjer fra MCP-serveren. Standard er 5000 (5 sekunder). |

---

## OAuth

OpenCode håndterer automatisk OAuth-godkendelse for eksterne MCP-servere. Når en server kræver godkendelse, vil OpenCode:

1. Registrer 401-svaret, og start OAuth-flowet
2. Brug **Dynamic Client Registration (RFC 7591)**, hvis det understøtter af serveren
3. Opbevar tokens sikkert til fremtidige anmodninger

---

### Automatisk

For de fleste OAuth-aktiverede MCP-servere kræver ingen speciel konfiguration. Bare konfigureret fjernserver:

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp"
    }
  }
}
```

Hvis serveren kræver godkendelse, vil OpenCode bede dig om at godkende, når du prøver at bruge den første gang. Hvis ikke, kan du [manually trigger the flow](#authenticating) med `opencode mcp auth <server-name>`.

---

### Forhåndsregistreret

Hvis du har klientlegitimationsoplysninger fra MCP-serverudbyderen, kan du konfigurere dem:

```json title="opencode.json" {7-11}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "{env:MY_MCP_CLIENT_ID}",
        "clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
        "scope": "tools:read tools:execute"
      }
    }
  }
}
```

---

### Godkendelse

Du kan manuelt udløse godkendelse eller administrere legitimationsoplysninger.

Godkendt med en specifik MCP-server:

```bash
opencode mcp auth my-oauth-server
```

Liste over alle MCP-servere og deres godkendelsesstatus:

```bash
opencode mcp list
```

Fjern gemte legitimationsoplysninger:

```bash
opencode mcp logout my-oauth-server
```

Kommandoen `mcp auth` åbner din browser for godkendelse. Når du har godkendt, vil OpenCode opbevare tokens sikkert i `~/.local/share/opencode/mcp-auth.json`.

---

#### Deaktivering af OAuth

Hvis du vil deaktivere automatisk OAuth for en server (f.eks. for servere, der bruger API-nøgler i stedet), skal du indstille `oauth` til `false`:

```json title="opencode.json" {7}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-api-key-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer {env:MY_API_KEY}"
      }
    }
  }
}
```

---

#### OAuth-indstillinger

| Mulighed       | Skriv           | Beskrivelse                                                                               |
| -------------- | --------------- | ----------------------------------------------------------------------------------------- |
| `oauth`        | Object \| false | OAuth-konfigurationsobjekt eller `false` for at deaktivere OAuth-auto-detektion.          |
| `clientId`     | String          | OAuth-klient-id. Hvis det ikke er angivet, vil dynamisk klientregistrering blive forsøgt. |
| `clientSecret` | String          | OAuth-klienthemmelighed, hvis det kræves af autorisationsserveren.                        |
| `scope`        | String          | OAuth-omfang at anmode om under godkendelse.                                              |

#### Fejlfinding

Hvis en ekstern MCP-server ikke kan godkendes, kan du diagnosticere problemer med:

```bash
# View auth status for all OAuth-capable servers
opencode mcp auth list

# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server
```

Kommandoen `mcp debug` viser den aktuelle godkendelsesstatus, tester HTTP-forbindelse og forsøger OAuth-opdagelsesflowet.

---

## Administration

Dine MCPs er tilgængelige som værktøjer i **TK\_** sammen med indbyggede værktøjer. Så du kan administrere dem gennem OpenCode-konfigurationen som ethvert andet værktøj.

---

### Global

Det betyder, at du kan aktivere eller deaktivere dem globalt.

```json title="opencode.json" {14}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp-foo": false
  }
}
```

Vi kan også bruge et globmønster til at deaktivere alle matchende MCPs.

```json title="opencode.json" {14}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp*": false
  }
}
```

Her bruger vi globmønsteret `my-mcp*` til at deaktivere alle MCPs.

---

### Per agent

Hvis du har et stort antal MCP-servere, vil du måske kun aktivere dem pr. agent og deaktivere dem globalt. Sådan gør du:

1. Deaktiver det som et værktøj globalt.
2. Aktiver MCP-serveren som et værktøj i din [agent config](/docs/agents#tools).

```json title="opencode.json" {11, 14-18}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command"],
      "enabled": true
    }
  },
  "tools": {
    "my-mcp*": false
  },
  "agent": {
    "my-agent": {
      "tools": {
        "my-mcp*": true
      }
    }
  }
}
```

---

#### Glob-mønstre

Glob-mønsteret bruger simple regex-globing-mønstre:

- `*` matcher nul eller flere af ethvert tegn (f.eks. `"my-mcp*"` matcher `my-mcp_search`, `my-mcp_list` osv.)
- `?` matcher nøjagtigt ét tegn
- Alle andre karakterer matcher bogstaveligt talt

:::note
MCP serverværktøjer er registreret med servernavn som præfiks, så for at deaktivere alle værktøjer til en server skal du blot bruge:

```
"mymcpservername_*": false
```

:::

---

## Eksempler

Nedenfor er eksempler på nogle almindelige MCP-servere. Du kan indsende en PR, hvis du vil dokumentere andre servere.

---

### Sentry

Tilføj [Sentry MCP server](https://mcp.sentry.dev) for at interagere med dine Sentry-projekter og -problemer.

```json title="opencode.json" {4-8}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "oauth": {}
    }
  }
}
```

Efter tilføjelse af konfigurationen skal du godkende med Sentry:

```bash
opencode mcp auth sentry
```

Dette åbner et browservindue for at fuldføre OAuth-flowet og forbinde OpenCode til din Sentry-konto.

Når du er godkendt, kan du bruge Sentry-værktøjer i dine prompter til at forespørge om problemer, projekter og fejldata.

```txt "use sentry"
Show me the latest unresolved issues in my project. use sentry
```

---

### Context7

Tilføj [Context7 MCP server](https://github.com/upstash/context7) for at søge i dokumenter.

```json title="opencode.json" {4-7}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}
```

Hvis du har tilmeldt dig en gratis konto, kan du bruge din API-nøgle og få højere satsgrænser.

```json title="opencode.json" {7-9}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
      }
    }
  }
}
```

Her antager vi, at du har sat miljøvariablen `CONTEXT7_API_KEY`.

Føj `use context7` til dine prompter for at bruge Context7 MCP server.

```txt "use context7"
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7
```

Alternativt kan du tilføje noget som dette til din [AGENTS.md](/docs/rules/).

```md title="AGENTS.md"
When you need to search docs, use `context7` tools.
```

---

### Grep by Vercel

Tilføj serveren [Grep by Vercel](https://grep.app) MCP for at søge gennem kodestykker på GitHub.

```json title="opencode.json" {4-7}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gh_grep": {
      "type": "remote",
      "url": "https://mcp.grep.app"
    }
  }
}
```

Da vi navngav vores MCP-server `gh_grep`, kan du tilføje `use the gh_grep tool` til dine prompter for at få agenten til at bruge den.

```txt "use the gh_grep tool"
What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool
```

Alternativt kan du tilføje noget som dette til din [AGENTS.md](/docs/rules/).

```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```
