Skip to main content
Glama

Japanese Skills · 言の葉

Look up a Japanese word

lookup_word
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
langNoThe 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.
levelNoOnly this JLPT level.
limitNoHow many matches to return at most.
queryYesOne word: Japanese (食べる, たべる, タベル), romaji (taberu), or a meaning in the user’s language (eat, 吃, 먹다).

Output Schema

NameRequiredDescriptionDefault
langYes
siteNo
queryYes
creditNo
resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput 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"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources