MCP servere
Legg til lokale og eksterne MCP-verktøy.
Du kan legge til eksterne verktøy i OpenCode ved å bruke Model Context Protocol eller MCP. OpenCode støtter både lokale og eksterne servere.
Når de er lagt til, er MCP-verktøy automatisk tilgjengelige for LLM sammen med innebygde verktøy.
Advarsler
Når du bruker en MCP-server, legger den til konteksten. Dette kan fort gå opp hvis du har mange verktøy. Så vi anbefaler å være forsiktig med hvilke MCP-servere du bruker.
Enkelte MCP-servere, som GitHub MCP-serveren, har en tendens til å legge til mange tokens og kan lett overskride kontekstgrensen.
Aktiver
Du kan definere MCP-servere i OpenCode Config under mcp. Legg til hver MCP med et unikt navn. Du kan referere til den MCP ved navn når du ber om 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 å sette enabled til false. Dette er nyttig hvis du vil deaktivere en server midlertidig uten å fjerne den fra konfigurasjonen.
Overstyrer fjernstandarder
Organisasjoner kan tilby standard MCP-servere via deres .well-known/opencode-endepunkt. Disse serverne kan være deaktivert som standard, slik at brukere kan melde seg på de de trenger.
For å aktivere en spesifikk server fra organisasjonens eksterne konfigurasjon, legg den til i din lokale konfigurasjon med enabled: true:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "jira": { "type": "remote", "url": "https://jira.example.com/mcp", "enabled": true } }}Dine lokale konfigurasjonsverdier overstyrer de eksterne standardinnstillingene. Se config precedence for flere detaljer.
Lokal
Legg til lokale MCP-servere ved å bruke 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-serveren startes. Du kan også sende inn en liste over miljøvariabler.
For eksempel, her er hvordan du kan legge til test @modelcontextprotocol/server-everything MCP serveren.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "mcp_everything": { "type": "local", "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], }, },}Og for å bruke den kan jeg legge til use the mcp_everything tool i ledetekstene mine.
use the mcp_everything tool to add the number 3 and 4Alternativer
Her er alle alternativene for å konfigurere en lokal MCP-server.
| Alternativ | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
type | String | Y | Type MCP servertilkobling, må være "local". |
command | Array | Y | Kommando og argumenter for å kjøre MCP-serveren. |
environment | Object | Miljøvariabler som skal angis når serveren kjøres. | |
enabled | Boolean | Aktiver eller deaktiver MCP-serveren ved oppstart. | |
timeout | Number | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). |
Ekstern
Legg til eksterne MCP-servere ved å sette 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 til den eksterne MCP serveren og med alternativet headers kan du sende inn en liste over overskrifter.
Alternativer
| Alternativ | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
type | String | Y | Type MCP servertilkobling, må være "remote". |
url | String | Y | URL av den eksterne MCP-serveren. |
enabled | Boolean | Aktiver eller deaktiver MCP-serveren ved oppstart. | |
headers | Object | Overskrifter å sende med forespørselen. | |
oauth | Object | OAuth-autentiseringskonfigurasjon. Se delen OAuth nedenfor. | |
timeout | Number | Tidsavbrudd i ms for henting av verktøy fra MCP-serveren. Standard er 5000 (5 sekunder). |
OAuth
OpenCode håndterer automatisk OAuth-autentisering for eksterne MCP-servere. Når en server krever autentisering, vil OpenCode:
- Oppdag 401-svaret og start OAuth-flyten
- Bruk Dynamisk klientregistrering (RFC 7591) hvis det støttes av serveren
- Lagre tokens sikkert for fremtidige forespørsler
Automatisk
For de fleste OAuth-aktiverte MCP-servere er ingen spesiell konfigurasjon nødvendig. Bare konfigurer den eksterne serveren:
{ "$schema": "https://opencode.ai/config.json", "mcp": { "my-oauth-server": { "type": "remote", "url": "https://mcp.example.com/mcp" } }}Hvis serveren krever autentisering, vil OpenCode be deg om å autentisere når du prøver å bruke den for første gang. Hvis ikke, kan du utløse flyten manuelt med opencode mcp auth <server-name>.
Forhåndsregistrert
Hvis du har klientlegitimasjon fra MCP-serverleverandøren, 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" } } }}Autentiserer
Du kan utløse autentisering manuelt eller administrere legitimasjon.
Autentiser med en spesifikk MCP-server:
opencode mcp auth my-oauth-serverListe alle MCP-servere og deres autentiseringsstatus:
opencode mcp listFjern lagret legitimasjon:
opencode mcp logout my-oauth-serverKommandoen mcp auth åpner nettleseren din for autorisasjon. Etter at du har godkjent, vil OpenCode lagre tokens sikkert i ~/.local/share/opencode/mcp-auth.json.
Deaktiverer OAuth
Hvis du vil deaktivere automatisk OAuth for en server (f.eks. for servere som bruker API-nøkler i stedet), setter du 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-alternativer
| Alternativ | Type | Beskrivelse |
|---|---|---|
oauth | Object | false | OAuth-konfigurasjonsobjekt, eller false for å deaktivere automatisk OAuth-deteksjon. |
clientId | String | OAuth-klient ID. Hvis ikke oppgitt, vil dynamisk klientregistrering bli forsøkt. |
clientSecret | String | OAuth-klienthemmelighet, hvis det kreves av autorisasjonsserveren. |
scope | String | OAuth-omfang å be om under autorisasjon. |
Feilsøking
Hvis en ekstern MCP-server ikke klarer å autentisere, kan du diagnostisere 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 gjeldende autentiseringsstatus, tester HTTP-tilkoblingen og forsøker OAuth-oppdagelsesflyten.
Administrer
MCP-ene dine er tilgjengelige som verktøy i OpenCode, sammen med innebygde verktøy. Så du kan administrere dem gjennom OpenCode-konfigurasjonen som alle andre verktøy.
Globalt
Dette betyr 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å bruke et globmønster for å deaktivere alle matchende MCP-er.
{ "$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 bruker vi globmønsteret my-mcp* for å deaktivere alle MCP-er.
Per agent
Hvis du har et stort antall MCP-servere, vil du kanskje bare aktivere dem per agent og deaktivere dem globalt. Slik gjør du dette:
- Deaktiver det som et verktøy globalt.
- Aktiver MCP-serveren som et verktøy i 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-mønstre
Glob-mønsteret bruker enkle regex-globing-mønstre:
*samsvarer med null eller flere av alle tegn (f.eks."my-mcp*"samsvarer medmy-mcp_search,my-mcp_list, osv.)?samsvarer med nøyaktig ett tegn- Alle andre karakterer samsvarer bokstavelig talt
Eksempler
Nedenfor er eksempler på noen vanlige MCP-servere. Du kan sende inn en PR hvis du vil dokumentere andre servere.
Sentry
Legg til Sentry MCP-serveren for å samhandle med Sentry-prosjektene og problemene dine.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp", "oauth": {} } }}Etter å ha lagt til konfigurasjonen, autentiser med Sentry:
opencode mcp auth sentryDette åpner et nettleservindu for å fullføre OAuth-flyten og koble OpenCode til Sentry-kontoen din.
Når du er autentisert, kan du bruke Sentry-verktøy i ledetekstene dine for å spørre etter problemer, prosjekter og feildata.
Show me the latest unresolved issues in my project. use sentryKontekst7
Legg til Context7 MCP-serveren for å søke gjennom dokumenter.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp" } }}Hvis du har registrert deg for en gratis konto, kan du bruke API-nøkkelen din og få høyere satsgrenser.
{ "$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 antar vi at du har CONTEXT7_API_KEY miljøvariabelen satt.
Legg til use context7 i instruksjonene for å bruke Context7 MCP-serveren.
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7Alternativt kan du legge til noe slikt til din AGENTS.md.
When you need to search docs, use `context7` tools.Grep by Vercel
Legg til Grep by Vercel MCP-serveren for å søke gjennom kodebiter på GitHub.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "gh_grep": { "type": "remote", "url": "https://mcp.grep.app" } }}Siden vi kalte MCP-serveren vår gh_grep, kan du legge til use the gh_grep tool i spørsmålene dine for å få agenten til å bruke den.
What's the right way to set a custom domain in an SST Astro component? use the gh_grep toolAlternativt kan du legge til noe slikt til din AGENTS.md.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.