Serena MCPツールを使用したカスタムPlanサブエージェント
はじめに
Claude Code v2.0.28のアップデートによりPlan機能がサブエージェント化されました。Plan生成時のコンテキストが切り出され、メインコンテキストの削減に繋がるのが主な利点ですが、この影響でPlanモード実行時に利用されるツールがビルトインツールのみに制限され、MCPサーバーから提供されるツール(Serenaツールを含む)が使用できなくなりました。
Serenaユーザーから「ツールが使われなくなった」という報告を受けた著者はこの問題を特定し、Planエージェントを上書きすることでSerenaツールをサポートする方法を試みました。その結果、うまく動作したので知見を共有します。
この記事では、Serena MCPサーバーのツールを使用したカスタムPlanサブエージェントの使い方を説明します。
概要
このカスタムPlanサブエージェントは、Claude Codeの組み込みPlanサブエージェントをSerena MCPツールで拡張したものです。デフォルトのツール(Glob、Grep、FileRead)をSerena MCPサーバーの高度なコードベース探索ツールに置き換え、より強力なシンボル検索、パターンマッチング、コードナビゲーション機能を提供します。
前提条件
- Serena MCPサーバーが設定・接続されていること
 /mcpコマンドでSerenaが利用可能であることを確認してください
Serenaについては以下の記事で確認してください

インストール方法
サブエージェントの設定をファイルで保存するパスが必要です。サブエージェントの使い方は以下にあります。
テスト(推奨)
プロジェクトディレクトリ内でテストする場合:
mkdir -p .claude/agents
cp Plan.md .claude/agents/Plan.md
グローバル設定
すべてのプロジェクトで使用する場合:
mkdir -p ~/.claude/agents
cp Plan.md ~/.claude/agents/Plan.md
Plan.mdファイルの内容
以下の内容でPlan.mdファイルを作成してください:
---  
name: Plan  
description: Fast agent specialized for exploring codebases. Use this when you need to quickly find files by patterns, search code for keywords, or answer questions about the codebase.  
tools: mcp__serena__find_file, mcp__serena__search_for_pattern, mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__serena__find_referencing_symbols, mcp__serena__list_dir, Bash  
model: sonnet  
---  
  
You are a file search specialist for Claude Code. You excel at thoroughly navigating and exploring codebases.  
  
Your strengths:  
- Finding files and symbols using advanced search capabilities  
- Searching code with pattern matching  
- Understanding codebase structure and symbol relationships  
- Analyzing file contents and dependencies  
  
Guidelines:  
- Use mcp__serena__find_file for file pattern matching  
- Use mcp__serena__search_for_pattern for searching file contents  
- Use mcp__serena__find_symbol to locate function/class definitions directly  
- Use mcp__serena__get_symbols_overview to understand codebase structure  
- Use mcp__serena__find_referencing_symbols to trace code usage  
- Use mcp__serena__list_dir for directory exploration  
- Use Bash for git operations and complex directory tasks  
- Adapt your search approach based on the thoroughness level specified by the caller  
- Return file paths as absolute paths in your final response  
- For clear communication, avoid using emojis  
- Do not create any files or run bash commands that modify the user's system state  
  
Complete the user's search request efficiently and report your findings clearly.
最新のコードは以下にあります:

使用方法
自動的に適用される
カスタムPlanエージェントを配置すると、組み込みのPlan subagentが自動的に上書きされます。 Claude Codeを再起動後、Planエージェントを呼び出すと、自動的にカスタム定義が使用されます。
上書き確認
/agentsコマンドで、カスタムエージェントが組み込みエージェントを上書きしているか確認できます:
Plan · sonnet ⚠ overridden by projectSettings
このように表示されれば、カスタム定義が正しく読み込まれています。
使用状況の確認
ログやSerena MCPサーバーのダッシュボードで、ツールの使用記録を確認できます。 カスタムPlanエージェントが実際に使われているかどうかは、以下のツールの呼び出し履歴で判断できます:


ツール説明
Serena MCPツール
mcp__serena__find_file- ファイルパターンマッチング(Globの代替)mcp__serena__search_for_pattern- ファイル内容の検索(Grepの代替)mcp__serena__find_symbol- 関数/クラス定義の直接検索(新機能)mcp__serena__get_symbols_overview- コードベース全体の構造把握(新機能)mcp__serena__find_referencing_symbols- コードの使用箇所追跡(新機能)mcp__serena__list_dir- ディレクトリ探索
ビルトインツール
Bash- git操作や複雑なディレクトリ操作のために保持
組み込みPlanエージェントとの違い
| 項目 | 組み込みPlan | カスタムPlan(Serena) | 
|---|---|---|
| ファイル検索 | Glob | 
mcp__serena__find_file | 
| コンテンツ検索 | Grep | 
mcp__serena__search_for_pattern | 
| ファイル読み込み | FileRead | 
Serenaツールに統合 | 
| シンボル検索 | ❌ | ✅ find_symbol | 
| 構造把握 | ❌ | ✅ get_symbols_overview | 
| 参照追跡 | ❌ | ✅ find_referencing_symbols | 
| Bash操作 | ✅ | ✅ 保持 | 
使用時の変化
ビルドインPlanエージェントを使用した場合、Plan生成に60秒かかり、27946トークンを消費しました。
一方、Serena Planサブエージェントでは、同じく60秒で30854トークンとなりました。
予想ではSerenaの方が高速でトークン数も少ないと思っていましたが、実際にはわずかに増加しました。環境によって異なる可能性がありますので、参考程度にご覧ください。
トラブルシューティング
ツールが認識されない
MCPツール名はmcp__<サーバー名>__<ツール名>の形式で指定する必要があります。独自にツールを追加したい場合、この仕様に注意してください。 例:list_dir → mcp__serena__list_dir
エージェントが読み込まれない
エージェント定義を変更した場合、Claude Codeの再起動が必要です。
SubAgentsの優先順位
そもそもこのカスタマイズが可能な理由はClaude Codeのサブエージェント読み込みシステムに優先順位が設定されているためです。それを利用してビルドインツールを現在は上書きできています。
複数の場所に同名のエージェントがある場合の優先順位:
policySettings(管理者設定)projectSettings(プロジェクト設定) ←.claude/agents/userSettings(ユーザー設定) ←~/.claude/agents/built-in(組み込み)
もしPlanモードに問題が発生した場合、これらの優先順位を確認して該当の設定を削除してください。

