| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 |
- ---
- 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.
- ```
|