mcpField
W
WaniKani

WaniKani

ローカル
github.com/jbeshir科学・教育12 日前に更新

WaniKani について

WaniKaniは、日本語学習者がWaniKaniのSRSデータを参照するための読み取り専用MCPサーバーです。6つのツールで学習状況、復習予定、項目の詳細や統計を取得でき、コレクションは自動ページネーションに対応します。

主な機能

  1. 01ユーザープロフィールとレベルの取得
  2. 02レッスンと復習予定の確認
  3. 03SRS課題の進捗フィルター
  4. 04部首、漢字、語彙の参照
  5. 05復習統計と連続正解数の確認
  6. 06レベル進行履歴の追跡

活用シーン

  1. 01次のレッスンと復習時間の確認
  2. 02レベルやSRS段階による項目の絞り込み
  3. 03学習項目の読みと意味の参照
  4. 04項目ごとの回答精度の分析

MCP 対応

stdio経由でMCPクライアントに6つの読み取り専用ツールを提供し、WaniKaniのプロフィール、レッスンと復習、課題、項目、統計、レベル履歴を照会します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbwanikani-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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 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.comWaniKani 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_assignmentsSRS ステージを通じた学習項目の進捗を記録する 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_progressionsWaniKani のレベルを通じたユーザーの進行履歴をタイムスタンプ付きで取得しますlimit

すべてのツールは読み取り専用です。コレクションを扱うツールは limit パラメーターを受け付けます(デフォルト:500、最大:10,000)。複数の値を受け付けるフィルターパラメーターには、カンマ区切りの文字列を使用します(例:"radical,kanji")。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。