Buckets:
| title: MCPサーバー | |
| description: ローカルおよびリモートの MCP ツールを追加します。 | |
| _Model Context Protocol_ (MCP) を使用して、OpenCode に外部ツールを追加できます。 OpenCode は、ローカルサーバーとリモートサーバーの両方をサポートします。 | |
| MCP ツールを追加すると、組み込みツールとともに LLM で自動的に使用できるようになります。 | |
| #### 注意事項 | |
| MCP サーバーを使用すると、コンテキストが追加されます。多くのツールがある場合、これはすぐに増加する可能性があります。したがって、使用する MCP サーバーには注意することをお勧めします。 | |
| :::tip | |
| MCP サーバーはコンテキストに追加されるため、どのサーバーを有効にするかには注意してください。 | |
| ::: | |
| 特定の MCP サーバー (GitHub MCP サーバーなど) は、大量のトークンを追加する傾向があり、コンテキスト制限を簡単に超える可能性があります。 | |
| ## 有効化 | |
| MCP サーバーは、`mcp` の下の [OpenCode 設定](https://opencode.ai/docs/config/) で定義できます。各 MCP を一意の名前で追加します。 LLM にプロンプトを表示するときに、その MCP を名前で参照できます。 | |
| ```jsonc title="opencode.jsonc" {6} | |
| { | |
| "$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` を使用してローカル設定に追加します。 | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "jira": { | |
| "type": "remote", | |
| "url": "https://jira.example.com/mcp", | |
| "enabled": true | |
| } | |
| } | |
| } | |
| ``` | |
| ローカルの設定値はリモートのデフォルト値をオーバーライドします。詳細については、「[設定の優先順位](/docs/config#precedence-order)」を参照してください。 | |
| ## ローカル | |
| MCP オブジェクト内の `type` から `"local"` を使用してローカル MCP サーバーを追加します。 | |
| ```jsonc title="opencode.jsonc" {15} | |
| { | |
| "$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`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything) MCP サーバーを追加する方法は次のとおりです。 | |
| ```jsonc title="opencode.jsonc" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "mcp_everything": { | |
| "type": "local", | |
| "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], | |
| }, | |
| }, | |
| } | |
| ``` | |
| これを使用するには、プロンプトに `use the mcp_everything tool` を追加します。 | |
| ```txt "mcp_everything" | |
| 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 サーバーを追加します。 | |
| ```json title="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" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| `url` はリモート MCP サーバーの URL で、`headers` オプションを使用するとヘッダーのリストを渡すことができます。 | |
| #### オプション | |
| | オプション | タイプ | 必須 | 説明 | | |
| | ---------- | ------------ | ---- | ------------------------------------------------------------------------------------------ | | |
| | `type` | 文字列 | Y | MCP サーバー接続のタイプは、`"remote"` である必要があります。 | | |
| | `url` | 文字列 | Y | リモート MCP サーバーの URL。 | | |
| | `enabled` | ブール値 | | 起動時に MCP サーバーを有効または無効にします。 | | |
| | `headers` | オブジェクト | | リクエストとともに送信するヘッダー。 | | |
| | `oauth` | オブジェクト | | OAuth 認証設定。以下の「[OAuth](#oauth)」セクションを参照してください。 | | |
| | `timeout` | 数値 | | MCP サーバーからツールを取得する際のタイムアウト (ミリ秒)。デフォルトは 5000 (5 秒) です。 | | |
| ## OAuth | |
| OpenCode は、リモート MCP サーバーの OAuth 認証を自動的に処理します。サーバーが認証を必要とする場合、OpenCode は次のことを行います。 | |
| 1. 401 応答を検出し、OAuth フローを開始します。 | |
| 2. サーバーでサポートされている場合は **動的クライアント登録 (RFC 7591)** を使用します | |
| 3. 今後のリクエストに備えてトークンを安全に保管する | |
| ### 自動 | |
| ほとんどの OAuth 対応 MCP サーバーでは、特別な構成は必要ありません。リモートサーバーを設定するだけです。 | |
| ```json title="opencode.json" | |
| { | |
| "$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](#authenticating) を手動でトリガーできます。 | |
| ### 事前登録済み | |
| MCP サーバープロバイダーからクライアント認証情報を取得している場合は、それらを構成できます。 | |
| ```json title="opencode.json" {7-11} | |
| { | |
| "$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 サーバーで認証します。 | |
| ```bash | |
| opencode mcp auth my-oauth-server | |
| ``` | |
| すべての MCP サーバーとその認証ステータスをリストします。 | |
| ```bash | |
| opencode mcp list | |
| ``` | |
| 保存されている認証情報を削除します。 | |
| ```bash | |
| opencode mcp logout my-oauth-server | |
| ``` | |
| `mcp auth` コマンドは、認証のためにブラウザを開きます。承認後、OpenCode はトークンを `~/.local/share/opencode/mcp-auth.json` に安全に保存します。 | |
| #### OAuthの無効化 | |
| サーバー (代わりに API キーを使用するサーバーなど) の自動 OAuth を無効にする場合は、`oauth` を `false` に設定します。 | |
| ```json title="opencode.json" {7} | |
| { | |
| "$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 サーバーが認証に失敗した場合は、次の方法で問題を診断できます。 | |
| ```bash | |
| # 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 | |
| ``` | |
| `mcp debug` コマンドは、現在の認証ステータスを表示し、HTTP 接続をテストし、OAuth 検出フローを試行します。 | |
| ## 管理 | |
| MCP は、組み込みツールと並んで、OpenCode のツールとして利用できます。したがって、他のツールと同様に、OpenCode 設定を通じてそれらを管理できます。 | |
| ### グローバル | |
| これは、それらをグローバルに有効または無効にできることを意味します。 | |
| ```json title="opencode.json" {14} | |
| { | |
| "$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 を無効にすることもできます。 | |
| ```json title="opencode.json" {14} | |
| { | |
| "$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 サーバーがある場合は、エージェントごとにのみ有効にし、グローバルに無効にすることができます。これを行うには: | |
| 1. ツールとしてグローバルに無効にします。 | |
| 2. [エージェント設定](/docs/agents#tools) で、MCP サーバーをツールとして有効にします。 | |
| ```json title="opencode.json" {11, 14-18} | |
| { | |
| "$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 つの文字に正確に一致します | |
| - 他のすべての文字は文字通り一致します | |
| :::note | |
| MCP サーバーツールはサーバー名をプレフィックスとして登録されているため、サーバーのすべてのツールを無効にするには、次のコマンドを使用するだけです。 | |
| ``` | |
| "mymcpservername_*": false | |
| ``` | |
| ::: | |
| ## 例 | |
| 以下に、一般的な MCP サーバーの例をいくつか示します。他のサーバーを文書化したい場合は、PR を送信できます。 | |
| ### Sentry | |
| [Sentry MCP サーバー](https://mcp.sentry.dev) を追加して、Sentry プロジェクトや問題と対話します。 | |
| ```json title="opencode.json" {4-8} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "sentry": { | |
| "type": "remote", | |
| "url": "https://mcp.sentry.dev/mcp", | |
| "oauth": {} | |
| } | |
| } | |
| } | |
| ``` | |
| 設定を追加した後、Sentry で認証します。 | |
| ```bash | |
| opencode mcp auth sentry | |
| ``` | |
| これにより、ブラウザウィンドウが開き、OAuth フローが完了し、OpenCode が Sentry アカウントに接続されます。 | |
| 認証が完了すると、プロンプトで Sentry ツールを使用して、問題、プロジェクト、エラーデータをクエリできるようになります。 | |
| ```txt "use sentry" | |
| Show me the latest unresolved issues in my project. use sentry | |
| ``` | |
| ### Context7 | |
| ドキュメントを検索するために [Context7 MCP server](https://github.com/upstash/context7) を追加します。 | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "context7": { | |
| "type": "remote", | |
| "url": "https://mcp.context7.com/mcp" | |
| } | |
| } | |
| } | |
| ``` | |
| 無料アカウントにサインアップしている場合は、API キーを使用して、より高いレート制限を取得できます。 | |
| ```json title="opencode.json" {7-9} | |
| { | |
| "$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` を追加します。 | |
| ```txt "use context7" | |
| Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7 | |
| ``` | |
| あるいは、次のようなものを [AGENTS.md](/docs/rules/) に追加します。 | |
| ```md title="AGENTS.md" | |
| When you need to search docs, use `context7` tools. | |
| ``` | |
| ### Grep by Vercel | |
| GitHub 上のコードスニペットを検索するには、[Grep by Vercel](https://grep.app) MCP サーバーを追加します。 | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "gh_grep": { | |
| "type": "remote", | |
| "url": "https://mcp.grep.app" | |
| } | |
| } | |
| } | |
| ``` | |
| MCP サーバーに `gh_grep` という名前を付けたので、プロンプトに `use the gh_grep tool` を追加して、エージェントにそれを使用させることができます。 | |
| ```txt "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](/docs/rules/) に追加します。 | |
| ```md title="AGENTS.md" | |
| If you are unsure how to do something, use `gh_grep` to search code examples from GitHub. | |
| ``` | |
Xet Storage Details
- Size:
- 16.9 kB
- Xet hash:
- 615edd821e720dddd9abfe9875eeb06a7777929b874a99333d0d2029fb0b5102
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.