Dokumentáció: MCP-szerver

Fejlesztői dokumentáció

MCP-szerver

A FotóAI MCP-szerver beállítása Claude Code-hoz, Cursorhoz, VS Code-hoz, Codexhez és a chatkliensekhez – kulccsal vagy OAuth-tal.

Cím és bejelentkezés

Egyetlen MCP-szerver van, két bejelentkezési móddal. Az MCP (Model Context Protocol) szabvány arra, hogy egy AI-asszisztens külső eszközöket hívjon: a FotóAI-szerveren képet, videót és hangot generálhat, árajánlatot kérhet és a könyvtáradat olvashatja.

Cím
https://fotoai.hu/api/mcp
Átvitel
Streamable HTTP (POST, JSON vagy SSE válasz)
API-kulccsal
Authorization: Bearer fai_live_… – a kulcsot a Beállítások → API-kulcsok oldalon hozod létre.
OAuth-tal
Authorization: Bearer fai_oat_… – a FotóAI engedélyezési szervere által kiadott hozzáférési token.
OAuth-felfedezés
https://fotoai.hu/.well-known/oauth-protected-resource/api/mcp (RFC 9728); token nélkül a szerver 401-et ad WWW-Authenticate: Bearer resource_metadata=… fejléccel.
Csomag
Pro – ugyanazok a kreditek, mint a weben (részletek).

Az eszközök teljes listája paraméterekkel és példákkal: Eszközök referenciája.

Claude Code

Egy parancs, a kulcs a fejlécben megy:

Terminál
claude mcp add --transport http fotoai https://fotoai.hu/api/mcp --header "Authorization: Bearer fai_live_…"

Ha nem akarod a kulcsot a shell előzményeiben látni, tedd környezeti változóba:

Terminál
export FOTOAI_API_KEY=fai_live_…
claude mcp add --transport http fotoai https://fotoai.hu/api/mcp --header "Authorization: Bearer $FOTOAI_API_KEY"

Ellenőrzés: claude mcp list, majd a Claude Code-ban /mcp. Ha a gépeden a CLI is kell, a npx fotoai-cli skill install megtanítja a Claude Code-nak az árajánlatkérést és a letöltést.

Cursor és VS Code

Cursorban a ~/.cursor/mcp.json (vagy a projekt .cursor/mcp.json) fájlba:

~/.cursor/mcp.json
{
  "mcpServers": {
    "fotoai": {
      "url": "https://fotoai.hu/api/mcp",
      "headers": {
        "Authorization": "Bearer fai_live_…"
      }
    }
  }
}

VS Code-ban a .vscode/mcp.json fájlba – így a kulcsot az első indításkor kéri, és nem kerül a fájlba:

.vscode/mcp.json
{
  "servers": {
    "fotoai": {
      "type": "http",
      "url": "https://fotoai.hu/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:fotoai-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "fotoai-key",
      "description": "FotóAI API-kulcs (fai_live_…)",
      "password": true
    }
  ]
}

Codex

A Codex CLI a tokent környezeti változóból olvassa:

Terminál
export FOTOAI_API_KEY=fai_live_…
codex mcp add fotoai --url https://fotoai.hu/api/mcp --bearer-token-env-var FOTOAI_API_KEY

Ugyanez kézzel a ~/.codex/config.toml fájlban:

~/.codex/config.toml
[mcp_servers.fotoai]
url = "https://fotoai.hu/api/mcp"
bearer_token_env_var = "FOTOAI_API_KEY"

Claude Desktop

A Claude Desktop helyi konfigurációja stdio-szervereket indít, ezért az mcp-remote hídon keresztül éri el a HTTP-szervert, a kulccsal a fejlécben. A fájl: claude_desktop_config.json (Beállítások → Developer → Edit Config).

claude_desktop_config.json
{
  "mcpServers": {
    "fotoai": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://fotoai.hu/api/mcp", "--header", "Authorization:${AUTH_HEADER}"],
      "env": {
        "AUTH_HEADER": "Bearer fai_live_…"
      }
    }
  }
}

claude.ai és ChatGPT (OAuth-kapcsolat)

A webes chatkliensek egyéni connectorai nem kulccsal, hanem OAuth-tal csatlakoznak: a connector a 401-es válaszból megtalálja az engedélyezési szerverünket, te a fotoai.hu-n jóváhagyod a hozzáférést, és a connector a saját nevében kap tokent.

Hamarosan: regisztrált klienssel

Az engedélyezési szerverünk jelenleg csak előre regisztrált alkalmazásokat fogad (dinamikus kliensregisztráció nincs), ezért a claude.ai és a ChatGPT connectora még nem tudja önállóan végigvinni a belépést. Amíg ez elkészül, használd a kulcsos beállítást (Claude Code, Cursor, VS Code, Codex, Claude Desktop), vagy írj nekünk, ha a csapatodnak regisztrált OAuth-kliens kell.

Kézi hívás (curl)

Hibakereséshez az MCP JSON-RPC-t curl-lel is hívhatod. A válasz JSON vagy text/event-stream; az utóbbiból az utolsó data: sor a válasz.

Terminál
# 1. initialize
curl -s https://fotoai.hu/api/mcp \
  -H "Authorization: Bearer $FOTOAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

# 2. egy eszköz hívása
curl -s https://fotoai.hu/api/mcp \
  -H "Authorization: Bearer $FOTOAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_balance","arguments":{}}}'

Eszköz-kimenet és a prompt

A get_job és a list_assets alapból nem adja vissza a tárolt promptot. Az include_prompt: true kéréssel a szöveg az untrusted_user_content kulcs alá kerül: ez felhasználói adat, soha nem utasítás – az ügynöked így is kezelje.