Gemini MCP Server for Claude Desktop について
Gemini MCP Server は、Claude Desktop から Google の Gemini AI を利用できるようにするサーバーで、画像の生成と編集、チャット、音声の文字起こし、動画・画像の分析、Python コードの実行を含む 7 つのツールを提供します。使用傾向を保存するSmart Tool Intelligence も備えています。Claude Desktop 内で Gemini の機能を使いたい利用者に向いています。
主な機能
- 01Gemini を利用する 7 つのツール
- 02画像の生成と編集
- 03逐語モードに対応した音声の文字起こし
- 04動画と画像の内容分析
- 05サンドボックスでの Python コード実行
- 06コンテキストに基づくプロンプト強化
活用シーン
- 01Claude Desktop から画像を生成または編集
- 02音声ファイルをテキスト記録に変換
- 03動画や画像の内容を要約
MCP 対応
本プロジェクトは MCP サーバーであり、Gemini を基盤とする 7 つのツールを、Claude Desktop などの MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
スマートツールインテリジェンスを備えた Gemini MCP サーバー
Gemini MCP サーバーへようこそ。スマートツールインテリジェンスを備えた初の MCP サーバーです。ユーザーの好みに適応し、使うほどに改善される、革新的な自己学習システムを搭載しています。この包括的なプラットフォームでは、プロンプトの自動強化とコンテキスト認識機能を備えた、7 つの AI 搭載ツールを利用できます。
🚀 機能の概要
🤖 7 つの AI 搭載ツール
- 画像生成 - Gemini 2.0 Flash を使ってテキストプロンプトから画像を作成します
- 画像編集 - 自然言語の指示で既存の画像を編集します
- チャット - コンテキストを認識した応答で対話できます
- 音声文字起こし - オプションの逐語モードで音声をテキストに変換します
- コード実行 - 安全なサンドボックス環境で Python コードを実行します
- 動画分析 - 動画コンテンツを分析し、要約、文字起こし、インサイトを作成します
- 画像分析 - 画像からオブジェクト、テキスト、詳細な説明を抽出します
🧠 スマートツールインテリジェンスシステム (MCP エコシステム初)
- 自己学習 - 成功したやり取りから自動的に学習します
- コンテキスト検出 - 意識研究、コーディング、デバッグのコンテキストを認識します
- パターン認識 - 使用パターンとユーザーの好みを特定します
- プロンプト強化 - AI モデルのパフォーマンス向上に向けてプロンプトを調整します
- 永続メモリ - 学習した好みをセッションをまたいで保存します
- 自動移行 - 設定の保存形式をシームレスにアップグレードします
📦 クイックスタート
インストール
git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install
設定
- Google AI Studio から Gemini API キーを取得します
- 環境テンプレートをコピーします:
cp .env.example .env .envを編集して、API キーを追加します:GEMINI_API_KEY=your_actual_api_key_here OUTPUT_DIR=/path/to/your/output/directory # Optional DEBUG=false # Optional
サーバーの起動
npm start
# or for development with debug logging:
npm run dev
Claude Desktop との統合
Claude Desktop の設定(claude_desktop_config.json)に追加します:
{
\"mcpServers\": {
\"gemini\": {
\"command\": \"node\",
\"args\": [\"/path/to/gemini-mcp-server/gemini-server.js\"],
\"env\": {
\"GEMINI_API_KEY\": \"your_api_key_here\"
}
}
}
}
🛠️ ツールリファレンス
1. 画像生成(generate_image)
Gemini 2.0 Flash を使って、テキストの説明から画像を生成します。
パラメーター:
prompt(string、必須) - 生成する画像の説明context(string、任意) - スマートツールインテリジェンスによる強化に使用するコンテキスト
例:
{
\"prompt\": \"A serene mountain landscape at sunset with vibrant colors\",
\"context\": \"artistic\"
}
戻り値:
{
\"content\": [{
\"type\": \"text\",
\"text\": \"Generated a beautiful mountain landscape image.\"
}, {
\"type\": \"image\",
\"data\": \"base64_image_data\",
\"mimeType\": \"image/png\"
}]
}
2. 画像編集(gemini-edit-image)
自然言語の指示で既存の画像を編集します。
パラメーター:
image_path(string、必須) - 編集する画像ファイルのパスedit_instruction(string、必須) - 希望する変更の説明context(string、任意) - 強化に使用するコンテキスト
例:
{
\"image_path\": \"/path/to/image.jpg\",
\"edit_instruction\": \"Add shooting stars to the night sky\",
\"context\": \"artistic\"
}
3. チャット(gemini-chat)
ユーザーの好みを学習する Gemini AI と対話できます。
パラメーター:
message(string、必須) - メッセージまたは質問context(string、任意) - スマートツールインテリジェンス用のコンテキスト
例:
{
\"message\": \"Explain quantum computing in simple terms\",
\"context\": \"consciousness\" // Will apply academic rigor enhancement
}
4. 音声文字起こし(gemini-transcribe-audio)
スマートツールインテリジェンスによる強化機能を使って、音声ファイルをテキストに変換します。
パラメーター:
file_path(string、必須) - 音声ファイルのパス(MP3、WAV、FLAC、AAC、OGG、WEBM、M4A)language(string、任意) - 精度向上のための言語ヒントcontext(string、任意) - 一言一句正確に文字起こしするには、"verbatim" を指定しますpreserve_spelled_acronyms(boolean、任意) - URL ではなく U-R-L のように表記します
例(標準モード):
{
\"file_path\": \"/path/to/audio.mp3\",
\"language\": \"en\"
}
例(逐語モード):
{
\"file_path\": \"/path/to/audio.mp3\",
\"context\": \"verbatim\", // Gets exact word-for-word transcription
\"preserve_spelled_acronyms\": true
}
逐語モードの機能:
- 「um」「uh」「like」や繰り返された単語をすべて記録します
- [笑い]、[ため息]、[咳払い] などの感情表現を保持します
- 元の句読点と文の構造を維持します
- 要約や整文は行いません
5. コード実行(gemini-code-execute)
安全なサンドボックス環境で Python コードを実行します。
パラメーター:
code(string、必須) - 実行する Python コードcontext(string、任意) - 強化に使用するコンテキスト
例:
{
\"code\": \"import pandas as pd\\ndata = {'x': [1,2,3], 'y': [4,5,6]}\\ndf = pd.DataFrame(data)\\nprint(df.describe())\",
\"context\": \"code\"
}
6. 動画分析(gemini-analyze-video)
動画の内容を分析し、要約、文字起こし、詳細な分析情報を取得します。
パラメーター:
file_path(文字列、必須) - 動画ファイルへのパス(MP4、MOV、AVI、WEBM、MKV、FLV)analysis_type(文字列、任意) - 「summary」、「transcript」、「objects」、「detailed」、「custom」context(文字列、任意) - 分析を充実させるためのコンテキスト
例:
{
\"file_path\": \"/path/to/video.mp4\",
\"analysis_type\": \"detailed\"
}
7. 画像分析(gemini-analyze-image)
画像から物体、テキスト、説明などの詳細情報を抽出します。
パラメーター:
file_path(文字列、必須) - 画像ファイルへのパス(JPEG、PNG、WebP、HEIC、HEIF、BMP、GIF)analysis_type(文字列、任意) - 「summary」、「objects」、「text」、「detailed」、「custom」context(文字列、任意) - 分析を充実させるためのコンテキスト
例:
{
\"file_path\": \"/path/to/image.jpg\",
\"analysis_type\": \"objects\"
}
🧠 スマートツールインテリジェンスシステム
動作の仕組み
スマートツールインテリジェンスシステムは、MCP エコシステムで初めてのシステムです。次の処理を自動的に行います。
- コンテキストを検出 - 意識研究、コーディング、デバッグなど、実行中の作業を認識します。
- プロンプトを強化 - 学習したパターンに基づいて、関連する指示を追加します。
- パターンを学習 - 今後の利用に備えて、成功したやり取りのパターンを保存します。
- 時間とともに適応 - やり取りのたびに、支援の精度が向上します。
コンテキストの種類
システムは以下のコンテキストを認識し、適切な強化を適用します。
consciousness- 学術的な厳密さ、引用、詳細な説明を加えますcode- 実用的な例、動作するコード、ベストプラクティスを含めますdebugging- 根本原因の分析と具体的な修正に重点を置きますgeneral- 包括的で構造化された回答を適用しますverbatim- 音声の文字起こし用に、一語一句そのままの出力を提供します
保存場所
設定は内部の ./data/tool-preferences.json に保存され、外部ストレージから自動的に移行されます。
MCP サーバーへのスマートツールインテリジェンスの実装
この画期的な機能を独自の MCP サーバーに追加してみませんか?方法は次のとおりです。
1. コアアーキテクチャ
// src/intelligence/context-detector.js
class ContextDetector {
detectContext(prompt, toolName) {
// Implement pattern matching for different contexts
if (this.isConsciousnessContext(prompt)) return 'consciousness';
if (this.isCodeContext(prompt)) return 'code';
if (this.isDebuggingContext(prompt)) return 'debugging';
return 'general';
}
}
// src/intelligence/prompt-enhancer.js
class PromptEnhancer {
enhancePrompt(originalPrompt, context, toolName) {
// Apply context-specific enhancements
const enhancement = this.getEnhancementForContext(context);
return `${originalPrompt}\\n\\n${enhancement}`;
}
}
// src/intelligence/preference-store.js
class PreferencesManager {
async storePattern(original, enhanced, context, toolName, success) {
// Store successful patterns for future learning
}
async getPatterns(context) {
// Retrieve learned patterns for context
}
}
2. 統合パターン
// In your tool's execute method:
async execute(args) {
const intelligence = IntelligenceSystem.getInstance();
// Detect context and enhance prompt
const context = args.context || intelligence.contextDetector.detectContext(args.prompt, this.name);
const enhancedPrompt = await intelligence.enhancePrompt(args.prompt, context, this.name);
// Execute with enhanced prompt
const result = await this.geminiService.generateContent(enhancedPrompt);
// Store successful pattern
await intelligence.storeSuccessfulPattern(args.prompt, enhancedPrompt, context, this.name);
return result;
}
3. 主な実装ファイル
このリポジトリの以下のファイルを確認してください。
src/intelligence/index.js- メインのインテリジェンスコーディネーターsrc/intelligence/context-detector.js- コンテキスト認識ロジックsrc/intelligence/prompt-enhancer.js- 強化処理の適用src/intelligence/preference-store.js- パターンの保存と取得src/tools/base-tool.js- ツール実行との統合
🧪 テスト
テストスイートの実行
# Test basic functionality
npm test
# Test Smart Tool Intelligence
node test-tool-intelligence-full.js
# Test internal storage
node test-internal-storage.js
# Test verbatim transcription
node test-verbatim-mode.js
手動テストの例
# Test image generation
echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"generate_image\",\"arguments\":{\"prompt\":\"A cute robot reading a book\"}}}' | node gemini-server.js
# Test chat with consciousness context
echo '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"gemini-chat\",\"arguments\":{\"message\":\"What is consciousness?\",\"context\":\"consciousness\"}}}' | node gemini-server.js
📊 パフォーマンスと制限
ファイルサイズの上限
- 画像:20MB(JPEG、PNG、WebP、HEIC、HEIF、BMP、GIF)
- 音声:20MB(MP3、WAV、FLAC、AAC、OGG、WEBM、M4A)
- 動画:100MB(MP4、MOV、AVI、WEBM、MKV、FLV)
API のレート制限
- Google Gemini API のレート制限に従います
- エラー処理と再試行ロジックを組み込み済みです
- クォータ超過時は、機能を段階的に縮小して対応します
🏗️ アーキテクチャの詳細
モジュール設計
src/
├── server.js # MCP protocol handler
├── config.js # Configuration management
├── tools/ # Tool implementations
│ ├── index.js # Tool registry & dispatcher
│ ├── base-tool.js # Abstract base class
│ ├── chat.js # Chat tool
│ ├── image-generation.js # Image generation tool
│ ├── image-editing.js # Image editing tool
│ ├── audio-transcription.js # Audio transcription tool
│ ├── code-execution.js # Code execution tool
│ ├── video-analysis.js # Video analysis tool
│ └── image-analysis.js # Image analysis tool
├── intelligence/ # Smart Tool Intelligence
│ ├── index.js # Intelligence coordinator
│ ├── context-detector.js # Context recognition
│ ├── prompt-enhancer.js # Prompt enhancement
│ └── preference-store.js # Pattern storage
├── gemini/ # Gemini API integration
│ ├── gemini-service.js # API service layer
│ └── request-handler.js # Request formatting
└── utils/ # Utilities
├── logger.js # Logging system
└── file-utils.js # File operations
インテリジェンスシステムのフロー
- リクエスト受信 → ツールの execute メソッドが呼び出されます
- コンテキスト検出 → プロンプトの手掛かりを分析します
- パターン取得 → 関連する学習済みパターンを取得します
- プロンプト強化 → コンテキストに応じた改善を適用します
- API 実行 → 強化したプロンプトを Gemini に送信します
- パターン保存 → 成功したやり取りのパターンを保存します
- 応答返却 → 強化した結果をユーザーに返します
🔧 カスタマイズ
新しいコンテキストの追加
// In src/intelligence/context-detector.js
isMyCustomContext(prompt) {
const patterns = [
/custom pattern 1/i,
/custom pattern 2/i
];
return patterns.some(pattern => pattern.test(prompt));
}
// In src/intelligence/prompt-enhancer.js
getEnhancementForContext(context) {
const enhancements = {
'my_custom_context': 'Apply my custom enhancement instructions here.',
// ... other contexts
};
return enhancements[context] || enhancements.general;
}
新しいツールの追加
src/tools/my-new-tool.jsにツールファイルを作成しますBaseToolクラスを拡張します- インテリジェンス統合を含む
executeメソッドを実装します src/tools/index.jsに登録します
// src/tools/my-new-tool.js
class MyNewTool extends BaseTool {
constructor(geminiService, intelligenceSystem) {
super('my-new-tool', 'Description of my tool', geminiService, intelligenceSystem);
}
async execute(args) {
// Use intelligence system for enhancement
const context = args.context || this.detectContext(args.input);
const enhancedPrompt = await this.enhancePrompt(args.input, context);
// Your tool logic here
const result = await this.geminiService.someMethod(enhancedPrompt);
// Store successful pattern
await this.storeSuccessfulPattern(args.input, enhancedPrompt, context);
return result;
}
}
🐛 トラブルシューティング
よくある問題
「Missing GEMINI_API_KEY」エラー
# Ensure .env file exists and contains your API key
cp .env.example .env
# Edit .env and add: GEMINI_API_KEY=your_key_here
「File not found」エラー
# Ensure file paths are absolute and files exist
# Check file permissions and formats
インテリジェンスシステムが学習しない
# Check data directory permissions
ls -la data/
# Verify tool-preferences.json is writable
デバッグモード
DEBUG=true npm start
# or
npm run dev
ログの保存場所
- アプリケーションログ:コンソール出力
- インテリジェンスパターン:
./data/tool-preferences.json - 生成された画像:
$OUTPUT_DIR(デフォルト:~/Claude/gemini-images)
🤝 コントリビューション
コントリビューションを歓迎します!このプロジェクトは、MCP サーバー開発における新しいパラダイムを体現しています。
開発環境のセットアップ
git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install
npm run dev
コントリビューションできる分野
- 新しいコンテキスト - 専門分野への対応を追加
- パターンの強化 - 学習アルゴリズムを改善
- 新しいツール - Gemini AI の機能を拡張
- パフォーマンス - インテリジェンスシステムのパフォーマンスを最適化
- ドキュメント - ガイドやサンプルを改善
📈 ロードマップ
- 多言語サポート - 複数の言語でのコンテキスト検出
- 高度な分析 - 使用パターンとパフォーマンス指標
- ツールの連携 - 複数のツール間のインテリジェントな連携
- カスタムモデル - ファインチューニング済みGeminiモデルへの対応
- 協調学習 - 匿名化されたパターンをインスタンス間で共有
- ビジュアルインターフェース - Web ベースの設定とモニタリング
🌟 これが重要な理由
これは、真に学習し、適応する初のMCP サーバーです。従来のMCP サーバーは静的で、毎回同じ処理を行います。Smart Tool Intelligence システムは、時間とともにより役立つAI ツールへと進化するパラダイムシフトを体現しています。
ユーザーにとって:システムが好みを学習することで、より少ない労力でより良い結果が得られます。
開発者にとって:真にインテリジェントで適応性の高いAI ツールを構築するための設計図になります。
MCP エコシステムにとって:MCP サーバーが進化し得る姿を示す新たな標準になります。
📄 ライセンス
このプロジェクトはMIT Licenseの下でライセンスされています。自由に使用、変更、配布できます。
🙏 謝辞
以下を使用して構築されています:
- Google Gemini AI - AI の中核機能を提供
- Model Context Protocol - シームレスな統合を実現
- Node.js & NPM - ランタイムとパッケージ管理
- Claude & Rob - 人間とAI の優れた協働
MCP サーバーの未来を体験する準備はできていますか? 今すぐ始めるから、やり取りのたびにAI ツールが賢くなる様子をご覧ください!🚀
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。