MCP サーバー
ローカルおよびリモートの MCP ツールを追加します。
Model Context Protocol(MCP)を使用して、OpenCode に外部ツールを追加できます。OpenCode はローカルサーバーとリモートサーバーの両方をサポートしています。
追加されると、MCP ツールは組み込みツールと一緒に LLM で自動的に利用可能になります。
注意事項
MCP サーバーを使用すると、コンテキストに追加されます。多くのツールがある場合、これはすぐに蓄積されます。そのため、どの MCP サーバーを使用するか慎重に選択することをお勧めします。
MCP サーバーはコンテキストに追加されるため、有効にするものを慎重に選択してください。
GitHub MCP サーバーなど、特定の MCP サーバーは多くのトークンを追加する傾向があり、コンテキスト制限を簡単に超える可能性があります。
有効化
OpenCode 設定の mcp で MCP サーバーを定義できます。各 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",
// または ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value",
},
},
},
}command はローカル MCP サーバーを起動するコマンドです。環境変数のリストも渡すことができます。
例えば、テスト用の @modelcontextprotocol/server-everything (opens in a new tab) 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 | String | はい | MCP サーバー接続タイプ、"local" である必要があります。 |
command | Array | はい | MCP サーバーを実行するコマンドと引数。 |
environment | Object | サーバー実行時に設定する環境変数。 | |
enabled | Boolean | 起動時に MCP サーバーを有効または無効にします。 | |
timeout | Number | 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 | String | はい | MCP サーバー接続タイプ、"remote" である必要があります。 |
url | String | はい | リモート MCP サーバーの URL。 |
enabled | Boolean | 起動時に MCP サーバーを有効または無効にします。 | |
headers | Object | リクエストと一緒に送信するヘッダー。 | |
oauth | Object | OAuth 認証設定。下記の OAuth セクションを参照。 | |
timeout | Number | MCP サーバーからツールを取得するタイムアウト(ミリ秒)。デフォルトは 5000(5 秒)。 |
OAuth
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> で手動でフローをトリガーできます。
事前登録
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 の無効化
サーバーの自動 OAuth を無効にしたい場合(例:API キーを使用するサーバーの場合)、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 設定オブジェクト、または OAuth 自動検出を無効にする false。 |
clientId | String | OAuth クライアント ID。提供されない場合、動的クライアント登録が試行されます。 |
clientSecret | String | 認可サーバーが必要とする場合の OAuth クライアントシークレット。 |
scope | String | 認可時にリクエストする OAuth スコープ。 |
デバッグ
リモート MCP サーバーの認証に失敗した場合、以下のコマンドで問題を診断できます:
# すべての OAuth 対応サーバーの認証ステータスを表示
opencode mcp auth list
# 特定のサーバーの接続と OAuth フローをデバッグ
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
}
}glob パターンを使用して、一致するすべての 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
}
}ここでは glob パターン 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
}
}
}
}Glob パターン
glob パターンはシンプルな正規表現グロビングパターンを使用します:
*は 0 個以上の任意の文字にマッチ(例:"my-mcp*"はmy-mcp_search、my-mcp_listなどにマッチ)?は正確に 1 文字にマッチ- その他のすべての文字はリテラルにマッチ
MCP サーバーツールはサーバー名をプレフィックスとして登録されるため、サーバーのすべてのツールを無効にするには単に以下を使用します:
"mymcpservername_*": false例
以下は一般的な MCP サーバーの例です。他のサーバーを文書化したい場合は PR を提出できます。
Sentry
Sentry MCP サーバー (opens in a new tab)を追加して、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 sentryContext7
Context7 MCP サーバー (opens in a new tab)を追加してドキュメントを検索します。
{
"$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 環境変数が設定されていることを前提としています。
プロンプトに use context7 を追加して Context7 MCP サーバーを使用します。
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.Grep by Vercel
Grep by Vercel (opens in a new tab) MCP サーバーを追加して GitHub のコードスニペットを検索します。
{
"$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.