MCPサーバー
Model Context Protocol (MCP) を使用して、OpenCode に外部ツールを追加できます。 OpenCode は、ローカルサーバーとリモートサーバーの両方をサポートします。
MCP ツールを追加すると、組み込みツールとともに LLM で自動的に使用できるようになります。
注意事項
MCP サーバーを使用すると、コンテキストが追加されます。多くのツールがある場合、これはすぐに増加する可能性があります。したがって、使用する MCP サーバーには注意することをお勧めします。
特定の MCP サーバー (GitHub MCP サーバーなど) は、大量のトークンを追加する傾向があり、コンテキスト制限を簡単に超える可能性があります。
MCP サーバーは、mcp の下の OpenCode 設定 で定義できます。各 MCP を一意の名前で追加します。 LLM にプロンプトを表示するときに、その MCP を名前で参照できます。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"name-of-mcp-server": {
// ...
"enabled": true,
},
"name-of-other-mcp-server": {
// ...
},
},
}enabled を false に設定してサーバーを無効にすることもできます。これは、サーバーを設定から削除せずに一時的に無効にする場合に便利です。
組織は、.well-known/opencode エンドポイント経由でデフォルトの MCP サーバーを提供できます。これらのサーバーはデフォルトで無効になっている場合があり、ユーザーは必要なサーバーにオプトインできます。
組織のリモート設定から特定のサーバーを有効にするには、enabled: true を使用してローカル設定に追加します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}ローカルの設定値はリモートのデフォルト値をオーバーライドします。詳細については、「設定の優先順位」を参照してください。
MCP オブジェクト内の type から "local" を使用してローカル MCP サーバーを追加します。
{
"$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",
},
},
},
}このコマンドは、ローカル MCP サーバーの起動方法を示します。環境変数のリストを渡すこともできます。
たとえば、テスト @modelcontextprotocol/server-everything MCP サーバーを追加する方法は次のとおりです。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}これを使用するには、プロンプトに use the mcp_everything tool を追加します。
use the mcp_everything tool to add the number 3 and 4オプション
ここでは、ローカル MCP サーバーを構成するためのすべてのオプションを示します。
| オプション | タイプ | 必須 | 説明 |
|---|---|---|---|
type | 文字列 | Y | MCP サーバー接続のタイプは、"local" である必要があります。 |
command | 配列 | Y | MCP サーバーを実行するためのコマンドと引数。 |
environment | オブジェクト | サーバーの実行時に設定する環境変数。 | |
enabled | ブール値 | 起動時に MCP サーバーを有効または無効にします。 | |
timeout | 数値 | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 |
type を "remote" に設定して、リモート MCP サーバーを追加します。
{
"$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"
}
}
}
}url はリモート MCP サーバーの URL で、headers オプションを使用するとヘッダーのリストを渡すことができます。
オプション
| オプション | タイプ | 必須 | 説明 |
|---|---|---|---|
type | 文字列 | Y | MCP サーバー接続のタイプは、"remote" である必要があります。 |
url | 文字列 | Y | リモート MCP サーバーの URL。 |
enabled | ブール値 | 起動時に MCP サーバーを有効または無効にします。 | |
headers | オブジェクト | リクエストとともに送信するヘッダー。 | |
oauth | オブジェクト | OAuth 認証設定。以下の「OAuth」セクションを参照してください。 | |
timeout | 数値 | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 |
OpenCode は、リモート MCP サーバーの OAuth 認証を自動的に処理します。サーバーが認証を必要とする場合、OpenCode は次のことを行います。
- 401 応答を検出し、OAuth フローを開始します。
- サーバーでサポートされている場合は 動的クライアント登録 (RFC 7591) を使用します
- 今後のリクエストに備えてトークンを安全に保管する
ほとんどの OAuth 対応 MCP サーバーでは、特別な構成は必要ありません。リモートサーバーを設定するだけです。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}サーバーが認証を必要とする場合、OpenCode を初めて使用しようとすると、認証を求めるプロンプトが表示されます。そうでない場合は、opencode mcp auth <server-name> を使用して flow を手動でトリガーできます。
MCP サーバープロバイダーからクライアント認証情報を取得している場合は、それらを構成できます。
{
"$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"
}
}
}
}手動で認証をトリガーしたり、資格情報を管理したりできます。
特定の MCP サーバーで認証します。
opencode mcp auth my-oauth-serverすべての MCP サーバーとその認証ステータスをリストします。
opencode mcp list保存されている認証情報を削除します。
opencode mcp logout my-oauth-servermcp auth コマンドは、認証のためにブラウザを開きます。承認後、OpenCode はトークンを ~/.local/share/opencode/mcp-auth.json に安全に保存します。
OAuthの無効化
サーバー (代わりに API キーを使用するサーバーなど) の自動 OAuth を無効にする場合は、oauth を 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 オプション
| オプション | タイプ | 説明 |
|---|---|---|
oauth | Object | false | OAuth config object, or false to disable OAuth auto-detection. |
clientId | String | OAuth client ID. If not provided, dynamic client registration will be attempted. |
clientSecret | String | OAuth client secret, if required by the authorization server. |
scope | String | OAuth scopes to request during authorization. |
デバッグ
リモート MCP サーバーが認証に失敗した場合は、次の方法で問題を診断できます。
# 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-servermcp debug コマンドは、現在の認証ステータスを表示し、HTTP 接続をテストし、OAuth 検出フローを試行します。
MCP は、組み込みツールと並んで、OpenCode のツールとして利用できます。したがって、他のツールと同様に、OpenCode 設定を通じてそれらを管理できます。
これは、それらをグローバルに有効または無効にできることを意味します。
{
"$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
}
}グロブパターンを使用して、一致するすべての MCP を無効にすることもできます。
{
"$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
}
}ここでは、グロブパターン my-mcp* を使用して、すべての MCP を無効にしています。
多数の MCP サーバーがある場合は、エージェントごとにのみ有効にし、グローバルに無効にすることができます。これを行うには:
- ツールとしてグローバルに無効にします。
- エージェント設定 で、MCP サーバーをツールとして有効にします。
{
"$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
}
}
}
}グロブパターン
グロブパターンでは、単純な正規表現のグロブパターンを使用します。
*は 0 個以上の任意の文字に一致します (例:"my-mcp*"はmy-mcp_search、my-mcp_listなどに一致します)。?は 1 つの文字に正確に一致します- 他のすべての文字は文字通り一致します
以下に、一般的な MCP サーバーの例をいくつか示します。他のサーバーを文書化したい場合は、PR を送信できます。
Sentry MCP サーバー を追加して、Sentry プロジェクトや問題と対話します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}設定を追加した後、Sentry で認証します。
opencode mcp auth sentryこれにより、ブラウザウィンドウが開き、OAuth フローが完了し、OpenCode が Sentry アカウントに接続されます。
認証が完了すると、プロンプトで Sentry ツールを使用して、問題、プロジェクト、エラーデータをクエリできるようになります。
Show me the latest unresolved issues in my project. use sentryドキュメントを検索するために Context7 MCP server を追加します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}無料アカウントにサインアップしている場合は、API キーを使用して、より高いレート制限を取得できます。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}ここでは、CONTEXT7_API_KEY 環境変数が設定されていることを前提としています。
Context7 MCP サーバーを使用するには、プロンプトに use context7 を追加します。
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7あるいは、次のようなものを AGENTS.md に追加します。
When you need to search docs, use `context7` tools.GitHub 上のコードスニペットを検索するには、Grep by Vercel MCP サーバーを追加します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}MCP サーバーに gh_grep という名前を付けたので、プロンプトに use the gh_grep tool を追加して、エージェントにそれを使用させることができます。
What's the right way to set a custom domain in an SST Astro component? use the gh_grep toolあるいは、次のようなものを AGENTS.md に追加します。
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.