# WaniKani — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/wanikani ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_wanikani?ms=1787298900000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/wanikani/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/wanikani/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/wanikani/skill.md Postman collection (v2.1): https://mcp.ai/wanikani/postman.json ## Tools - wanikani_create_study_material(subject_id: integer, meaning_note?: string, reading_note?: string, meaning_synonyms?: string[], confirm_undeletable: boolean) — 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. - wanikani_get_assignments(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) — Retrieve one assignment by ID, or list the connected user's assignments using progress, availability, level, subject, and update filters. - wanikani_get_level_progressions(ids?: integer[], next_cursor?: string, updated_after?: string, level_progression_id?: integer) — Retrieve one level-progression record by ID, or list the user's level history with ID and update-time filters. - wanikani_get_resets(ids?: integer[], reset_id?: integer, next_cursor?: string, updated_after?: string) — Retrieve one account-reset record by ID, or list account level-reset history. - wanikani_get_review_statistics(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) — Retrieve one per-subject review statistic by ID, or list answer totals, streaks, and accuracy using subject and percentage filters. - wanikani_get_reviews(ids?: integer[], review_id?: integer, next_cursor?: string, subject_ids?: integer[], updated_after?: string) — Retrieve one completed review by ID, or list completed reviews filtered by review IDs, subject IDs, or update time. - wanikani_get_spaced_repetition_systems(ids?: integer[], next_cursor?: string, updated_after?: string, spaced_repetition_system_id?: integer) — Retrieve one spaced-repetition system by ID, or list SRS definitions and their stage intervals. - wanikani_get_study_materials(ids?: integer[], hidden?: boolean, next_cursor?: string, subject_ids?: integer[], subject_types?: string[], updated_after?: string, study_material_id?: integer) — Retrieve one study-material record by ID, or list the user's subject notes and meaning synonyms with subject and update filters. - wanikani_get_study_summary() — Get lessons available now and review availability over the next 24 hours for the connected user. - wanikani_get_subjects(ids?: integer[], slugs?: string[], types?: string[], hidden?: boolean, levels?: integer[], subject_id?: integer, next_cursor?: string, updated_after?: string) — Retrieve one WaniKani subject by ID, or search radicals, kanji, vocabulary, and kana vocabulary by IDs, types, slugs, levels, visibility, or update time. - wanikani_get_user() — Get the connected user's identity, level, subscription status, vacation state, and application preferences. - wanikani_get_voice_actors(ids?: integer[], next_cursor?: string, updated_after?: string, voice_actor_id?: integer) — Retrieve one WaniKani pronunciation voice actor by ID, or list voice actors with ID and update-time filters. - wanikani_start_assignment(started_at?: string, assignment_id: integer, confirm_irreversible: boolean) — Irreversibly mark one unlocked lesson assignment as started and move it into reviews. Use only after the user explicitly confirms the exact assignment. - wanikani_submit_review(created_at?: string, subject_id?: integer, assignment_id?: integer, confirm_irreversible: boolean, incorrect_meaning_answers: integer, incorrect_reading_answers: integer) — Irreversibly submit a completed review, changing assignment progress and review statistics. Use only with exact answer counts explicitly confirmed by the user. - wanikani_update_study_material(meaning_note?: string, reading_note?: string, meaning_synonyms?: string[], study_material_id: integer) — Update at least one note or meaning-synonym field on an existing study-material record without changing its subject. - wanikani_update_user_preferences(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) — Update one or more supported WaniKani lesson or review preferences. Omitted preferences remain unchanged. ## Example prompts - "What can I do in WaniKani?" - "Show me a summary of my WaniKani account" ## Links Docs: https://mcp.ai/docs/mcps/wanikani Website: https://mcp.ai/mcps/wanikani