Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
| ai:mcp:servery:higgsfield-mcp-v-claude-code-a-opencode [04.05.2026 08:50] – odstraněno Petr Nosek | ai:mcp:servery:higgsfield-mcp-v-claude-code-a-opencode [09.05.2026 07:17] (aktuální) – Oprava dvojitého escapování URL v tabulce Petr Nosek | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | ====== Higgsfield MCP v Claude Code a OpenCode ====== | ||
| + | |||
| + | // | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Tento zápisek popisuje konkrétní nasazení v Claude Code a OpenCode běžících v Dockeru. Důležité je hlavně zachytit rozdíl: v Claude Code OAuth proběhl rychle, zatímco v OpenCode se objevily chyby kolem OAuth scope. Nakonec fungovaly dvě cesty: device flow s tokenem platným jen 24 hodin a praktičtější převzetí delšího tokenu z Claude Code. Vedle remote MCP dnes existují i dvě oficiální navazující cesty: [[https:// | ||
| + | |||
| + | ===== Výchozí stav ===== | ||
| + | |||
| + | Cíl byl připojit Higgsfield MCP do dvou klientů: | ||
| + | |||
| + | * Claude Code | ||
| + | * OpenCode | ||
| + | |||
| + | Higgsfield na své MCP stránce uvádí, že není potřeba spravovat API klíče. API key a API secret z Higgsfield API proto nejsou totéž jako autentizace pro oficiální MCP endpoint. Pro MCP se používá OAuth přihlášení přes Higgsfield účet. | ||
| + | |||
| + | Dnes je dobré rozlišovat tři oficiální vrstvy: | ||
| + | |||
| + | * **remote MCP endpoint** – integrace přes '' | ||
| + | * **Higgsfield CLI** – oficiální terminálový nástroj '' | ||
| + | * **Higgsfield AI Skills** – Markdown skills pro agenty, které obalují práci s Higgsfield CLI a dávají agentovi konkrétní workflow pro generování, | ||
| + | |||
| + | ===== Oficiální Higgsfield CLI ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Důležité: | ||
| + | |||
| + | ==== Instalace ==== | ||
| + | |||
| + | README uvádí několik instalačních cest. | ||
| + | |||
| + | macOS / Linux přes instalační skript: | ||
| + | |||
| + | <code bash> | ||
| + | curl -fsSL https:// | ||
| + | </ | ||
| + | |||
| + | macOS / Linux přes Homebrew: | ||
| + | |||
| + | <code bash> | ||
| + | brew install higgsfield-ai/ | ||
| + | </ | ||
| + | |||
| + | Cross-platform instalace přes npm: | ||
| + | |||
| + | <code bash> | ||
| + | npm install -g @higgsfield/ | ||
| + | </ | ||
| + | |||
| + | Po instalaci se provede přihlášení: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield auth login | ||
| + | </ | ||
| + | |||
| + | ==== Základní použití ==== | ||
| + | |||
| + | Jednoduché vygenerování obrázku s čekáním na výsledek: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield generate create nano_banana_2 --prompt "a quiet beach at sunrise" | ||
| + | </ | ||
| + | |||
| + | Příklad pro Nano Banana Pro: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield generate create nano_banana_2 \ | ||
| + | --prompt " | ||
| + | --aspect_ratio 16:9 \ | ||
| + | --resolution 2k \ | ||
| + | --wait | ||
| + | </ | ||
| + | |||
| + | Příklad pro video přes Kling v3.0 se vstupním obrázkem: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield generate create kling3_0 \ | ||
| + | --prompt "slow camera push through a forest clearing at dawn" \ | ||
| + | --start-image ./first.png \ | ||
| + | --duration 5 --mode pro --sound off \ | ||
| + | --wait | ||
| + | </ | ||
| + | |||
| + | ==== Hlavní příkazy ==== | ||
| + | |||
| + | Podle README CLI obsahuje tyto skupiny příkazů: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Praktické flagy: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Příklad pipeline s JSON výstupem: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield generate list --json | jq -r '.[] | select(.status==" | ||
| + | </ | ||
| + | |||
| + | ==== Vztah k MCP integraci ==== | ||
| + | |||
| + | Pro Claude Code a OpenCode jsou tím pádem tři praktické varianty: | ||
| + | |||
| + | - **MCP endpoint** – nejlepší, pokud MCP klient zvládne OAuth vůči '' | ||
| + | - **Oficiální CLI** – vhodné, pokud agent umí spouštět shell příkazy a stačí mu příkaz '' | ||
| + | - **Neoficiální lokální MCP wrappery** – až fallback, pokud je potřeba MCP rozhraní, ale remote OAuth nefunguje a zároveň nestačí CLI. | ||
| + | |||
| + | ===== Oficiální Higgsfield AI Skills ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Instalace skills ==== | ||
| + | |||
| + | Doporučená cross-agent instalace: | ||
| + | |||
| + | <code bash> | ||
| + | npx skills add higgsfield-ai/ | ||
| + | </ | ||
| + | |||
| + | Alternativa přes GitHub CLI 2.90+: | ||
| + | |||
| + | <code bash> | ||
| + | gh skill install higgsfield-ai/ | ||
| + | </ | ||
| + | |||
| + | Instalace přes Claude Code marketplace: | ||
| + | |||
| + | < | ||
| + | /plugin marketplace add higgsfield-ai/ | ||
| + | /plugin install higgsfield@higgsfield | ||
| + | </ | ||
| + | |||
| + | Fallback přes clone repozitáře: | ||
| + | |||
| + | <code bash> | ||
| + | git clone --depth 1 https:// | ||
| + | cd skills | ||
| + | ./setup | ||
| + | </ | ||
| + | |||
| + | ==== Dostupné skills ==== | ||
| + | |||
| + | Repozitář aktuálně popisuje čtyři hlavní skills: | ||
| + | |||
| + | ^ Skill ^ Vyvolání ^ Účel ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Důležitý princip: skills neřeší jen jednorázový příkaz. Dávají agentovi workflow – například nejdřív natrénovat Soul ID a potom ho použít v generování nebo v Marketing Studio jobech. | ||
| + | |||
| + | ==== Kdy použít skills místo přímého MCP ==== | ||
| + | |||
| + | Skills dávají smysl hlavně tehdy, když: | ||
| + | |||
| + | * agent umí načíst Markdown skills a spouštět shell příkazy | ||
| + | * je potřeba agentovi dát konkrétní pracovní postup místo ručního skládání parametrů | ||
| + | * stačí CLI workflow a není nutné mít každý Higgsfield endpoint jako samostatný MCP tool | ||
| + | * jde o opakované úlohy typu produktové fotky, marketplace karty, Soul ID nebo branded ad video | ||
| + | |||
| + | Pro čisté MCP workflow dál platí sekce níže. Pro agentní práci, kde je povolené volání terminálu, je ale oficiální kombinace **Higgsfield CLI + Higgsfield AI Skills** preferovaná před komunitními lokálními wrappery. | ||
| + | |||
| + | ===== Claude Code ===== | ||
| + | |||
| + | V Claude Code stačí nakonfigurovat vzdálený HTTP MCP server: | ||
| + | |||
| + | <code bash> | ||
| + | claude mcp add --transport http higgsfield https:// | ||
| + | </ | ||
| + | |||
| + | Ekvivalentní ruční konfigurace v '' | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Po restartu Claude Code se autentizace spustí přes ''/ | ||
| + | |||
| + | ==== Docker a callback port 65498 ==== | ||
| + | |||
| + | Claude Code v mém prostředí běží v Dockeru. Při OAuth flow Claude Code vytvořil callback adresu: | ||
| + | |||
| + | < | ||
| + | http:// | ||
| + | </ | ||
| + | |||
| + | Proto bylo nutné zajistit, aby se prohlížeč na hostitelském systému dostal na port '' | ||
| + | |||
| + | Typicky to znamená publikovat port při spuštění kontejneru: | ||
| + | |||
| + | <code bash> | ||
| + | docker run -p 127.0.0.1: | ||
| + | </ | ||
| + | |||
| + | Nebo v '' | ||
| + | |||
| + | <code yaml> | ||
| + | ports: | ||
| + | - " | ||
| + | </ | ||
| + | |||
| + | Pokud se port doplní až dodatečně, | ||
| + | |||
| + | ===== OpenCode: první pokus přes OAuth ===== | ||
| + | |||
| + | Do ''/ | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | OpenCode pak spustil OAuth flow, ale v prohlížeči se objevila chyba: | ||
| + | |||
| + | < | ||
| + | The requested scope is invalid, unknown, or malformed. The OAuth 2.0 Client is not allowed to request scope ' | ||
| + | </ | ||
| + | |||
| + | Otevřená autorizační URL mířila na Clerk: | ||
| + | |||
| + | < | ||
| + | https:// | ||
| + | </ | ||
| + | |||
| + | Problém byl v tom, že OpenCode posílal scope '' | ||
| + | |||
| + | ===== Proč Claude Code fungoval a OpenCode ne ===== | ||
| + | |||
| + | Claude Code použil předregistrovaného OAuth klienta pro Higgsfield. V uložených credentials bylo vidět, že Claude Code měl pro Higgsfield uložené: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * scope včetně '' | ||
| + | |||
| + | OpenCode naproti tomu použil vlastní OAuth flow s jiným callbackem, například: | ||
| + | |||
| + | < | ||
| + | http:// | ||
| + | </ | ||
| + | |||
| + | Když jsem se pokusil použít stejný '' | ||
| + | |||
| + | < | ||
| + | {" | ||
| + | </ | ||
| + | |||
| + | To dává smysl: předregistrovaný klient Claude Code má povolený callback pro Claude Code, ne callback OpenCode. Přepsání '' | ||
| + | |||
| + | ===== Co nezabralo ===== | ||
| + | |||
| + | Zkoušel jsem: | ||
| + | |||
| + | * nechat OpenCode udělat OAuth automaticky přes '' | ||
| + | * přidat do OpenCode stejný '' | ||
| + | * zkusit nastavit scope bez '' | ||
| + | |||
| + | Ani poslední úprava nezabrala. V mém setupu zůstal problém v OAuth toku OpenCode: buď se požadoval nepovolený scope '' | ||
| + | |||
| + | ===== Alternativní funkční cesta: device flow pro OpenCode ===== | ||
| + | |||
| + | Později jsem našel pokyn pro OpenClaw, že Higgsfield MCP podporuje OAuth device flow. To je pro OpenCode zajímavé, protože device flow nepotřebuje lokální '' | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Pro device flow je důležitý server '' | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Ruční spuštění device flow ==== | ||
| + | |||
| + | Získání device kódu: | ||
| + | |||
| + | <code bash> | ||
| + | curl -s https:// | ||
| + | -X POST \ | ||
| + | -H ' | ||
| + | -d ' | ||
| + | </ | ||
| + | |||
| + | Odpověď má tvar: | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Uživatel otevře '' | ||
| + | |||
| + | <code bash> | ||
| + | curl -s https:// | ||
| + | -X POST \ | ||
| + | -H ' | ||
| + | -d ' | ||
| + | </ | ||
| + | |||
| + | Po úspěšném potvrzení se vrátí Bearer token: | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Tento token je možné uložit do stejného souboru, který používá OpenCode: | ||
| + | |||
| + | <code bash> | ||
| + | install -m 600 /dev/null / | ||
| + | # do souboru zapsat pouze access_token, | ||
| + | </ | ||
| + | |||
| + | OpenCode konfigurace zůstává stejná jako u Bearer workaroundu: | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Nevýhoda device flow ==== | ||
| + | |||
| + | Device flow se podařilo dokončit a token fungoval, ale v odpovědi byl parametr: | ||
| + | |||
| + | < | ||
| + | " | ||
| + | </ | ||
| + | |||
| + | To znamená platnost jen 24 hodin. Navíc device flow nevrací refresh token, takže tiché obnovení není možné – každý den by bylo nutné opakovat celý flow s prohlížečem. Proto jsem se po testu vrátil k tokenu převzatému z Claude Code credentials, | ||
| + | |||
| + | ===== Preferovaný workaround: token z Claude Code pro OpenCode ===== | ||
| + | |||
| + | Protože Claude Code už měl vůči Higgsfield úspěšně získaný OAuth token, nejrychlejší funkční řešení bylo: | ||
| + | |||
| + | - vytáhnout Higgsfield access token a refresh token z Claude Code credentials | ||
| + | - uložit je do souborů pro OpenCode | ||
| + | - v OpenCode vypnout OAuth flow a posílat access token jako statický Bearer header | ||
| + | |||
| + | **Access token** má vždy platnost **24 hodin** – pevně dané na straně Higgsfield serveru, nedá se změnit. Claude Code při OAuth flow ukládá vedle access tokenu i **refresh token**: ten je dlouhodobý a slouží k tichému získání nového access tokenu bez opakovaného přihlašování v prohlížeči. Oba tokeny je při první extrakci potřeba uložit. Jak využít refresh token k automatickému obnovování, | ||
| + | |||
| + | Token se nachází v souboru: | ||
| + | |||
| + | < | ||
| + | ~/ | ||
| + | </ | ||
| + | |||
| + | V sekci '' | ||
| + | |||
| + | <code python> | ||
| + | import json | ||
| + | from pathlib import Path | ||
| + | |||
| + | credentials_path = Path.home() / " | ||
| + | target_path = Path.home() / " | ||
| + | refresh_path = Path.home() / " | ||
| + | |||
| + | with credentials_path.open() as f: | ||
| + | data = json.load(f) | ||
| + | |||
| + | for item in data.get(" | ||
| + | if item.get(" | ||
| + | access_token = item[" | ||
| + | refresh_token = item.get(" | ||
| + | break | ||
| + | else: | ||
| + | raise SystemExit(" | ||
| + | |||
| + | target_path.write_text(access_token.strip()) | ||
| + | target_path.chmod(0o600) | ||
| + | print(f" | ||
| + | |||
| + | if refresh_token: | ||
| + | refresh_path.write_text(refresh_token.strip()) | ||
| + | refresh_path.chmod(0o600) | ||
| + | print(f" | ||
| + | else: | ||
| + | print(" | ||
| + | </ | ||
| + | |||
| + | OpenCode konfigurace pak vypadá takto: | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Soubory '' | ||
| + | |||
| + | Tím se OAuth flow v OpenCode úplně obejde a OpenCode použije již existující token získaný přes Claude Code. | ||
| + | |||
| + | ===== Automatická obnova tokenu přes refresh token ===== | ||
| + | |||
| + | Higgsfield vydává access tokeny vždy s platností **24 hodin**. Při prvním OAuth flow Claude Code ale uloží do credentials dva tokeny: | ||
| + | |||
| + | * **access_token** – krátkodobý Bearer token pro API volání, vyprší za 24 hodin | ||
| + | * **refresh_token** – dlouhodobý token pro tiché obnovení; nepotřebuje prohlížeč ani přihlašování | ||
| + | |||
| + | Refresh flow funguje tak, že skript zavolá Higgsfield OAuth token endpoint s refresh tokenem. Server vydá nový access token a obvykle i rotovaný refresh token (starý se nahradí novým). | ||
| + | |||
| + | ==== Refresh skript ==== | ||
| + | |||
| + | Uložit jako '' | ||
| + | |||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | # Refreshes Higgsfield OAuth access token using stored refresh token. | ||
| + | # Higgsfield issues tokens with 24h validity; run this every ~20h via cron. | ||
| + | |||
| + | set -euo pipefail | ||
| + | |||
| + | REFRESH_TOKEN_FILE=" | ||
| + | ACCESS_TOKEN_FILE=" | ||
| + | CLIENT_ID=" | ||
| + | TOKEN_ENDPOINT=" | ||
| + | |||
| + | REFRESH_TOKEN=$(cat " | ||
| + | |||
| + | RESPONSE=$(curl -s -X POST " | ||
| + | -H " | ||
| + | -d " | ||
| + | |||
| + | ACCESS_TOKEN=$(echo " | ||
| + | NEW_REFRESH_TOKEN=$(echo " | ||
| + | |||
| + | if [ -z " | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | echo -n " | ||
| + | |||
| + | if [ -n " | ||
| + | echo -n " | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | chmod +x ~/ | ||
| + | </ | ||
| + | |||
| + | Ruční spuštění (test nebo při vypršení tokenu): | ||
| + | |||
| + | <code bash> | ||
| + | ~/ | ||
| + | </ | ||
| + | |||
| + | ==== Nastavení cronu na Alpine / busybox ==== | ||
| + | |||
| + | Na Alpine s busyboxem standardní příkaz '' | ||
| + | |||
| + | <code bash> | ||
| + | sudo bash -c 'echo "0 */20 * * * / | ||
| + | sudo chown < | ||
| + | sudo chmod 600 / | ||
| + | </ | ||
| + | |||
| + | Interval '' | ||
| + | |||
| + | Spuštění crond, pokud ještě neběží: | ||
| + | |||
| + | <code bash> | ||
| + | sudo crond -b -l 8 | ||
| + | </ | ||
| + | |||
| + | ==== Automatický start crond po restartu (Alpine / OpenRC) ==== | ||
| + | |||
| + | Pokud má crond startovat automaticky při restartu kontejneru nebo systému, přidá se startup skript do ''/ | ||
| + | |||
| + | <code bash> | ||
| + | sudo bash -c 'cat > / | ||
| + | #!/bin/sh | ||
| + | crond -b -l 8 | ||
| + | EOF | ||
| + | chmod +x / | ||
| + | </ | ||
| + | |||
| + | Při dalším startu systému se crond spustí automaticky. | ||
| + | |||
| + | ===== Okrajová alternativa: | ||
| + | |||
| + | Vedle oficiálního remote endpointu, oficiálního CLI a oficiálních skills existují také neoficiální lokální MCP servery, které neřeší OAuth proti '' | ||
| + | |||
| + | V diskusi jsem porovnával hlavně dva repozitáře od stejného autora: | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Oba projekty používají lokální Python server a credentials z Higgsfield API. Prakticky to znamená, že OpenCode by nepřipojoval '' | ||
| + | |||
| + | ==== Rozdíl mezi oběma repozitáři ==== | ||
| + | |||
| + | ^ Oblast ^ '' | ||
| + | | Zaměření | Jednodušší MCP server pro základní image/video workflow. | Širší MCP server s více parametry a více typy nástrojů. | | ||
| + | | Framework | FastMCP. | Oficiální low-level '' | ||
| + | | Credentials | '' | ||
| + | | Instalace podle README | Clone repozitáře a instalace závislostí přes '' | ||
| + | | Nástroje | Jednodušší názvy jako '' | ||
| + | | Parametry | Méně voleb, rychlejší na pochopení. | Více voleb: rozměry, batch size, seed, reference image, webhooky, motion strength, start/end frame. | | ||
| + | | Video | Image-to-video přes DoP/motion preset. | Image-to-video přes DoP, motions array, end frame. | | ||
| + | | Speech/ | ||
| + | | Character management | Vytvoření a listování character references. | Vytvoření, | ||
| + | | Resources/ | ||
| + | |||
| + | ==== Kdy dává smysl který projekt ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | ==== Důležitý konflikt názvů ==== | ||
| + | |||
| + | Oba repozitáře používají stejný Python import namespace i stejný command/ | ||
| + | |||
| + | < | ||
| + | higgsfield_mcp | ||
| + | higgsfield-mcp | ||
| + | </ | ||
| + | |||
| + | Proto je nedává smysl instalovat vedle sebe do stejného Python prostředí. Pokud by se testovaly oba, je lepší použít oddělené virtualenv/ | ||
| + | |||
| + | ==== Princip konfigurace v OpenCode ==== | ||
| + | |||
| + | Pro lokální MCP server by konfigurace v OpenCode nebyla remote OAuth konfigurace, | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | U projektu '' | ||
| + | |||
| + | <code json> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Výhody a nevýhody lokálních wrapperů ==== | ||
| + | |||
| + | Výhody: | ||
| + | |||
| + | * obejdou problematické OAuth flow v OpenCode | ||
| + | * používají běžné API key/API secret, které se dají uložit přes '' | ||
| + | * běží lokálně a dají se případně upravit | ||
| + | |||
| + | Nevýhody: | ||
| + | |||
| + | * nejsou to oficiální Higgsfield MCP endpointy | ||
| + | * po existenci oficiálního CLI a skills jsou méně preferovaná cesta | ||
| + | * mohou pokrývat jen část funkcí oficiálního MCP konektoru nebo CLI | ||
| + | * je potřeba řešit instalaci Python prostředí a závislostí | ||
| + | * oba porovnávané projekty kolidují názvem balíčku/ | ||
| + | * bezpečnost API key/API secret je na lokální konfiguraci | ||
| + | |||
| + | ===== Ověření ===== | ||
| + | |||
| + | Po úpravě konfigurace je potřeba restartovat OpenCode nebo otevřít novou session, aby se konfigurace znovu načetla. | ||
| + | |||
| + | Základní kontrola: | ||
| + | |||
| + | <code bash> | ||
| + | opencode mcp list | ||
| + | </ | ||
| + | |||
| + | Pokud se později začne vracet '' | ||
| + | |||
| + | * spustit refresh skript '' | ||
| + | * znovu provést přihlášení v Claude Code přes ''/ | ||
| + | * použít device flow, ale počítat s platností tokenu jen 24 hodin a bez možnosti tichého refreshe | ||
| + | |||
| + | Pro oficiální CLI se dá základní funkčnost ověřit samostatně: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield auth login | ||
| + | higgsfield model list | ||
| + | higgsfield generate create nano_banana_2 --prompt "test image" --wait | ||
| + | </ | ||
| + | |||
| + | ===== Rychlý troubleshooting pro budoucí řešení ===== | ||
| + | |||
| + | ==== Chyba: scope openid není povolený ==== | ||
| + | |||
| + | Příznak: | ||
| + | |||
| + | < | ||
| + | The OAuth 2.0 Client is not allowed to request scope ' | ||
| + | </ | ||
| + | |||
| + | Význam: OpenCode vytvořil nebo použil OAuth klienta, který nemá povolený scope '' | ||
| + | |||
| + | Rychlé řešení: Nepokračovat laděním API key/API secret. U oficiálního Higgsfield MCP jde o OAuth. Pokud OpenCode OAuth stále selhává, použít token z Claude Code jako Bearer header. Alternativně lze použít device flow, ale získaný token má jen 24hodinovou platnost a bez refresh tokenu. Pokud není nutné MCP rozhraní, zvážit oficiální Higgsfield CLI a případně Higgsfield AI Skills. | ||
| + | |||
| + | ==== Chyba: redirect_uri nesedí ==== | ||
| + | |||
| + | Příznak: | ||
| + | |||
| + | < | ||
| + | The ' | ||
| + | </ | ||
| + | |||
| + | Význam: Použitý OAuth klient má předregistrovaný jiný callback než ten, který posílá OpenCode. V mém případě Claude Code používal '' | ||
| + | |||
| + | Rychlé řešení: Nepoužívat Claude Code '' | ||
| + | |||
| + | ==== Claude Code auth link se otevře, ale callback neprojde ==== | ||
| + | |||
| + | Příznak: autentizace v prohlížeči proběhne, ale Claude Code v kontejneru token nedostane. | ||
| + | |||
| + | Význam: Port callbacku není dostupný z hostitelského prohlížeče do Docker kontejneru. | ||
| + | |||
| + | Rychlé řešení: publikovat port '' | ||
| + | |||
| + | ==== CLI hlásí Session expired nebo Not authenticated ==== | ||
| + | |||
| + | Příznak: | ||
| + | |||
| + | < | ||
| + | Session expired | ||
| + | Not authenticated | ||
| + | </ | ||
| + | |||
| + | Význam: CLI token expiroval nebo není uložené platné přihlášení. | ||
| + | |||
| + | Rychlé řešení: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield auth login | ||
| + | </ | ||
| + | |||
| + | ==== CLI nezná model ==== | ||
| + | |||
| + | Příznak: | ||
| + | |||
| + | < | ||
| + | Unknown model " | ||
| + | </ | ||
| + | |||
| + | Význam: použitý název modelu není v aktuálním katalogu CLI. | ||
| + | |||
| + | Rychlé řešení: | ||
| + | |||
| + | <code bash> | ||
| + | higgsfield model list | ||
| + | </ | ||
| + | |||
| + | ===== Poznámky k bezpečnosti ===== | ||
| + | |||
| + | * Token nikdy neukládat přímo do '' | ||
| + | * Soubory '' | ||
| + | * Token v článku, logu ani chatu nevypisovat. | ||
| + | * Device flow token má podle testu platnost 24 hodin a neobsahuje refresh token. | ||
| + | * Refresh token může být zneplatněn ze strany Higgsfield (změna hesla, odvolání přístupu) – v takovém případě je nutné provést nový OAuth flow v Claude Code. | ||
| + | * U lokálních wrapperů nad Higgsfield API neukládat API key/API secret přímo do konfigurace; | ||
| + | * Při použití CLI a skills neukládat tokeny ani výstupy s citlivými URL do repozitáře. Pokud se používá '' | ||
| + | |||
| + | ===== Shrnutí ===== | ||
| + | |||
| + | Claude Code fungoval, protože použil předregistrovaný OAuth flow a callback '' | ||
| + | |||
| + | ===== Zdroje ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[ai: | ||