はじめに
Gemini CLIを活用したツール開発を検討していた際、Googleは豊富な無料利用枠を提供していることに着目しました。
これらをClaude Codeと組み合わせることで、Claude Codeが持たない機能(画像生成、音声生成など)を補完するMCPを作れば、コストを抑えながらAI活用の可能性を広げられるのではないかと考え、CGMBの開発しました。
CGMBとは? ― ClaudeとGeminiの最適連携をするMCP
🎯 概要
CGMBはユーザーの意図を汲み取り、タスクを最適なAIレイヤーへ自動で振り分けるインテリジェンスを備えています。
■ 3つのAIレイヤーを自動で使い分け
レイヤー名 | 機能 | 適用シナリオ |
---|---|---|
Claude Code | 論理処理、長文要約、コード解析 | 高度な推論、長文応答 |
Gemini CLI | 現在情報、URL解析 | 最新ニュース取得、Web検索 |
Gemini API | 画像/音声/ファイル生成 | マルチモーダル生成 |
※ 便宜上、コード内ではGemini API を AI Studioとして定義しています。
■ 機能一覧
機能 | 説明 |
---|---|
🧠 自動ルーティング | PDF, URL, 画像指示などを解析し、最適なAIへ自動で振り分け。 |
🖼️ マルチモーダル | Gemini API経由で、テキストからの画像生成や音声合成に対応。 |
🔄 安定化技術 | 認証情報のキャッシングによる高速化と、エラー時の再試行を実装。 |
💬 Claude Code連携 |
CGMB ○○ という自然言語プロンプトで、Claude Code内から直接実行可能。 |
🔐 セキュアな認証 | APIキーの安全な管理のため、.env ファイルとOAuth統合に対応。 |
統合されたAI体験
Claude Code内で完結:
"CGMB 最新のAI論文を検索して要約し、関連する概念図を生成"
→ 自動的に3つのAIが連携:
1. Gemini CLIが最新論文を検索
2. Claude Codeが内容を分析・要約
3. AI Studioが概念図を生成
全てが1つのインターフェースで完了(所要時間: 従来の1/3)
インストールと初期設定の様子
CGMB(Claude-Gemini Multimodal Bridge)日本語README
技術的なこだわり:舞台裏の仕組み
インテリジェント・ルーティング
CGMBで最も複雑な実装を要したのは、リクエストのルーティングロジックと、それに付随するエラーハンドリングです。
ユーザーからの自然言語プロンプト(例:「/path/to/report.pdfを要約して」)に対し、CGMBは以下の判断を内部的に行います。
- 入力の解析: プロンプトに含まれる文字列、ファイルパス、URLを正規表現やパターンマッチングで解析。
- リソースタイプの識別: 入力がローカルPDFか、Web上のURLか、あるいは単なるテキストかを識別。
- 最適なバックエンドの選択: PDFならClaudeへ、WebページならGemini CLIへ、画像生成指示ならGemini APIへ、といった形で最適なバックエンドサービスにルーティングします。
- 状態管理とフォールバック: もし指定されたバックエンド(例:Gemini CLI)が認証エラー状態にあれば、処理を中断し、ユーザーに明確なエラーメッセージを返す。これにより、予期せぬ挙動や中途半端な処理結果を防ぎます。
この一連の処理を堅牢に実装することで、ユーザーはバックエンドの複雑さを意識することなく、タスクそのものに集中できます。
MCPサーバーという選択
MCPプロトコルの採用により、CGMBは以下を実現しました:
- 将来性: MCPエコシステムの成長に伴い、他ツールとの連携も視野に
- 標準準拠: 独自プロトコルではなく、業界標準への準拠
標準化されつつあるMCPプロトコルを採用したことで、CGMBは孤立したツールではなく、成長するエコシステムの一部として機能し、今後登場する他のツールとも拡張できる可能性を獲得しました。
異なるAIサービスの統一化
開発過程で直面した最大の課題は、異なるAIサービスのレスポンス形式を統一化することでした。
Claude Code、Gemini CLI、Gemini APIは、それぞれ異なる:
- レスポンス形式: JSON、プレーンテキスト、バイナリデータ
- エラーハンドリング: HTTPステータス、例外、カスタムエラー
- 非同期処理: Promise、コールバック、ストリーミング
これらの差異を吸収するため、統一インターフェース層を実装しました。
また、画像生成の品質向上のため、多言語プロンプトの自動英語翻訳機能も実装しています。Gemini APIの画像生成は英語プロンプトで最良の結果を得られるため、日本語や他の言語で入力されたプロンプトを内部で自動的に英語に翻訳する仕組みを設計しました。これにより、ユーザーは母国語で自然にリクエストしながら、高品質な画像生成結果を得られます。
MCPプロトコルが要求する構造化されたツール定義に合わせて、各AIサービスの機能を抽象化することで、ユーザーは異なるAIサービスの実装詳細を意識することなく、一貫した体験を得られるようになりました。
まとめ:AI統合の新しいパラダイム
CGMBは、複数のAIを「競合」ではなく「協調」させる新しいアプローチを提示しています。
開発を通じて得られた知見
1. 適材適所の重要性
全てを1つのAIで解決しようとするのではなく、それぞれの強みを活かした組み合わせが最も効率的でした。Claude Codeの推論能力、Gemini CLIへトークン分散し情報取得、Gemini APIの生成能力を適切に組み合わせることで、単独では実現できない価値を生み出せます。
2. UXファーストの設計思想
CGMB
という統一されたキーワードで全機能にアクセスできるようにしたことで、ユーザーは実装の詳細を意識せずに、やりたいことに集中できます。これにより、学習コストを最小化しながら、生産性を最大化できました。
想定される活用シーン
1. 技術ブログの執筆支援
"CGMB 最新のRust 1.70の新機能について調査して、サンプルコードの図解を生成"
→ Gemini CLIで最新情報を収集 → Claude Codeで技術解説を作成 → AI Studioで図解生成
2. プレゼンテーション資料の自動生成
"CGMB 弊社の技術スタックについて説明する画像を生成して、音声ナレーションも作成"
→ Claude Codeで構成作成 → AI Studioで図表生成 → 音声合成でナレーション作成
3. ドキュメントの多言語展開
"CGMB README.mdを解析して、主要機能の説明画像を日英両方で生成"
→ Claude Codeでドキュメント解析 → AI Studioで多言語対応の画像生成
コミュニティへの貢献
CGMBはMITライセンスで公開されており、以下で入手可能です:
今後の拡張予定
以下の機能拡張を計画しています:
実装予定
- OCR PDF解析: スキャンされたPDFからのテキスト抽出
- 動画生成: Gemini APIを活用した動画コンテンツの生成
もしこの記事を読んで「ちょっと使ってみようかな」と思っていただけたら、それだけで開発した甲斐があります。バグを見つけたら教えてください。「こんな機能あったらいいな」というアイデアも大歓迎です。