GeminiDesktop GeminiDesktop
ガイド

GeminiDesktop MCP サーバー 2026:Claude Code / Cursor から Gemini ネイティブツールを直呼び

公開日 · 著者: GeminiDesktop Team

GeminiDesktop MCP サーバー 2026:Claude Code / Cursor から Gemini ネイティブツールを直呼び

結論から言うと: GeminiDesktop は Gemini エコシステムで最も価値のある 9 つのネイティブ能力(chat / generate_image / generate_video / generate_music / tts / embed / generate_audio_overview / rag_index / rag_query)を 1 本の stdio MCP サーバーとして公開します。GeminiDesktop.app をインストール済みなら、CLI も MCP サーバーもすでに入っています。npm publish 不要、pip install 不要、グルーコードゼロ。Claude Code なら claude mcp add を 1 行流すだけで、コードを書きながら Gemini に Nano Banana 2 でカバー画像を作らせたり、ローカル RAG を叩いたりできます。

ワンライナー: 1 本の Rust バイナリ、3 つの入口モード(GUI / CLI / MCP)。Rust + rmcp + stdio は現時点で最も軽い実装。BYOK は環境変数優先、Tauri store はフォールバック。Claude Code と Cursor が REST ラッパーではなく本物の Gemini ネイティブツールを手に入れます。

2026 年の MCP エコシステム:誰が server を出していて誰が出していないか

MCP(Model Context Protocol)は 2024 年末に Anthropic がオープンソース化して以降、3 層のエコシステムに落ち着きました。

  • 公式リファレンス層:Anthropic が modelcontextprotocol/servers で filesystem / github / slack / puppeteer を維持。品質は高いがカバレッジは狭い。
  • コミュニティラッパー層:個人開発者が @modelcontextprotocol/sdk で REST API を包む。品質はまちまちで、Gemini・Claude・OpenAI は今も first-party MCP server を出していない。
  • 製品同梱層:Linear や Sentry のように自社アプリに MCP server を組み込んでおり、インストールすれば既にある状態。

GeminiDesktop は第三の道を選びました。アプリをインストールすれば自動的に /Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop mcp が入口として存在します。Claude Code / Cursor ユーザーにとって最も摩擦の少ない接続方法です。

なぜ Rust + rmcp + stdio を選んだか

MCP サーバー実装の現実的な 3 つのスタック:

スタック 起動時間 バイナリサイズ 再利用性 向いている用途
Node + @modelcontextprotocol/sdk 300-800ms(Node 起動込み) 別パッケージ ~50MB 独立 プロトタイプ、スタンドアロン server
Python + mcp 500-1000ms 別デプロイ 独立 データサイエンス系
Rust + rmcp crate + stdio < 50ms GUI バイナリを再利用、追加 0 GUI / CLI と同プロセス・同コード 製品同梱型 MCP

GeminiDesktop はもともと Tauri 2.x + Rust のデスクトップアプリです。rmcp crate(公式 Rust SDK)を入れて main.rsmcp サブコマンドを 1 本追加するだけで、Gemini API 呼び出しのロジックは GUI と共有されます。バグ修正も 1 か所で済み、3 つのエントリー全部に同時反映されます。

stdio トランスポートの選択も自然です。Claude Code、Cursor、Continue といった主要 MCP クライアントはすべて子プロセスを spawn して stdio で通信するため、HTTP ポートも OAuth もいりません。

単一バイナリ:GeminiDesktop.app を入れれば同梱済み

従来は「GUI をダウンロード + 別に npm install @xxx/mcp-server」という手順でした。ユーザーは 2 回インストール・2 回アップデート・2 回 API キー設定が必要です。GeminiDesktop では:

# GeminiDesktop.app インストール後、同じバイナリが 3 つの入口モードを提供
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop           # GUI モード
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop chat      # CLI モード
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop mcp       # MCP モード

