Gå til indhold

MCP servere

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.


Caveats

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.

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


Aktiver

Du kan definere MCP-servere i din OpenCode 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.

opencode.jsonc
{
"$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.


Overriding remote defaults

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:

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 for flere detaljer.


Lokal

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

opencode.jsonc
{
"$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.

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.

use the mcp_everything tool to add the number 3 and 4

Options

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

MulighedSkrivPåkrævetBeskrivelse
typeStringYType MCP serverforbindelse, skal være "local".
commandArrayYKommando og argumenter til at køre MCP-serveren.
environmentObjectMiljøvariabler, der skal indstilles, når serveren kører.
enabledBooleanAktiver eller deaktiver MCP-serveren ved opstart.
timeoutNummerTimeout i ms for at hente værktøjer fra MCP-serveren. Standard er 5000 (5 sekunder).

Remote

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

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.


Options

MulighedSkrivPåkrævetBeskrivelse
typeStringYType MCP serverforbindelse, skal være "remote".
urlStringYURL af den eksterne MCP-server.
enabledBooleanAktiver eller deaktiver MCP-serveren ved opstart.
headersObjectOverskrifter til at sende med anmodningen.
oauthObjectOAuth-godkendelseskonfiguration. Se afsnittet OAuth nedenfor.
timeoutNummerTimeout 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

Automatic

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

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 med opencode mcp auth <server-name>.


Pre-registered

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

opencode.json
{
"$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"
}
}
}
}

Authenticating

Du kan manuelt udløse godkendelse eller administrere legitimationsoplysninger.

Godkendt med en specifik MCP-server:

Terminal window
opencode mcp auth my-oauth-server

Liste over alle MCP-servere og deres godkendelsesstatus:

Terminal window
opencode mcp list

Fjern gemte legitimationsoplysninger:

Terminal window
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.


Disabling 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:

opencode.json
{
"$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 Options

MulighedSkrivBeskrivelse
oauthObject | falseOAuth-konfigurationsobjekt eller false for at deaktivere OAuth-auto-detektion.
clientIdStringOAuth-klient-id. Hvis det ikke er angivet, vil dynamisk klientregistrering blive forsøgt.
clientSecretStringOAuth-klienthemmelighed, hvis det kræves af autorisationsserveren.
scopeStringOAuth-omfang at anmode om under godkendelse.

Debugging

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

Terminal window
# 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.


Administrator

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.

opencode.json
{
"$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.

opencode.json
{
"$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.
opencode.json
{
"$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 patterns

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

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 for at interagere med dine Sentry-projekter og -problemer.

opencode.json
{
"$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:

Terminal window
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.

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

Context7

Tilføj Context7 MCP server for at søge i dokumenter.

opencode.json
{
"$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.

opencode.json
{
"$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.

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.

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

Grep by Vercel

Tilføj serveren Grep by Vercel MCP for at søge gennem kodestykker på GitHub.

opencode.json
{
"$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.

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.

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