Skip to main content
Glama

jp-onomatopoeia-mcp-server

CI

日本語のオノマトペ(擬音語・擬態語)を 場面から引ける MCPサーバーです。 「雨が静かに降る様子」と伝えるだけで「しとしと」が返り、意味・例文・使い分けのニュアンスまで日本語と英語で説明します。

161語収録 / 完全オフライン / APIキー不要

Search Japanese onomatopoeia by scene or feeling, not by spelling. Ask for "snow falling silently" and get しんしん, with nuance explained in both Japanese and English. 161 entries, fully offline, no API key required.


なぜ作ったか

日本語のオノマトペは、辞書を引こうにも 綴りが分からないと引けない という問題があります。 「雨が激しく降る音」を表す語を探したいのに、「ざあざあ」を知らなければ検索できません。

このサーバーは、その順序を逆にします。意味や場面を投げれば、語のほうが出てくるようにしました。

日本語学習者、翻訳者、小説・漫画を書く人、そして「あの感じを表す言葉、なんだっけ」となった日本語話者のための道具です。


Related MCP server: Japanese Anki MCP Server

特徴

  • 場面から引ける — 「雪が静かに降る」「tired」のような自然文で検索できます

  • 日英どちらでも検索可能 — 見出し語・ローマ字・意味・例文・キーワードを横断して探します

  • ニュアンスまで解説 — 「きらきら」と「ぎらぎら」の違いのような、辞書だけでは掴みにくい語感を収録

  • 言語学的な分類つき — 擬音語 / 擬声語 / 擬態語 / 擬情語 の4分類で絞り込めます

  • 完全オフライン — 外部APIを一切呼びません。APIキーもネットワーク接続も不要です


収録内容

161語を11カテゴリに分類しています。

カテゴリID

内容

語数

weather

天気・気候

20

water

水・液体

9

sound

物音・声

28

emotion

感情・心情

41

texture

触感・質感

24

taste

味・食感

23

movement

動き・歩き方

28

light

光・輝き

6

body

体調・痛み・眠り

29

manner

様子・態度・仕事ぶり

47

animal

動物の鳴き声

10

※ 1つの語が複数カテゴリに属するため、合計は161を超えます。


セットアップ

1. 取得してビルドする

git clone https://github.com/h-kazuki-pixel/jp-onomatopoeia-mcp-server.git
cd jp-onomatopoeia-mcp-server
npm install
npm run build

2. Claude Desktop に登録する

設定ファイルを開きます。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

以下を追記します(パスはご自身の環境に合わせてください)。

{
  "mcpServers": {
    "jp-onomatopoeia": {
      "command": "node",
      "args": ["/path/to/jp-onomatopoeia-mcp-server/dist/index.js"]
    }
  }
}

3. Claude Desktop を再起動する

再起動後、ツールアイコンに jp-onomatopoeia が表示されれば完了です。


使い方

Claudeに普通に話しかけるだけです。

雪が音もなく降り続く様子を表すオノマトペは?
→ しんしん (shinshin) — 雪が音もなく静かに降り積もるさま
「きらきら」と「ぎらぎら」ってどう違うの?
→ 一字違いだが評価は正反対。きらきらは美しい輝き、
   ぎらぎらは不快なほどの強い光や、むき出しの欲望を表す
What's the Japanese word for the sound of heavy rain?
→ ざあざあ (zaazaa) — the sound of heavy, pouring rain
食感のオノマトペを一覧で見せて
→ もちもち / さくさく / しゃきしゃき / ぷりぷり ... (23語)
今日のオノマトペを1つ教えて
→ ランダムに1語を、意味・例文・ニュアンスつきで返します

ツール一覧

ツール名

できること

主な引数

jp_search_onomatopoeia

場面・意味・キーワードから検索(日英対応)

query, category, limit

jp_explain_onomatopoeia

特定の語の意味・例文・ニュアンスを解説

word

jp_list_onomatopoeia_categories

カテゴリ一覧と各語数を取得

なし

jp_browse_onomatopoeia

カテゴリ・分類で絞り込んで一覧表示

category, type, limit, offset

jp_random_onomatopoeia

ランダムに抽出(クイズ・今日の一語向け)

count, category

分類(type)について

日本語

説明

giongo

擬音語

