Deutsch
Dokumentation
MCP Server

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.

opencode.jsonc
{
  "$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:

opencode.json
{
  "$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.

opencode.jsonc
{
  "$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.

opencode.jsonc
{
  "$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 4

Optionen

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

OptionTypErforderlichBeschreibung
typeStringJTyp der MCP-Server-Verbindung, muss "local" sein.
commandArrayJBefehl und Argumente zum Ausführen des MCP-Servers.
environmentObjectUmgebungsvariablen, die beim Ausführen des Servers gesetzt werden.
enabledBooleanAktiviert oder deaktiviert den MCP-Server beim Start.
timeoutNumberTimeout 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.

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 können Sie eine Liste von Headern übergeben.


Optionen

OptionTypErforderlichBeschreibung
typeStringJTyp der MCP-Server-Verbindung, muss "remote" sein.
urlStringJURL des Remote-MCP-Servers.
enabledBooleanAktiviert oder deaktiviert den MCP-Server beim Start.
headersObjectHeader, die mit der Anfrage gesendet werden.
oauthObjectOAuth-Authentifizierungskonfiguration. Siehe OAuth-Abschnitt unten.
timeoutNumberTimeout 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:

  1. Die 401-Antwort erkennen und den OAuth-Flow initiieren
  2. Dynamic Client Registration (RFC 7591) verwenden, falls vom Server unterstützt
  3. 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:

opencode.json
{
  "$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:

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

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

Listen Sie alle MCP-Server und ihren Authentifizierungsstatus auf:

opencode mcp list

Entfernen Sie gespeicherte Anmeldedaten:

opencode mcp logout my-oauth-server

Der 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:

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

OptionTypBeschreibung
oauthObject | falseOAuth-Konfigurationsobjekt oder false, um die automatische OAuth-Erkennung zu deaktivieren.
clientIdStringOAuth-Client-ID. Falls nicht angegeben, wird die dynamische Client-Registrierung versucht.
clientSecretStringOAuth-Client-Secret, falls vom Autorisierungsserver erforderlich.
scopeStringOAuth-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-server

Der 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.

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 können auch ein Glob-Muster verwenden, um alle übereinstimmenden 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 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:

  1. Deaktivieren Sie es global als Tool.
  2. Aktivieren Sie in Ihrer Agentenkonfiguration 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:

  • * entspricht null oder mehr beliebigen Zeichen (z. B. entspricht "my-mcp*" den Werten my-mcp_search, my-mcp_list usw.)
  • ? 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.

opencode.json
{
  "$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 sentry

Dies ö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 sentry

Context7

Fügen Sie den Context7-MCP-Server (opens in a new tab) hinzu, um Dokumentationen zu durchsuchen.

opencode.json
{
  "$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.

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

Alternativ können Sie so etwas zu Ihrer AGENTS.md hinzufügen.

AGENTS.md
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.

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, 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 tool

Alternativ können Sie so etwas zu Ihrer AGENTS.md hinzufügen.

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