Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Gemini MCP

von chrischallVersion 2.5.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.chrischall/gemini-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Generate and edit images with Google Gemini (Nano Banana / Nano Banana Pro) image models.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Design, Bilder & Audio
  • Das musst du eintragen: GEMINI_API_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: GEMINI_API_KEY, GEMINI_IMAGE_MODEL, GEMINI_OUTPUT_DIR, GEMINI_INPUT_DIR, GEMINI_UPLOAD_DIR, GEMINI_REFERENCE_DIR, GEMINI_TIMEOUT_MS, GEMINI_HEARTBEAT_MS, GEMINI_CHAIN_RETRY_MS, GEMINI_DEBUG, GEMINI_RATE_CARD

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "gemini": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/gemini-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-value",
        "GEMINI_IMAGE_MODEL": "your-value",
        "GEMINI_OUTPUT_DIR": "your-value",
        "GEMINI_INPUT_DIR": "your-value",
        "GEMINI_UPLOAD_DIR": "your-value",
        "GEMINI_REFERENCE_DIR": "your-value",
        "GEMINI_TIMEOUT_MS": "your-value",
        "GEMINI_HEARTBEAT_MS": "your-value",
        "GEMINI_CHAIN_RETRY_MS": "your-value",
        "GEMINI_DEBUG": "your-value",
        "GEMINI_RATE_CARD": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add gemini --env GEMINI_API_KEY=your-value --env GEMINI_IMAGE_MODEL=your-value --env GEMINI_OUTPUT_DIR=your-value --env GEMINI_INPUT_DIR=your-value --env GEMINI_UPLOAD_DIR=your-value --env GEMINI_REFERENCE_DIR=your-value --env GEMINI_TIMEOUT_MS=your-value --env GEMINI_HEARTBEAT_MS=your-value --env GEMINI_CHAIN_RETRY_MS=your-value --env GEMINI_DEBUG=your-value --env GEMINI_RATE_CARD=your-value -- npx -y @chrischall/gemini-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "gemini": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/gemini-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-value",
        "GEMINI_IMAGE_MODEL": "your-value",
        "GEMINI_OUTPUT_DIR": "your-value",
        "GEMINI_INPUT_DIR": "your-value",
        "GEMINI_UPLOAD_DIR": "your-value",
        "GEMINI_REFERENCE_DIR": "your-value",
        "GEMINI_TIMEOUT_MS": "your-value",
        "GEMINI_HEARTBEAT_MS": "your-value",
        "GEMINI_CHAIN_RETRY_MS": "your-value",
        "GEMINI_DEBUG": "your-value",
        "GEMINI_RATE_CARD": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "gemini": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/gemini-mcp"
      ],
      "env": {
        "GEMINI_API_KEY": "your-value",
        "GEMINI_IMAGE_MODEL": "your-value",
        "GEMINI_OUTPUT_DIR": "your-value",
        "GEMINI_INPUT_DIR": "your-value",
        "GEMINI_UPLOAD_DIR": "your-value",
        "GEMINI_REFERENCE_DIR": "your-value",
        "GEMINI_TIMEOUT_MS": "your-value",
        "GEMINI_HEARTBEAT_MS": "your-value",
        "GEMINI_CHAIN_RETRY_MS": "your-value",
        "GEMINI_DEBUG": "your-value",
        "GEMINI_RATE_CARD": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • GEMINI_API_KEY geheim env
    Your Google Gemini API key (aistudio.google.com/apikey)
  • GEMINI_IMAGE_MODEL env
    Override the default image model (default: gemini-nano-banana-2.1)
  • GEMINI_OUTPUT_DIR env
    Default directory for generated images (default: ~/Downloads/gemini-mcp). When set, a per-call output_dir must be inside it.
  • GEMINI_INPUT_DIR env
    Directory to resolve bare input-image filenames against
  • GEMINI_UPLOAD_DIR env
    Restrict local-file uploads to the Gemini Files API to these directories (path.delimiter-separated; unset = unrestricted)
  • GEMINI_REFERENCE_DIR env
    Restrict local reference images (images / image paths sent to Gemini) to these directories (path.delimiter-separated), plus GEMINI_OUTPUT_DIR. Unset: GEMINI_UPLOAD_DIR applies; if that is unset too,…
  • GEMINI_TIMEOUT_MS env
    Upstream request timeout in ms (default: 60000, or 120000 for image_size: "4K"); each generation tool also takes a per-call timeout_ms
  • GEMINI_HEARTBEAT_MS env
    Progress-notification cadence in ms while a generation runs (default: 10000; 0 disables) — keeps MCP hosts that reset their timeout on progress from timing out long generations
  • GEMINI_CHAIN_RETRY_MS env
    How long to wait out interactions-store lag when a chained call 404s (default: 120000; 0 disables retrying)
  • GEMINI_DEBUG env
    When set, emit heartbeat diagnostics to stderr. Off by default.
  • GEMINI_RATE_CARD env
    Override/extend the shipped USD-per-1M-token rates used by gemini_token_usage's cost estimate, e.g. {"gemini-3-pro-image":{"input":2,"text_output":12,"image_output":120}}. Malformed JSON is ignored (…

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto chrischall bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Design, Bilder & Audioi

  • Mehr Sterne als 0 % der anderen 2202 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 98 % der anderen 2202 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 2202 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Gemini MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: GEMINI_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (2.5.0) kam heute in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Läuft auf deinem Computer★ 16.165MITAktualisiert vor 5 Monaten
Installieren

Claude Real Video

von HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Läuft auf deinem Computer★ 2.284MITAktualisiert vor 2 Monaten
Installieren

The Figma MCP server brings Figma design context directly into your AI workflow.

Läuft in der Cloud★ 2.152Aktualisiert vor 13 Monaten
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

gemini-mcp

MCP server for Google Gemini media generation. Exposes thirteen tools to Claude over stdio: list available models, generate/edit/compose images, generate a consistent set of images from a master prompt, multi-turn image refinement (Interactions API), video generation (omni), music generation (Lyria), an async result poll for long generations, and Files API upload/list/delete for reusable image references. Output is written to disk by default (path returned) or returned inline as base64. Built on the Gemini v1beta API (generativelanguage.googleapis.com) using the Nano Banana / Nano Banana Pro (images), omni (video), and Lyria (music) model families.

Developed and maintained by AI (Claude Code).

Environment Variables

VariableRequiredDescription
GEMINI_API_KEYYesYour Google Gemini API key (aistudio.google.com/apikey)
GEMINI_IMAGE_MODELNoOverride the default image model (default: gemini-nano-banana-2.1)
GEMINI_OUTPUT_DIRNoDefault directory for generated images (default: ~/Downloads/gemini-mcp). When set, a per-call output_dir must be inside it.
GEMINI_INPUT_DIRNoDirectory to resolve bare input-image filenames against (so images: ["foo.jpg"] works)
GEMINI_UPLOAD_DIRNoRestrict local files streamed to the Gemini Files API (gemini_upload_file path, video_path) to these directories — one or more, separated by : (; on Windows); ~ allowed. A path outside is refused before any upload. Unset: no restriction
GEMINI_REFERENCE_DIRNoRestrict local reference images (the images / master_images paths read and sent to Gemini — inline, or as a Files API upload once reused) to these directories — :-separated (; on Windows), ~ allowed; GEMINI_OUTPUT_DIR is always allowed too, so generated images can be fed back in. A path outside (symlinks followed) is refused before it is read. Unset: GEMINI_UPLOAD_DIR applies instead. If both are unset, reference images are unrestricted on a local install (any file the server can read can be sent), and confined to $MCP_DATA_DIR/uploads when MCP_DATA_DIR is set (hosted)
GEMINI_TIMEOUT_MSNoUpstream request timeout in ms (default: 60000, or 120000 for image_size: "4K"); each generation tool also takes a per-call timeout_ms
GEMINI_HEARTBEAT_MSNoProgress-notification cadence in ms while a generation runs (default: 10000; 0 disables) — keeps MCP hosts that reset their timeout on progress from timing out long generations
GEMINI_CHAIN_RETRY_MSNoHow long to wait out interactions-store lag when a chained call 404s (default: 120000; 0 disables retrying)
Confirmations

Sending a local file to Google (the images / master_images / video_path inputs, or gemini_upload_file's path) and every delete ask for confirmation first. A client that can show a confirmation prompt (Claude Code) gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. Elsewhere the first call does nothing and returns a preview (the resolved local paths with their MIME types and sizes, or the method/path being deleted) plus a confirmToken; only a repeat call with the same arguments and that token proceeds. The token is single-use, expires, and is bound to the exact arguments — a changed prompt or a swapped file between the two calls is refused. Pure text prompts, URLs, files/ references and base64 inputs are not gated.

variabledefault
MCP_CONFIRM_MODEask-userWhat a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE path. Set it for a client that claims to support prompts but never shows one (the gated call hangs — opencode 2.0.x). Any other value stays on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.
Long generations and client timeouts

4K / Pro-model generations can outrun an MCP host's own tools/call timeout (error -32001). The server sends notifications/progress heartbeats so hosts that reset their timeout on progress wait it out. If the host still gives up, the server-side generation usually completes anyway: the image is written to the output dir, gemini_interact also writes an .json sidecar recording the interaction_id, and continue_last: true resumes the interaction the lost response belonged to.

When a chained call 404s

A 404 on a request carrying previous_interaction_id is not proof the chain expired. The only 404 body observed live is generic — "Requested entity was not found." — and never names *which* entity. An unknown or renamed model id, and an expired Files API `files/…` uri (~48h TTL), return exactly the same thing. So the server no longer asserts a cause it can't establish: the upstream text is surfaced verbatim, and gemini_interact runs an experiment to find out which it was.

Most often the id isn't missing at all — it just isn't *visible* yet. The interactions store is eventually consistent, and a freshly created id can 404 while the same id resolves fine minutes later; heavy turns (4K, Pro, thinking_level: high) are the likeliest to hit it, which is exactly the turn you most want to chain from. So a chained 404 is retried with exponential backoff for up to 120s (GEMINI_CHAIN_RETRY_MS) before anything is declared broken. The 404 generates nothing and isn't billed, so the wait costs only time.

After that budget is spent, the tool looks up that id's sidecar, re-attaches the image it produced, and re-issues the request without the chain:

  • The re-issue succeeds → the chain really was the problem, and you get your image anyway, reported as chain_recovered: { expired_interaction_id, reanchored_on }. The 404'd attempt generates nothing, so this costs the one generation you'd have paid for re-anchoring manually.
  • The re-issue 404s too → the interaction id was never the cause. You get told exactly that, with the upstream text, and pointed at the model id and any files/… uri instead of being sent to chase an interaction that was fine all along.
  • No sidecar matches the dead id → the original error, rather than a guess. Re-anchoring on the wrong picture would silently corrupt the edit.

Separately, continue_last no longer dies with the server process: with no in-memory id it resumes from the newest .json sidecar in the output dir and reports continued_from_sidecar: true. That case was never an expired chain at all — the interaction was alive upstream the whole time; only our memory of its id was gone.

For hosts whose timeout can't be tamed (e.g. Claude Desktop, a fixed ~30s cap that ignores progress), two guards make re-issuing safe and unnecessary:

  • `async: true` returns a job_id immediately instead of the image, so the call can't time out at all; poll gemini_get_result with the job_id until it's done.
  • `idempotency_key` makes a repeat call idempotent — a retry with the same key returns the recorded result (reused: true) instead of billing a second generation. (Even without a key, two identical in-flight calls are deduplicated automatically.)

Tools

ToolDescription
gemini_list_modelsList available Gemini image models and the current default
gemini_image_generateGenerate image(s) from a text prompt
gemini_image_editOne-off edits or multi-image composition with a text instruction (for a series of edits, use gemini_interact)
gemini_image_setGenerate a master image plus N consistent images referencing it
gemini_interactPreferred tool for iterative refinement: multi-turn generation/editing via the Interactions API — chain the returned interaction_id via previous_interaction_id (or continue_last: true)
gemini_video_generateGenerate a short video (text→video, image→video, two-still interpolation, edit or extend) via the Gemini omni model; resolution 360p/720p/1080p/4k is the cost lever; written to disk as MP4
gemini_music_generateGenerate music from a text prompt via a Lyria model — lyria-3-clip-preview (30s, default), lyria-3.5 (full-length, vocals) or lyria-3-pro-preview; single-turn; written to disk as MP3
gemini_get_resultFetch an async generation started with async: true by its job_id (status running → done result). Lets a long generation outlive a host's tools/call timeout
gemini_token_usageToken usage and an estimated USD cost for this session so far. Call it before and after a workflow and subtract to attribute that workflow's spend. Priced per call against each call's own model from a dated rate card (GEMINI_RATE_CARD overrides it); there is no account-balance endpoint to read, so this is how spend is attributed
gemini_upload_fileUpload an image (or video/audio) to the Gemini Files API once — from a url, data_base64, or a local path — and get a reusable files/ reference
gemini_list_filesList the files currently uploaded under this API key, with MIME types and expiry times
gemini_delete_fileDelete an uploaded file before its ~48h expiry (confirmed first — see Confirmations)
gemini_sign_media*(hosted deployments only)* Mint a fresh signed URL for generated media from its r2_key — an expired link is not a dead end
gemini_view_media*(hosted deployments only)* Return a generated image as an inline image block from its r2_key, so a model can actually see what it made before refining it
gemini_get_upload_url*(hosted deployments only)* Mint a short-lived signed PUT URL so a shell can upload a reference image with no auth header; the PUT returns an r2_key usable in images_r2_keys, gemini_save_character, or gemini_upload_file
gemini_save_character / gemini_list_characters / gemini_delete_character*(hosted deployments only)* Persistent per-account character library: save a reference image + description under a name, then pass characters: ["name"] on generation tools. No expiry
gemini_save_style / gemini_list_styles / gemini_delete_style*(hosted deployments only)* Persistent per-account style presets: a reusable prompt fragment (optionally with a reference image), applied by passing style: "name" on generation tools. No expiry

Generation tools also share three throughput/latency controls: async: true (return a job_id immediately), max_wait_ms (wait up to a budget, then hand back the job_id — fast results stay in-band, slow batches never trip the host timeout), and idempotency_key (a retry returns the recorded result instead of re-billing). On a hosted deployment, a gemini_image_set result with more than one image also carries a `bundle_url` — one sig

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen