Toto je starší verze dokumentu!


OpenCode: MCP server pro generování obrázků přes Gemini

Potřeboval jsem v OpenCode zprovoznit MCP server, který umí generovat obrázky přes Gemini, a chtěl jsem to mít reprodukovatelné v projektech bez úniku API klíče do gitu. Začal jsem s nano-banana-pro MCP serverem, ale kvůli limitacím se zdrojovými obrázky jsem přešel na ultimate-gemini-mcp.

  • Mám nainstalovaný OpenCode a používám konfiguraci opencode.json.
  • Mám přístup ke Gemini API klíči (GEMINI_API_KEY).
  • Pro variantu nano-banana-pro mám k dispozici npx (Node.js).
  • Pro variantu ultimate-gemini-mcp mám k dispozici uv/uvx.

Takto jsem měl nakonfigurovaný MCP server v opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
      "nano-banana-pro": {
        "type": "local",
        "command": ["npx", "-y", "@rafarafarafa/nano-banana-pro-mcp@latest"],
        "environment": {
          "GEMINI_API_KEY": "{file:./gemini.key}"
        }
      }
    }
}

Konfiguraci si zálohuji přes git, proto jsem nechtěl, aby byl klíč přímo v opencode.json. Použil jsem referenci na soubor: - "GEMINI_API_KEY": "{file:./gemini.key}"

Tím držím tajemství mimo repozitář a v gitu zůstává jen reprodukovatelná konfigurace.

Soubor gemini.key musí být umístěn ve stejném adresáři jako konfigurační soubor a musí obsahovat čistě API klíč.

Volání MCP serveru funguje tak, že se zavolá příkaz npx -y @rafarafarafa/nano-banana-pro-mcp@latest a zároveň se provede případná aktualizace MCP serveru.

Takto ověřím, zda OpenCode přijal konfiguraci MCP serveru:

opencode mcp list
 
┌  MCP Servers
│
●  ✓ nano-banana-pro connected
│      npx -y @rafarafarafa/nano-banana-pro-mcp@latest
│
└  1 server(s)

Pokud server není globálně, musím spouštět příkaz v projektové složce, ve které mám konfiguraci.

Protože jsem MCP serveru nemohl dávat zdrojové obrázky, spoléhal na base64 na vstupu a to by musel LLM poslat textově nesmyslně dlouhý řetězec, zvolil jsem jiný MCP server: - https://github.com/anand-92/ultimate-image-gen-mcp

Pro instalaci jsem musel nainstalovat nejdříve uvw a pak nainstalovat MCP server:

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
 
# Install and run the server
uvx ultimate-gemini-mcp

Takto vypadá moje konfigurace opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
      "ultimate-gemini-mcp": {
        "type": "local",
        "command": ["uvx", "ultimate-gemini-mcp@latest"],
        "environment": {
          "GEMINI_API_KEY": "{file:./gemini.key}",
          "OUTPUT_DIR": "/home/ubuntu/gemini_images"
        }
      }
  },
  "tools": {
    "ultimate-gemini-mcp_*": false
  }
}

Musel jsem nastavit výstupní složku. Je nastavena na defaultní ~/gemini_images, ale raději jsem ji dal do absolutní cesty a dal jsem informace i agentovi.

Prakticky mi to zjednodušuje práci napříč projekty: absolutní cesta neřeší, odkud OpenCode/MCP server běží, a výsledky ukládám konzistentně na jedno místo.

Tím, že je na konci latest, tak by se měl MCP server automaticky aktualizovat.

Protože mám agenta přímo na psaní promptů pro nano banana, rozhodl jsem se MCP server zpřístupnit jenom jemu.

Udělám to ve dvou krocích: - Globálně zakážu přístup všem agentům přes tools v opencode.json (pattern ultimate-gemini-mcp_*). - V konfiguraci konkrétního agenta přístup explicitně povolím (poslední pravidlo přebíjí).

Tady je konfigurace agenta:

---
description: Orchestrates the complete website creation workflow from initial inputs to final HTML, managing 5 specialized subagents through a structured pipeline. Supports both single-page and multi-page websites with shared design system.
mode: primary
permission:
  task:
    "*": "deny"
    "01-strategicky-analytik": "allow"
    "02-informacni-architekt": "allow"
    "03-web-design-director": "allow"
    "04-konverzni-copywriter": "allow"
    "05-frontend-developer": "allow"
permission:
  external_directory:
    "/home/ubuntu/gemini_images": "allow"
    "/home/ubuntu/gemini_images/*": "allow"
---

Agenta budu volat z různých projektů, tak jsem mu dal i právo přístupu do složky gemini_images, aby se mě pořád neptal na svolení.

  • Neukládám GEMINI_API_KEY do opencode.json; používám {file:./gemini.key}.
  • gemini.key nepřidávám do gitu; typicky ho dávám do .gitignore (doporučení) a sdílím ho jen bezpečným kanálem.
  • OUTPUT_DIR držím mimo repozitář a beru ho jako pracovní výstupní složku.
  • opencode mcp list neukazuje server: spouštím příkaz v projektové složce, kde mám opencode.json (pokud konfiguraci nemám globálně).
  • Server je nakonfigurovaný, ale negeneruje výstupy: ověřím, že existuje a je zapisovatelný adresář nastavený v OUTPUT_DIR.
  • Autentizace nefunguje: ověřím, že gemini.key leží vedle opencode.json a obsahuje pouze samotný API klíč bez dalších znaků.

Zprovoznil jsem MCP generování obrázků v OpenCode nejdřív přes nano-banana-pro a po narážení na limitace se vstupními obrázky jsem přešel na ultimate-gemini-mcp s explicitním OUTPUT_DIR a kontrolou přístupů na úrovni agentů.

  • ai/platformy/opencode/gemini-mcp.1773320831.txt.gz
  • Poslední úprava: 2026/03/12 13:07
  • autor: Petr Nosek