# WaniKani — how to use (mcp.ai)

Connect your WaniKani account and use 16 tools for education straight from your AI agent. Connect with your own API key. WaniKani is a spaced-repetition learning platform for studying Japanese radicals, kanji, and vocabulary.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_wanikani?ms=1787298840000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `wanikani_create_study_material`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/wanikani`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/wanikani/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/wanikani/create/study/material` — Create the sole study-material record for a subject, optionally with notes or meaning synonyms. WaniKani provides no delete endpoint, so creation cannot be undone through the API.
  - body: { subject_id: integer, meaning_note?: string, reading_note?: string, meaning_synonyms?: string[], confirm_undeletable: boolean }
- `POST https://api.mcp.ai/api/wanikani/get/assignments` — Retrieve one assignment by ID, or list the connected user's assignments using progress, availability, level, subject, and update filters.
  - body: { ids?: integer[], burned?: boolean, hidden?: boolean, levels?: integer[], started?: boolean, unlocked?: boolean, in_review?: boolean, srs_stages?: integer[], next_cursor?: string, subject_ids?: integer[], assignment_id?: integer, subject_types?: string[], updated_after?: string, available_after?: string, available_before?: string, immediately_available_for_review?: boolean, immediately_available_for_lessons?: boolean }
- `POST https://api.mcp.ai/api/wanikani/get/level/progressions` — Retrieve one level-progression record by ID, or list the user's level history with ID and update-time filters.
  - body: { ids?: integer[], next_cursor?: string, updated_after?: string, level_progression_id?: integer }
- `POST https://api.mcp.ai/api/wanikani/get/resets` — Retrieve one account-reset record by ID, or list account level-reset history.
  - body: { ids?: integer[], reset_id?: integer, next_cursor?: string, updated_after?: string }
- `POST https://api.mcp.ai/api/wanikani/get/review/statistics` — Retrieve one per-subject review statistic by ID, or list answer totals, streaks, and accuracy using subject and percentage filters.
  - body: { ids?: integer[], hidden?: boolean, next_cursor?: string, subject_ids?: integer[], subject_types?: string[], updated_after?: string, review_statistic_id?: integer, percentages_less_than?: integer, percentages_greater_than?: integer }
- `POST https://api.mcp.ai/api/wanikani/get/reviews` — Retrieve one completed review by ID, or list completed reviews filtered by review IDs, subject IDs, or update time.
  - body: { ids?: integer[], review_id?: integer, next_cursor?: string, subject_ids?: integer[], updated_after?: string }
- `POST https://api.mcp.ai/api/wanikani/get/spaced/repetition/systems` — Retrieve one spaced-repetition system by ID, or list SRS definitions and their stage intervals.
  - body: { ids?: integer[], next_cursor?: string, updated_after?: string, spaced_repetition_system_id?: integer }
- `POST https://api.mcp.ai/api/wanikani/get/study/materials` — Retrieve one study-material record by ID, or list the user's subject notes and meaning synonyms with subject and update filters.
  - body: { ids?: integer[], hidden?: boolean, next_cursor?: string, subject_ids?: integer[], subject_types?: string[], updated_after?: string, study_material_id?: integer }
- `POST https://api.mcp.ai/api/wanikani/get/study/summary` — Get lessons available now and review availability over the next 24 hours for the connected user.
- `POST https://api.mcp.ai/api/wanikani/get/subjects` — Retrieve one WaniKani subject by ID, or search radicals, kanji, vocabulary, and kana vocabulary by IDs, types, slugs, levels, visibility, or update time.
  - body: { ids?: integer[], slugs?: string[], types?: string[], hidden?: boolean, levels?: integer[], subject_id?: integer, next_cursor?: string, updated_after?: string }
- `POST https://api.mcp.ai/api/wanikani/get/user` — Get the connected user's identity, level, subscription status, vacation state, and application preferences.
- `POST https://api.mcp.ai/api/wanikani/get/voice/actors` — Retrieve one WaniKani pronunciation voice actor by ID, or list voice actors with ID and update-time filters.
  - body: { ids?: integer[], next_cursor?: string, updated_after?: string, voice_actor_id?: integer }
- `POST https://api.mcp.ai/api/wanikani/start/assignment` — Irreversibly mark one unlocked lesson assignment as started and move it into reviews. Use only after the user explicitly confirms the exact assignment.
  - body: { started_at?: string, assignment_id: integer, confirm_irreversible: boolean }
- `POST https://api.mcp.ai/api/wanikani/submit/review` — Irreversibly submit a completed review, changing assignment progress and review statistics. Use only with exact answer counts explicitly confirmed by the user.
  - body: { created_at?: string, subject_id?: integer, assignment_id?: integer, confirm_irreversible: boolean, incorrect_meaning_answers: integer, incorrect_reading_answers: integer }
- `POST https://api.mcp.ai/api/wanikani/update/study/material` — Update at least one note or meaning-synonym field on an existing study-material record without changing its subject.
  - body: { meaning_note?: string, reading_note?: string, meaning_synonyms?: string[], study_material_id: integer }
- `POST https://api.mcp.ai/api/wanikani/update/user/preferences` — Update one or more supported WaniKani lesson or review preferences. Omitted preferences remain unchanged.
  - body: { lessons_batch_size?: integer, lessons_autoplay_audio?: boolean, reviews_autoplay_audio?: boolean, extra_study_autoplay_audio?: boolean, reviews_presentation_order?: string, reviews_display_srs_indicator?: boolean }

## Example prompts
- "What can I do in WaniKani?"
- "Show me a summary of my WaniKani account"

## More
- Page: https://mcp.ai/wanikani
- Agent spec (llms.txt): https://mcp.ai/wanikani/llms.txt
- Postman collection: https://mcp.ai/wanikani/postman.json
