Kani MCP Server

io.github.AlexxanddrPublished by GitHub account Alexxanddrv0.1.4Updated Oct 29, 2026

Read-only access to WaniKani progress and study data through MCP.

Overview

AI-generated overview

Read-only MCP server that lets an assistant query a user's WaniKani progress, review statistics and kanji, radical and vocabulary reference data.

What you can do
  • Read the user profile, level, preferences and subscription state, plus lesson and review availability for the next 24 hours
  • List assignments filtered by subject, level, SRS stage or availability, and list subjects such as radicals, kanji and vocabulary
  • Review history and accuracy: completed reviews and per-subject review statistics with incorrect-answer totals
  • Study data: saved notes and synonyms, level progression history, account resets, SRS stage definitions and voice actor metadata
  • Fetch a single supported resource by type and numeric ID, and page through collections with the API's pagination cursors
When to use it
Useful when someone studies Japanese with WaniKani and wants an assistant to answer questions about upcoming reviews and lessons, level progress, weak subjects by accuracy, or saved notes and synonyms, without leaving the chat client.
Requirements
Runs locally over stdio as an npm package (npx or global install) and needs Node.js 18 or newer. A WaniKani API v2 personal access token with read-only permissions must be supplied in the WANIKANI_API_TOKEN environment variable. Network access to the WaniKani API is required; WANIKANI_API_BASE_URL optionally overrides the API root.
Before you install
The WANIKANI_API_TOKEN grants access to account and study data, so keep it secret and prefer the client's secure secret storage over a plain JSON config file. Changing WANIKANI_API_BASE_URL sends the bearer token to that host, so only use trusted HTTPS endpoints. The server is read-only and does not modify WaniKani data, but API responses are passed through unchanged and large collections may need filters and pagination.

Installation

In SourceWeft

  1. Open Kani MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Kani MCP Server

A small, read-only Model Context Protocol server that gives MCP clients access to a user's WaniKani progress and WaniKani reference data through the official API v2.

It can answer questions such as:

  • What reviews and lessons are coming up today?
  • Which kanji are assigned at a given level?
  • Which subjects have the lowest review accuracy?
  • What notes or synonyms have I saved?

The server runs locally over stdio. It does not store data, expose an HTTP service, or modify WaniKani.

Requirements

  • Node.js 18 or newer
  • A WaniKani personal access token with read-only permissions, created in WaniKani API Tokens

Keep the token secret. It grants access to account and study data.

Install

The simplest MCP configuration runs the published package directly with npx:

json
{  "mcpServers": {    "wanikani": {      "command": "npx",      "args": ["-y", "kani-mcp-server@latest"],      "env": {        "WANIKANI_API_TOKEN": "your-read-only-token"      }    }  }}

Alternatively, install the executable globally:

sh
npm install --global kani-mcp-serverkani-mcp-server

Restart the MCP client after changing its configuration. Prefer the client's secure secret facility, when available, over writing a token into a JSON file.

Run from source

sh
git clone https://github.com/Alexxanddr/kani-mcp-server.gitcd kani-mcp-servernpm cicp .env.example .env# Edit .env and set WANIKANI_API_TOKEN.npm run buildnode --env-file=.env dist/index.js

To configure an MCP client against a source checkout, replace the path and token:

json
{  "mcpServers": {    "wanikani": {      "command": "node",      "args": ["/absolute/path/to/kani-mcp-server/dist/index.js"],      "env": {        "WANIKANI_API_TOKEN": "your-read-only-token"      }    }  }}

The process communicates via MCP on stdin/stdout, so an empty terminal after startup is normal.

Tools

ToolPurpose
get_userUser profile, level, preferences, and subscription state
get_summaryLessons and reviews available during the next 24 hours
list_assignmentsAssignments filtered by subjects, levels, SRS stages, or state
list_subjectsRadicals, kanji, vocabulary, and kana vocabulary
list_review_statisticsAccuracy and incorrect-answer totals by subject
list_reviewsCompleted review history
list_study_materialsPersonal notes and meaning/reading synonyms
list_level_progressionsLevel progression history
list_resetsAccount reset history
list_spaced_repetition_systemsSRS stage definitions
list_voice_actorsPronunciation voice actor metadata
get_resourceOne supported resource by type and numeric ID

