# OpenCodeの機能と実践的な使い方
🔌 エージェントに「外の世界」へ手を伸ばさせたい。Sentryのエラーやライブラリのドキュメントをそのままツールとして使えるのが、OpenCodeのMCPサーバー連携です。
🏷️ タイトル: 外部ツール接続(ローカル/リモート)
🔗 URL:
📘 概要
MCP(Model Context Protocol)サーバーを設定すると、外部サービスのツールがOpenCodeの組み込みツールと並んでエージェントから自動的に使えるようになります。ローカル(プロセス起動)とリモート(HTTPエンドポイント)の両方に対応します。
⚙️ 機能の説明
設定は `opencode.json` の `mcp` ブロックに、サーバーごとの識別子で記述します。
・ローカル: `type: "local"` とし、`command` に起動コマンドの配列、必要なら `environment` で環境変数を渡します。`timeout`(既定5000ms)も指定可能です。
・リモート: `type: "remote"` とし、`url` を指定。認証は `headers` でBearerトークンを渡すか、OAuthを利用します(401を検知して自動フローも可能)。
各サーバーは `enabled` で個別にオン/オフできます。MCPツールはサーバー名を接頭辞として現れ、`tools` のワイルドカード(`*` や `?`)で全体・エージェント単位に有効/無効を切り替えられます。
🛠️ 実践的な使い方
リモートのSentry連携は、`opencode.json` の `mcp` 配下に `sentry` を作り、`type: "remote"`・`url: ""`・`headers` のBearer認証・`enabled: true` を書くだけです。
ローカルなら `"command": ["npx", "-y", "@/modelcontextprotocol/server-everything"]` のように起動します。ドキュメント検索の Context7(` Grep(` mcp auth <名前>` や `opencode mcp list` で認証・状態確認も可能です。
💡 ユースケース
Sentryで本番エラーをエージェントに調査させ、Context7で最新ライブラリの正しい使い方を引き、Grepで他リポジトリの実装例を探す、といった「調査から実装まで」を1つのセッションで完結できます。普段は `enabled: false` にしておき、必要な作業のときだけ有効化する運用が安全です。
⚠️ 注意点
MCPサーバーはコンテキストを消費します。多くのツールを公開するサーバー(GitHub系など)を有効にすると、トークンが急増しコンテキスト上限を圧迫しがちです。使うサーバーは絞り、APIキー運用なら `oauth: false` で自動OAuthを抑止しましょう。リモートは `timeout` 超過で起動失敗する点にも注意してください。
#
OpenCode# #
MCP#