MCP server for translating text between different languages using the Intento Translation API
Single tool 'translate' has a clear verb-noun name and acceptable description (95 chars), but lacks critical depth. Input schema is present with three parameters (text, target_language, source_language), all with type definitions and descriptions. However, output schema is completely undocumented, the tool returns a string but LLMs cannot infer structure or error cases. Parameter descriptions are minimal (10-40 chars) and lack format guidance, constraints, or examples of valid ISO codes. No error handling guidance provided. The tool accepts language names OR ISO codes but does not document the resolution logic or fallback behavior. Missing: output schema documentation, enum constraints for language codes, error recovery guidance, and actionable parameter constraints.
Translate text between different languages. Use ISO codes for the languages. For autodetect, use empty 'from' language.
Output schema completely undocumented. Tool returns a string but LLMs cannot determine success vs error, structure, or what to do with the result. No guidance on error cases (API failure, invalid language, rate limit).
Parameter descriptions lack actionable constraints. 'target_language' says 'ISO code or language name' but does not list valid codes, format rules, or examples. LLMs will guess and pass invalid values.
No error handling guidance. If API fails, tool returns 'Error during translation: <raw exception>', LLM cannot determine if error is retryable, user-fixable, or fatal. No recovery path offered.
Language code resolution logic is opaque. Tool silently falls back to passing the input as-is if not found in cache (line: 'return language_codes_cache.get(language, language)'). LLM has no visibility into whether 'spanish' resolved to 'es' or was passed literally.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Resource 'mcp://intento-translate/language-codes' provides language codes but tool description does not mention it. LLM may not discover that language codes are available as a resource before calling translate.