MCP Gemini について
MCP Geminiは、Google Geminiのテキスト、メディア、ドキュメント、調査機能をMCPクライアントに接続します。これらの作業をMCPツールで行いたいユーザー向けで、APIキーはローカルで扱います。
主な機能
- 01Geminiへの問い合わせとウェブ検索
- 02画像の生成と編集
- 03ドキュメント、URL、動画の分析
- 04詳細調査と追加質問
- 05音声と構造化出力の生成
- 06コード分析とGemini経由のPython実行
活用シーン
- 01PDFやYouTube動画の要約
- 02プロンプトによる画像生成や編集
- 03ウェブ情報を使ったテーマ調査
- 04コードのセキュリティ問題の確認
MCP 対応
MCPクライアントにGoogle Geminiの問い合わせ、メディア、ドキュメント、調査などのツールを提供します。stdioでローカル実行し、APIキーの不用意なログ出力を防ぎます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
39掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | いいえ | 使用するモデル('pro' または 'flash')。 |
| prompt | string | はい | Gemini に送信するプロンプト。 |
| use_google_search | boolean | いいえ | Google Search の結果を使って回答の根拠を示します。 |
| system_instruction | any | いいえ | 回答を導くための省略可能なシステム指示。 |
詳細
MCP Gemini CrunchTools
Google Gemini AI 向けのセキュアな MCP(Model Context Protocol)サーバーです。テキスト、画像、動画、リサーチなどに対応しています。
概要
この MCP サーバーは、次の特長を備えています。
- デフォルトでセキュア - STRIDE 脅威モデル(SECURITY.md を参照)、Pydantic による入力検証、誤ってログに記録されるのを防ぐため
SecretStrとして保持される API キー - サードパーティサービス不要 - stdio 経由でローカル実行され、API キーがマシンの外部に送信されることはありません
- クロスプラットフォーム - Linux、macOS、Windows で動作します
- 自動更新 - GitHub Actions が CVE を監視し、依存関係を更新します
- コンテナ化 - Hummingbird Python ベースイメージ上に構築され、
quay.io/crunchtools/mcp-geminiで利用できます
命名規則
| コンポーネント | 名前 |
|---|---|
| GitHub リポジトリ | crunchtools/mcp-gemini |
| コンテナ | quay.io/crunchtools/mcp-gemini |
| Python パッケージ(PyPI) | mcp-gemini-crunchtools |
| CLI コマンド | mcp-gemini-crunchtools |
| モジュールインポート | mcp_gemini_crunchtools |
Hummingbird を使用する理由
このコンテナイメージは、Project Hummingbird の Hummingbird Python ベースイメージ 上に構築されており、次の特長を備えています。
- CVE への露出を最小限に抑制 - Hummingbird イメージは最小限のパッケージセットで構築されており、汎用イメージと比べて攻撃対象領域を大幅に縮小します
- 定期的な更新 - セキュリティパッチが速やかに適用され、CVE 数を低く保ちます
- Python に最適化 - 高速で再現性の高いビルドを実現する uv パッケージマネージャーを備えた、事前設定済みの Python 環境です
- 本番環境に対応 - 適切なシグナル処理と非 root ユーザーのデフォルト設定により、本番環境のワークロード向けに設計されています
そのため、一般的な Python コンテナイメージより脆弱性が少ない、強化された環境で MCP サーバーを実行できます。
機能
クエリツール(5 個)
gemini_query- Google Search グラウンディングをオプションで利用して Gemini にクエリを送信しますgemini_brainstorm- トピックに関する創造的なアイデアを生成しますgemini_analyze_code- セキュリティ、パフォーマンス、バグについてコードを分析しますgemini_analyze_text- 感情、語調、内容についてテキストを分析しますgemini_summarize- さまざまな形式で内容を要約します
画像生成(4 個)
gemini_generate_image- テキストプロンプトから画像を生成します(Gemini ネイティブ)gemini_generate_image_with_input- 既存の画像を編集・変更しますgemini_image_prompt- 効果的な画像生成プロンプトを作成しますgemini_imagen_generate- Google Imagen 4 モデルを使って画像を生成します
画像編集(4 個)
gemini_start_image_edit- 複数ターンの画像編集セッションを開始しますgemini_continue_image_edit- アクティブなセッションで編集を続行しますgemini_end_image_edit- 画像編集セッションを終了しますgemini_list_image_sessions- アクティブな編集セッションをすべて一覧表示します
画像分析(1 個)
gemini_analyze_image- ローカルの画像ファイルを分析して説明します
検索ツール(1 個)
gemini_search- Google Search グラウンディングを使って Gemini でウェブ検索を行います
ドキュメントツール(3 個)
gemini_analyze_document- PDF、DOCX、TXT などを分析しますgemini_summarize_pdf- PDF ドキュメントを要約しますgemini_extract_tables- ドキュメントから表を抽出します
URL ツール(3 個)
gemini_analyze_url- 1 つ以上の URL を分析しますgemini_compare_urls- 2 つの URL を比較しますgemini_extract_from_url- URL から特定のデータを抽出します
動画ツール(2 個)
gemini_generate_video- Veo を使って動画を生成しますgemini_check_video- 動画生成の状態を確認します
YouTube ツール(2 個)
gemini_youtube- YouTube 動画を分析しますgemini_youtube_summary- YouTube 動画を要約します
音声ツール(3 個)
gemini_speak- テキストを音声に変換しますgemini_dialogue- 複数の音声による対話音声を生成しますgemini_list_voices- 利用可能な音声を一覧表示します
リサーチツール(3個のツール)
gemini_deep_research- 複数ステップのウェブリサーチを実行しますgemini_check_research- リサーチ操作のステータスを確認しますgemini_research_followup- 追加の質問をします
キャッシュツール(4個のツール)
gemini_create_cache- 繰り返しのクエリ用にコンテンツキャッシュを作成しますgemini_query_cache- キャッシュされたコンテンツをクエリしますgemini_list_caches- 有効なキャッシュをすべて一覧表示しますgemini_delete_cache- キャッシュを削除します
構造化出力ツール(2個のツール)
gemini_structured- 構造化された JSON 出力を取得しますgemini_extract- テキストから構造化データを抽出します
トークンツール(1個のツール)
gemini_count_tokens- コンテンツ内のトークン数を数えます
コード実行ツール(1個のツール)
gemini_run_code- Gemini 経由で Python コードを実行します
合計:39個のツール
インストール
uvx を使用(推奨)
uvx mcp-gemini-crunchtools
pip を使用
pip install mcp-gemini-crunchtools
コンテナを使用
# Create a shared output directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads
podman run -v ~/.local/share/mcp-uploads-downloads:/output:z \
-e GEMINI_API_KEY=your_key \
-e GEMINI_OUTPUT_DIR=/output \
quay.io/crunchtools/mcp-gemini
SELinux に関する注意:
:Z(大文字、プライベート)の代わりに:z(小文字、共有)を使用してください。 MCP サーバーは、長時間稼働する stdio プロセスとして実行されます。:Zを使用すると、コンテナの起動後に ディレクトリへコピーしたファイルには、コンテナのプライベートな MCS ラベルが付与されないため、 コンテナ内から見えなくなります。:zフラグは共有のcontainer_file_tコンテキストを設定し、すべてのコンテナとホストが読み書きできるようにします。ヒント: 複数の MCP コンテナサーバー(例:mcp-gemini や mcp-wordpress)で同じ共有ディレクトリ(
~/.local/share/mcp-uploads-downloads/) を使用すると、生成した画像をコピーせずにすぐ WordPress にアップロードできます。
設定
Google Gemini API キーの作成
-
Google AI Studio にアクセスします
- https://aistudio.google.com/apikey にアクセスします
- Google アカウントでサインインします
-
API キーを作成します
- 「Get API key」または「Create API key」をクリックします
- Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します
- 「Create API key in new project」をクリックします(または既存のプロジェクトを選択します)
-
API キーをコピーします
- 重要:API キーをすぐにコピーして、安全に保管してください!
- キーは
AI...で始まります(例:AIzaSy...)
Claude Code に追加
claude mcp add mcp-gemini-crunchtools \
--env GEMINI_API_KEY=your_api_key_here \
-- uvx mcp-gemini-crunchtools
コンテナ版の場合:
# Create a shared output directory (required before first run)
mkdir -p ~/.local/share/mcp-uploads-downloads
claude mcp add mcp-gemini-crunchtools \
--env GEMINI_API_KEY=your_api_key_here \
--env GEMINI_OUTPUT_DIR=/output \
-- podman run -i --rm \
-v ~/.local/share/mcp-uploads-downloads:/output:z \
-e GEMINI_API_KEY \
-e GEMINI_OUTPUT_DIR=/output \
quay.io/crunchtools/mcp-gemini
オプション:出力ディレクトリを設定(コンテナ以外)
コンテナを使用せずに実行する場合に生成される画像、音声、動画用:
claude mcp add mcp-gemini-crunchtools \
--env GEMINI_API_KEY=your_api_key_here \
--env GEMINI_OUTPUT_DIR=$HOME/.local/share/mcp-uploads-downloads \
-- uvx mcp-gemini-crunchtools
使用例
Google 検索を使ったクエリ
User: What are the latest developments in quantum computing?
Assistant: [calls gemini_query with use_google_search=true]
画像を生成
User: Generate a photorealistic image of a sunset over mountains
Assistant: [calls gemini_generate_image with prompt and style]
PDF ドキュメントを分析
User: Analyze this research paper at /path/to/paper.pdf
Assistant: [calls gemini_analyze_document with file_path]
YouTube 動画を要約
User: Summarize this YouTube video: https://youtube.com/watch?v=...
Assistant: [calls gemini_youtube_summary with url]
詳細なリサーチ
User: Research the environmental impact of electric vehicles
Assistant: [calls gemini_deep_research then gemini_check_research]
コード分析
User: Analyze this Python code for security issues
Assistant: [calls gemini_analyze_code with focus="security"]
セキュリティ
このサーバーは、セキュリティを最優先に設計されています。以下については SECURITY.md を参照してください。
- 脅威モデルと攻撃ベクトル
- 多層防御アーキテクチャ
- API キーの取り扱いに関するベストプラクティス
- 入力検証ルール
- 監査ログ
主なセキュリティ機能
-
API キーの保護
- SecretStr として保存(誤ってログに記録されることはありません)
- 環境変数のみで管理(ファイルや引数には保存しません)
- すべてのエラーメッセージからサニタイズ
-
入力検証
- すべての入力に Pydantic モデルを使用
- ファイルパスの検証
- URL の検証
- 厳密なフォーマット検証
-
API の強化
- API のベース URL をハードコード(SSRF を防止)
- TLS 証明書の検証
- リクエストのタイムアウト
- レスポンスサイズの制限
-
CVE の自動スキャン
- GitHub Actions が依存関係を毎週スキャン
- セキュリティ更新用の PR を自動作成
- Dependabot アラートを有効化
開発
セットアップ
git clone https://github.com/crunchtools/mcp-gemini.git
cd mcp-gemini
uv sync
テストを実行
uv run pytest
Lint と型チェック
uv run ruff check src tests
uv run mypy src
コンテナをビルド
podman build -t mcp-gemini .
ライセンス
AGPL-3.0-or-later
コントリビューション
コントリビューションを歓迎します!セキュリティ関連の変更を提出する前に、SECURITY.md をお読みください。
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。