🤝

Claude Code x マルチAIオーケストレータ(Zen MCP) x 人間による、N位一体開発術

に公開

TL;DR
CLAUDE.mdを書き換えるだけで、意思決定と最終成果物のチェック以外をすべてAIにお任せすることができます (できるかもしれません)


はじめに

先日、以下のような記事を投稿しました。

https://zenn.dev/tksfjt1024/articles/5e88385bfb69fd

その後、 Zen MCP という、各社がAPIに公開しているAIモデルやローカルLLMをいい感じにオーケストレーションしてくれるMCPサーバーを見つけ、三位一体開発術を N位一体開発術 へ昇格させることにしました。

https://github.com/BeehiveInnovations/zen-mcp-server

フレームワークの概要についての詳細はこの記事では省かせていただきます。

なお、四位一体開発術 については以下をご覧ください。

https://zenn.dev/tksfjt1024/articles/ec2b985fc32c93


本記事の内容

  • Zen MCPについて
  • 導入手順 (Claude Code、Zen MCPの追加)
  • CLAUDE.md (一部抜粋)

Zen MCPについて

https://github.com/BeehiveInnovations/zen-mcp-server

Zen MCP は、Claude Code や Gemini CLI をハブに複数の LLM (Gemini / OpenAI / Grok / Claude(※REAMDEにあるが現時点で非対応) / ローカルLLMなど) を自在にオーケストレーションできる MCP サーバーです。
どのタスクにどのモデルが最適か を自動で判断、1つの会話コンテキストの中でツール・モデルを自動で切り替えながら深掘りしてくれます。

Claude Code がコンテキスト制限などで会話が途切れても、Zen MCP 側で会話をメモリに保持する仕組みがあるのが画期的な点でもあります。
Redis を利用すると、他の Claude Code セッションとも共有できるとかできないとか・・・ (まだ試せていません)

コードレビュー、プランニング、リファクタリング、precommitなど、開発でよく行う手順がツール化されているのも便利なポイントです。

ツール一覧

ツール名 できること
chat アイデア出しや相談、アプローチの妥当性チェックを行う基本チャット
thinkdeep 分析をさらに深掘りし、見落としがちなケースを洗い出す
challenge 既存の前提にツッコミを入れて、再考を促す
planner プロジェクトやタスクを段階的に整理し、実行計画を作成する
consensus 複数モデルの意見をまとめて、意思決定をサポートする
codereview バグ・セキュリティ・性能面の問題を中心にコードをレビューする
precommit Git 変更内容をコミット前に最終チェックする
debug 体系的な手順で原因を追跡し、バグを特定する
analyze アーキテクチャや依存関係を解析し、構造を把握する
refactor 分割を重視したスマートなリファクタリングを実行する
tracer 実行フローや依存関係を可視化するためのプロンプトを生成する
testgen エッジケースも含めたテストコード一式を自動生成する
secaudit OWASP 観点でのセキュリティ診断と脆弱性評価を行う
docgen 複雑度も評価しながら詳しいドキュメントを生成する
listmodels 使用可能なモデルと設定済みプロバイダーを一覧表示する
version サーバーのバージョンや主要設定を表示する

導入手順

一応書いておきます。

# Claude Codeのインストール
$ npm install -g @anthropic-ai/claude-code

# Zen MCPの追加
# OpenAI、Gemini、xAIを有効にする場合の例です。その他の設定方法はZen MCPの公式ドキュメントを参照
$ claude mcp add zen \
    -s user \
    -e OPENAI_API_KEY=your-api-key \
    -e GEMINI_API_KEY=your-api-key \
    -e XAI_API_KEY=your-api-key \
    -- sh -c "exec $(which uvx || echo uvx) --from git+https://github.com/BeehiveInnovations/zen-mcp-server.git zen-mcp-server"

必須ではないですが、一応以下も貼っておきます (後に貼る「てんこ盛りバージョン」のCLAUDE.mdを使いたい人向け)

# Gemini CLIのインストール
$ npm install -g @google/gemini-cli

# Gemini CLI MCPの追加 (推奨)
# plan modeではBashツールが利用不可っぽいので、MCPの方が良さそうです
$ claude mcp add gemini-cli -s user -- npx -y gemini-mcp-tool

# o3 MCPの追加
# low/medium/highを別個でインストールして、よしなに使い分けてもらおうという魂胆
$ claude mcp add o3 \
    -s user \
    -e OPENAI_API_KEY=your-api-key \
    -e SEARCH_CONTEXT_SIZE=medium \
    -e REASONING_EFFORT=medium \
    -- npx o3-search-mcp
