mcpField
K
Kani MCP Server

Kani MCP Server

Local
github.comScience & Education0Updated 1w ago

About Kani MCP Server

Kani MCP Server is a read-only MCP server for WaniKani users who want to query their progress and study data through the official API. It runs locally over stdio and does not change or store account data.

Key features

  1. 01User profile and study summary
  2. 02Filtered assignment and subject lists
  3. 03Review history and accuracy statistics
  4. 04Study notes and synonym access
  5. 05Level and reset history
  6. 06Single-resource lookup

Use cases

  1. 01Check upcoming lessons and reviews
  2. 02Find kanji assignments by level
  3. 03Identify subjects with low review accuracy
  4. 04Retrieve saved notes and synonyms

MCP support

Exposes WaniKani account, progress, and reference data to MCP clients through tools. It uses the official API v2 and is read-only.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"alexxanddr-kani": {
"command": "npx",
"args": [
"-y",
"kani-mcp-server"
],
"env": {
"WANIKANI_API_TOKEN": "<WANIKANI_API_TOKEN>",
"WANIKANI_API_BASE_URL": "<WANIKANI_API_BASE_URL>"
}
}
}
}
Run commandnpx -y kani-mcp-server
Environment variables to set
WANIKANI_API_TOKENSecretRead-only WaniKani API v2 personal access token
WANIKANI_API_BASE_URLWaniKani API v2 base URL

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmkani-mcp-server0.1.4

Tools

12

Saved tool list · updated 6d ago

This tool takes no parameters.

Details

From the project 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:

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

Alternatively, install the executable globally:

npm install --global kani-mcp-server
kani-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

git clone https://github.com/Alexxanddr/kani-mcp-server.git
cd kani-mcp-server
npm ci
cp .env.example .env
# Edit .env and set WANIKANI_API_TOKEN.
npm run build
node --env-file=.env dist/index.js

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

{
  "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:

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

npm ci
npm run check
npm 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.