Zum Inhalt springen

MCP-Server

Lokale und entfernte MCP-Tools hinzufugen.

Sie konnen externe Tools zu OpenCode hinzufugen, indem Sie das Model Context Protocol, oder MCP, verwenden. OpenCode unterstutzt sowohl lokale als auch entfernte Server.

Sobald hinzugefugt, sind MCP-Tools automatisch fur das LLM neben den integrierten Tools verfugbar.


Warnhinweise

Wenn Sie einen MCP-Server verwenden, fugt er dem Kontext hinzu. Dies kann sich schnell summieren, wenn Sie viele Tools haben. Wir empfehlen daher, vorsichtig mit den MCP-Servern zu sein, die Sie verwenden.

Bestimmte MCP-Server, wie der GitHub MCP-Server, neigen dazu, viele Tokens hinzuzufugen und konnen leicht das Kontextlimit uberschreiten.


Aktivieren

Sie konnen MCP-Server in Ihrer OpenCode-Konfiguration unter mcp definieren. Fugen Sie jeden MCP mit einem eindeutigen Namen hinzu. Sie konnen sich in Ihrer Eingabeaufforderung an den LLM mit diesem MCP-Namen beziehen.

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

Sie konnen einen Server auch deaktivieren, indem Sie enabled auf false setzen. Dies ist nutzlich, wenn Sie einen Server vorubergehend deaktivieren mochten, ohne ihn aus Ihrer Konfiguration zu entfernen.


Remote-Standardwerte uberschreiben

Organisationen konnen Standard-MCP-Server uber ihren .well-known/opencode-Endpunkt bereitstellen. Diese Server konnen standardmaBig deaktiviert sein, sodass Benutzer die von ihnen benotigten auswahlen konnen.

Um einen bestimmten Server aus der Remote-Konfiguration Ihrer Organisation zu aktivieren, fugen Sie ihn Ihrer lokalen Konfiguration mit enabled: true hinzu:

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

Ihre lokalen Konfigurationswerte uberschreiben die Remote-Standardwerte. Siehe Konfigurationsrangfolge fur weitere Details.


Lokal

Fugen Sie lokale MCP-Server hinzu, indem Sie type im MCP-Objekt auf "local" setzen.

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

Der Befehl ist, wie der lokale MCP-Server gestartet wird. Sie konnen auch eine Liste von Umgebungsvariablen ubergeben.

Beispielsweise konnen Sie hier sehen, wie Sie den Test-MCP-Server @modelcontextprotocol/server-everything hinzufugen konnen.

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

Und um ihn zu verwenden, kann ich use the mcp_everything tool zu meinen Prompts hinzufugen.

use the mcp_everything tool to add the number 3 and 4

Optionen

Hier sind alle Optionen zur Konfiguration eines lokalen MCP-Servers.

OptionTypeRequiredDescription
typeStringYMCP-Verbindungstyp, muss "local" sein.
commandArrayYBefehl und Argumente zum Ausfuhren des MCP-Servers.
environmentObjectUmgebungsvariablen, die beim Ausfuhren des Servers festgelegt werden sollen.
enabledBooleanMCP-Server beim Start aktivieren oder deaktivieren.
timeoutNumberZeituberschreitung in ms zum Abrufen von Tools vom MCP-Server. Standard 5000 (5 Sekunden).

Remote

Fugen Sie Remote-MCP-Server hinzu, indem Sie type auf "remote" setzen.

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"
}
}
}
}

Die url ist die URL des Remote-MCP-Servers und mit der Option headers konnen Sie eine Liste von Kopfzeilen ubergeben.


Optionen

OptionTypeRequiredDescription
typeStringYMCP-Verbindungstyp, muss "remote" sein.
urlStringYURL des Remote-MCP-Servers.
enabledBooleanMCP-Server beim Start aktivieren oder deaktivieren.
headersObjectKopfzeilen, die mit der Anfrage gesendet werden sollen.
oauthObjectOAuth-Authentifizierungskonfiguration. Siehe Abschnitt OAuth unten.
timeoutNumberZeituberschreitung in ms zum Abrufen von Tools vom MCP-Server. Standard 5000 (5 Sekunden).

OAuth

OpenCode verwaltet die OAuth-Authentifizierung automatisch fur Remote-MCP-Server. Wenn ein Server Authentifizierung erfordert, wird OpenCode:

  1. Die 401-Antwort erkennen und den OAuth-Flow einleiten
  2. Die Dynamic Client Registration (RFC 7591) verwenden, wenn vom Server unterstutzt
  3. Tokens sicher fur zukunftige Anfragen speichern

Automatisch

Bei den meisten OAuth-fahigen MCP-Servern ist keine spezielle Konfiguration erforderlich. Konfigurieren Sie einfach den Remote-Server:

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

Wenn der Server Authentifizierung erfordert, werden Sie aufgefordert, sich zu authentifizieren, wenn Sie versuchen, ihn zum ersten Mal zu verwenden. Andernfalls konnen Sie den Flow manuell auslosen mit opencode mcp auth <server-name>.


Vorregistriert

