A Model Context Protocol (MCP) server that provides access to Sarvam's language processing capabilities. This server enables LLMs to perform tasks such as translation, language identification, and transliteration, specifically supporting translation between English and Indic languages, as well as transliteration across different scripts.
Three tools with basic schemas and descriptions, but significant quality gaps. Tool names follow verb_noun pattern (translate_text, identify_language, transliterate_text) which is good. However, descriptions are minimal (10-50 chars), parameter descriptions contain formatting errors and inconsistencies, and schema definitions have type mismatches (e.g., output_script and numerals_format declared as arrays but descriptions suggest single enum values). No error handling guidance, no output schema documentation, and no indication of what fields are returned. Parameters lack proper constraints and validation messaging.
Text for which the language should be identified. The detected language will be either English or one of the supported Indic languages.
Translates the given text from English or any Indic language to any Indic language or English.
Transliterates the given text from one language script to another language script.
Parameter descriptions are extremely brief (10-50 chars) and lack actionable guidance. 'Text to translate' and 'Text for which the language should be identified' do not explain constraints, formats, or when to use the tool vs alternatives.
Schema type mismatches: output_script and numerals_format are declared as arrays in JSON Schema but descriptions list them as single enum values (FORMAL, COLLOQUIAL_MODERN, etc.). This creates ambiguity, should the LLM pass ['FORMAL'] or 'FORMAL'?
No output schema documented. Tool descriptions do not specify what fields are returned (e.g., does translate_text return {translated_text, confidence, language_detected}?). LLMs cannot plan downstream calls without knowing response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
No error handling or recovery guidance. Code shows validation (e.g., 'Invalid argument: target_language') but tool descriptions do not explain what errors are possible or how to recover. LLMs receive raw RuntimeError with no context.
Parameter descriptions contain formatting artifacts and inconsistencies. 'Must be one of the supported languages: ENGLISH, HINDI BENGALI, GUJARATI...' has spacing issues (HINDI BENGALI should be HINDI, BENGALI). Descriptions also repeat enum values instead of using formal constraints.