WaniKani について
WaniKaniは、日本語学習者がWaniKaniのSRSデータを参照するための読み取り専用MCPサーバーです。6つのツールで学習状況、復習予定、項目の詳細や統計を取得でき、コレクションは自動ページネーションに対応します。
主な機能
- 01ユーザープロフィールとレベルの取得
- 02レッスンと復習予定の確認
- 03SRS課題の進捗フィルター
- 04部首、漢字、語彙の参照
- 05復習統計と連続正解数の確認
- 06レベル進行履歴の追跡
活用シーン
- 01次のレッスンと復習時間の確認
- 02レベルやSRS段階による項目の絞り込み
- 03学習項目の読みと意味の参照
- 04項目ごとの回答精度の分析
MCP 対応
stdio経由でMCPクライアントに6つの読み取り専用ツールを提供し、WaniKaniのプロフィール、レッスンと復習、課題、項目、統計、レベル履歴を照会します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
wanikani-mcp
ユーザーの WaniKani データへの読み取り専用アクセスを提供する MCP サーバーです。WaniKani は、日本語の漢字や語彙を学ぶための間隔反復システム(SRS)です。このサーバーは、Claude やその他の MCP クライアントが、ユーザーのプロフィール、レッスン/復習のスケジュール、SRS の割り当て、学習項目の詳細、復習統計、レベル進行履歴を照会できる 6 つのツールを提供します。
主な概念
- SRS(間隔反復システム) -- WaniKani の中核となる学習メカニズムです。項目は、正解・不正解の復習結果に基づいてステージ 0(導入)から 9(習得済み)へ進みます。ステージが高いほど、復習の間隔が長くなります。
- 学習項目 -- ユーザーが学習する項目です。種類は、部首(構成要素)、漢字(文字)、語彙(複数の漢字からなる単語)、かな語彙(かなのみの単語)の 4 つです。各学習項目には意味、読み、ニーモニックがあります。
- 割り当て -- 各学習項目について、現在の SRS ステージ、ロック解除日時、学習開始日時、合格日時、習得日時など、ユーザーの SRS の進捗を記録します。
- レッスン -- 新しい学習項目の導入です。前提条件を満たすと、その学習項目をレッスンとして利用できるようになります。
- 復習 -- 記憶をテストする定期的なクイズです。正解すると SRS ステージが上がり、不正解だと下がります。
- レベル -- WaniKani におけるユーザーの全体的な進捗(1--60)です。新しいレベルに進むと、新しい学習項目が利用可能になります。
アーキテクチャ
サーバーは 3 つのレイヤーで構成されます。設定を読み込んで依存関係を接続するエントリーポイント、ツールを登録してパラメーターを変換する MCP サーバーレイヤー、WaniKani API と通信する HTTP クライアントです。
graph TD
MCP["MCP Client<br/>(Claude, etc.)"]
SRV["MCP Server<br/>tool registration + formatting"]
CLI["WaniKani API Client<br/>auth, pagination, typed responses"]
API["WaniKani API<br/>api.wanikani.com/v2"]
MCP -->|"stdio JSON-RPC"| SRV
SRV --> CLI
CLI -->|"HTTPS + Bearer auth"| API
サーバーは MCP プロトコルの処理と stdio トランスポートに mcp-go を使用します。WaniKani API クライアントは Go のジェネリクス(Resource[T] と Collection[T])を使用し、自動ページネーションによって、すべてのエンドポイントへの型付きアクセスを提供します。
データフロー
sequenceDiagram
participant C as MCP Client
participant S as MCP Server
participant A as WaniKani API
C->>S: get_assignments(subjectTypes, limit, ...)
S->>A: GET /v2/assignments?subject_types=...
A-->>S: Page 1 (up to 500 items)
opt More pages needed
S->>A: GET next_url
A-->>S: Page 2
end
S-->>C: "Showing N of M assignment(s):" + JSON
コレクションのエンドポイントは自動的にページネーションされます。結果の上限は設定可能で(デフォルトは 500、最大は 10,000)、クライアントが結果が切り詰められたかどうかを判断できるよう、「N 件中 M 件を表示」というヘッダーが含まれます。
はじめに
要件
- Go 1.27.3+(ソースからビルドする場合)
- wanikani.com/settings/personal_access_tokens で取得した WaniKani API トークン
インストール
ビルド済みバイナリは リリース から入手できます。
ソースからインストールする場合:
go install github.com/jbeshir/mcp-servers/wanikani/cmd/wanikani-mcp@latest
または、リポジトリのルートからビルドします:
make build
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
WANIKANI_API_KEY | はい | -- | wanikani.com/settings/personal_access_tokens で取得したベアラートークン |
WANIKANI_API_URL | いいえ | https://api.wanikani.com | WaniKani API のベース URL を上書きします |
Claude Desktop
{
"mcpServers": {
"wanikani": {
"command": "/path/to/wanikani-mcp",
"env": {
"WANIKANI_API_KEY": "your-api-token"
}
}
}
}
Claude Code
claude mcp add wanikani -e WANIKANI_API_KEY=your-api-token /path/to/wanikani-mcp
ツール
| ツール | 説明 | パラメーター |
|---|---|---|
get_user | 認証済みユーザーのプロフィールを取得します。レベル、サブスクリプション、休暇状態が含まれます | -- |
get_summary | 利用可能なレッスンと復習を時間ごとにまとめて取得します | -- |
get_assignments | SRS ステージを通じた学習項目の進捗を記録する SRS の割り当てを取得します | subjectTypes、levels、srsStages、availableBefore、availableAfter、immediatelyAvailableForReview、immediatelyAvailableForLessons、limit |
get_subjects | 部首、漢字、語彙と、それぞれの意味、読み、ニーモニックを取得します | types、levels、slugs、ids、limit |
get_review_statistics | 各学習項目の復習正答率統計を取得します。正解・不正解の回数や連続正解数が含まれます | subjectTypes、subjectIds、percentagesGreaterThan、percentagesLessThan、limit |
get_level_progressions | WaniKani のレベルを通じたユーザーの進行履歴をタイムスタンプ付きで取得します | limit |
すべてのツールは読み取り専用です。コレクションを扱うツールは limit パラメーターを受け付けます(デフォルト:500、最大:10,000)。複数の値を受け付けるフィルターパラメーターには、カンマ区切りの文字列を使用します(例:"radical,kanji")。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。