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)을 단일 stdio MCP 서버로 노출합니다. GeminiDesktop.app을 설치했다면 CLI와 MCP 서버가 이미 들어 있는 상태입니다. npm publish 불필요, pip install 불필요, 글루 코드도 없습니다. Claude Code는 claude mcp add 한 줄로 바로 Gemini Nano Banana 2에 커버 이미지를 만들게 하거나 로컬 RAG를 조회하게 할 수 있습니다.

한 줄 요약: 하나의 Rust 바이너리, 세 가지 진입 모드(GUI / CLI / MCP). Rust + rmcp + stdio가 지금 기준으로 가장 가벼운 구현입니다. BYOK는 환경 변수 우선, Tauri store가 폴백. Claude Code와 Cursor가 REST 래퍼가 아닌 진짜 Gemini 네이티브 도구를 갖게 됩니다.

2026년 MCP 생태계: 누가 서버를 내놓고 누가 안 내놨나

Anthropic이 2024년 말 MCP(Model Context Protocol)를 오픈소스로 공개한 이후, 생태계는 3개 층으로 정착됐습니다.

  • 공식 레퍼런스 층: Anthropic이 modelcontextprotocol/servers에서 filesystem / github / slack / puppeteer를 유지. 품질은 높지만 커버리지가 좁다.
  • 커뮤니티 래퍼 층: 개인 개발자들이 @modelcontextprotocol/sdk로 REST API를 감싼다. 품질이 제각각이며 Gemini, Claude, OpenAI는 아직도 first-party MCP 서버를 내놓지 않았다.
  • 제품 내장 층: Linear, Sentry 같은 SaaS 벤더가 자사 앱에 MCP 서버를 박아 두고 있어, 설치만 하면 이미 존재한다.

GeminiDesktop은 세 번째 길을 택했습니다. 앱을 설치하면 /Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop mcp가 자동으로 엔트리 포인트로 존재합니다. Claude Code / Cursor 사용자 입장에서 가장 마찰이 적은 연결 방식입니다.

왜 Rust + rmcp + stdio인가

MCP 서버 구현의 현실적인 3가지 스택:

스택 콜드 스타트 바이너리 크기 재사용성 적합한 용도
Node + @modelcontextprotocol/sdk 300-800ms(Node 부팅 포함) 별도 패키지 ~50MB 독립 프로토타입, 독립 서버
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 서브커맨드 분기를 하나만 추가하면, Gemini API 호출 로직이 GUI와 공유됩니다. 버그를 한 번 고치면 세 진입점에 동시 반영됩니다.

stdio 전송 방식도 자연스럽습니다. Claude Code, Cursor, Continue 같은 주요 MCP 클라이언트는 모두 자식 프로세스를 spawn해서 stdio로 통신하기 때문에 HTTP 포트나 OAuth가 필요 없습니다.

단일 바이너리: GeminiDesktop.app을 설치하면 이미 들어 있음

전통적인 방식은 “GUI 다운로드 + 별도로 npm install @xxx/mcp-server“입니다. 사용자가 두 번 설치, 두 번 업데이트, 두 번 API 키 설정을 해야 합니다. GeminiDesktop의 방식은 다릅니다.

# GeminiDesktop.app 설치 후, 같은 바이너리가 세 개의 진입 모드를 제공합니다
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop           # GUI 모드
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop chat      # CLI 모드
/Applications/GeminiDesktop.app/Contents/MacOS/GeminiDesktop mcp       # MCP 모드

세 모드가 공유하는 것:

  • 설정: 동일한 Tauri store(~/Library/Application Support/app.geminidesktop.desktop/)
  • API 키: GUI에서 한 번 설정하면 CLI와 MCP가 그대로 사용
  • 캐시: Gemini 모델 목록, embedding 캐시, RAG 인덱스도 공유
  • 업그레이드: Tauri updater가 GUI를 업데이트하면 CLI와 MCP도 같이 업데이트

사용자 관점: 한 번 설치하면 셋 다 동작. 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: 한 줄 설치

Claude Code 0.6+는 claude mcp add로 커맨드라인에서 서버를 등록할 수 있습니다.

# 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 이 나오면 성공

그다음 아무 Claude Code 대화창에서:

> 방금 쓴 README용 커버 이미지 만들어줘, 1600x900 가로.

Claude가 자동으로 generate_image를 선택하고 뒤에서 Nano Banana 2를 호출, 파일을 프로젝트에 저장하고 경로를 돌려줍니다. 터미널을 떠날 필요가 없습니다.

Cursor settings.json 한 블록

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에서 한 번 설정, CLI/MCP가 그대로 상속, 제로 컨피그

실전: Claude Code에서 Gemini로 커버 이미지 + 로컬 RAG 조회

전형적인 블로그 집필 루프:

[you]    "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)
         
         이 노트들을 바탕으로 아웃라인:...

[you]    좋아, H2 섹션마다 커버 이미지 한 장씩.

[claude] geminidesktop.generate_image x 5 호출 중...
         ./images/에 5장 저장했습니다.

Claude가 로컬 컨텍스트(RAG)와 멀티모달 생성(Gemini)을 동시에 얻으며, 이 모든 것은 하나의 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가 하나의 바이너리를 공유”하도록 해서 설정과 캐시를 최대한 재사용하게 했습니다. 반드시 headless만 필요하다면 GitHub release의 headless 빌드를 쓸 수 있지만 auto-update는 없습니다.

Q3: Windows / Linux 지원은?

A: macOS와 Windows는 first-class. Linux는 커뮤니티가 유지하는 AppImage로 MCP 모드도 동일하게 사용 가능합니다.

지금 시작하기