Wenn Sie Anmeldedaten vom MCP-Server-Anbieter haben, konnen Sie sie konfigurieren:

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"
}
}
}
}

Authentifizierung

Sie konnen die Authentifizierung manuell auslosen oder Anmeldedaten verwalten.

Authentifizieren Sie sich mit einem bestimmten MCP-Server:

Terminal-Fenster
opencode mcp auth my-oauth-server

Alle MCP-Server und ihren Authentifizierungsstatus auflisten:

Terminal-Fenster
opencode mcp list

Gespeicherte Anmeldedaten entfernen:

Terminal-Fenster
opencode mcp logout my-oauth-server

Der Befehl mcp auth offnet Ihren Browser fur die Autorisierung. Nach der Autorisierung speichert OpenCode die Tokens sicher in ~/.local/share/opencode/mcp-auth.json.


OAuth deaktivieren

Wenn Sie automatisches OAuth fur einen Server deaktivieren mochten (z. B. fur Server, die stattdessen API-Schlussel verwenden), setzen Sie oauth auf 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-Optionen

OptionTypeDescription
oauthObject | falseOAuth-Konfigurationsobjekt oder false zum Deaktivieren der OAuth-Autoerkennung.
clientIdStringOAuth-Client-ID. Wenn nicht angegeben, wird die dynamische Client-Registrierung versucht.
clientSecretStringOAuth-Client-Secret, falls vom Autorisierungsserver erforderlich.
scopeStringOAuth-Bereiche, die wahrend der Autorisierung angefordert werden sollen.

Debugging

Wenn ein Remote-MCP-Server nicht authentifiziert werden kann, konnen Sie Probleme diagnostizieren mit:

Terminal-Fenster
# Authentifizierungsstatus fur alle OAuth-fahigen Server anzeigen
opencode mcp auth list
# Verbindung und OAuth-Flow fur einen bestimmten Server debuggen
opencode mcp debug my-oauth-server

Der Befehl mcp debug zeigt den aktuellen Authentifizierungsstatus, testet die HTTP-Konnektivitat und versucht den OAuth-Discovery-Flow.


Verwalten

Ihre MCPs sind als Tools in OpenCode verfugbar, neben den integrierten Tools. Sie konnen sie also uber die OpenCode-Konfiguration wie jedes andere Tool verwalten.


Global

Das bedeutet, dass Sie sie global aktivieren oder deaktivieren konnen.

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
}
}

Wir konnen auch ein Glob-Muster verwenden, um alle passenden MCPs zu deaktivieren.

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
}
}

Hier verwenden wir das Glob-Muster my-mcp*, um alle MCPs zu deaktivieren.


Pro Agent

Wenn Sie eine groBe Anzahl von MCP-Servern haben, mochten Sie sie vielleicht nur pro Agent aktivieren und global deaktivieren. Dazu:

  1. Deaktivieren Sie es global als Tool.
  2. Aktivieren Sie in Ihrer Agent-Konfiguration den MCP-Server als Tool.
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-Muster

Das Glob-Muster verwendet einfache Regex-Globbing-Muster:

  • * matcht null oder mehr Zeichen (z. B. matcht "my-mcp*" my-mcp_search, my-mcp_list, etc.)
  • ? matcht genau ein Zeichen
  • Alle anderen Zeichen matchen literal

Beispiele

unten sind Beispiele fur einige ganguige MCP-Server. Sie konnen eine PR einreichen, wenn Sie andere Server dokumentieren mochten.


Sentry

Fugen Sie den Sentry MCP-Server hinzu, um mit Ihren Sentry-Projekten und Problemen zu interagieren.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}

Nach dem Hinzufugen der Konfiguration authentifizieren Sie sich mit Sentry:

Terminal-Fenster
opencode mcp auth sentry

Dies offnet ein Browserfenster, um den OAuth-Flow abzuschlieBen und OpenCode mit Ihrem Sentry-Konto zu verbinden.

Sobald authentifiziert, konnen Sie Sentry-Tools in Ihren Prompts verwenden, um Probleme, Projekte und Fehlerdaten abzufragen.

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

Context7

Fugen Sie den Context7 MCP-Server hinzu, um in der Dokumentation zu suchen.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}

Wenn Sie sich fur ein kostenloses Konto angemeldet haben, konnen Sie Ihren API-Schlussel verwenden und hoheren Ratenlimits erhalten.

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}"
}
}
}
}

Hier gehen wir davon aus, dass Sie die Umgebungsvariable CONTEXT7_API_KEY festgelegt haben.

Fugen Sie use context7 zu Ihren Prompts hinzu, um den Context7 MCP-Server zu verwenden.

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

Alternativ konnen Sie so etwas zu Ihrem AGENTS.md hinzufugen.

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

Grep by Vercel

Fugen Sie den Grep by Vercel MCP-Server hinzu, um in Code-Snippets auf GitHub zu suchen.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}

Da wir unseren MCP-Server gh_grep genannt haben, konnen Sie use the gh_grep tool zu Ihren Prompts hinzufugen, damit der Agent ihn verwendet.

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

Alternativ konnen Sie so etwas zu Ihrem AGENTS.md hinzufugen.

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