@kaiwakai/wanikani-mcp
v1.0.1
Published
Intelligent WaniKani MCP server for Japanese learning data
Readme
WaniKani MCP Server
Intelligent MCP (Model Context Protocol) server and library that provides comprehensive WaniKani learning data for Japanese vocabulary.
Perfect for Japanese learning apps, LLM integrations, and educational tools.
Features
- Smart Learning Data: Get comprehensive learning data for Japanese words with a single function call
- Kanji Breakdown: Detailed analysis of kanji components with levels, meanings, and readings
- Learning Tips: Context-aware advice based on word difficulty
- WaniKani Levels: Maps to WaniKani's 1-60 level system
- Dual Use: Works as an MCP server (for Claude Code) OR as a library (for your app)
Installation
npm install @kaiwakai/wanikani-mcpConfiguration
Get your WaniKani API key:
- Go to https://www.wanikani.com/settings/personal_access_tokens
- Generate a new token with "Read-only" permissions
- Use it in your code or environment variable
⚠️ Security: Never commit your API key to version control!
Usage
As a Library (for your app)
import { getLearningData } from '@kaiwakai/wanikani-mcp';
// Set API key via environment variable
process.env.WANIKANI_API_KEY = 'your_api_key_here';
// Or pass it directly
import { WaniKaniAPI } from '@kaiwakai/wanikani-mcp';
const api = new WaniKaniAPI('your_api_key_here');
// Get comprehensive learning data
const data = await getLearningData({
word: '迷信',
include_examples: true
});
console.log(data);
// {
// word: "迷信",
// level: 27,
// difficulty_rating: "intermediate",
// meanings: ["Superstition"],
// readings: ["めいしん"],
// kanji_breakdown: [...],
// mnemonics: {...},
// learning_tips: [...],
// context_sentences: [...]
// }As an MCP Server (for Claude Code)
Add to your Claude Code MCP settings:
{
"mcpServers": {
"wanikani": {
"command": "node",
"args": ["/path/to/wanikani-mcp/dist/index.js"],
"env": {
"WANIKANI_API_KEY": "your_api_key_here"
}
}
}
}API Reference
getLearningData(input)
Get comprehensive learning data for a Japanese word.
Parameters:
{
word: string; // Japanese word (kanji or kana)
include_examples?: boolean; // Include context sentences (default: true)
}Returns:
{
word: string;
level: number; // WaniKani level (1-60)
difficulty_rating: string; // beginner | intermediate | advanced | expert
meanings: string[];
readings: string[];
kanji_breakdown: KanjiInfo[];
mnemonics: { meaning: string; reading: string };
learning_tips: string[];
context_sentences?: { ja: string; en: string }[];
}License
MIT