Collection tools return one API page. Use page_after_id or page_before_id from the WaniKani collection pagination data to continue. Arrays are sent as the comma-delimited filters expected by the API.

Example prompts:

text
Show my WaniKani level and the reviews due in the next 24 hours.List my level 10 kanji assignments and explain their current SRS stages.Find review statistics below 70%, then fetch the matching subjects.

See MCP contracts for exact inputs and outputs.

Configuration

VariableRequiredMeaning
WANIKANI_API_TOKENYesPersonal WaniKani API v2 bearer token
WANIKANI_API_BASE_URLNoAPI root; defaults to https://api.wanikani.com/v2

Changing the base URL sends the bearer token to that host. Remote overrides must use HTTPS; localhost HTTP is accepted for tests and local development.

Development

sh
npm cinpm run checknpm pack --dry-run
  • npm run dev: run TypeScript directly over stdio
  • npm test: run unit and MCP contract tests
  • npm run type-check: check TypeScript without emitting files
  • npm run build: create the bundled executable in dist/

Read CONTRIBUTING.md, architecture, and testing before changing public tools.

Troubleshooting

  • WANIKANI_API_TOKEN is required: pass the variable in the MCP client's env block or start Node with --env-file=.env.
  • 401 Unauthorized: verify the token and recreate it if it may have been exposed.
  • 429 Too Many Requests: wait for WaniKani's rate-limit reset and request narrower collections.
  • Large responses: add filters and paginate rather than requesting broad subject or review histories.
  • Client shows disconnected: use an absolute script path, run npm run build, and confirm Node 18+ is on the client's PATH.

Limitations

  • Read-only: starting assignments, submitting reviews, changing user settings, and editing study materials are intentionally absent.
  • No automatic multi-page aggregation, caching, resources, or prompts.
  • API response objects are passed through unchanged, so upstream additions appear without a package release.

License and distribution

This project is available under the MIT License and is packaged for the public npm registry as kani-mcp-server. GitHub releases publish matching package versions through npm Trusted Publishing; see publishing for the one-time setup and release procedure.

WaniKani is a trademark of Tofugu LLC. This independent project is not affiliated with, endorsed by, or sponsored by WaniKani or Tofugu.

Source: README.md at commit c16d993

Tools

12

get_user

Get the authenticated WaniKani user profile and subscription state

Takes no parameters.

get_summary

Get lesson and review availability for the next 24 hours

Takes no parameters.

list_level_progressions

List level progression history

Parametersidspage_after_idupdated_afterpage_before_id

list_resets

List account reset history

Parametersidspage_after_idupdated_afterpage_before_id

list_reviews

List completed reviews

Parametersidspage_after_idupdated_afterpage_before_id

list_spaced_repetition_systems

List spaced repetition system definitions

Parametersidspage_after_idupdated_afterpage_before_id

list_study_materials

List user notes and synonyms

Parametersidspage_after_idupdated_afterpage_before_id

list_voice_actors

List pronunciation voice actors

Parametersidspage_after_idupdated_afterpage_before_id

list_assignments

List assignments with optional subject, level, SRS, and availability filters

Parametersidsburnedhiddenlevelspassedstartedunlockedsrs_stagessubject_idspage_after_idsubject_typesupdated_after+5 more

list_review_statistics

List accuracy statistics for studied subjects

Parametersidssubject_idspage_after_idsubject_typesupdated_afterpage_before_idpercentages_less_thanpercentages_greater_than

list_subjects

List radicals, kanji, and vocabulary with optional level, type, or slug filters

Parametersidsslugstypeshiddenlevelspage_after_idupdated_afterpage_before_id

get_resource

Get one WaniKani resource by type and numeric ID

Parametersidrequiredresourcerequired

Version history

1
  1. v0.1.4LatestOct 22, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts