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 oder MCP verwenden. OpenCode unterstützt sowohl lokale als auch Remote-Server.
Nach dem Hinzufügen stehen MCP-Tools automatisch neben den integrierten Tools für LLM zur Verfügung.
Caveats
Wenn Sie einen MCP-Server verwenden, wird dieser zum Kontext hinzugefügt. Wenn Sie viele Werkzeuge haben, können Sie das schnell zusammenfassen. Wir empfehlen daher, vorsichtig zu sein, welchen MCP-Server Sie verwenden.
Bestimmte MCP-Server, wie der GitHub-Server MCP, neigen dazu, viele Token hinzuzufügen und können leicht das Kontextlimit überschreiten.
Enable
Sie können den MCP-Server in Ihrem OpenCode Config unter mcp definieren. Fügen Sie jedem MCP einen eindeutigen Namen hinzu. Sie können bei der Eingabe von LLM namentlich auf diesen MCP verweisen.
{ "$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 über ihren .well-known/opencode-Endpunkt Standard-MCP-Server bereitstellen. Diese Server sind möglicherweise standardmäßig deaktiviert, sodass Benutzer sich für den Server entscheiden können, die sie benötigen.
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 Einzelheiten finden Sie unter config precedence.
Local
Fügen Sie lokale MCP-Server mit type bis "local" innerhalb des MCP-Objekts hinzu.
{ "$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", }, }, },}Mit dem Befehl wird der lokale MCP-Server gestartet. Sie können auch eine Liste von Umgebungsvariablen übergeben.
So können Sie beispielsweise den Testserver @modelcontextprotocol/server-everything MCP hinzufügen.
{ "$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 Eingabeaufforderungen hinzufügen.
use the mcp_everything tool to add the number 3 and 4Options
Hier finden Sie alle Optionen zum Konfigurieren eines lokalen MCP-Servers.
| Option | Geben Sie | ein Erforderlich | Beschreibung |
|---|---|---|---|
type | Zeichenfolge | Y | Typ der MCP-Serververbindung, muss "local" sein. |
command | Array | Y | Befehl und Argumente zum Ausführen des MCP-Servers. |
environment | Objekt | Umgebungsvariablen, die beim Ausführen des Servers festgelegt werden sollen. | |
enabled | Boolescher Wert | Aktivieren oder deaktivieren Sie den MCP-Server beim Start. | |
timeout | Nummer | Timeout in ms für das Abrufen von Tools vom MCP-Server. Standardmäßig ist 5000 (5 Sekunden). |
Remote
Fügen Sie den 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" } } }}Der url ist der URL des Remote-Servers MCP und mit der Option headers können Sie eine Liste von Headern übergeben.
Options
| Option | Geben Sie | ein Erforderlich | Beschreibung |
|---|---|---|---|
type | Zeichenfolge | Y | Typ der MCP-Serververbindung, muss "remote" sein. |
url | Zeichenfolge | Y | URL des Remote-Servers MCP. |
enabled | Boolescher Wert | Aktivieren oder deaktivieren Sie den MCP-Server beim Start. | |
headers | Objekt | Header, die mit der Anfrage gesendet werden sollen. | |
oauth | Objekt | OAuth-Authentifizierungskonfiguration. Siehe Abschnitt OAuth unten. | |
timeout | Nummer | Timeout in ms für das Abrufen von Tools vom MCP-Server. Standardmäßig ist 5000 (5 Sekunden). |
OAuth
OpenCode übernimmt automatisch die OAuth-Authentifizierung für Remote-MCP-Server. Wenn ein Server eine Authentifizierung erfordert, wird OpenCode Folgendes tun:
- Erkennen Sie die 401-Antwort und initiieren Sie den OAuth-Fluss
- Verwenden Sie Dynamische Client-Registrierung (RFC 7591), sofern vom Server unterstützt
- Bewahren Sie Token sicher für zukünftige Anfragen auf
Automatic
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, werden Sie von OpenCode beim ersten Versuch, ihn zu verwenden, zur Authentifizierung autorisiert. Wenn nicht, können Sie manually trigger the flow mit opencode mcp auth <server-name> verwenden.
Pre-registered
Wenn Sie über Client-Anmeldeinformationen vom Serveranbieter MCP verfügen, 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" } } }}Authenticating
Sie können die Authentifizierung manuell auslösen oder Anmeldeinformationen verwalten.
Authentifizieren Sie sich bei einem bestimmten MCP-Server:
opencode mcp auth my-oauth-serverHören Sie alle MCP-Server und ihren Authentifizierungsstatus auf:
opencode mcp listGespeicherte Zugangsdaten entfernen:
opencode mcp logout my-oauth-serverDer Befehl mcp auth öffnet Ihren Browser zur Autorisierung. Nach der Autorisierung speichert OpenCode die Token sicher in ~/.local/share/opencode/mcp-auth.json.
OAuth deaktivieren
Wenn Sie automatisches OAuth für einen Server deaktivieren möchten (e.g., 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 | Geben Sie | ein Beschreibung |
|---|---|---|
oauth | Object | false | OAuth-Konfigurationsobjekt oder false, um die automatische OAuth-Erkennung zu deaktivieren. |
clientId | Zeichenfolge | OAuth-Client ID. Wenn nicht angegeben, wird eine dynamische Client-Registrierung versucht. |
clientSecret | Zeichenfolge | OAuth-Client-Geheimnis, falls vom Autorisierungsserver erforderlich. |
scope | Zeichenfolge | OAuth-Bereiche, die während der Autorisierung angefordert werden sollen. |
Debugging
Wenn die Authentifizierung eines Remote-Servers MCP fehlschlägt, können Sie Probleme diagnostizieren mit:
# View auth status for all OAuth-capable serversopencode mcp auth list
# Debug connection and OAuth flow for a specific serveropencode mcp debug my-oauth-serverDer Befehl mcp debug zeigt den aktuellen Authentifizierungsstatus an, testet die HTTP-Konnektivität und versucht den OAuth-Erkennungsfluss.
Manage
Ihre MCPs sind neben integrierten Tools auch als Tools in OpenCode verfügbar. 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 über eine große Anzahl von MCP-Servern verfügen, 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 Ihrem agent config 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 Zeichen (e.g.,"my-mcp*"entsprichtmy-mcp_search,my-mcp_listusw.)?matches exactly one character- Alle anderen Zeichen stimmen wörtlich überein
Examples
Nachfolgend finden Sie Beispiele einiger gängiger MCP-Server. Sie können ein PR einreichen, wenn Sie einen anderen Server dokumentieren möchten.
Sentry
Fügen Sie Sentry MCP server hinzu, um mit Ihren Sentry-Projekten und -Problemen zu interagieren.
{ "$schema": "https://opencode.ai/config.json", "mcp": { "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp", "oauth": {} } }}Authentifizieren Sie sich nach dem Hinzufügen der Konfiguration mit Sentry:
opencode mcp auth sentryDadurch wird ein Browserfenster geöffnet, um den OAuth-Ablauf abzuschließen und OpenCode mit Ihrem Sentry-Konto zu verbinden.
Nach der Authentifizierung können Sie Sentry-Tools in Ihren Eingabeaufforderungen verwenden, um Probleme, Projekte und Fehlerdaten abzufragen.
Show me the latest unresolved issues in my project. use sentryContext7
Fügen Sie Context7 MCP server hinzu, um Dokumente 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 angemeldet haben, können Sie Ihren API-Schlüssel verwenden und höhere Ratenlimits 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 festgelegt haben.
Fügen Sie use context7 zu Ihren Eingabeaufforderungen 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 Ihrem AGENTS.md hinzufügen.
When you need to search docs, use `context7` tools.Grep von Vercel
Fügen Sie den Server Grep by Vercel MCP hinzu, um Codefragmente 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 Eingabeaufforderungen 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 so etwas zu Ihrem AGENTS.md hinzufügen.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.