Bunpro MCP Server

io.github.AlexxanddrPublished by GitHub account Alexxanddrv0.3.0Updated Oct 30, 2026

Read-only access to Bunpro profile, reviews, study statistics, vocabulary, and search.

Overview

AI-generated overview

Read-only MCP server that lets an assistant view your Bunpro Japanese-study profile, review queue, forecasts, SRS progress, vocabulary and search results.

What you can do
  • Read profile, furigana settings, due items, review queue and read-only quiz queue
  • Inspect study statistics, JLPT progress, daily and hourly forecasts, SRS overview and level details, review activity and last-session accuracy
  • Rank weak grammar and vocabulary items by study count and accuracy
  • Look up vocabulary by slug or ID, its notes and neighbouring items, plus deck learning content and discussion topic replies
  • Search Bunpro grammar and vocabulary with compact results
When to use it
Useful if you study Japanese with Bunpro and want an assistant to summarize your review load, forecast, SRS levels, JLPT progress and weak points, or to look up grammar and vocabulary details without opening the site. It is read-only, so it cannot submit reviews or change your account.
Requirements
A Bunpro account and a current frontend bearer token supplied as the BUNPRO_API_TOKEN environment variable, without the Bearer prefix. Node.js 22 or newer when run via npx or from source, and an MCP client that supports local stdio servers. An optional BUNPRO_API_BASE_URL override exists mainly for tests.
Before you install
BUNPRO_API_TOKEN is a password-equivalent credential taken from a browser request header; keep it out of shell history, commits, issues and screenshots, and prefer the client's environment configuration. The server relies on Bunpro's unofficial, reverse-engineered frontend API, which may change without notice, and it is not affiliated with Bunpro. The optional API base URL override receives the token, so only point it at a trusted URL. All tools are read-only.

Installation

In SourceWeft

  1. Open Bunpro 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

Bunpro MCP

A read-only Model Context Protocol server that lets MCP clients work with your Bunpro profile, review queue, forecasts, SRS progress, vocabulary, learning content, and search.

[!WARNING] This project uses Bunpro's unofficial, reverse-engineered frontend API. It may change without notice. This project is not affiliated with or endorsed by Bunpro.

What you can do

  • Ask for your profile, due count, review queue, or current quiz questions.
  • Inspect JLPT progress, SRS levels, forecasts, activity, and last-session accuracy.
  • Search Bunpro grammar and vocabulary with compact results.
  • Retrieve vocabulary details and notes, deck learning content, or topic replies.

The server exposes no account-changing, review-submission, or deletion tools.

Requirements

  • A Bunpro account and a current frontend bearer token.
  • Node.js 22 or newer when running from source or through npx.
  • An MCP client that supports local stdio servers.

Get your Bunpro token

  1. Sign in to Bunpro in your browser.
  2. Open the browser developer tools and select Network.
  3. Select a request to https://api.bunpro.jp/api/frontend/....
  4. Copy the Authorization request header value without the Bearer prefix.

Treat this token like a password. Do not commit it, paste it into issues, or expose it in screenshots.

Configure an MCP client

Install and launch the published package directly from your MCP client:

json
{  "mcpServers": {    "bunpro": {      "command": "npx",      "args": ["-y", "bunpro-mcp-server"],      "env": { "BUNPRO_API_TOKEN": "your-token" }    }  }}

For local development, build the repository and configure the client with an absolute path:

json
{  "mcpServers": {    "bunpro": {      "command": "node",      "args": ["/absolute/path/to/bunpro-mcp-server/dist/index.js"],      "env": { "BUNPRO_API_TOKEN": "your-token" }    }  }}

Restart the MCP client after changing its configuration or rebuilding the server.

Run locally

bash
npm cinpm run buildBUNPRO_API_TOKEN='your-token' node dist/index.js

The last command starts an MCP stdio process and waits for protocol messages; it has no interactive prompt. Prefer the MCP client's environment configuration so the token does not enter shell history.

Example requests

  • “Show my Bunpro profile.”
  • “How many reviews are due?”
  • “Show my hourly review forecast.”
  • “Search Bunpro vocabulary for 日本語.”
  • “What was my last review-session accuracy?”

Available tools

