おはようございます!マネジメントオフィスいまむらの今村敦剛です。
最近、AIコーディングにハマっているのですが、話題のClaude codeで、Gemini ProやChatGPT O3などの他社のモデルが協力してコーディングする仕組みを作りました。備忘録代わりにここに記しておきます。(当方の環境はWindowsです)
スポンサーリンク
複数のモデルを連携させると何がよいのか
これはひとえに「コーディングの質が上がる」に尽きます。例えばClaudeがコードを分析し、改善計画を立てます。そしてGemini ProやO3がその計画に対して改善提案をして、より実効性の高い計画に仕上げる、というものですね。
Claude codeを2週間くらい使った感想としては、非常に優秀なのですが、やはりモデルによって得手不得手があるのか、Gemini ProやO3のほうがより解決策に近いプランを提示してくることがあります。ということは、これらを連携できればコーディングの質が上がるのでは?ということは、凡庸な人間にもすぐに想像ができることです。三人寄れば文殊の知恵、ならぬ、3モデル寄れば文殊の知恵、ってなところでしょうか。
必要なアプリケーションを揃える
この連携で必要なのは、以下の2つですね。これらをPCにインストールします。
- Git(ギット)
- これは言わずとしれた、ファイル管理のアプリケーションですね。こちらのサイトから、自分のパソコン(WindowsかMacか)に合ったものをダウンロードしてインストールします。 - Docker Desktop(ドッカー・デスクトップ)
- これが重要です。連携のためにはMCPサーバーを立てる必要があるのですが、サンドボックス化された安全な環境が必要です。それを構築してくれるのがこれです(多分。ぼくもよくわかってない)。こちらの公式サイトからダウンロードしてインストールできます。もしかしたらインストール中に「WSL2」を有効にしてくださいって言われるかもしれません。これはWindowsの中で別のOS(Linux)を動かすための仕組みで、Dockerが働くために必要なんだそうです。でも画面の指示に従って進めれば大丈夫です、。
APIキーを用意する
ClaudeからGeminiやChatGPTを呼び出すにはAPIキーという合言葉のようなものが必要です。これを手に入れておきます。
今回はGeminiとChatGPTの両方を呼ぶように設定をするので、両方のAPIキーを用意しますが、どちらか一つだけでも結構です。
MCPサーバーをダウンロードしインストールする
Claude codeが他のモデルと連携する(指示を出す)にはMCPサーバーが必要です。わかりやすくいうと司令塔のようなものですかね。WindowsではPowershellを開いて「bash」と入力し、WSL上で以下のコマンドを打ち込みます。(ということは、WSLのインストールが前提として必要だということです。この記事では説明を割愛していますので、なんとかお調べください)
command
git clone https://github.com/BeehiveInnovations/zen-mcp-server.git
これを打ち込むと、インターネットからzen-mcp-serverがダウンロードされます。
ディレクトリも自動生成されているはずですので、zen-mcp-serverのディレクトリに移動します。
command
cd zen-mcp-server
そして、以下のコマンドでmcp serverをセットアップします。
command
./setup-docker.sh
MCPサーバーにAPIキーを教える
インストールしたばかりのMCPサーバーにAPIキーを設定します。zen-mcp-serverのフォルダの中に、.envという名前のファイルが新しくできているはずです。これはmcp serverの設定ファイルのようなものですので、このファイルを開いて、APIキーを書き込みます。
こう打つと、envファイルは開けます
command
nano .env
ファイルを開くとエディタも開きますが、こんな風に書いてある部分があります。
GEMINI_API_KEY=your-gemini-api-key-here
OPENAI_API_KEY=your-openai-api-key-here
your-gemini-api-key-hereの部分を、さっきコピーしておいたAPIキーに書き換えてます。書き換えたら、Ctrl + X を押して、Y を押して、Enter を押して保存。
Linux (Ubuntu) 環境での設定方法
まず、Dockerがちゃんと動いているか確認します。ターミナルを開いて、以下のコマンドを打ちます。
command
docker ps
これを打つと、今動いているDockerのリストが表示されます。その中に「zen-mcp-server」という名前が見えたらOK。もし何も表示されなかったら、前の手順に戻って./setup-docker.shをもう一度実行してみてください。
次はいよいよ接続だ。ターミナルで、以下のコマンドを入力します。(claude codeを動かしたいディレクトリで実行する)
command
claude mcp add zen -s user -- docker exec -i zen-mcp-server python server.py
このコマンドは、Claude codeに、zenという名前の新しいMCPサーバーができたと教えてあげる意味があります。反対にいうと、これがないと動きません。
念のため、Claude codeがzenを認識したかを確認してみます。
command
claude mcp list
これを打つと、Claude codeが知っているMCPサーバーのリストが表示される。そこに「zen」って名前があったらOK。ぼくのところの環境だと、zen: docker exec -i zen-mcp-server python server.pyと表示されました。
claude側でもMCPサーバーが認識できているかを確認します。claudeを起動します。
command
claude
claudeが起動したら、claudeのコマンドでMCPサーバーの状態を確認します。
command
/mcp
うまく行けば、以下の通り表示されるはずです。
Manage MCP servers
1. zen
connected · Enter to view details
もしうまくいかない場合
これでももしうまくいかない場合や、うまく行っていたのになぜかclaudeがMCPサーバーを認識しなくなったような場合は、ターミナルで、zen-mcp-serverのフォルダにいることを確認して、以下のコマンドを打ちます。これはdockerをいったん解体するようなコマンドです。(.envファイルなどは維持されます)
command
docker compose down
その後、もう一度以下のコマンドを打ちます。
command
./setup-docker.sh
これでまた上記のLinux (Ubuntu) 環境での設定方法を試してみてください。
claudeでzenを使うようプロンプトで指示する
これでmcp serverの設定は終わり。ターミナルで claude と打ち込んで、Claude codeを起動します。そして
zenを使って、〇〇についてGeminiと相談して!
みたいに、最初に「zenを使って」とお願いすれば、Geminiと連携します。
例えば、実際にzenを呼び出して連携した際のログを以下のとおりにお見せします。zenがgemini 2.5 proを呼び出していますね。
しかしこれで完璧なコードが常に出てくるというわけではありません。やっぱりプロンプトをいろいろ工夫しないと、他モデルと連携したといっても、何の工夫もなくコーディングの品質が上がるわけではないですね。