Bunpro MCP Server
Read-only access to Bunpro profile, reviews, study statistics, vocabulary, and search.
What can you do with Bunpro MCP Server?
- 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.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
bunpro-mcp-serverclaude mcp add bunpro-mcp-server -e 'BUNPRO_API_TOKEN=<your bunpro_api_token>' -- npx -y bunpro-mcp-server@0.3.0
{
"mcpServers": {
"bunpro-mcp-server": {
"command": "npx",
"args": [
"-y",
"bunpro-mcp-server@0.3.0"
],
"env": {
"BUNPRO_API_TOKEN": "<your bunpro_api_token>"
}
}
}
}
Environment variables
BUNPRO_API_TOKENrequired secret Bunpro frontend bearer token without the Bearer prefix.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
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
- 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.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
| Tool | Purpose |
|---|---|
get_user | Get the current user profile. |
get_user_furigana | Get furigana settings. |
get_due | Get items currently due. |
get_queue | Get the current review queue. |
get_quiz_questions | Get the current read-only quiz queue. |
get_base_stats | Get base study statistics. |
get_jlpt_progress | Get mixed JLPT progress. |
get_daily_forecast | Get the daily review forecast. |
get_hourly_forecast | Get the hourly review forecast. |
get_srs_overview | Get the SRS level overview. |
get_review_activity | Get daily or hourly review activity. |
get_last_session | Get last-session accuracy. |
get_weak_items | Rank weak grammar and vocabulary using study count and accuracy. |
get_vocab | Get vocabulary by slug or ID. |
get_vocab_notes | Get notes for vocabulary. |
get_vocab_neighbors | Get adjacent vocabulary in a deck. |
get_learning_content | Get learning content for a deck. |
get_topic_replies | Get replies for a Bunpro discussion topic. |
get_srs_level_details | Get paginated SRS-level details. |
get_self_study_srs_details | Get paginated self-study SRS details. |
get_ghost_srs_details | Get ghost-review SRS details. |
search | Search grammar and vocabulary with compact results. |
Exact inputs, outputs, defaults, and errors are in MCP contracts.
Configuration
| Variable | Required | Description |
|---|---|---|
BUNPRO_API_TOKEN | Yes | Frontend bearer token without the Bearer prefix. |
BUNPRO_API_BASE_URL | No | API override mainly for tests. It receives the token; use only a trusted URL. |
Development
npm ci
npm run check
Authenticated live checks are separate:
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 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.
Frequently asked questions
What is Bunpro MCP Server?
Read-only access to Bunpro profile, reviews, study statistics, vocabulary, and search.
How do I install Bunpro MCP Server?
It runs on your machine. In Claude Code: claude mcp add bunpro-mcp-server -e 'BUNPRO_API_TOKEN=<your bunpro_api_token>' -- npx -y bunpro-mcp-server@0.3.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Bunpro MCP Server need an API key?
Yes. It expects BUNPRO_API_TOKEN, which you set in its configuration.
Is Bunpro MCP Server open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Bunpro MCP Server?
It is published by Alexxanddr. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.