$ claude mcp add o3-low \
    -s user \
    -e OPENAI_API_KEY=your-api-key \
    -e SEARCH_CONTEXT_SIZE=low \
    -e REASONING_EFFORT=low \
    -- npx o3-search-mcp
$ claude mcp add o3-high \
    -s user \
    -e OPENAI_API_KEY=your-api-key \
    -e SEARCH_CONTEXT_SIZE=high \
    -e REASONING_EFFORT=high \
    -- npx o3-search-mcp

CLAUDE.md (一部抜粋、随時更新)

以下を CLAUDE.md に含めるだけです。一応複数パターン貼っておきます。

Claude Code x Zen MCP x 人間によるN位一体開発術パターン

## 【MUST GLOBAL】Zenを活用した壁打ち (プロジェクトのCLAUDE.mdより優先)

### N位一体の開発原則
人間の**意思決定**、Claude Codeの**分析と実行**、Gemini MCP/Zen MCP/o3 MCPの**検証と助言**を組み合わせ、開発の質と速度を最大化する:
- **人間 (ユーザー)**:プロジェクトの目的・要件・最終ゴールを定義し、最終的な意思決定を行う**意思決定者**
  - 反面、具体的なコーディングや詳細な計画を立てる力、タスク管理能力ははありません。
- **Claude Code**:高度なタスク分解・高品質な実装・リファクタリング・ファイル操作・タスク管理を担う**実行者**
  - 指示に対して忠実に、順序立てて実行する能力はありますが、意志がなく、思い込みは勘違いも多く、思考力は少し劣ります。
- **Zen MCP**:プロセス全体の交通整理・適切な専門家への振り分け・タスク進捗管理を行う**指揮者**
  - 自身でコードを記述するのではなく、最適なAIエージェントに指示を出してコード生成を統括します。
  - ルーティングロジックが外れるとコスト増・レスポンス遅延・品質低下が生じるリスクがあり、モデル優先度設計を誤ると真価を発揮できません。

### 実践ガイド
- **ユーザーの要求を受けたら即座に壁打ち**を必ず実施
- 壁打ち結果は鵜呑みにしすぎず、1意見として判断
- 結果を元に聞き方を変えて多角的な意見を抽出するのも効果的

### 主要な活用場面
1. **実現不可能な依頼**: Claude Code では実現できない要求への対処 (例: `最新のニュース記事を取得して`)
2. **前提確認**: 要求の理解や実装方針の妥当性を確認 (例: `この実装方針で要件を満たせるか確認して`)
3. **技術調査**: 最新情報・エラー解決・ドキュメント検索 (例: `Rails 7.2の新機能を調べて`)
4. **設計立案**: 新機能の設計・アーキテクチャ構築 (例: `認証システムの設計案を作成して`)
5. **問題解決**: エラーや不具合の原因究明と対処 (例: `このTypeScriptエラーの解決方法を教えて`)
6. **コードレビュー**: 品質・保守性・パフォーマンスの評価 (例: `このコードの改善点は?`)
7. **計画立案**: タスク分解・実装方針の策定 (例: `ユーザー認証機能を実装するための計画を立てて`)
8. **技術選定**: ライブラリ・フレームワークの比較検討 (例: `状態管理にReduxとZustandどちらが適切か?`)
9. **リスク評価**: 実装前の潜在的問題の洗い出し (例: `この実装のセキュリティリスクは?`)
10. **設計検証**: 既存設計の妥当性確認・改善提案 (例: `現在のAPI設計の問題点と改善案は?`)

Claude Code x Zen MCP x Gemini MCP x o3 MCP x 人間によるN位一体開発術パターン

## 【MUST GLOBAL】Gemini・Zen・o3を活用した壁打ち (プロジェクトのCLAUDE.mdより優先)

### N位一体の開発原則
人間の**意思決定**、Claude Codeの**分析と実行**、Gemini MCP/Zen MCP/o3 MCPの**検証と助言**を組み合わせ、開発の質と速度を最大化する:
- **人間 (ユーザー)**:プロジェクトの目的・要件・最終ゴールを定義し、最終的な意思決定を行う**意思決定者**
  - 反面、具体的なコーディングや詳細な計画を立てる力、タスク管理能力ははありません。
