Bunpro MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bunpro MCP How many reviews are due right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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.
Related MCP server: bunpro-mcp
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
Sign in to Bunpro in your browser.
Open the browser developer tools and select Network.
Select a request to
https://api.bunpro.jp/api/frontend/....Copy the
Authorizationrequest header value without theBearerprefix.
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:
{
"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:
{
"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
npm ci
npm run build
BUNPRO_API_TOKEN='your-token' node dist/index.jsThe 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
Tool | Purpose |
| Get the current user profile. |
| Get furigana settings. |
| Get items currently due. |
| Get the current review queue. |
| Get the current read-only quiz queue. |
| Get base study statistics. |
| Get mixed JLPT progress. |
| Get the daily review forecast. |
| Get the hourly review forecast. |
| Get the SRS level overview. |
| Get daily or hourly review activity. |
| Get last-session accuracy. |
| Rank weak grammar and vocabulary using study count and accuracy. |
| Get vocabulary by slug or ID. |
| Get notes for vocabulary. |
| Get adjacent vocabulary in a deck. |
| Get learning content for a deck. |
| Get replies for a Bunpro discussion topic. |
| Get paginated SRS-level details. |
| Get paginated self-study SRS details. |
| Get ghost-review SRS details. |
| Search grammar and vocabulary with compact results. |
Exact inputs, outputs, defaults, and errors are in MCP contracts.
Configuration
Variable | Required | Description |
| Yes | Frontend bearer token without the |
| No | API override mainly for tests. It receives the token; use only a trusted URL. |
Development
npm ci
npm run checkAuthenticated live checks are separate:
cp .env.example .env
# Edit .env locally, then:
npm run test:liveThe 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 401or403: obtain a fresh token and omit theBearerprefix.Tool list did not change after rebuilding: restart the MCP client.
404or5xxfrom 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.
Available Tools
22 toolsget_base_statsCRead-onlyIdempotent
Get base study statistics
Inputs: no named parameters.
get_daily_forecastBRead-onlyIdempotent
Get the daily review forecast
Inputs: no named parameters.
get_dueCRead-onlyIdempotent
Get items currently due for review
Inputs: no named parameters.
get_ghost_srs_detailsCRead-onlyIdempotent
Get ghost-review SRS details
Inputs: reviewable_type (required).
get_hourly_forecastBRead-onlyIdempotent
Get the hourly review forecast
Inputs: no named parameters.
get_jlpt_progressCRead-onlyIdempotent
Get JLPT progress
Inputs: no named parameters.
get_last_sessionBRead-onlyIdempotent
Get the accuracy percentage from the last review session
Inputs: no named parameters.
get_learning_contentCRead-onlyIdempotent
Get learning content for a Bunpro deck
Inputs: deck_id (required).
get_queueCRead-onlyIdempotent
Get the current review queue
Inputs: no named parameters.
get_quiz_questionsBRead-onlyIdempotent
Get the current read-only Bunpro quiz queue
Inputs: no named parameters.
get_review_activityCRead-onlyIdempotent
Get daily or hourly review activity statistics
Inputs: period.
get_self_study_srs_detailsCRead-onlyIdempotent
Get paginated self-study SRS details
Inputs: reviewable_type (required), page.
get_srs_level_detailsCRead-onlyIdempotent
Get paginated details for an SRS level and reviewable type
Inputs: level (required), reviewable_type (required), page.
get_srs_overviewCRead-onlyIdempotent
Get the SRS level overview
Inputs: no named parameters.
get_topic_repliesCRead-onlyIdempotent
Get replies for a Bunpro discourse topic
Inputs: id (required), page.
get_userBRead-onlyIdempotent
Get the current Bunpro user profile
Inputs: no named parameters.
get_user_furiganaARead-onlyIdempotent
Get the current furigana settings
Inputs: no named parameters.
get_vocabBRead-onlyIdempotent
Get a vocabulary item by slug or ID
Inputs: vocab (required).
get_vocab_neighborsCRead-onlyIdempotent
Get the previous and next vocabulary items in a deck
Inputs: deck_id (required), vocab_id (required).
get_vocab_notesBRead-onlyIdempotent
Get notes for a vocabulary item by slug or ID
Inputs: vocab (required).
get_weak_itemsBRead-onlyIdempotent
Rank weak grammar and vocabulary using study count and historical accuracy
Inputs: limit.
searchCRead-onlyIdempotent
Search Bunpro grammar and vocabulary with compact results
Inputs: query (required), limit, vocab, grammar.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 22 tools
Most tools target clearly distinct Bunpro resources or statistics, and the descriptions distinguish similar-sounding tools such as get_due, get_queue, and get_quiz_questions. There is still some overlap among the many stats/forecast/SRS-detail getters, but boundaries are generally clear enough to avoid misselection.
Nearly all tools follow a consistent snake_case get_* convention, making the set predictable. The lone search tool breaks the get_ prefix pattern, but the overall convention remains strong.
At 22 tools, the surface is on the heavy side for a read-only Bunpro client, with several granular SRS-detail and forecast tools that could be consolidated via parameters. Each tool is plausibly useful, but the count is borderline for the scope.
The read-only analytics and lookup surface is fairly broad, covering stats, forecasts, queues, vocabulary, and SRS details. However, notable gaps remain: there is no grammar-item getter analogous to get_vocab, no note update/write operations despite get_vocab_notes, and no review submission or broader mutation workflows.
Maintenance
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Authoritative JLPT-graded Japanese dataset (kanji, vocab, grammar, history) via MCP and REST.
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Related MCP Servers
- AlicenseAqualityDmaintenanceA read-only MCP server that provides access to Maimemo study data, including vocabulary progress, word lists, and notepads. It supports both stdio and HTTP transports with authentication and rate limiting for secure data access.620 npmMIT
- AlicenseAqualityDmaintenanceAn unofficial MCP server for Bunpro that exposes its review queue, search, statistics, and SRS management as tools, enabling an LLM agent to read study data and add grammar points or vocabulary to reviews.232 npmMIT
- FlicenseAqualityDmaintenanceMCP server for ChaosLimba — provides read-only access to the Romanian language learning platform's database via the Model Context Protocol.20-
- FlicenseNot gradedqualityDmaintenanceA read-only MCP server that lets ChatGPT inspect your LingQ progress without exposing your password. It exposes tools for listing languages, checking progress capabilities, and retrieving progress summaries and charts.-