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.
{ "$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:
{ "$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.
{ "$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.
{ "$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 4Options
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). |
Remote
Tilføj ekstern MCP-server ved at indstille type til "remote".
{ "$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
| 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 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:
- Registrer 401-svaret, og start OAuth-flowet
- Brug Dynamic Client Registration (RFC 7591), hvis det understøtter af serveren
- Opbevar tokens sikkert til fremtidige anmodninger
Automatic
For de fleste OAuth-aktiverede MCP-servere kræver ingen speciel konfiguration. Bare konfigureret fjernserver:
{ "$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:
{ "$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:
opencode mcp auth my-oauth-serverListe over alle MCP-servere og deres godkendelsesstatus:
opencode mcp listFjern gemte legitimationsoplysninger:
opencode mcp logout my-oauth-serverKommandoen 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:
{ "$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
| 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. |
Debugging
Hvis en ekstern MCP-server ikke kan godkendes, kan du diagnosticere problemer med:
# View auth status for all OAuth-capable serversopencode mcp auth list
# Debug connection and OAuth flow for a specific serveropencode mcp debug my-oauth-serverKommandoen 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.
{ "$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.
{ "$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:
- Deaktiver det som et værktøj globalt.
- Aktiver MCP-serveren som et værktøj i din agent config.
{ "$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*"matchermy-mcp_search,my-mcp_listosv.)?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.
{ "$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:
opencode mcp auth sentryDette å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 sentryContext7
Tilføj Context7 MCP server for at søge i dokumenter.
{ "$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.
{ "$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 context7Alternativt kan du tilføje noget som dette til din 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.
{ "$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 toolAlternativt kan du tilføje noget som dette til din AGENTS.md.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.