MCP server for managing Triton translations via AI clients. Provides tools to read, write, search, and manage multilingual translation items in the Triton translation management system for Minecraft servers.
Triton MCP presents a moderately functional translation management interface with 9 well-structured tools. All tools have explicit descriptions and input schemas with typed parameters. However, there are notable gaps in parameter documentation, output schema clarity, and error handling guidance. Tool naming follows verb_noun conventions consistently (get_, list_, find_, search_, upsert_, delete_, reload_). Descriptions are adequate (50-200 char range) but lack context on when to use each tool vs. alternatives and what the response structure contains. Parameter descriptions are sparse, many lack examples, constraints, or guidance on valid formats. Output schemas are not documented in the provided code, forcing LLMs to infer result structure. No error recovery guidance is evident. The DESTRUCTIVE risk classification on delete_item is appropriate, but no confirmation mechanism is shown. Overall, the server is production-capable for read operations but lacks polish for write operations and agent chaining.
Create or update multiple translation items in batch
Delete a translation item by its key
Find a single translation item by its key
Get all translation items in a collection, optionally filtered by type
Get list of all languages configured in Triton
List all translation collections in Triton
Reload all Triton configuration and data from disk
Search translation items by key pattern, content query, missing language, or collection
Output schemas are not documented in source code. LLMs cannot infer what fields get_languages(), list_collections(), or search_items() return. This breaks tool chaining and forces agents to guess at response structure.
Parameter descriptions lack actionable detail. 'keyPattern' says 'Regex pattern to match against item keys' but does not clarify escape requirements, performance impact, or supported regex dialect. 'typeFilter' says 'e.g., CHAT, ITEM_NAME' in examples instead of an enum constraint, inviting hallucinated values.
delete_item is marked DESTRUCTIVE but has no confirmation mechanism, dry-run option, or recovery guidance in its description. The description says 'Delete a translation item by its key' without warning about irreversibility or recommending a backup step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Create or update a single translation item with text in one or more languages
upsert_text_item and batch_upsert_text_items expose optional 'servers' array and 'blacklist' boolean but do not explain the semantics. Does 'servers' list specific servers that should receive the translation, or exclude them? What does 'blacklist: true' mean, is it filter or block-list? Ambiguity forces LLM guessing.
search_items has a 'limit' parameter with default 50, but no description of pagination or how to retrieve more results. Does the tool support offset/cursor? How do you get the next page? No guidance on result size capping or how LLMs should handle truncation.
No tool offers a dry-run or preview capability for write operations. LLMs cannot test upsert_text_item or batch_upsert_text_items without committing data. For agents making bulk updates, this is risky.
Error handling is not documented. What happens if delete_item targets a non-existent key? If upsert_text_item fails partway through a batch in batch_upsert_text_items? No guidance on retryability, partial success, or recovery paths.
Tool names like 'upsert_text_item' are clear, but descriptions do not clarify: Does upsert create a new item if the key does not exist? Does it merge with existing translations or overwrite them? What happens if 'translations' is empty?