ToolPurpose
get_userGet the current user profile.
get_user_furiganaGet furigana settings.
get_dueGet items currently due.
get_queueGet the current review queue.
get_quiz_questionsGet the current read-only quiz queue.
get_base_statsGet base study statistics.
get_jlpt_progressGet mixed JLPT progress.
get_daily_forecastGet the daily review forecast.
get_hourly_forecastGet the hourly review forecast.
get_srs_overviewGet the SRS level overview.
get_review_activityGet daily or hourly review activity.
get_last_sessionGet last-session accuracy.
get_weak_itemsRank weak grammar and vocabulary using study count and accuracy.
get_vocabGet vocabulary by slug or ID.
get_vocab_notesGet notes for vocabulary.
get_vocab_neighborsGet adjacent vocabulary in a deck.
get_learning_contentGet learning content for a deck.
get_topic_repliesGet replies for a Bunpro discussion topic.
get_srs_level_detailsGet paginated SRS-level details.
get_self_study_srs_detailsGet paginated self-study SRS details.
get_ghost_srs_detailsGet ghost-review SRS details.
searchSearch grammar and vocabulary with compact results.

Exact inputs, outputs, defaults, and errors are in MCP contracts.

Configuration

VariableRequiredDescription
BUNPRO_API_TOKENYesFrontend bearer token without the Bearer prefix.
BUNPRO_API_BASE_URLNoAPI override mainly for tests. It receives the token; use only a trusted URL.

Development

bash
npm cinpm run check

Authenticated live checks are separate:

bash
cp .env.example .env# Edit .env locally, then:npm run test:live

The live suite is read-only and .env is ignored. See Testing and Contributing.

Troubleshooting

  • BUNPRO_API_TOKEN is required: provide it in the MCP client configuration and restart the client.
  • Bunpro API 401 or 403: obtain a fresh token and omit the Bearer prefix.
  • Tool list did not change after rebuilding: restart the MCP client.
  • 404 or 5xx from Bunpro: the unofficial endpoint may have changed; run live tests and open a sanitized issue.
  • No output when launched in a terminal: expected; stdio is waiting for an MCP host.

Architecture and limitations

The server is a local stdio package using the official TypeScript MCP SDK. Most outputs pass through Bunpro's JSON, so upstream shape changes are possible. It currently provides tools only—no resources, prompts, hosted HTTP endpoint, browser login, or OAuth flow.

Read Architecture, Technical security, and the community API reference.

Releases and distribution

The npm package is published as bunpro-mcp-server and can be launched with npx -y bunpro-mcp-server. Release metadata is also prepared for the official MCP Registry through server.json.

Releases use Semantic Versioning and GitHub Releases. The release tag must match v<package version>; GitHub Actions then tests, publishes through tokenless npm Trusted Publishing, and registers the same version in the official MCP Registry. See Publishing.

A future hosted streamable-HTTP server could reduce installation friction, but it first needs secure per-user authentication and token storage. Local stdio keeps the current bearer token on the user's machine.

Security, contributions, and license

Read SECURITY.md before reporting a vulnerability. Contributions follow CONTRIBUTING.md. Never include credentials or personal Bunpro responses in a report.

Licensed under the existing MIT License. Downstream users must also comply with Bunpro's applicable terms and policies.

Source: README.md at commit 52f0818

Tools

22

get_user

Get the current Bunpro user profile

Takes no parameters.

get_user_furigana

Get the current furigana settings

Takes no parameters.

get_due

Get items currently due for review

Takes no parameters.

get_queue

Get the current review queue

Takes no parameters.

get_base_stats

Get base study statistics

Takes no parameters.

get_jlpt_progress

Get JLPT progress

Takes no parameters.

get_daily_forecast

Get the daily review forecast

Takes no parameters.

get_hourly_forecast

Get the hourly review forecast

Takes no parameters.

get_srs_overview

Get the SRS level overview

Takes no parameters.

get_quiz_questions

Get the current read-only Bunpro quiz queue

Takes no parameters.

get_review_activity

Get daily or hourly review activity statistics

Parametersperiod

get_last_session

Get the accuracy percentage from the last review session

Takes no parameters.

get_weak_items

Rank weak grammar and vocabulary using study count and historical accuracy

Parameterslimit

get_vocab

Get a vocabulary item by slug or ID

Parametersvocabrequired

get_vocab_notes

Get notes for a vocabulary item by slug or ID

Parametersvocabrequired

get_vocab_neighbors

Get the previous and next vocabulary items in a deck

Parametersdeck_idrequiredvocab_idrequired

get_learning_content

Get learning content for a Bunpro deck

Parametersdeck_idrequired

get_topic_replies

Get replies for a Bunpro discourse topic

Parametersidrequiredpage

get_srs_level_details

Get paginated details for an SRS level and reviewable type

Parameterspagelevelrequiredreviewable_typerequired

get_self_study_srs_details

Get paginated self-study SRS details

Parameterspagereviewable_typerequired

get_ghost_srs_details

Get ghost-review SRS details

Parametersreviewable_typerequired

Version history

1
  1. v0.3.0LatestOct 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