IA i MCP

La IA és un mòdul core — cada projecte el té. És bring-your-own-key: cada projecte posseeix un catàleg de proveïdors, i les claus se segellen en repòs amb AES-256-GCM (SVITRIO_SECRETS_KEY); els llistats les emmascaren a una pista de sk…abcd.

Proveïdors

Un proveïdor porta un kind, una clau d'API, un model opcional i un base_url, i les capacitats per a les quals està habilitat. Tipus integrats i els seus valors per defecte:

  • anthropic / claude/v1/messages natiu, per defecte claude-sonnet-4-6.

  • openaigpt-4o-mini; deepseekdeepseek-chat; mistralmistral-large-latest.

  • qwenqwen-plus; zaiglm-4.6.

  • Qualsevol endpoint compatible amb OpenAI a través de base_url (vLLM, Ollama, gateways).

Un proveïdor per projecte pot ser is_default (aplicat transaccionalment — mai dos alhora).

Traducció en línia

El botó «Tradueix amb IA» de l'editor crida el proveïdor per defecte (o l'escollit). El prompt del sistema està acotat per retornar només la cadena traduïda i preservar els marcadors de posició ({var}, %s), l'HTML i el markdown; 1024 tokens màxim, 30 s de timeout, els errors d'upstream es mostren textualment.

El servidor MCP

Qualsevol client MCP (Claude Desktop, Cursor, claude.ai) es pot connectar per JSON-RPC a POST /mcp, autenticat mitjançant un token MCP o el flux OAuth 2.1 (Dynamic Client Registration + PKCE S256). Cada crida torna a resoldre l'abast de projecte del token. Eines:

  • list_pages, list_locales, get_page (retorna les dades de cada bloc, el seu catàleg de camps traduïbles i les sobreescriptures existents).

  • set_translation_meta (títol/slug per idioma) i set_translation_block (sobreescriptures de camps per bloc).

Prompts: translate_page, summarize_page, generate_alt_text. Així, un agent pot traduir tot un lloc, o el teu equip pot fer clic a botons — des de la mateixa configuració.