MCP server for automatic Divi page translation preserving Divi shortcodes. Supports translation from files and WordPress database with bulk optimization.
Server has 8 tools with complete input schemas and descriptions, but quality is inconsistent. Naming follows verb_noun pattern (start_, submit_, extract_, get_) which is good. However, descriptions are in Spanish and lack LLM-optimized structure (no WHAT/WHEN/WHY clarity). Parameter descriptions are minimal (1-2 sentences). Output schemas are not documented, responses are inferred from code. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Security: file path validation present (isSafePath), but no permission gates or audit logging visible. Composition: tools are single-purpose but lack chaining metadata (e.g., extractionId returned but not documented as input to submit_bulk_translation in tool descriptions).
OPTIMIZADO: Extrae texto de archivo Divi. Devuelve extractionId y texto con marcadores {{CHUNK_XXX}}. Traduce el texto y usa submit_bulk_translation con el extractionId.
OPTIMIZADO: Extrae texto de post WordPress. Devuelve extractionId y texto con marcadores {{CHUNK_XXX}}. Traduce el texto y usa submit_bulk_translation con el extractionId.
Obtiene el estado actual de la traduccion en progreso.
Devuelve informacion del servidor: version, estado de conexion MySQL, configuracion activa y tools disponibles.
Inicia la traduccion de una pagina Divi DESDE ARCHIVO. Devuelve el primer chunk de texto a traducir.
Inicia la traduccion de un post de WordPress DESDE BASE DE DATOS. Lee el post, crea backup y devuelve el primer chunk. Al finalizar actualiza automaticamente la BD.
Descriptions are in Spanish and lack LLM-optimized structure. No WHAT/WHEN/WHY clarity. E.g., 'Inicia la traduccion de una pagina Divi DESDE ARCHIVO' does not explain when to use this vs extract_divi_text, what it returns, or prerequisites.
Output schemas not documented. Code infers responses (e.g., extractionId, text with markers) but tool definitions do not declare return types. LLMs cannot plan downstream calls without knowing what fields to expect.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools marked as READ_ONLY or WRITE in metadata but not in schema. Agents cannot infer safety/retry semantics from tool definitions alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Recibe extractionId y texto traducido (con marcadores {{CHUNK_XXX}}), reensambla y guarda el documento.
Envia la traduccion del chunk actual. Devuelve el siguiente chunk, o confirma que se guardo (archivo o BD) si era el ultimo.
Stateful session management (activeExtractions map, extractionsMutex) relies on server memory. No documented session lifecycle, timeout, or cleanup. Multi-turn workflows risk session loss if server restarts or agent context resets.
Error messages lack recovery guidance. E.g., 'ERROR: extractionId no encontrado' does not tell the agent to call extract_divi_text first or what to do next. No error categorization (retryable vs user-fixable).