Welsh proofing/validation MCP server — deterministic spelling (hunspell cy_GB) and mutation (treiglad) checking, 100% offline
Four well-defined Welsh proofing tools with clear, domain-specific descriptions (avg 180 chars). All tools have complete input schemas with typed parameters and descriptions. Output schemas are documented via Pydantic models (SpellingReport, MutationReport, ProofReport, MutationIssue). Tool names follow verb_noun pattern (check_*, explain_*). All tools marked read-only via ToolAnnotations. Main gaps: no error recovery guidance in descriptions, no pagination/limits documented for large text, and parameter constraints (MAX_TEXT_LENGTH=50k) not surfaced in tool descriptions.
Check Welsh text for mutation (treiglad) errors: soft (meddal), nasal (trwynol) and aspirate (llaes), plus yn/ym/yng form agreement. Deterministic rules engine — each finding cites the trigger word, the rule (bilingually), corrected form(s) and a confidence level.
Spellcheck Welsh text against the hunspell cy_GB dictionary (fully offline). Returns each misspelling with its position and up to 5 suggestions.
Explain which mutation (if any) applies to a word in its context and why. Reports whether the word is a radical or mutated form, the trigger rule (bilingually), a verdict, and the word's full mutation table.
Full proofing pass over Welsh text: spelling and mutation checks combined. Use this as the final verification step for drafted Welsh content.
Text length limit (50k chars) enforced in code but not documented in tool descriptions. LLMs cannot infer this constraint and may attempt to pass oversized text, triggering validation errors.
Error messages are actionable (e.g., 'Text is empty. Pass the Welsh text you want checked.') but tool descriptions do not mention error conditions or recovery paths. LLMs cannot plan for failure modes.
cymraeg_explain_mutation returns a bare dict (not a typed Pydantic model). Output schema is not documented, forcing LLMs to infer response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
No batch variants offered. If an LLM needs to check spelling for 10 separate Welsh phrases, it must call cymraeg_check_spelling 10 times sequentially, wasting tokens and latency.
Mutation confidence levels (high/medium/low) are returned but not explained in tool descriptions. LLMs cannot reason about when to trust low-confidence findings.