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/messagesnatiu, per defecteclaude-sonnet-4-6.openai→gpt-4o-mini;deepseek→deepseek-chat;mistral→mistral-large-latest.qwen→qwen-plus;zai→glm-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) iset_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ó.