Japanophile MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jp_utilsA | Japan-locale utilities: kana_convert | era_to_year | year_to_era. kana_convert: text=kana string, target=romaji|hiragana|katakana. Romaji is standard Hepburn (gojuon + digraphs + sokuon doubling + chouonpu vowel repeat) — see caveats in the conversion docstring. era_to_year: era=meiji|taisho|showa|heisei|reiwa, era_year=N -> western year. year_to_era: year=western year -> {era, era_year} (year-granularity; see _ERA_TABLE note on transition-year handling). |
| rememberA | Review support over your own JLPT answer history: streak | due. streak: consecutive days (ending today) with >=1 jlpt/answer logged for
session_id. due: question_ids answered at least once but never correctly —
a simple missed-question queue, NOT a full SM-2/FSRS spaced-repetition
scheduler (see PRD.md open question on SRS algorithm choice; this reads
the same data/progress.db |
| crossconnectB | Fleet crossconnects: speak | voices | library_search | media_search. Each proxies a sibling MCP server's REST API (speech-mcp :10909, calibre-mcp :10720, plex-mcp :10740 by default, override via SPEECH_MCP_URL/CALIBRE_MCP_URL/ PLEX_MCP_URL). Peer offline returns a fail() with a start hint, not a traceback — see PHILE_PATTERN.md crossconnects section. speak: text=... plays via speech-mcp's TTS on ITS OWN speaker (agent voice output), not returned audio. Defaults provider=gemini (noticeably better than Windows SAPI); pass provider="windows" if Gemini isn't configured on speech-mcp. library_search: query and/or tag against Sandra's Calibre library. media_search: query (+ optional media_type) against her Plex library. |
| kanjiB | Kanji dictionary: lookup | search | by_jlpt | by_grade | by_radical | random. lookup: query=single kanji char. search: query=English meaning fragment. by_jlpt: level=N5..N1. by_grade: grade=1..8. by_radical: radical=char. random: optional level filter. |
| jlptB | JLPT quiz: next | answer | progress. next: random unseen question for level (N5..N1, falls back to any level). answer: grade question_id with letter; records to progress store. progress: session score summary. |
| vocabB | Vocabulary: search | by_jlpt | examples. Needs the big kanji.db (135MB, fetched). search: expression/reading/translation fragment. by_jlpt: jlpt_vocabulary level. examples: query against the 278k-row examples table (Japanese sentence, English translation, linked words) — vendored with kanji.db but previously unqueried. |
| knowledgeC | Knowledge box: list | get. collection=culture (default, 29 history/travel/food pages) or collection=language (grammar/vocabulary/keigo/exams/materials study pages — same vendored assets/language/ the webapp Language tab reads). |
| japanophile_helpB | List tools, data status, and next steps for agents and IDEs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a clearly separate domain: quiz, kanji, vocabulary, knowledge, utilities, review, fleet proxies, and help. Even where subcommands like 'search' or 'by_jlpt' reappear, their target resources are explicit and non-overlapping.
Tool names are short lowercase domain labels with consistent subcommands, which is a recognizable and predictable pattern. Minor deviations like jp_utils and japanophile_help using underscores while others do not prevent a perfect score.
8 tools is well within the ideal range, and each tool bundles several related subcommands without creating namespace sprawl. Every tool earns its place in the overall Japan-study and utility workflow.
The core loop of learning kanji/vocabulary, taking JLPT quizzes, reviewing mistakes, and accessing reference material is well covered. Minor gaps exist: the review tool is deliberately not a full spaced-repetition system, and grammar material is only available as static knowledge pages rather than an interactive lookup.