MCP-Server
Fügen Sie lokale und Remote-MCP-Tools hinzu.
Sie können externe Tools zu OpenCode hinzufügen, indem Sie das Model Context Protocol (MCP) verwenden. OpenCode unterstützt sowohl lokale als auch Remote-Server.
Nach dem Hinzufügen sind MCP-Tools automatisch zusammen mit den integrierten Tools für das LLM verfügbar.
Hinweise
Wenn Sie einen MCP-Server verwenden, wird er zum Kontext hinzugefügt. Dies kann sich schnell summieren, wenn Sie viele Tools haben. Daher empfehlen wir, vorsichtig zu sein, welche MCP-Server Sie verwenden.
MCP-Server erweitern Ihren Kontext, seien Sie also vorsichtig, welche Sie aktivieren.
Bestimmte MCP-Server, wie der GitHub MCP-Server, neigen dazu, viele Tokens hinzuzufügen und können leicht das Kontextlimit überschreiten.
Aktivieren
Sie können MCP-Server in Ihrer OpenCode-Konfiguration unter mcp definieren. Fügen Sie jedem MCP einen eindeutigen Namen hinzu. Sie können diesen MCP beim Prompten des LLM mit diesem Namen referenzieren.
{
"$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.
Remote-Standardwerte überschreiben
Organisationen können Standard-MCP-Server über ihren .well-known/opencode-Endpunkt bereitstellen. Diese Server können standardmäßig deaktiviert sein, sodass Benutzer die benötigten aktivieren 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 Konfigurationspriorität.
Lokal
Fügen Sie lokale MCP-Server hinzu, indem Sie type auf "local" innerhalb des MCP-Objekts setzen.
{
"$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 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"],
},
},
}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 | Ja | Typ der MCP-Server-Verbindung, muss "local" sein. |
command | Array | Ja | Befehl und Argumente zum Ausführen des MCP-Servers. |
environment | Object | Umgebungsvariablen, die beim Ausführen des Servers gesetzt werden. | |
enabled | Boolean | MCP-Server beim Start aktivieren oder deaktivieren. | |
timeout | Number | Timeout in ms für das Abrufen von Tools vom MCP-Server. Standard 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 headers-Option können Sie eine Liste von Headern übergeben.
Optionen
| Option | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | String | Ja | Typ der MCP-Server-Verbindung, muss "remote" sein. |
url | String | Ja | URL des Remote-MCP-Servers. |
enabled | Boolean | MCP-Server beim Start aktivieren oder deaktivieren. | |
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. Standard ist 5000 (5 Sekunden). |
OAuth
OpenCode behandelt automatisch die OAuth-Authentifizierung für Remote-MCP-Server. Wenn ein Server Authentifizierung erfordert, wird OpenCode:
- Die 401-Antwort erkennen und den OAuth-Flow initiieren
- Dynamic Client Registration (RFC 7591) verwenden, wenn 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 Authentifizierung erfordert, wird OpenCode Sie auffordern, sich zu authentifizieren, wenn Sie ihn zum ersten Mal verwenden. Andernfalls können Sie den Flow manuell auslösen mit opencode mcp auth <server-name>.
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"
}
}
}
}Authentifizierung
Sie können die Authentifizierung manuell auslösen oder Anmeldedaten verwalten.
Mit einem bestimmten MCP-Server authentifizieren:
opencode mcp auth my-oauth-serverAlle MCP-Server und ihren Authentifizierungsstatus auflisten:
opencode mcp listGespeicherte Anmeldedaten entfernen:
opencode mcp logout my-oauth-serverDer mcp auth-Befehl öffnet Ihren Browser zur Autorisierung. Nach der Autorisierung 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 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 zum Deaktivieren der OAuth-Autoerkennung. |
clientId | String | OAuth-Client-ID. Wenn nicht angegeben, wird dynamische Client-Registrierung versucht. |
clientSecret | String | OAuth-Client-Secret, falls vom Autorisierungsserver benötigt. |
scope | String | OAuth-Scopes, die während der Autorisierung angefordert werden. |
Debugging
Wenn ein Remote-MCP-Server bei der Authentifizierung fehlschlägt, können Sie Probleme diagnostizieren mit:
# Authentifizierungsstatus für alle OAuth-fähigen Server anzeigen
opencode mcp auth list
# Verbindung und OAuth-Flow für einen bestimmten Server debuggen
opencode mcp debug my-oauth-serverDer mcp debug-Befehl zeigt den aktuellen Authentifizierungsstatus, 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 passenden 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 sie vielleicht nur pro Agent aktivieren und global deaktivieren. Dazu:
- Deaktivieren Sie es global als Tool.
- Aktivieren Sie in Ihrer Agent-Konfiguration 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:
*passt auf null oder mehr beliebige Zeichen (z.B."my-mcp*"passt aufmy-mcp_search,my-mcp_list, etc.)?passt auf genau ein Zeichen- Alle anderen Zeichen werden wörtlich gematcht
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_*": falseBeispiele
Unten sind 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 durch Dokumentationen zu suchen.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}Wenn Sie sich für ein kostenloses Konto angemeldet 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 Sie die Umgebungsvariable CONTEXT7_API_KEY gesetzt haben.
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 etwas wie dies 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 durch Code-Snippets auf GitHub zu suchen.
{
"$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, um den Agenten dazu zu bringen, ihn zu verwenden.
What's the right way to set a custom domain in an SST Astro component? use the gh_grep toolAlternativ können Sie etwas wie dies zu Ihrer AGENTS.md hinzufügen.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.