Toto je starší verze dokumentu!
Higgsfield MCP v Claude Code a OpenCode
Vytvořeno: 2.5.2026 | Aktualizováno: 02.05.2026 08:04
Higgsfield MCP je oficiální MCP konektor pro generování obrázků a videí přes Higgsfield. Oficiální návod používá endpoint https://mcp.higgsfield.ai/mcp a autentizaci přes Higgsfield účet, ne API key/API secret.
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 a nakonec pomohlo použít token získaný přes Claude Code.
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.
Claude Code
V Claude Code stačí nakonfigurovat vzdálený HTTP MCP server:
claude mcp add --transport http higgsfield https://mcp.higgsfield.ai/mcp
Ekvivalentní ruční konfigurace v ~/.claude.json:
"higgsfield": {
"type": "http",
"url": "https://mcp.higgsfield.ai/mcp"
}
Po restartu Claude Code se autentizace spustí přes /mcp. Claude Code otevře OAuth odkaz, uživatel se přihlásí do Higgsfield účtu a token se uloží do Claude credentials.
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://localhost:65498/callback
Proto bylo nutné zajistit, aby se prohlížeč na hostitelském systému dostal na port 65498 v kontejneru. Jinak se sice otevře autorizační odkaz, ale callback po přihlášení se nemá kam vrátit.
Typicky to znamená publikovat port při spuštění kontejneru:
docker run -p 127.0.0.1:65498:65498 ...
Nebo v docker-compose.yml:
ports: - "127.0.0.1:65498:65498"
Pokud se port doplní až dodatečně, je potřeba kontejner znovu vytvořit/restartovat podle použitého Docker workflow.
OpenCode: první pokus přes OAuth
Do /home/ubuntu/.config/opencode/opencode.json jsem nejdřív přidal Higgsfield jako remote MCP server s OAuth:
"higgsfield": {
"type": "remote",
"url": "https://mcp.higgsfield.ai/mcp",
"oauth": {},
"enabled": true
}
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 'openid'.
Otevřená autorizační URL mířila na Clerk:
https://clerk.higgsfield.ai/oauth/authorize?...&scope=openid+profile+email&resource=https://mcp.higgsfield.ai/
Problém byl v tom, že OpenCode posílal scope openid, který Higgsfield/Clerk pro daného dynamicky registrovaného klienta nepovolil.
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é:
serverUrl:https://mcp.higgsfield.ai/mcpclientId: předregistrovaný klient Claude CoderedirectUri:http://localhost:65498/callback- scope včetně
openid,profile,emailaoffline_access
OpenCode naproti tomu použil vlastní OAuth flow s jiným callbackem, například:
http://127.0.0.1:19876/mcp/oauth/callback
Když jsem se pokusil použít stejný clientId jako Claude Code, vznikla jiná chyba:
{"error":"invalid_request","error_description":"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. The 'redirect_uri' parameter does not match any of the OAuth 2.0 Client's pre-registered redirect urls."}
To dává smysl: předregistrovaný klient Claude Code má povolený callback pro Claude Code, ne callback OpenCode. Přepsání clientId tedy samo o sobě nestačí.
Co nezabralo
Zkoušel jsem:
- nechat OpenCode udělat OAuth automaticky přes
oauth: {} - přidat do OpenCode stejný
clientId, který použil Claude Code - zkusit nastavit scope bez
openid
Ani poslední úprava nezabrala. V mém setupu zůstal problém v OAuth toku OpenCode: buď se požadoval nepovolený scope openid, nebo neseděl redirect_uri vůči použitému klientovi.
Funkční 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 z Claude Code credentials
- uložit ho do souboru pro OpenCode
- v OpenCode vypnout OAuth flow a posílat token jako statický Bearer header
Token se nachází v souboru:
/home/ubuntu/.claude/.credentials.json
V sekci mcpOAuth je položka pro Higgsfield. Token se dá bezpečně zkopírovat do samostatného souboru bez vypisování tokenu do terminálu:
import json from pathlib import Path credentials_path = Path("/home/ubuntu/.claude/.credentials.json") target_path = Path("/home/ubuntu/.config/opencode/higgsfield.token") with credentials_path.open() as f: data = json.load(f) for item in data.get("mcpOAuth", {}).values(): if item.get("serverName") == "higgsfield" or item.get("serverUrl") == "https://mcp.higgsfield.ai/mcp": token = item["accessToken"] break else: raise SystemExit("Higgsfield token nebyl v Claude Code credentials nalezen") target_path.write_text(token.strip() + "\n") target_path.chmod(0o600)
OpenCode konfigurace pak vypadá takto:
"higgsfield": {
"type": "remote",
"url": "https://mcp.higgsfield.ai/mcp",
"headers": {
"Authorization": "Bearer {file:./higgsfield.token}"
},
"oauth": false,
"enabled": true
}
Soubor higgsfield.token je relativní k adresáři s opencode.json, tedy v tomto případě:
/home/ubuntu/.config/opencode/higgsfield.token
Tím se OAuth flow v OpenCode úplně obejde a OpenCode použije již existující token získaný přes Claude Code.
Ověření
Po úpravě konfigurace je potřeba restartovat OpenCode nebo otevřít novou session, aby se konfigurace znovu načetla.
Základní kontrola:
opencode mcp list
Pokud se později začne vracet 401 Unauthorized, nejpravděpodobnější příčina je expirovaný token. Pak je potřeba znovu provést přihlášení v Claude Code přes /mcp a zkopírovat nový accessToken do higgsfield.token.
Rychlý troubleshooting pro budoucí řešení
Chyba: scope openid není povolený
Příznak:
The OAuth 2.0 Client is not allowed to request scope 'openid'.
Význam: OpenCode vytvořil nebo použil OAuth klienta, který nemá povolený scope openid, ale autorizační URL tento scope obsahuje.
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.
Chyba: redirect_uri nesedí
Příznak:
The 'redirect_uri' parameter does not match any of the OAuth 2.0 Client's pre-registered redirect urls.
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 http://localhost:65498/callback, zatímco OpenCode používal http://127.0.0.1:19876/mcp/oauth/callback.
Rychlé řešení: Nepoužívat Claude Code clientId přímo v OpenCode, pokud nejde zároveň změnit callback na předregistrovanou hodnotu. Použít hotový token přes Bearer header.
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 65498 z kontejneru na 127.0.0.1:65498 na hostu a OAuth zopakovat.
Poznámky k bezpečnosti
- Token nikdy neukládat přímo do
opencode.json. - Soubor
higgsfield.tokendržet mimo git a nastavit mu práva jen pro uživatele. - Token v článku, logu ani chatu nevypisovat.
- Pokud token expiruje nebo je kompromitovaný, znovu se přihlásit přes Claude Code a token obnovit.
Shrnutí
Claude Code fungoval, protože použil předregistrovaný OAuth flow a callback localhost:65498. V Dockeru bylo nutné tento port publikovat na hosta. OpenCode v mém prostředí narazil na OAuth problémy se scope openid a redirect_uri. Praktický workaround je zkopírovat Higgsfield access token z Claude Code credentials, uložit ho do ~/.config/opencode/higgsfield.token a v OpenCode posílat Authorization: Bearer {file:./higgsfield.token} s oauth: false.