Japanophile MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Japanophile MCP Servershow me N5 kanji with the water radical"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
japanophile-mcp
Your Japanophile workstation: kanji/JLPT learning tools, Japanese culture knowledge box, travel and diary on the roadmap. First -phile repo (concept). Polite name on listings; working title was weeaboo, retired to joke status.
Ports: backend 11191, frontend 11192 (Stage 2). Registered in mcp-central-docs/operations/WEBAPP_PORTS.md.
Stage 1 (shipped): MCP server
Five tools, seeds vendored, big DBs fetched:
Tool | Operations | Data |
| lookup, search, by_jlpt, by_grade, by_radical, random | assets/seed/kanji_database.db (13,108 kanji) |
| next, answer, progress | assets/seed/jlpt_questions.db (600 Q + options) |
| search (400k vocab + jmdict), by_jlpt | data/kanji.db, fetched (135MB) |
| list, get (29 pages) | assets/knowledge/japan/*.html |
| tool + data status | - |
{ "mcpServers": { "japanophile-mcp": {
"command": "uv",
"args": ["run", "--directory", "D:\\Dev\\repos\\japanophile-mcp",
"python", "-m", "japanophile_mcp.server"] } } }Big DBs: pwsh -File scripts/fetch_data.ps1 copies kanji.db + wakan_vocab.json from an ai-games-collection checkout into data/ (gitignored). Tools degrade gracefully without them.
Related MCP server: Edition Intelligence Platform
Inheritance
Learn tools (~15 html/js games), 29 knowledge pages, kanji/JLPT seeds, and two docs vendored from ai-games-collection (see docs/INHERITANCE.md). Canonical home for Japanese learning moves here; ai-games-collection keeps playable hanafuda/cho-han via crossconnect. Gamified frontends vendored as static assets under assets/games (self-contained, ~300KB) - no duplication of logic, they read the same seeds.
Roadmap
Stage 2: React webapp (catch-them-all) + chat/skills pages, Tauri NSIS winapp, .mcpb bundle.
Travel planner + diary tools (new builds, mywienerlinien + email patterns).
sinophile-mcp as proof the -phile pattern replicates.
Docs: TOOLS - CONFIGURATION - INHERITANCE - INSTALL
Available Tools
5 toolsjapanophile_helpB
List tools, data status, and next steps for agents and IDEs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'List' implies read-only behavior, but the description does not state whether authentication is needed, whether there are rate limits, or any other behavioral constraints. It also does not clarify if calling it has side effects or what 'next steps' means operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded and contains no filler. Every word contributes to stating what the tool does and for whom.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values. It states the tool's purpose and audience, which is sufficient for a simple, zero-parameter help tool. The missing usage guidance is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description adds no parameter semantics, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (List) and resources (tools, data status, next steps), distinguishing it as a meta/help tool. It does not explicitly differentiate from domain-specific siblings like jlpt or vocab, but the audience 'for agents and IDEs' makes its role apparent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative tools are mentioned. The audience hint implies context, but an agent receives no explicit guidance on when to invoke this help tool instead of directly using sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | N5 | |
| answer | No | ||
| operation | Yes | ||
| session_id | No | default | |
| question_id | No | ||
| response_time_ms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses some important traits: random unseen question selection, level fallback to any level, grading an answer, and recording to a progress store. However, it omits other relevant behaviors such as error handling, validation rules, session persistence, and any auth or rate limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-line summary followed by a clean, line-per-operation breakdown. Every sentence is necessary and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. For a multi-operation tool with six parameters and no annotations or schema descriptions, the definition covers the operation routing but is incomplete on parameter meaning and deeper behavioral context. It is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all six parameters. It covers operation, level (N5..N1), answer (a letter), and question_id, but leaves session_id and response_time_ms completely undefined. The two missing parameters are significant for correct invocation, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the resource (JLPT quiz) and enumerates its three operations (next, answer, progress) with a brief gloss for each. It is clear what the tool does, but it does not differentiate itself from sibling tools like vocab or kanji, which could also relate to Japanese learning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when each operation should be used (next for a new question, answer for grading, progress for a score summary), but it offers no guidance on when to choose this tool over the sibling tools (vocab, knowledge, kanji) or any exclusions. Usage is inferable only from the operation breakdown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| grade | No | ||
| level | No | ||
| limit | No | ||
| query | No | ||
| radical | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden; it states nothing about read-only vs mutating behavior, authentication, rate limits, pagination, or result-count behavior. Output schema exists so return shape is covered, but the operational traits an agent needs before invoking a 6-parameter tool are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operation list is front-loaded, followed by terse per-operation parameter hints with no filler sentences. The fragment style is dense but efficient; nothing is wasted, though the run-on second block could be slightly more scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be described, and the description covers most parameters and all operations. The remaining gaps are the unmentioned 'limit' parameter and the absence of a formal enum for 'operation' (the schema leaves it an open string), which the prose only partially mitigates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 6 parameters, the description compensates well: it explains query semantics (single kanji vs English fragment, varying by operation), level (N5..N1), grade (1..8), and radical (a character). Only 'limit' is left entirely unexplained and the per-operation value constraints are prose rather than schema enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (kanji dictionary) and enumerates six concrete operations (lookup, search, by_jlpt, by_grade, by_radical, random), so an agent immediately knows what the tool is and what verbs it supports. It does not, however, differentiate itself from siblings like jlpt or vocab, which likely overlap on Japanese-language lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It maps each operation to its expected argument form (lookup→single char, search→English fragment, by_jlpt→N5..N1, by_grade→1..8, random→optional level), which implies when each operation applies. But there is no guidance on when to prefer this tool over the sibling jlpt/vocab tools, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledgeC
Culture knowledge box: list | get. Vendored japan/ pages from ai-games-collection.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Vendored' pages implies a static read-only lookup, but this is left for the agent to infer; there is no statement about permissions, mutability, caching, or failure modes for an invalid page/operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is only two short sentences with no filler, and the operation set is front-loaded. However, the brevity crosses into under-specification rather than efficiency, so the compactness is not fully earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. What remains missing is what the tool's content actually is and how 'page' works, both of which an agent needs in order to invoke a 2-parameter tool correctly with a 0%-coverage schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema gives no enum for 'operation'. The description partially compensates by revealing that operation takes 'list' or 'get', but the required 'page' parameter is never mentioned or explained, leaving a required input undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Culture knowledge box') and its two operations ('list | get'), plus the data source ('Vendored japan/ pages from ai-games-collection'). But it never says what a 'knowledge box' actually returns or what domain of culture content it covers, so an agent cannot confidently distinguish it from sibling tools like jlpt or kanji beyond the vague 'culture' label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'list | get' notation implies two modes but gives no condition for choosing one over the other and no guidance on when to prefer this tool over jlpt, vocab, kanji, or japanophile_help. There is no when-to-use or when-not-to-use statement at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vocabB
Vocabulary: search | by_jlpt. Needs the big kanji.db (135MB, fetched).
search: expression/reading/translation fragment. by_jlpt: jlpt_vocabulary level.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| limit | No | ||
| query | No | ||
| operation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses a real operational constraint – the 135MB kanji.db dependency that must be fetched – but says nothing about read-only semantics, latency, or error behavior. Partial credit for the dependency note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded with the resource and operations; each fragment carries information. The terse pipe syntax is slightly cryptic but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the DB dependency is a helpful addition. However, with four parameters at 0% schema coverage, an undefined operation enum, and no usage routing against siblings, the definition is still thinner than the tool's complexity warrants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains query (expression/reading/translation fragment) and level (JLPT level), covering two of four parameters, but leaves limit undocumented and only implicitly lists the operation values. It adds real value yet is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (vocabulary) and its two operations explicitly (search, by_jlpt), so an agent can tell it is a Japanese vocabulary lookup tool with a multiplexed operation switch. It does not distinguish itself from the sibling 'jlpt' tool, whose territory the by_jlpt operation partly overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says what each operation takes but never says when to use vocab vs. jlpt, kanji, or knowledge, nor which operation to pick for which intent. The selection guidance is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
japanophile_help - First observed
jlpt - First observed
kanji - First observed
knowledge - First observed
vocab
TDQS
Scored across 5 tools
Each tool maps to a distinct resource domain: quizzes (jlpt), vocabulary (vocab), kanji dictionary (kanji), culture (knowledge), and help. The only mild overlap is that both vocab and kanji offer by_jlpt filters and text search, but the underlying entities (words vs characters) are clearly separable.
Names are consistently lowercase domain nouns (jlpt, vocab, kanji, knowledge), with actions expressed as sub-operations in the descriptions. Only japanophile_help deviates by using an underscore compound, a minor inconsistency.
Five tools is well-scoped, and each acts as a coherent namespace (quiz, dictionary, vocab, culture, help) rather than proliferating one-tool-per-operation. Every tool clearly earns its place.
The surface covers the core learning loop: quiz practice, vocabulary lookup, kanji lookup by multiple axes, culture reading, and onboarding help. Some gaps exist (e.g. no grammar/sentence tool, kanji has no vocab-style translation search), but agents can work around these.
Maintenance
Related MCP Connectors
- potto-japanOAuthapp.potto
Authoritative JLPT-graded Japanese dataset (kanji, vocab, grammar, history) via MCP and REST.
Jisho.org Japanese-English dictionary MCP (keyless).
Search the Inoh dictionary and create, track and delete your own vocabulary flashcards.
Japan Law MCP — Japanese national laws & ordinances via the e-Gov Law API.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI agents with direct access to local Yomitan dictionary databases for offline Japanese vocabulary lookups, kanji searches, and sentence tokenization. It leverages the Yomitan browser extension's API to enable rich dictionary interactions and Anki flashcard field generation.57 npm6Mozilla Public 2.0
- AlicenseAqualityBmaintenanceJapan Operations OS for AI agents — 14 knowledge domains covering regulations, protocols, calendar, travel, food culture, language, disaster safety, daily life, and persistent memory. 31 MCP tools via REST + Streamable HTTP.31MIT
- AlicenseAqualityDmaintenanceEnables Japanese word lookup and search using the Jisho.org dictionary, providing tools to search entries and retrieve exact word definitions with JLPT levels and parts of speech.22MIT
- AlicenseAqualityAmaintenanceExposes J-STAGE WebAPI as four tools for searching articles, issues, journals, and resolving DOIs, returning bilingual JSON with attribution.32MIT