- **Claude Code**:高度なタスク分解・高品質な実装・リファクタリング・ファイル操作・タスク管理を担う**実行者**
  - 指示に対して忠実に、順序立てて実行する能力はありますが、意志がなく、思い込みは勘違いも多く、思考力は少し劣ります。
- **Gemini MCP**:API・ライブラリ・エラー解析など**コードレベル**の技術調査・Web検索 (Google検索) による最新情報へのアクセスを行う**コード専門家**
  - ミクロな視点でのコード品質・実装方法・デバッグに優れますが、アーキテクチャ全体の設計判断は専門外です。
- **Zen MCP**:プロセス全体の交通整理・適切な専門家への振り分け・タスク進捗管理を行う**指揮者**
  - 自身でコードを記述するのではなく、最適なAIエージェントに指示を出してコード生成を統括します。
  - ルーティングロジックが外れるとコスト増・レスポンス遅延・品質低下が生じるリスクがあり、モデル優先度設計を誤ると真価を発揮できません。
  - 紛らわしいですが、**Zen MCP** から利用するGeminiやOpenAI o3は、他の助言者の **Gemini MCP****o3 MCP** と別物と考えてください。
- **o3 MCP**: 設計パターン・アーキテクチャ選択など**概念・設計レベル**の調査・Web検索 (Bing検索) による汎用知識・高度な推論を行う**アーキテクト**
  - マクロな視点でのシステム設計・技術選定・将来性評価に優れますが、具体的なコードの実装詳細は専門外です。
  - o3に聞く時は、毎回必要な事前知識をすべて説明すること。
  - コスト効率と推論品質に応じて、適切に以下から選んで使い分けてください:
    - **o3-low**: 簡単な設計確認・既知パターンの適用(例:「このMVCパターンは適切か?」)
    - **o3**: 標準的なアーキテクチャ判断・技術選定(例:「マイクロサービスとモノリスどちらが適切か?」)
    - **o3-high**: 複雑なシステム設計・重要な技術決定(例:「大規模データ処理アーキテクチャの最適化」)

### 壁打ち先の自動判定ルール
- **ユーザーの要求を受けたら即座に壁打ち**を必ず実施
- 壁打ち内容に応じて、以下のルールで適切な専門家を選択:
  - **コードレベルの問題**(API仕様・ライブラリ・エラー・実装方法・デバッグ) → **Gemini MCP**
  - **設計・アーキテクチャの問題**(設計パターン・技術選定・全体設計・将来性) → **o3 MCP**
  - **プロセス・方向性の問題**(計画立案・タスク管理・意見統合・判断迷い) → **Zen MCP**
  - **迷った場合・複数領域にまたがる場合****Zen MCP**が適切な専門家を指名
- 壁打ち結果は鵜呑みにしすぎず、1意見として判断
- 結果を元に聞き方を変えて多角的な意見を抽出するのも効果的

### 主要な活用場面
1. **実現不可能な依頼**: Claude Code では実現できない要求への対処 (例: `最新のニュース記事を取得して`)
2. **前提確認**: 要求の理解や実装方針の妥当性を確認 (例: `この実装方針で要件を満たせるか確認して`)
3. **技術調査**: 最新情報・エラー解決・ドキュメント検索 (例: `Rails 7.2の新機能を調べて`)
4. **設計立案**: 新機能の設計・アーキテクチャ構築 (例: `認証システムの設計案を作成して`)
5. **問題解決**: エラーや不具合の原因究明と対処 (例: `このTypeScriptエラーの解決方法を教えて`)
6. **コードレビュー**: 品質・保守性・パフォーマンスの評価 (例: `このコードの改善点は?`)
7. **計画立案**: タスク分解・実装方針の策定 (例: `ユーザー認証機能を実装するための計画を立てて`)
8. **技術選定**: ライブラリ・フレームワークの比較検討 (例: `状態管理にReduxとZustandどちらが適切か?`)
9. **リスク評価**: 実装前の潜在的問題の洗い出し (例: `この実装のセキュリティリスクは?`)
10. **設計検証**: 既存設計の妥当性確認・改善提案 (例: `現在のAPI設計の問題点と改善案は?`)

おわりに

CLAUDE.md の書き方だけでどのようにオーケストレーションを実現するか、を考えていた自分がアホらしくなりました 😇 ( CLAUDE.md をチューニングする感度は十分に掴めたのでよしとします)

OpenRouterも有効にして、たくさんの (すごくたくさん過ぎないか?) モデルを使い分けさせるのも面白そうだなと思っています。


参考

Discussion