3 モードで共有されるもの:

  • 設定:同じ Tauri store(~/Library/Application Support/app.geminidesktop.desktop/
  • API キー:GUI で 1 度設定すれば CLI/MCP でもそのまま使える
  • キャッシュ:Gemini のモデル一覧、embedding キャッシュ、RAG インデックスも共有
  • アップグレード:Tauri の updater が GUI を更新すると CLI と MCP も同時に更新

ユーザー視点:1 度のインストールで 3 つとも動く。npm publish なし、バージョンずれなし。

公開される 9 つのツール

ツール名 機能 典型的な用途
chat 通常の Gemini チャット Claude が書いたコードのセカンドオピニオン
generate_image Imagen / Nano Banana 2 で画像生成 ブログ執筆中のカバー画像
generate_video Veo 3 テキスト→動画 プロダクトデモクリップ、ヒーロー動画
generate_music Lyria によるサウンドトラック ポッドキャストのイントロ、動画 BGM
tts Gemini TTS(多声・多言語) 記事→ポッドキャスト、音声デモ
embed gemini-embedding-001(768 次元) クライアント側 RAG 前処理
generate_audio_overview NotebookLM 風ダブルホストポッドキャスト 長文を 10 分の通勤ポッドキャストに
rag_index ファイル/フォルダをローカル sqlite-vec に索引 Claude が編集中のコードベースを索引
rag_query ローカル sqlite-vec から top-k 検索 「ノートから XXX の実装を探して」

前 7 つは Gemini のクラウド能力、後ろ 2 つは GeminiDesktop 独自の ローカル RAG です — アップロードせずに、すべてローカルの SQLite ファイルに入ります。実装詳細は ローカル sqlite-vec RAG:50 万字のノートを 200 MB ファイルで索引化 を参照してください。

Claude Code:1 行でインストール

Claude Code 0.6 以降は claude mcp add でコマンドラインから server を登録できます:

# macOS
claude mcp add geminidesktop -- /Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop mcp

# Windows
claude mcp add geminidesktop -- "C:\Program Files\GeminiDesktop\GeminiDesktop.exe" mcp

# 検証
claude mcp list
# geminidesktop (stdio) - 9 tools available が出れば OK

あとは Claude Code の任意の会話で:

> 書き終わった README 用にカバー画像を作って、1600x900 の横長で。

Claude が自動で generate_image を選び、裏で Nano Banana 2 を呼び、画像をプロジェクトに保存してパスを返してくれます。ターミナルを離れる必要はありません。

Cursor settings.json 1 ブロック

Cursor 0.46 以降は MCP をネイティブサポートします。~/.cursor/settings.json に以下を追加:

{
  "mcp": {
    "servers": {
      "geminidesktop": {
        "command": "/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop",
        "args": ["mcp"],
        "env": {}
      }
    }
  }
}

Claude Code との違い:

  • Claude Code:CLI 駆動(claude mcp add)、~/.claude/mcp.json に保存
  • Cursor:手動で JSON 編集、管理 CLI はまだない
  • 共通:stdio トランスポート、同じバイナリ、共有 API キー

Cursor Composer(Cmd+I)で「generate an image of…」と言えば、自動で該当 MCP ツールを選んでくれます。

BYOK の優先順位:環境変数 > Tauri store

GeminiDesktop の API キー解決順序:

  1. GEMINI_API_KEY 環境変数(最優先)— CI、一時的な上書き、プロジェクト別キーに最適
  2. Tauri store~/Library/Application Support/app.geminidesktop.desktop/config.json)— GUI で設定した永続キー
  3. エラー — Google がホストする共有キーへフォールバックしない(クォータ漏れ防止)

この順序の利点:

  • プロジェクトごとに別キーを使いたいとき、export GEMINI_API_KEY=xxx してから Claude Code / Cursor を起動するだけ
  • CI/チーム共有:Tauri store にキーを書かない(rsync や誤コミットのリスク)、env で注入
  • 個人ユーザー:GUI で 1 度設定、CLI/MCP はすべてそのキーを継承、設定ゼロ

実践:Claude Code で Gemini に配図させつつ RAG を叩く

典型的なブログ執筆フロー:

[あなた] 「React Server Components で AI チャットを作る」という
         ブログを書いてる。まず ~/notes の RSC 関連ノートを探して。

[Claude] geminidesktop.rag_query を呼びます...
         高スコアのノート 3 件:
         1. 2025-11-20-rsc-streaming.md (score 0.89)
         2. 2025-09-03-ai-chat-patterns.md (score 0.84)
         3. 2026-02-14-use-server-actions.md (score 0.78)
         
         これらを踏まえたアウトライン:...

[あなた] いいね、各 H2 セクションにカバー画像を 1 枚ずつ。

[Claude] geminidesktop.generate_image x 5 を呼びます...
         ./images/ に 5 枚保存しました。

Claude がローカル文脈(RAG)と マルチモーダル生成(Gemini)を同時に得ており、すべては 1 本の MCP バイナリ経由です。別タブも、キー切り替えも、グルーコードも不要。

詳細な実装メモは geminidesktop.appClaude Code Skills を GeminiDesktop に移行する方法 を参照してください。

よくある質問

Q1: Gemini の REST API を直接叩くのと何が違うのですか?

A: REST だと fetch を書き、auth を処理し、rate limit を管理する必要があります。MCP はそれらを「ツール」にカプセル化し、Claude Code / Cursor が会話文脈から自動で呼びます。コード不要、グルー不要です。

Q2: GeminiDesktop を入れずにこの MCP サーバーだけ使えますか?

A: 現状は不可です。設計上「GUI + CLI + MCP が 1 本のバイナリを共有」にすることで設定とキャッシュを最大限再利用しています。どうしても headless だけが必要なら GitHub release に headless ビルドがありますが、auto-update は付きません。

Q3: Windows / Linux サポートは?

A: macOS と Windows はファーストクラス。Linux はコミュニティ維持の AppImage で、MCP モードも同様に利用可能です。

今すぐ始める