物が立てる音。「ざあざあ」「がちゃん」

giseigo

擬声語

人や動物の声。「わんわん」「げらげら」

gitaigo

擬態語

音のない状態や様子。「きらきら」「そっと」

gijougo

擬情語

心の動き。「わくわく」「もやもや」


開発

npm run build   # TypeScriptをビルド
npm test        # ビルドしてテストを実行(61件)
npm start       # サーバーを起動(stdio)

テスト内容

  • 辞書データの整合性(重複・必須項目・カテゴリの妥当性・例文と見出し語の一致など)

  • 検索ロジック(日英クエリ、スコア順、カテゴリ絞り込み、該当なしの扱い)

  • MCPサーバーの統合テスト(ツール登録、構造化出力、入力バリデーション)


収録語について

見出し語・語義・例文・ニュアンス解説はすべて本リポジトリのために書き起こしたものです。 既存の辞書データベースからの転載は含みません。

語義やニュアンスの記述に誤り・違和感があれば、Issue や Pull Request で教えていただけると助かります。 収録語の追加提案も歓迎します。


ライセンス

MIT License — 詳細は LICENSE を参照してください。

Available Tools

5 tools
jp_browse_onomatopoeiaBrowse onomatopoeia by categoryA
Read-onlyIdempotent

カテゴリや分類(擬音語・擬態語など)で絞り込んで一覧を取得する。

Browse onomatopoeia filtered by category and/or linguistic type, with pagination.

Args:

  • category (string, optional): カテゴリID。jp_list_onomatopoeia_categories で確認できる

  • type (string, optional): 'giongo'(擬音語) | 'giseigo'(擬声語) | 'gitaigo'(擬態語) | 'gijougo'(擬情語)

  • limit (number): 返す件数 1-50 (default: 20)

  • offset (number): 読み飛ばす件数 (default: 0)

Returns: { "total": number, "count": number, "offset": number, "has_more": boolean, "results": [ { ...entry } ], "message": string }

Examples:

  • 「食感のオノマトペを一覧で見せて」 -> category="taste"

  • 「擬情語だけ見たい」 -> type="gijougo"

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo言語学的な分類で絞り込む
limitNo返す件数
offsetNo読み飛ばす件数
categoryNoカテゴリIDで絞り込む

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
totalYes
offsetYes
messageYes
resultsYes
has_moreYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and non-destructive. The description adds meaningful context: pagination behavior (limit/offset/has_more), the return structure, and guidance to consult jp_list_onomatopoeia_categories for valid category IDs.

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?

Well-structured with summary, args, returns, and examples. Bilingual repetition adds some length but each section serves a distinct purpose, keeping it focused and skimmable.

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?

Covers filtering, pagination, return fields, parameter constraints, and category lookup. With an explicit output schema snippet and examples, no critical gaps remain for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with enums and descriptions. The description adds value by explaining how to obtain category IDs via a sibling tool and providing concrete natural-language to parameter examples, which goes beyond the schema.

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?

Description uses specific verbs ('Browse', '取得する') and clearly defines scope: filtering by category and/or linguistic type with pagination. It distinguishes from sibling tools like jp_search_onomatopoeia by focusing on list browsing rather than keyword search.

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?

Provides examples mapping natural language requests to parameters ('擬情語だけ見たい' -> type='gijougo'), establishing clear usage context. Does not explicitly exclude alternatives or mention when not to use, but the browsing vs. searching distinction is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_explain_onomatopoeiaExplain a Japanese onomatopoeiaA
Read-onlyIdempotent

特定のオノマトペの意味・分類・例文・使い分けのニュアンスを解説する。

Explain the meaning, category, example sentence, and nuance of a specific Japanese onomatopoeia.

Args:

  • word (string): 見出し語またはローマ字。例: "しんしん", "shinshin"

Returns: { "found": boolean, "entry": { "word", "romaji", "type", "categories", "meaning_ja", "meaning_en", "example_ja", "example_en", "nuance" } | null, "message": string }

Examples:

  • 「もふもふってどういう意味?」 -> word="もふもふ"

  • "What does dokidoki mean?" -> word="dokidoki"

Error Handling:

  • 収録されていない語の場合は found=false を返し、jp_search_onomatopoeia の利用を案内する

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYes解説したいオノマトペ(ひらがな・カタカナ・ローマ字)

