mcpField
O
opencode subagents

opencode subagents

ローカル
github.comAI・エージェント05 週間前に更新

opencode subagents について

opencode-subagent-mcp は Claude Code 向けの stdio MCP サーバーで、メインセッションは Anthropic に接続したまま、opencode モデルで動くサブエージェントに作業を委任できます。バックグラウンド実行、セッション再開、worktree 分離、権限確認に対応します。

主な機能

  1. 01サブエージェントの実行と管理
  2. 02send_message による作業再開
  3. 03バックグラウンド実行と完了待ち
  4. 04Git worktree による分離
  5. 05権限ルールと確認の反映

活用シーン

  1. 01検索作業を opencode モデルに委任
  2. 02分離した worktree でリファクタリング
  3. 03完了済み・中断済みセッションの継続
  4. 04バックグラウンド作業の結果収集

MCP 対応

stdio MCP サーバーとして agent、send_message、wait、stop、list ツールを提供し、ローカルで起動する opencode serve を介して Claude Code からサブエージェントを管理できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sebstaq-opencode-subagent": {
"command": "npx",
"args": [
"-y",
"opencode-subagent-mcp"
]
}
}
}
起動コマンドnpx -y opencode-subagent-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmopencode-subagent-mcp0.1.3

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
cwdstringいいえ作業ディレクトリ(デフォルト:プロジェクトディレクトリ)
modelstringいいえopencode モデル。形式は provider/model(デフォルト:opencode-go/deepseek-v4.1-flash)
toolsarrayいいえ使用を許可するツールのリスト(Claude または opencode の名前)
effortstringいいえモデルのバリアント/推論強度(例:low、high、max)
promptstringはいエージェントが実行するタスク
isolationenumいいえworktree
max_turnsintegerいいえ
descriptionstringはいタスクの簡潔な説明(3~5 語)
output_schemaobjectいいえ最終回答が満たす必要のある JSON Schema。構造化出力として返されます
subagent_typestringいいえClaude Agent 定義名または opencode Agent 名(デフォルト:general)
permission_modeenumいいえ権限モード(デフォルト:auto)default | acceptEdits | auto | bypassPermissions | plan
disallowed_toolsarrayいいえ
run_in_backgroundbooleanいいえ

詳細

opencode-subagent-mcp

Claude Code のサブエージェントを、より低コストの opencode モデル(たとえば、opencode Go サブスクリプションで利用できる opencode-go/deepseek-v4.1-flash(DeepSeek))で実行できます。その間、Claude Code 自体は引き続き Anthropic に直接接続します。Opus や Sonnet の何分の一かのコストで利用できるモデルに、検索、リファクタリング、バグ修正、テスト、調査を委任しながら、バックグラウンドエージェント、send_message による再開、ワークツリー分離、.claude/agents の定義、権限プロンプト、構造化出力など、すでに使っているツールをそのまま利用できます。

これは stdio MCP サーバーです。メインの Claude Code セッションはどこかにプロキシされたり、ルーティングされたりすることはありません。このサーバーは、委任されたサブエージェントのみを、自身で起動した専用の opencode serve インスタンス上で実行します。

インストール

Node 22 以降、git、および利用したいプロバイダーにログイン済みの opencode CLI(opencode auth login)が必要です。

Claude Code プラグインとしてインストールする場合(opencode に委任するタイミングを Claude に伝えるスキルも追加されます):

claude plugin marketplace add sebstaq/opencode-subagent-mcp
claude plugin install opencode-subagent-mcp@sebstaq-opencode

または、通常の MCP サーバーとしてインストールする場合:

claude mcp add -s user opencode -- npx -y [email protected]

実行内容と送信内容

  • ランダムな localhost ポートとランダムなパスワードを使って、専用の opencode serve プロセスを起動し、Claude Code の終了時に停止します。パスワードは実行ごとに生成され、このサーバーとローカルプロセスの間でのみ使用されます。プロセスは環境を引き継ぐため、opencode は設定済みのプロバイダーログイン情報と API キーを使用できます。このサーバーがそれらの認証情報を読み取ったり、保存したり、送信したりすることはありません。
  • 委任したプロンプト、およびサブエージェントが読み取るファイルやコマンドの出力は、opencode を介して選択したモデルプロバイダー(デフォルトでは opencode Go)に送信され、そのプロバイダーのデータ保持条件に従って扱われます。opencode はセッション履歴をマシン上のローカルデータベースに保存します。それ以外の情報はどこにも送信されません。このサーバーにテレメトリーはなく、ほかのネットワーク呼び出しも行いません。
  • ~/.claude/settings.json、プロジェクトの .claude/settings.json と .claude/settings.local.json、および .claude/agents/*.md(ユーザーとプロジェクト)を読み取り、権限ルールとエージェント定義を反映します。また、存在する場合は ~/.config/opencode-subagent-mcp/config.json も読み取ります。
  • isolation: "worktree" を指定すると、プロジェクトの .claude/worktrees/ 配下に git ワークツリーを作成し、変更がないものを削除します。

これは独立したプロジェクトであり、Anthropic または opencode チームとは提携していません。

ツール

ツールネイティブの相当機能機能
agentAgent ツールサブエージェントを実行し、最終レポート、使用状況、ワークツリーの結果を返します
send_messageSendMessage完了したエージェントを全履歴付きで継続します。再起動後にも使用できます
waitバックグラウンド完了通知run_in_background エージェントの結果を取得します(タイムアウトの指定も可能です)
stopTaskStop実行中のエージェントを中止し、生成した内容を返します
list/agentsこのセッションのエージェント、Claude エージェント定義、opencode エージェントを表示します

agent_id は MCP サーバーまたは Claude Code の再起動後も有効です。wait と stop でその後の状況を確認でき、send_message でエージェントを継続できます。再起動前のエージェントは、ID が再度使われるまで list に表示されませんが、opencode のローカルセッションストアには残っています。

agent のパラメーター:description、prompt、subagent_type、model、isolation: "worktree"、permission_mode、tools、disallowed_tools、max_turns、effort、output_schema、run_in_background、cwd。

ネイティブのサブエージェントとの同等性

ネイティブの動作こちら
新しいコンテキストを使用し、最後のメッセージのみ返されます同じです。長い出力は切り詰められ(maxResultChars)、全文はファイルに書き込まれます
プロジェクトディレクトリで実行されます同じです(MCP roots の cwd、次に CLAUDE_PROJECT_DIR、最後にサーバーの cwd を使用します)
isolation: worktree同じ構成です(.claude/worktrees/<name>、ブランチ worktree-<name>、デフォルトブランチをベースとします)。変更がなければ削除され、それ以外の場合はコミット/ファイルの概要とともに保持されます。外部のパスへのアクセスは拒否されます
権限の確認プロンプトがメインセッションに表示されますopencode の ask ルールが MCP の確認ダイアログとして表示されます(1 回許可/常に許可/拒否、フィードバックは任意)
権限モードdefault、acceptEdits、auto、bypassPermissions、plan は opencode のルールにマッピングされます。ユーザー、プロジェクト、ローカル設定の Claude permissions.allow/ask/deny が適用されます
完了通知付きのバックグラウンドエージェントClaude Code は長時間の MCP 呼び出しを自動的にバックグラウンドに移し、完了時に通知します。明示的に制御するには run_in_background と wait を使用します
完全な履歴を使用して再開send_message(opencode はエージェントを保持するため、以前のセッションのエージェントや再起動後のエージェントでも使用できます)
.claude/agents/*.md の定義subagent_type を介して使用します。対象は prompt、tools、disallowedTools、permissionMode、maxTurns、effort、isolation です。model が適用されるのは opencode の provider/model の場合のみです
maxTurns は部分的な出力を返します同じです。ステータスは max_turns で、再開できます
UI での進捗ツール呼び出しは MCP の進捗通知として送信されます
サブエージェントはサブエージェントを起動したり、ユーザーに質問したりできませんopencode の task ツールと question ツールは無効になっています
構造化出力output_schema(JSON Schema)→ opencode の構造化出力。structuredContent として返されます
既知の不足点:エージェントは Claude Code の /tasks エージェントビューに表示されません。親のコンテキストを引き継いだフォークには対応していません。Workflow ツールの agent() ではエージェントを指定できません。auto モードには安全性分類器がなく、設定したルールと、確認を求める破壊的コマンドの固定リスト(rm -r/-rf、git push --force、git reset --hard、git clean -f、git restore/git checkout --、`curlsh、sudo、chmod -R/chown -R、dd、mkfs、npm/pnpm publish)を除き、プロジェクト外のパスも含めてすべて許可します。opencode はコマンドチェーン内の各コマンドを個別に照合します。親の権限モードは MCP サーバーから確認できないため、デフォルト値は設定から取得します。フック、スキルの事前読み込み、memory`、エージェントごとの MCP サーバーはマッピングされません。

Claude の操作を誘導する

Claude Code はネイティブの Agent ツールとこのツールのどちらを使うかを自動的に選択するため、振り分けは予測できません。検証が容易な委任作業では opencode をデフォルトにするには、docs/claude-md-snippet.md のスニペットをグローバルな ~/.claude/CLAUDE.md に貼り付けてください。

設定

任意の ~/.config/opencode-subagent-mcp/config.json(または $OPENCODE_SUBAGENT_CONFIG):

{
  "defaultModel": "opencode-go/deepseek-v4.1-flash",
  "defaultPermissionMode": "auto",
  "pure": true,
  "opencodeBin": "opencode",
  "maxConcurrent": 8,
  "maxResultChars": 80000
}

OPENCODE_SUBAGENT_MODEL と OPENCODE_SUBAGENT_MODE は、最初の 2 つの設定を上書きします。pure を指定すると、外部プラグインなしで opencode が起動します。

仕組み

初回使用時に、サーバーはランダムなループバックポートとランダムなパスワードで opencode serve を起動し、イベントストリームを購読して、エージェントごとに opencode セッションを 1 つ操作します(エージェント ID = セッション ID)。opencode からの権限要求には、MCP エリシテーションを通じて応答します。opencode プロセスは MCP サーバーとともに停止し、クラッシュしたサーバーの残存プロセスは次回の起動時に回収されます。

開発

pnpm check   # typecheck, lint, format check, unit tests
pnpm smoke [provider/model]   # end-to-end run against a real model in a temp repo

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。