Japanese Skills · 言の葉
Server Details
Japanese words with pitch accent and conjugation, kanji and grammar for JLPT learners.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct resource: grammar patterns, words, kanji, and courses, with very detailed descriptions that clarify scope. Minor overlap exists where both find_grammar and lookup_word claim to answer 'how to say something,' but the resource distinction (pattern vs. word) is clear enough.
All names follow a verb_noun snake_case structure (find_grammar, lookup_kanji, lookup_word, list_courses). The only inconsistency is the mixed verb choice between 'find' and 'lookup' for essentially similar lookup operations, a minor deviation.
Four tools is a small but well-scoped set that covers the site's main content types without redundancy. Each tool clearly earns its place, though the surface is on the lean side.
The set covers the core learning resources: grammar, vocabulary, kanji, and courses/study material. Notable intentional gaps exist (no dedicated conjugation tool, no quiz/practice tool, no on'yomi/kun'yomi or stroke order), but these are explicitly scoped out and workable around.
Available Tools
4 toolsfind_grammarFind a Japanese grammar pointARead-onlyIdempotentInspect
Use this when the user asks about a Japanese grammar pattern or particle (〜てもいい, ために, ば vs たら, は and が), what it means, how it is used, an example of it, or how to say something with a pattern. Searches the site’s 828 grammar points (N5–N1) by the pattern in Japanese or romaji, or by its meaning in the user’s language. Each result has the pattern, JLPT level, meaning in the user’s language, an example sentence with translation, a recording of the example where available, and the grammar page; plus the site’s course lessons whose titles match, with links and whether each is free or needs a subscription or pass.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The user’s language for meanings, labels and links: zh-Hans (Simplified Chinese), zh-Hant (Traditional Chinese), en (English) or ko (Korean). Other languages: en. Default: guessed from the query. | |
| level | No | Only this JLPT level. | |
| limit | No | How many grammar points to return at most. | |
| query | Yes | The pattern (てもいい, 〜ために, te mo ii) or what it expresses in the user’s language (permission, “in order to”, 为了). |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | Yes | |
| query | Yes | |
| lessons | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive lookup behavior. The description adds valuable context beyond those annotations: the corpus size (828 points, N5–N1), result contents including translations, example recordings where available, grammar page links, and course lessons with free/subscription/pass status.
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 the usage trigger and is well organized across three sentences. It is somewhat long because it enumerates result contents in detail, but the information is relevant and not repetitive.
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 the lookup nature, annotations, complete schema, and output schema, the description is sufficiently complete. It explains when to use the tool, what it searches, what the results include, and that matching course lessons are also returned.
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 100%, so the schema already documents query, lang, level, and limit thoroughly. The description reinforces that the query can be a Japanese/romaji pattern or a meaning in the user's language, but it does not add significant semantics beyond what the schema provides.
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 uses a specific verb/resource combination: it finds Japanese grammar points and searches 828 grammar points by pattern or meaning. The examples (〜てもいい, ために, ば vs たら, は and が) make it clearly distinct from sibling tools like lookup_word, lookup_kanji, and list_courses.
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 gives a clear trigger: 'Use this when the user asks about a Japanese grammar pattern or particle…'. It covers meaning, usage, examples, and how to express something with a pattern, but does not explicitly name when not to use it or route to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coursesJLPT levels and coursesARead-onlyIdempotentInspect
Use this when the user asks how to study Japanese or prepare for a JLPT level with Japanese Skills · 言の葉, or what study material the site has. Lists the study library (sections, counts and links), the JLPT practice levels (number of questions; links for the free ones), and the 15 courses with their level, number of lessons and link. With course, lists that course’s lessons with titles and links. Each level, course and lesson is labelled free or needs a subscription or pass.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The user’s language for meanings, labels and links: zh-Hans (Simplified Chinese), zh-Hant (Traditional Chinese), en (English) or ko (Korean). Other languages: en. Default: guessed from the query. | |
| course | No | A course id from this tool’s list (e.g. "n5", "kanji", "keigo") to list its lessons. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jlpt | No | |
| lang | Yes | |
| course | No | With course: that course and its lessons |
| courses | No | |
| library | No | |
| coursesUrl | No | |
| studyRoute | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety bar is lower, and the description still adds real context: it enumerates the returned content and notes that each level, course and lesson is labelled free or needs a subscription or pass. That monetization/labeling detail is not derivable from annotations or the schema. It stops short of describing pagination or response size.
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?
Three sentences, each carrying distinct information: usage trigger first, then default output, then the course-scoped variant, then the free/paid labeling. Front-loaded and free of filler. Slightly dense/long but every clause earns its place.
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 needn't be explained, yet the description outlines them anyway along with the conditional lesson-listing behavior and free/paid labeling. Combined with fully documented parameters and read-only annotations, an agent has what it needs to call this correctly; only minor gaps like result volume remain.
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 100%, so the schema already documents lang (enum with fallback behavior) and course (id from this tool's list, max length). The description only adds that supplying course switches the output to that course's lessons with titles and links, which is a modest semantic addition rather than new parameter mechanics. Baseline 3 is the right level here.
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?
States a specific verb (lists) and precisely enumerates what is listed: study library sections with counts and links, JLPT practice levels with question counts, and 15 courses with level/lesson count/link, plus a course-scoped lesson listing. This is clearly distinguishable from the sibling lookup tools (find_grammar, lookup_kanji, lookup_word), which target individual items rather than a course/level catalog.
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?
Gives an explicit trigger: 'Use this when the user asks how to study Japanese or prepare for a JLPT level ... or what study material the site has.' That is a clear when-to-use condition. It does not name sibling alternatives or state when-not to use this tool, so it falls short of a 5, but an agent has enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_kanjiWords that use a kanjiARead-onlyIdempotentInspect
Use this when the user asks about a kanji (a Chinese character used in Japanese): which JLPT words use it and how it is read in them, at which JLPT level it first appears, or where to learn it. For each kanji given (up to five), lists the words in the site’s JLPT word list that contain it, easiest level first, with reading, level and meaning in the user’s language; how many words use it and the lowest level among them; and the site’s kanji lessons that teach it (title, link, and whether each is free or needs a subscription or pass). Gives no on’yomi/kun’yomi table or stroke order: the readings are those of the words.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The user’s language for meanings, labels and links: zh-Hans (Simplified Chinese), zh-Hant (Traditional Chinese), en (English) or ko (Korean). Other languages: en. Default: guessed from the query. | |
| kanji | Yes | One to five kanji, e.g. "生" or "日本". | |
| limit | No | How many words to list per kanji at most. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | Yes | |
| kanji | Yes | |
| credit | No | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses hard operational limits (up to five kanji, easiest level first) and, most usefully, the negative space: 'Gives no on'yomi/kun'yomi table or stroke order: the readings are those of the words.' That prevents a very likely misuse (expecting a dictionary-style reading table).
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?
Front-loaded with the activation condition and no filler sentences. The second sentence is a long enumerated run-on, but each clause maps to a real output component or constraint, so nothing is wasted.
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?
Complete for a read-only lookup: trigger conditions, per-kanji output contents, ordering, count/lowest-level summary, lesson metadata with access status, plus explicit exclusions. An output schema exists, so the return-value prose is redundant but harmless.
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 coverage is 100%, so the baseline is 3; the description earns above that by restating the 'up to five' kanji cap and clarifying that readings/meanings come back in the user's language, which makes the lang parameter's effect concrete rather than just an enum label.
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?
States a specific verb+resource (lookup_kanji) and enumerates exactly what is returned: JLPT words containing the kanji, readings, first-appearance level, and lesson links. It also carves out the scope against a word/grammar lookup by framing the trigger as 'the user asks about a kanji' rather than about a word.
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?
'Use this when the user asks about a kanji... which JLPT words use it and how it is read in them, at which JLPT level it first appears, or where to learn it' gives three concrete activation triggers. It does not explicitly name lookup_word as the alternative for word-level queries, so the closest sibling distinction is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_wordLook up a Japanese wordARead-onlyIdempotentInspect
Use this when the user asks about a Japanese word: what it means, how to read or pronounce it, its pitch accent, whether it is a godan or ichidan verb, how to conjugate it (te-form, past, polite, potential…), or how to say something in Japanese. Searches the 9,040 JLPT words (N5–N1) of Japanese Skills · 言の葉 by the word in kanji or kana (食べる, たべる), romaji (taberu), or a meaning in English, Chinese or Korean (eat, 吃, 먹다). Each result has the reading, JLPT level, the meaning in the user’s language, the pitch accent (accent number, type and H/L pattern), the word class and conjugation table where the site has one, an example sentence with its translation where the site has one, recordings in two voices where available, and the word’s page. Shows a word card in chats that display app UI. Returns no results when the word is not in the list. Not for translating whole sentences.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | The user’s language for meanings, labels and links: zh-Hans (Simplified Chinese), zh-Hant (Traditional Chinese), en (English) or ko (Korean). Other languages: en. Default: guessed from the query. | |
| level | No | Only this JLPT level. | |
| limit | No | How many matches to return at most. | |
| query | Yes | One word: Japanese (食べる, たべる, タベル), romaji (taberu), or a meaning in the user’s language (eat, 吃, 먹다). |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | Yes | |
| site | No | |
| query | Yes | |
| credit | No | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description still adds substantial behavioral context: the 9,040-word N5–N1 corpus boundary, accepted input forms, 'Shows a word card in chats that display app UI' (a UI side effect not visible in any structured field), and empty-result behavior when the word is 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 trigger condition is correctly front-loaded, and the long result-field enumeration is substantive rather than filler. It is dense but slightly over-long — the field-by-field result listing overlaps with what the output schema already conveys.
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 no prose explanation, yet the description still clarifies corpus scope, accepted query formats, the word-card rendering, and the no-results case. Nothing an agent needs to invoke this correctly is missing.
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 100% schema description coverage and documented enums/defaults for lang, level, and limit, the schema already carries parameter meaning. The description restates the query input forms (kanji, kana, romaji, meanings in English/Chinese/Korean) but adds no semantics for lang, level, or limit beyond what the schema declares; baseline 3 applies.
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 opens with a concrete verb+resource ('Use this when the user asks about a Japanese word') and enumerates the exact question types it answers — meaning, reading, pitch accent, verb class, conjugation, and reverse lookup. It scopes itself against out-of-scope work with 'Not for translating whole sentences,' so an agent can separate it from a translation tool without opening the schema.
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 gives an explicit trigger ('Use this when the user asks about a Japanese word') plus a negative boundary ('Not for translating whole sentences'). It does not name the sibling tools (lookup_kanji, find_grammar), so the agent must infer how to route a kanji- or grammar-focused question — a single missing routing sentence keeps this below a 5.
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.
4 tool updates
- Changed
find_grammar1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "lang": { + "enum": [ + "zh-Hans", + "zh-Hant", + "en", + "ko" + ], + "type": "string" + }, + "lessons": { + "items": { + "properties": { + "course": { + "type": "string" + }, + "free": { + "description": "false: needs a subscription or pass", + "type": "boolean" + }, + "lesson": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "course", + "lesson", + "title", + "free", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "example": { + "properties": { + "audio": { + "description": "Recordings of the site’s two voices, or null when there is none", + "properties": { + "voice1": { + "type": [ + "string", + "null" + ] + }, + "voice2": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "voice1", + "voice2" + ], + "type": [ + "object", + "null" + ] + }, + "japanese": { + "type": "string" + }, + "translation": { + "type": "string" + } + }, + "required": [ + "japanese", + "translation", + "audio" + ], + "type": "object" + }, + "level": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "pattern": { + "type": "string" + }, + "url": { + "description": "The grammar point on its page", + "type": "string" + } + }, + "required": [ + "pattern", + "level", + "meaning", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "query", + "lang", + "results", + "lessons" + ], + "type": "object" +}
- Changed
list_courses1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "course": { + "description": "With course: that course and its lessons", + "properties": { + "id": { + "type": "string" + }, + "lessons": { + "items": { + "properties": { + "free": { + "description": "false: needs a subscription or pass", + "type": "boolean" + }, + "lesson": { + "type": "integer" + }, + "level": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "lesson", + "title", + "free", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "level": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "level", + "summary", + "url", + "lessons" + ], + "type": "object" + }, + "courses": { + "items": { + "properties": { + "freeLessons": { + "type": "integer" + }, + "id": { + "description": "Pass as course to list the lessons", + "type": "string" + }, + "lessons": { + "type": "integer" + }, + "level": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "level", + "lessons", + "freeLessons", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "coursesUrl": { + "type": "string" + }, + "jlpt": { + "items": { + "properties": { + "free": { + "description": "false: needs a subscription or pass", + "type": "boolean" + }, + "level": { + "type": "string" + }, + "questions": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "required": [ + "level", + "questions", + "free" + ], + "type": "object" + }, + "type": "array" + }, + "lang": { + "enum": [ + "zh-Hans", + "zh-Hant", + "en", + "ko" + ], + "type": "string" + }, + "library": { + "items": { + "properties": { + "count": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "name", + "count", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "studyRoute": { + "type": "string" + } + }, + "required": [ + "lang" + ], + "type": "object" +}
- Changed
lookup_kanji1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "credit": { + "type": "string" + }, + "kanji": { + "type": "string" + }, + "lang": { + "enum": [ + "zh-Hans", + "zh-Hant", + "en", + "ko" + ], + "type": "string" + }, + "results": { + "items": { + "properties": { + "count": { + "type": "integer" + }, + "kanji": { + "type": "string" + }, + "lessons": { + "items": { + "properties": { + "course": { + "type": "string" + }, + "free": { + "description": "false: needs a subscription or pass", + "type": "boolean" + }, + "lesson": { + "type": "integer" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "course", + "lesson", + "title", + "free", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "lowestLevel": { + "type": [ + "string", + "null" + ] + }, + "words": { + "items": { + "properties": { + "level": { + "description": "JLPT level: N5 (easiest) to N1", + "type": "string" + }, + "meaning": { + "type": "string" + }, + "reading": { + "type": "string" + }, + "url": { + "type": "string" + }, + "word": { + "type": "string" + } + }, + "required": [ + "word", + "reading", + "level", + "meaning", + "url" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "kanji", + "count", + "lowestLevel", + "words", + "lessons" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "kanji", + "lang", + "results" + ], + "type": "object" +}
- Changed
lookup_word1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "credit": { + "type": "string" + }, + "lang": { + "enum": [ + "zh-Hans", + "zh-Hant", + "en", + "ko" + ], + "type": "string" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "properties": { + "audio": { + "description": "Recordings of the site’s two voices, or null when there is none", + "properties": { + "voice1": { + "type": [ + "string", + "null" + ] + }, + "voice2": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "voice1", + "voice2" + ], + "type": [ + "object", + "null" + ] + }, + "example": { + "properties": { + "audio": { + "description": "Recordings of the site’s two voices, or null when there is none", + "properties": { + "voice1": { + "type": [ + "string", + "null" + ] + }, + "voice2": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "voice1", + "voice2" + ], + "type": [ + "object", + "null" + ] + }, + "japanese": { + "type": "string" + }, + "translation": { + "type": "string" + } + }, + "required": [ + "japanese", + "translation", + "audio" + ], + "type": "object" + }, + "forms": { + "properties": { + "aff": { + "type": "string" + }, + "code": { + "description": "JMdict word class", + "type": "string" + }, + "family": { + "type": "string" + }, + "groups": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "rows": { + "items": { + "properties": { + "affirmative": { + "properties": { + "reading": { + "type": "string" + }, + "written": { + "type": "string" + } + }, + "required": [ + "written" + ], + "type": [ + "object", + "null" + ] + }, + "ja": { + "type": "string" + }, + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "negative": { + "properties": { + "reading": { + "type": "string" + }, + "written": { + "type": "string" + } + }, + "required": [ + "written" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "key", + "label", + "affirmative", + "negative" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name", + "rows" + ], + "type": "object" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "neg": { + "type": "string" + }, + "note": { + "type": "string" + } + }, + "required": [ + "code", + "family", + "name", + "groups" + ], + "type": "object" + }, + "keyForms": { + "items": { + "properties": { + "ja": { + "type": "string" + }, + "key": { + "type": "string" + }, + "label": { + "type": "string" + }, + "reading": { + "type": "string" + }, + "side": { + "enum": [ + "affirmative", + "negative" + ], + "type": "string" + }, + "written": { + "type": "string" + } + }, + "required": [ + "key", + "side", + "label", + "written" + ], + "type": "object" + }, + "type": "array" + }, + "level": { + "description": "JLPT level: N5 (easiest) to N1", + "type": "string" + }, + "meaning": { + "description": "Senses separated by semicolons", + "type": "string" + }, + "picture": { + "type": [ + "string", + "null" + ] + }, + "pitch": { + "items": { + "properties": { + "accent": { + "type": "integer" + }, + "also": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "morae": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pattern": { + "description": "H/L per mora, then the particle after the word in brackets", + "type": "string" + }, + "reading": { + "type": "string" + }, + "type": { + "enum": [ + "heiban", + "atamadaka", + "nakadaka", + "odaka" + ], + "type": "string" + }, + "typeName": { + "type": "string" + } + }, + "required": [ + "reading", + "accent", + "morae", + "pattern", + "type", + "typeName" + ], + "type": "object" + }, + "type": "array" + }, + "reading": { + "type": "string" + }, + "url": { + "description": "The word’s page", + "type": "string" + }, + "word": { + "type": "string" + } + }, + "required": [ + "word", + "reading", + "level", + "meaning", + "pitch", + "audio", + "picture", + "url" + ], + "type": "object" + }, + "type": "array" + }, + "site": { + "type": "string" + } + }, + "required": [ + "query", + "lang", + "results" + ], + "type": "object" +}
4 tool updates
- First observed
find_grammar - First observed
list_courses - First observed
lookup_kanji - First observed
lookup_word
Related MCP Connectors
- potto-japanOAuthapp.potto
Authoritative JLPT-graded Japanese dataset (kanji, vocab, grammar, history) via MCP and REST.
A Japanese shiritori (word-chain game) dictionary of 88,000+ nouns. Check whether a move is valid (including words ending in ん), suggest next words, and look up a word's reading — so an AI can play shiritori correctly.
Chinese dictionary (124k entries), HSK levels, text segmentation and 195 grammar points.
Jisho.org Japanese-English dictionary MCP (keyless).
Related MCP Servers
- 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
- FlicenseNot gradedqualityDmaintenanceDownloads Japanese word pronunciation audio from JapanesePod101. Supports single word and batch downloads.-
- AlicenseBqualityAmaintenanceEnables learners to look up and search kanji by JLPT level, grade, or radical, drill JLPT questions with progress tracking, search a large Japanese vocabulary and dictionary corpus, and browse Japanese culture knowledge pages. It also reports tool and data status, degrading gracefully when large external databases are not fetched.8MIT
- FlicenseAqualityCmaintenanceA local MCP server that helps you maintain a personal Japanese learning knowledge base, including vocabulary, confusion relations, mistakes, and spaced-repetition reviews. It provides tools and prompts for managing and reviewing your Japanese learning data without calling external LLM APIs.6-
Glama MCP Gateway
Add one secure layer between your agents and this server.