Hosted Cloudflare Worker for the Ainu-language MCP server with GitHub-OAuth gating and Turso/libSQL reference store
ainu-mcp provides 10 tools with consistent naming (verb_noun pattern: dictionary_lookup, corpus_search, morpheme_search, etc.) and reasonable descriptions (avg ~80 chars). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented in the source code, parameter descriptions lack detail about constraints/formats, and error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. The server targets a specialized linguistic domain with well-scoped tools, but lacks production-grade polish in schema completeness and error recovery patterns.
Search the Ainu language corpus for example sentences and usage
Look up Ainu words in the reference dictionary
Add a new entry to the Ainu glossary (org members only)
Look up entries in the Ainu glossary
Update an existing glossary entry (org members only)
Search the Ainu grammar reference materials
Search for Ainu morphemes and their decompositions
Generate or look up inflected forms of Ainu words (possessed nouns, plural verbs, derivations)
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Look up Ainu words') but do not specify the structure of the response object, field names, or types. LLMs cannot plan downstream tool calls or extract data without knowing response shape.
Parameter descriptions lack constraint details. 'query' and 'term' parameters have minimal descriptions (e.g., 'Ainu word or phrase to look up') but do not specify format, length limits, character restrictions, or examples.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Find the base form and inflection type for a given Ainu word form
Search for inflected forms in the morphology database
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The server correctly classifies tools as READ_ONLY or WRITE in metadata, but does not expose these via MCP tool annotations. This prevents clients from understanding operation safety without parsing descriptions.
No error recovery guidance. Tool descriptions do not explain what to do if a lookup fails (e.g., 'If term not found, try corpus_search() with a partial phrase'). Per pattern:recovery-guide, errors should guide the LLM to the next step.
Optional parameters lack clear defaults. 'dictionary' (dictionary_lookup) and 'dialect' (corpus_search) are optional but descriptions do not state what happens if omitted (e.g., 'defaults to all dictionaries' or 'searches all dialects'). Ambiguous defaults force LLM guessing.