MCP-Server
Fügen Sie lokale und Remote-MCP-Tools hinzu.
Sie können externe Tools zu OpenCode mithilfe des Model Context Protocol (MCP) hinzufügen. OpenCode unterstützt sowohl lokale als auch Remote-Server.
Einmal hinzugefügt, stehen MCP-Tools dem LLM automatisch neben den integrierten Tools zur Verfügung.
Vorbehalte
Wenn Sie einen MCP-Server verwenden, erhöht dieser den Kontext. Dies kann sich schnell summieren, wenn Sie viele Tools haben. Daher empfehlen wir, sorgfältig auszuwählen, welche MCP-Server Sie verwenden.
Tipp: MCP-Server erhöhen Ihren Kontext, daher sollten Sie sorgfältig auswählen, welche Sie aktivieren.
Bestimmte MCP-Server, wie der GitHub-MCP-Server, neigen dazu, viele Tokens hinzuzufügen, und können das Kontextlimit leicht überschreiten.
Aktivieren
Sie können MCP-Server in Ihrer OpenCode-Konfiguration (opens in a new tab) unter mcp definieren. Fügen Sie jedem MCP einen eindeutigen Namen hinzu. Sie können sich beim Prompten des LLM mit diesem Namen auf das MCP beziehen.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"name-of-mcp-server": {
// ...
"enabled": true,
},
"name-of-other-mcp-server": {
// ...
},
},
}Sie können einen Server auch deaktivieren, indem Sie enabled auf false setzen. Dies ist nützlich, wenn Sie einen Server vorübergehend deaktivieren möchten, ohne ihn aus Ihrer Konfiguration zu entfernen.
Überschreiben von Remote-Standardwerten
Organisationen können Standard-MCP-Server über ihren .well-known/opencode-Endpunkt bereitstellen. Diese Server können standardmäßig deaktiviert sein, sodass Benutzer diejenigen, die sie benötigen, aktiv hinzufügen können.
Um einen bestimmten Server aus der Remote-Konfiguration Ihrer Organisation zu aktivieren, fügen Sie ihn mit enabled: true zu Ihrer lokalen Konfiguration hinzu:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}Ihre lokalen Konfigurationswerte überschreiben die Remote-Standardwerte. Weitere Details finden Sie unter Konfigurationsvorrang.
Lokal
Fügen Sie lokale MCP-Server hinzu, indem Sie type innerhalb des MCP-Objekts auf "local" setzen.
{
"$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",
},
},
},
}Der Befehl bestimmt, wie der lokale MCP-Server gestartet wird. Sie können auch eine Liste von Umgebungsvariablen übergeben.
Hier ist zum Beispiel, wie Sie den Test-MCP-Server @modelcontextprotocol/server-everything (opens in a new tab) hinzufügen können.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}Und um es zu verwenden, kann ich use the mcp_everything tool zu meinen Prompts hinzufügen.
use the mcp_everything tool to add the number 3 and 4Optionen
Hier sind alle Optionen zur Konfiguration eines lokalen MCP-Servers.
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | String | J | Typ der MCP-Server-Verbindung, muss "local" sein. |
command | Array | J | Befehl und Argumente zum Ausführen des MCP-Servers. |
environment | Object | Umgebungsvariablen, die beim Ausführen des Servers gesetzt werden. | |
enabled | Boolean | Aktiviert oder deaktiviert den MCP-Server beim Start. | |
timeout | Number | Timeout in ms für das Abrufen von Tools vom MCP-Server. Standardwert ist 5000 (5 Sekunden). |
Remote
Fügen Sie Remote-MCP-Server hinzu, indem Sie type auf "remote" setzen.
{
"$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 können Sie eine Liste von Headern übergeben.
Optionen
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | String | J | Typ der MCP-Server-Verbindung, muss "remote" sein. |
url | String | J | URL des Remote-MCP-Servers. |
enabled | Boolean | Aktiviert oder deaktiviert den MCP-Server beim Start. | |
headers | Object | Header, die mit der Anfrage gesendet werden. | |
oauth | Object | OAuth-Authentifizierungskonfiguration. Siehe OAuth-Abschnitt unten. | |
timeout | Number | Timeout in ms für das Abrufen von Tools vom MCP-Server. Standardwert ist 5000 (5 Sekunden). |
OAuth
OpenCode behandelt die OAuth-Authentifizierung für Remote-MCP-Server automatisch. Wenn ein Server eine Authentifizierung erfordert, wird OpenCode:
- Die 401-Antwort erkennen und den OAuth-Flow initiieren
- Dynamic Client Registration (RFC 7591) verwenden, falls vom Server unterstützt
- Tokens sicher für zukünftige Anfragen speichern
Automatisch
Für die meisten OAuth-fähigen MCP-Server ist keine spezielle Konfiguration erforderlich. Konfigurieren Sie einfach den Remote-Server:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}Wenn der Server eine Authentifizierung erfordert, fordert OpenCode Sie zur Authentifizierung auf, wenn Sie ihn zum ersten Mal verwenden möchten. Andernfalls können Sie den Flow manuell mit opencode mcp auth <server-name> auslösen.
Vorregistriert
Wenn Sie Client-Anmeldedaten vom MCP-Server-Anbieter haben, können Sie diese konfigurieren:
{
"$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"
}
}
}
}Authentifizieren
Sie können die Authentifizierung manuell auslösen oder Anmeldedaten verwalten.
Authentifizieren Sie sich bei einem bestimmten MCP-Server:
opencode mcp auth my-oauth-serverListen Sie alle MCP-Server und ihren Authentifizierungsstatus auf:
opencode mcp listEntfernen Sie gespeicherte Anmeldedaten:
opencode mcp logout my-oauth-serverDer Befehl mcp auth öffnet Ihren Browser zur Autorisierung. Nachdem Sie autorisiert haben, speichert OpenCode die Tokens sicher in ~/.local/share/opencode/mcp-auth.json.
OAuth deaktivieren
Wenn Sie automatisches OAuth für einen Server deaktivieren möchten (z. B. für Server, die stattdessen API-Schlüssel verwenden), setzen Sie oauth auf 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-Optionen
| Option | Typ | Beschreibung |
|---|---|---|
oauth | Object | false | OAuth-Konfigurationsobjekt oder false, um die automatische OAuth-Erkennung zu deaktivieren. |
clientId | String | OAuth-Client-ID. Falls nicht angegeben, wird die dynamische Client-Registrierung versucht. |
clientSecret | String | OAuth-Client-Secret, falls vom Autorisierungsserver erforderlich. |
scope | String | OAuth-Scopes, die während der Autorisierung angefordert werden. |
Debugging
Wenn die Authentifizierung eines Remote-MCP-Servers fehlschlägt, können Sie Probleme wie folgt diagnostizieren:
# 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-serverDer Befehl mcp debug zeigt den aktuellen Authentifizierungsstatus an, testet die HTTP-Konnektivität und versucht den OAuth-Discovery-Flow.
Verwalten
Ihre MCPs sind als Tools in OpenCode verfügbar, neben den integrierten Tools. Sie können sie also wie jedes andere Tool über die OpenCode-Konfiguration verwalten.
Global
Das bedeutet, dass Sie sie global aktivieren oder deaktivieren können.
{
"$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 können auch ein Glob-Muster verwenden, um alle übereinstimmenden MCPs zu deaktivieren.
{
"$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 große Anzahl von MCP-Servern haben, möchten Sie diese möglicherweise nur pro Agent aktivieren und global deaktivieren. Gehen Sie dazu wie folgt vor:
- Deaktivieren Sie es global als Tool.
- Aktivieren Sie in Ihrer Agentenkonfiguration den MCP-Server als Tool.
{
"$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:
*entspricht null oder mehr beliebigen Zeichen (z. B. entspricht"my-mcp*"den Wertenmy-mcp_search,my-mcp_listusw.)?entspricht genau einem Zeichen- Alle anderen Zeichen entsprechen wörtlich
Hinweis: MCP-Server-Tools werden mit dem Servernamen als Präfix registriert. Um also alle Tools für einen Server zu deaktivieren, verwenden Sie einfach:
"mymcpservername_*": false
Beispiele
Nachfolgend finden Sie Beispiele für einige gängige MCP-Server. Sie können einen PR einreichen, wenn Sie andere Server dokumentieren möchten.
Sentry
Fügen Sie den Sentry-MCP-Server (opens in a new tab) hinzu, um mit Ihren Sentry-Projekten und -Issues zu interagieren.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}Nach dem Hinzufügen der Konfiguration authentifizieren Sie sich bei Sentry:
opencode mcp auth sentryDies öffnet ein Browserfenster, um den OAuth-Flow abzuschließen und OpenCode mit Ihrem Sentry-Konto zu verbinden.
Nach der Authentifizierung können Sie Sentry-Tools in Ihren Prompts verwenden, um Issues, Projekte und Fehlerdaten abzufragen.
Show me the latest unresolved issues in my project. use sentryContext7
Fügen Sie den Context7-MCP-Server (opens in a new tab) hinzu, um Dokumentationen zu durchsuchen.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}Wenn Sie sich für ein kostenloses Konto registriert haben, können Sie Ihren API-Schlüssel verwenden und höhere Rate-Limits erhalten.
{
"$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 die Umgebungsvariable CONTEXT7_API_KEY gesetzt ist.
Fügen 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 context7Alternativ können Sie so etwas zu Ihrer AGENTS.md hinzufügen.
When you need to search docs, use `context7` tools.Grep by Vercel
Fügen Sie den Grep by Vercel (opens in a new tab)-MCP-Server hinzu, um Code-Snippets auf GitHub zu durchsuchen.
{
"$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, können Sie use the gh_grep tool zu Ihren Prompts hinzufügen, damit der Agent ihn verwendet.
What's the right way to set a custom domain in an SST Astro component? use the gh_grep toolAlternativ können Sie so etwas zu Ihrer AGENTS.md hinzufügen.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.