Output Schema

ParametersJSON Schema
NameRequiredDescription
entryYes
foundYes
messageYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the return format (found boolean, entry structure with fields, message) and error behavior (found=false when not in dictionary). It goes beyond the annotations by describing the not-found fallback and example input formats, which aids the agent in predicting tool behavior.

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 description is well-structured with clear sections: intro, args, returns, examples, and error handling. It is slightly verbose due to bilingual repetition, but every section serves a purpose and the front-loaded English explanation makes the core function immediately clear.

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?

Given the tool's simplicity (one parameter) and the presence of an output schema, the description fully covers usage: what to pass, what to expect in the return object, and how to handle failures. The examples and error handling make it complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes the 'word' parameter with min/max length and a concise description. The description's Args section adds value by providing example values ('しんしん', 'shinshin') and clarifying that both kana and romaji are accepted, which enriches the schema's baseline meaning.

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 clearly states the tool's function: explaining the meaning, category, example, and nuance of a specific Japanese onomatopoeia. The verb 'explain' and resource 'specific Japanese onomatopoeia' distinguish it from siblings like jp_search_onomatopoeia, which is used for searching when a word is not found.

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?

The description includes an 'Error Handling' section that explicitly instructs the agent to use jp_search_onomatopoeia when the word is not in the dictionary. It also provides examples of input patterns, implying the tool is for explaining known onomatopoeia. However, it does not explicitly contrast its use with other siblings like jp_browse or jp_random.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_list_onomatopoeia_categoriesList onomatopoeia categoriesA
Read-onlyIdempotent

収録カテゴリの一覧と、各カテゴリの語数を返す。

List all available categories with the number of entries in each.

Args: なし

Returns: { "total_entries": number, "categories": [ { "id", "name_ja", "name_en", "count" } ] }

Examples:

  • 「どんな種類のオノマトペが入ってる?」 -> 引数なしで呼び出す

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
categoriesYes
total_entriesYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the exact return structure (JSON with total_entries and categories) and an example, providing useful behavioral context beyond the annotations.

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 description is concise and front-loaded with the English summary, followed by Args, Returns, and an example. The bilingual duplication is acceptable for the tool's audience, and no unnecessary sentences are present.

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?

For a simple, read-only list tool, the description is complete. It includes the return format, an example usage, and annotations cover safety. The low complexity and presence of output schema (in description) make this fully sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the description explicitly states 'Args: なし' (none). The input schema confirms no properties, and no further parameter explanation is needed.

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 explicitly states 'List all available categories with the number of entries in each', which is a specific verb+resource action. It clearly distinguishes itself from sibling tools (search, explain, browse, random) by focusing on category listing.

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?

The description provides a clear context for use ('どんな種類のオノマトペが入ってる?' example) and states that no arguments are needed. It does not explicitly mention when not to use or alternatives, but the purpose is unambiguous and distinct from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_random_onomatopoeiaGet random onomatopoeiaA
Read-only

ランダムにオノマトペを取り出す。日本語学習のクイズや「今日の一語」に使える。

Pick random onomatopoeia entries. Useful for daily-word features and quizzes.

Args:

  • count (number): 取り出す件数 1-10 (default: 1)

  • category (string, optional): カテゴリで絞り込む

Returns: { "count": number, "results": [ { ...entry } ], "message": string }

Examples:

  • 「今日のオノマトペを1つ教えて」 -> count=1

  • 「食感の語で3問クイズを作って」 -> count=3, category="taste"

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo取り出す件数
categoryNoカテゴリで絞り込む

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
messageYes
resultsYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly and non-destructive behavior. The description adds transparency by stating the random nature, count range (1-10), category filtering, and the return structure. It also provides example category 'taste', giving a peek into expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-organized with clear sections for Args, Returns, and Examples. It front-loads the core purpose and avoids unnecessary filler, making it easy to scan and apply.

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?

For a simple two-parameter tool with annotations and an output schema, the description covers everything needed: purpose, parameter constraints, return format, and usage examples. It is complete without being verbose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description reinforces parameter semantics with concrete examples (e.g., '食感の語で3問クイズ' -> count=3, category='taste') and states defaults. This adds meaningful interpretive guidance beyond the schema.

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 states 'ランダムにオノマトペを取り出す' (pick random onomatopoeia entries) and provides concrete use cases like quizzes and daily-word features. This clearly identifies the tool as a random selection utility, distinct from siblings like search or explain.

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 specifies useful contexts ('daily-word features and quizzes') and gives example queries that map to parameter values. However, it does not explicitly mention when to use search or browse tools instead, so it lacks explicit alternatives/exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_search_onomatopoeiaSearch Japanese onomatopoeiaA
Read-onlyIdempotent

場面や意味から日本語のオノマトペ(擬音語・擬態語)を検索する。日本語でも英語でも検索できる。

Search Japanese onomatopoeia by scene, meaning, or keyword. Queries may be in Japanese or English.

Args:

  • query (string): 探したい場面や意味。例: "雨が静かに降る", "snow falling silently", "tired"

  • category (string, optional): カテゴリで絞り込む。jp_list_onomatopoeia_categories で一覧を取得できる

  • limit (number): 返す件数の上限 1-20 (default: 5)

Returns: { "query": string, "count": number, "results": [ { "word", "romaji", "type", "categories", "meaning_ja", "meaning_en", "example_ja", "example_en", "nuance" } ], "message": string // 該当なしの場合の案内 }

Examples:

  • "雨が静かに降る様子は?" -> query="雨 静か 降る"

  • "How do I say the sound of heavy rain?" -> query="heavy rain"

  • Don't use when: 特定の語の意味だけを知りたい場合は jp_explain_onomatopoeia を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返す件数の上限
queryYes探したい場面・意味・キーワード(日本語または英語)
categoryNoカテゴリで絞り込む場合に指定する

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
queryYes
messageYes
resultsYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive behavior. The description adds valuable behavioral context beyond that: query language flexibility, a defined return structure with a message field for empty results, and an example showing query normalization ('雨が静かに降る' -> '雨 静か 降る'). This is more than baseline but not exhaustive.

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 description is well-structured with sections for Args, Returns, Examples, and exclusions. It repeats the main purpose in Japanese and English, which is somewhat redundant but serves bilingual users and is not bloated. Every section earns its place.

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?

The tool has a clear search use case, an output schema that covers the return structure, annotations for safety, a sibling-tool cross-reference for edge cases, and concrete examples. The description is complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds meaningful examples for the query parameter, a cross-reference for obtaining valid category values via jp_list_onomatopoeia_categories, and reiterates the limit range. This goes beyond the schema's own descriptions.

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 clearly states the tool's purpose: 'Search Japanese onomatopoeia by scene, meaning, or keyword' and explicitly notes bilingual query support. It also differentiates from the sibling tool jp_explain_onomatopoeia via the 'Don't use when' note, making the scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when NOT to use the tool and points to the correct alternative: 'Don't use when: 特定の語の意味だけを知りたい場合は jp_explain_onomatopoeia を使う'. It also includes concrete examples of valid query phrasings, making usage clear.

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.

  1. 5 tool updatesv1.0.0
    • First observedjp_browse_onomatopoeia
    • First observedjp_explain_onomatopoeia
    • First observedjp_list_onomatopoeia_categories
    • First observedjp_random_onomatopoeia
    • First observedjp_search_onomatopoeia

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: semantic search, specific word explanation, category listing, filtered browsing, and random selection. Cross-references (e.g., explain directing away from search) further eliminate ambiguity, so there is no overlap.

Naming Consistency5/5

All tool names follow a consistent jp_ + verb + resource pattern in snake_case, such as jp_search_onomatopoeia and jp_list_onomatopoeia_categories. The single variation (categories as resource) is logically consistent with the pattern.

Tool Count5/5

With 5 tools, the server is well-scoped for a Japanese onomatopoeia dictionary. Each tool addresses a specific need without unnecessary bloat, fitting comfortably within the ideal 3-15 range.

Completeness5/5

The tool set covers the full read-only lifecycle for the domain: search, explain, browse, list categories, and random retrieval for study. No obvious missing operations, as all user intents from the examples are supported.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Offline MCP server for ICD medical code lookup, search, and crosswalk translation with 124K codes and 102K mappings, all local with zero network calls.
    5
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Japanese public transit journey planning with interactive map UI, enabling station search, route planning, and departure lookups via natural language.
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    A 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
    -