Communityコーディング&開発github.com

WJZ-P/gemini-skill

Gemini 官网(gemini.google.com)の画像生成、対話などを実行するスキル。ユーザーが「生图/画图/绘图/nano banana/nanobanana/生成图片」などのキーワードを発言した際にトリガーされます。

gemini-skill とは?

このスキルは、Gemini 公式サイト(gemini.google.com)を介して画像生成やテキスト対話などの操作を実行するためのAIエージェントツールです。主にClaude CodeやCursor、CodexなどのAIエージェントで使用することを想定して設計されており、操作は3段階の優先順位に従います。最優先はMCPツールの直接呼び出し、次にスキルスクリプトの実行、最後にスキル管理下のブラウザへの手動接続(ユーザー承認必須)です。**AIエージェントが独自にブラウザを起動してGeminiにアクセスすることは固く禁止されています。** スキルは画像生成、モデル切り替え、画像アップロード・抽出、テキスト応答取得、ログイン状態確認、ページナビゲーション、診断・復旧など、多岐にわたるMCPツールを提供します。長時間かかる処理(画像生成は60~180秒)は同期的にブロックされ、完了まで待機します。また、AIエージェントはMCPツールを経由せずに一時的なスクリプトを作成してスキル内部の関数を直接呼び出すことは禁止されており、必要がある場合はユーザーの明示的な同意を得なければなりません。

対応~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add WJZ-P/gemini-skill

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Gemini Skill

⚠️ 操作優先順位(厳守)

Gemini とのすべてのやり取りは、以下の優先順位で方式を選択します:

  1. 🥇 最優先:MCP ツールの呼び出し — 本スキルが提供する MCP ツールを直接呼び出して操作を完了します。ほとんどのシナリオをカバーします。
  2. 🥈 次優先:スキルスクリプトの実行 — MCP ツールで要件を満たせない場合、本スキルプロジェクト内のスクリプトを実行して完了します。
  3. 🥉 最後の手段:スキル管理下のブラウザに接続 — 上記2つの方法で解決できない場合のみ、gemini_browser_info を使用して CDP 接続情報を取得し、本スキルが管理するブラウザに能動的に接続して操作します。この方法を使用する前には必ずユーザーの同意を得る必要があります。

絶対禁止:新しいブラウザインスタンスを起動して Gemini ページにアクセスすること(OpenClaw ブラウザや別の Puppeteer を起動するなど)。これはセッション競合を引き起こします。

ブラウザデーモンが実行されていない場合、MCP ツールは自動的に起動します。手動操作は必要ありません。

📡 進捗同期 & 長時間ツールのルール

MCP ツールの呼び出し(特に画像生成や応答待機など)は時間がかかる場合があります(60~180 秒)。以下のルールを厳守する必要があります:

  • 本スキルのすべての MCP ツールは同期的なブロッキング呼び出しであり、最終結果が返ってくるまで待機します。「中間状態」をポーリングする必要はありません。
  • 長時間ツールを呼び出す場合、timeoutMs は ≥180000(3分) に設定し、転送層が早期にタイムアウトして中断するのを防ぎます。
  • ツールの最終応答を受け取る前に会話を終了したり、ユーザーに「まだ実行中です」「ツールがタイムアウトしました」と報告することを禁止します。
  • 15~30 秒ごとにユーザーに進捗メッセージを送信します(例:「Gemini が画像を生成するのを待っています…30 秒経過…」)。フィードバックを維持します。
  • 最終結果を取得したら、即座に成果物(ファイルパス)を返すか、エラーを報告します。漏れがあってはなりません。
  • fullSize モードが失敗した場合、fullSize=false(プレビュー画像モードの方が安定)でダウングレードして再試行できます。

トリガーキーワード

  • 画像生成タスク:生图、画、绘图、海报、nano banana、nanobanana、image generation、生成图片
  • リクエストがあいまいな場合は、まずユーザーに画像生成が必要かどうかを確認します。

使用方法

本スキルは MCP Server を通じてツールを公開します。AI が直接呼び出します。

ブラウザの起動、セッション管理、画像抽出、ファイル保存などのフローはすべてツール内部にカプセル化されています。

⚠️ 強制ルール

AI は常に MCP ツールを介してすべての操作を実行する必要があります。

MCP をバイパスして一時的なスクリプト(node -e "..." や .js 一時ファイルの作成など)を作成し、 本プロジェクトがエクスポートする関数(createGeminiSession、createOps など)を import / require することを禁止します。

MCP ツールで現在の要件を満たせない場合、AI はまずユーザーに理由を説明し、明示的な同意を得る必要があります。 その上で、一時スクリプトを作成して内部 API を呼び出すことができます。ユーザーの同意なしに実行することは一切禁止されています。

