IA y MCP
La IA es un módulo core — cada proyecto lo tiene. Es bring-your-own-key: cada proyecto posee un catálogo de proveedores, y las claves se sellan en reposo con AES-256-GCM (SVITRIO_SECRETS_KEY); los listados las enmascaran a una pista de sk…abcd.
Proveedores
Un proveedor lleva un kind, una clave de API, un model opcional y un base_url, y las capacidades para las que está habilitado. Tipos integrados y sus valores por defecto:
anthropic/claude→/v1/messagesnativo, por defectoclaude-sonnet-4-6.openai→gpt-4o-mini;deepseek→deepseek-chat;mistral→mistral-large-latest.qwen→qwen-plus;zai→glm-4.6.Cualquier endpoint compatible con OpenAI a través de
base_url(vLLM, Ollama, gateways).
Un proveedor por proyecto puede ser is_default (aplicado transaccionalmente — nunca dos a la vez).
Traducción en línea
El botón «Traducir con IA» del editor llama al proveedor por defecto (o al elegido). El prompt del sistema está acotado para devolver solo la cadena traducida y preservar los marcadores de posición ({var}, %s), el HTML y el markdown; 1024 tokens máximo, 30 s de timeout, los errores de upstream se muestran textualmente.
El servidor MCP
Cualquier cliente MCP (Claude Desktop, Cursor, claude.ai) puede conectarse por JSON-RPC en POST /mcp, autenticado mediante un token MCP o el flujo OAuth 2.1 (Dynamic Client Registration + PKCE S256). Cada llamada vuelve a resolver el alcance de proyecto del token. Herramientas:
list_pages,list_locales,get_page(devuelve los datos de cada bloque, su catálogo de campos traducibles y las sobrescrituras existentes).set_translation_meta(título/slug por idioma) yset_translation_block(sobrescrituras de campos por bloque).
Prompts: translate_page, summarize_page, generate_alt_text. Así, un agente puede traducir todo un sitio, o tu equipo puede hacer clic en botones — desde la misma configuración.