利用可能なツール

コア画像生成(完全なフローをカプセル化):

ツール名説明入力パラメータ
gemini_generate_image完全な画像生成フロー:新しいセッション作成→プロンプト送信→待機→画像抽出→ローカル保存(所要時間約 60~120 秒)prompt、newSession(デフォルト false)、referenceImages(参照画像パスの配列)、fullSize(デフォルト true、高解像度原寸画像;false の場合はプレビュー画像)、timeout(デフォルト 120000ms)

セッション管理:

ツール名説明入力パラメータ
gemini_new_chat新しい空の会話を作成なし
gemini_temp_chat一時的な会話モードに入る(履歴は保持されない)なし

モデル切り替え:

ツール名説明入力パラメータ
gemini_switch_modelGemini モデルを切り替えるmodel(pro / quick / think)

テキスト対話:

ツール名説明入力パラメータ
gemini_send_messageテキストメッセージを送信し、応答が完了するのを待ち、Gemini からの応答テキストを直接返すmessage、timeout(デフォルト 120000ms)

画像操作:

ツール名説明入力パラメータ
gemini_upload_images画像を入力ボックスにアップロード(アップロードのみ、送信はしない。send_message と組み合わせて使用可能)images(パスの配列)
gemini_get_imagesセッション内のすべての読み込まれた画像のメタ情報を取得なし
gemini_extract_image指定された画像の base64 を抽出し、ローカルに保存imageUrl(get_images から取得)
gemini_download_full_size_imageフルサイズの高解像度画像をダウンロード。デフォルトは最新の1枚。インデックスを指定可能index(オプション、0 から開始、古い順)
gemini_share_latest_image画像の公開共有リンクを作成し、リンクを直接返す。デフォルトは最新の1枚index(オプション)、timeout、copyToClipboard、closeDialog

テキスト応答の抽出:

ツール名説明入力パラメータ
gemini_get_all_text_responsesセッション内のすべてのテキスト応答を取得(テキストのみ、画像は含まない)なし
gemini_get_latest_text_response最新のテキスト応答を取得なし

ログイン状態:

ツール名説明入力パラメータ
gemini_check_loginGoogle アカウントにログインしているかどうかを確認なし

ページナビゲーション:

ツール名説明入力パラメータ
gemini_navigate_to指定された Gemini ページ URL を開く(履歴セッションリンクなど)。gemini.google.com ドメインのみ許可url(ターゲット URL)、timeout(デフォルト 30000ms)

診断 & 復旧:

ツール名説明入力パラメータ
gemini_probeページ要素の状態(入力ボックス、ボタン、モデルなど)を調査なし
gemini_reload_pageページをリフレッシュ(スタックや異常時に使用)timeout(デフォルト 30000ms)
gemini_browser_infoブラウザ接続情報を取得(CDP ポート、wsEndpoint など)なし

典型的な使用例

高速画像生成(ワンステップ):

  1. gemini_generate_image を呼び出し、prompt を渡す → ローカル画像パスが返される

画像生成+共有リンク取得:

  1. gemini_generate_image を呼び出して画像を生成
  2. gemini_share_latest_image を呼び出して公開リンクを返す

柔軟な組み合わせ(細粒度制御):

  1. gemini_new_chat — 新しいセッションを作成
  2. gemini_switch_model → pro — 高品質モデルに切り替え
  3. gemini_upload_images — 参照画像をアップロード
  4. gemini_send_message — 説明文を送信
  5. gemini_get_images → gemini_extract_image — 画像を取得して保存

トラブルシューティング:

  1. gemini_probe — ページ要素が正しく配置されているか確認
  2. gemini_reload_page — ページがスタックしたらリフレッシュ
  3. gemini_browser_info — CDP 情報を取得して自分で接続しデバッグ

MCP クライアント設定

{
  "mcpServers": {
    "gemini": {
      "command": "node",
      "args": ["<プロジェクトの絶対パス>/src/mcp-server.js"]
    }
  }
}

npm run mcp で手動起動することも可能です。

エラー処理

ツール内部にはすでにリトライロジックが含まれています。それでも失敗した場合、戻り値の isError: true とエラーメッセージが原因を通知します:

  • 生成タイムアウト — ユーザーに説明文を簡略化してから再試行するよう提案
  • デーモンが起動していない — ツールが自動的に起動します。それでも失敗する場合は手動で npm run daemon を実行
  • ページ異常 — gemini_browser_info を呼び出してブラウザの状態を確認し、トラブルシューティング

参考

  • 詳細な実行とフォールバック:references/gemini-flow.md
  • キーワードとルーティング:references/intent-routing.md

関連スキル