Bunpro

io.github.jbeshir由 GitHub 账号 jbeshir 发布v1.0.1更新于 Oct 29, 2026

Read Bunpro SRS data: profile, study queue, reviews, JLPT progress, and grammar lookups.

已验证STDIO仅桌面效率与工作流知识与记忆

概览

AI 生成的概览

面向 Bunpro 的只读 MCP 服务器,让助手查询用户的日语 SRS 资料、学习队列、复习情况、JLPT 进度以及语法和词汇详情。

可以做什么
  • 读取个人资料、学习统计、连续学习天数、徽章和牌组设置
  • 查看待复习数量、SRS 阶段概览以及按天或按小时的复习预测
  • 跟踪 JLPT N5 至 N1 进度和近一个月的每日复习活动
  • 按指定 SRS 阶段分页列出语法或词汇条目
  • 查询单个语法点或词汇条目,包括读音、音调模式和词典数据
适用场景
适合学习者希望助手总结其 Bunpro 学习状态、根据未来复习量安排学习计划,或讲解正在学习的语法点和词汇时使用。
运行要求
作为本地进程运行(预编译二进制或使用 Go 从源码构建)。需要 Bunpro 账号(免费或付费)以及环境变量 BUNPRO_EMAIL 和 BUNPRO_PASSWORD。可选 BUNPRO_API_URL 和 BUNPRO_LOGIN_URL 可覆盖默认地址。需要访问 bunpro.jp 和 api.bunpro.jp 的网络连接。
安装前请注意
服务器使用 Bunpro 邮箱和密码登录,因此 BUNPRO_PASSWORD 是真实账号凭据,会保存在客户端配置中;如有可能请使用专用或受限账号。凭据会提交到 Bunpro 登录页,并在启动时获取会话令牌。所有工具均为只读,不会修改 Bunpro 数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Bunpro,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

bunpro-mcp

An MCP server that provides read-only access to Bunpro, a Japanese grammar and vocabulary SRS (spaced repetition system) platform. It exposes 12 tools for querying a user's profile, study statistics, review forecasts, JLPT progress, SRS stage details, and individual grammar point or vocabulary data. Authentication is handled automatically via Bunpro's Rails Devise login flow using your email and password.

Key Concepts

  • SRS (Spaced Repetition System) -- Core learning mechanism. Items progress through stages: beginner, adept, seasoned, expert, master. Items answered incorrectly may become ghosts that reappear more frequently.
  • Grammar Points -- Japanese grammar patterns (e.g. da "to be") with structure, meaning, nuance, and example sentences. Organized by JLPT level.
  • Vocabulary -- Japanese words with readings, pitch accent patterns, frequency data, and JMDict dictionary entries.
  • JLPT Levels -- Japanese Language Proficiency Test levels N5 (easiest) through N1 (hardest). Bunpro organizes all content by JLPT level.
  • Decks -- Study collections with configurable batch sizes and daily lesson goals.
  • Review Forecast -- Predicted number of upcoming reviews, viewable by day or by hour.

Architecture

The server has four layers: an entry point that reads configuration and obtains a token, an auth module that performs the Devise login flow when needed, an HTTP client that calls the Bunpro frontend API with Bearer token auth, and the MCP server that registers tools and formats responses.

mermaid
graph TD    MCP["MCP Client<br/>(Claude, etc.)"]    SRV["MCP Server<br/>12 read-only tools"]    CLI["HTTP Client<br/>Bearer token auth"]    API["Bunpro Frontend API<br/>api.bunpro.jp"]
    MCP -->|"stdio JSON-RPC"| SRV    SRV --> CLI    CLI -->|"GET /api/frontend/*"| API
    subgraph "Authentication (startup)"        direction LR        LOGIN["Auth Module<br/>Devise login flow"]        SITE["bunpro.jp<br/>Rails login page"]        LOGIN -->|"CSRF + POST credentials"| SITE        SITE -->|"frontend_api_token cookie"| LOGIN    end
    LOGIN -.->|"token"| CLI

Authentication happens once at startup. The auth module fetches a CSRF token from the login page, submits form-encoded credentials, and extracts the frontend_api_token cookie. The token has approximately a 2-day lifetime — long enough for any single MCP session.

Data Flow

The sequence diagram below shows both the startup token acquisition and a runtime tool call. All API requests are GET requests to api.bunpro.jp/api/frontend/* with the token sent as a Bearer authorization header.

mermaid
sequenceDiagram    participant Client as MCP Client    participant Server as MCP Server    participant Auth as Auth Module    participant Site as bunpro.jp    participant API as api.bunpro.jp
    Note over Client,API: Startup: Token Acquisition    Server->>Auth: Login(email, password)    Auth->>Site: GET /login    Site-->>Auth: HTML with CSRF token    Auth->>Site: POST /users/sign_in (form-encoded)    Site-->>Auth: frontend_api_token cookie    Auth-->>Server: token
    Note over Client,API: Runtime: Tool Calls    Client->>Server: get_grammar_point(id)    Server->>API: GET /api/frontend/reviewables/grammar_point/{id}    Note over Server,API: Authorization: Bearer token    API-->>Server: JSON:API response    Server-->>Client: Formatted JSON result

Getting Started

Requirements

  • Go 1.27.3+ (to build from source)
  • A Bunpro account (free or paid)

Installation

Pre-built binaries are available from Releases.

Install from source:

go install github.com/jbeshir/mcp-servers/bunpro/cmd/bunpro-mcp@latest

Or build from the repo root:

make build

Configuration

VariableRequiredDescription
BUNPRO_EMAILYesBunpro account email
BUNPRO_PASSWORDYesBunpro account password
BUNPRO_API_URLNoAPI base URL (default: https://api.bunpro.jp)
BUNPRO_LOGIN_URLNoLogin page URL (default: https://bunpro.jp)
Claude Desktop
json
{  "mcpServers": {    "bunpro": {      "command": "/path/to/bunpro-mcp",      "env": {        "BUNPRO_EMAIL": "[email protected]",        "BUNPRO_PASSWORD": "your-password"      }    }  }}
Claude Code
claude mcp add bunpro /path/to/bunpro-mcp -e [email protected] -e BUNPRO_PASSWORD=your-password

Tools

All tools are read-only. No tool modifies Bunpro data.

ToolParametersDescription
get_user--User profile: level, XP, streak, subscription status
get_study_queue--Due grammar and vocabulary review counts
get_decks--Deck settings: daily goals, progress, batch sizes
get_stats--Study statistics: days studied, streak, accuracy, badges
get_jlpt_progress--JLPT N5-N1 progress with SRS stage counts
get_review_forecastgranularity (optional): "daily" or "hourly"Upcoming review forecast split by grammar and vocabulary
get_srs_overview--Aggregate SRS level counts (beginner through master, plus ghost and self-study)
get_review_activity--Daily review counts for the past ~30 days
get_grammar_srs_detailslevel (required): beginner, adept, seasoned, expert, or master; page (optional)Paginated grammar review items at a specific SRS level
get_vocab_srs_detailslevel (required): beginner, adept, seasoned, expert, or master; page (optional)Paginated vocabulary review items at a specific SRS level
get_grammar_pointid (required)Grammar point details: meaning, structure, nuance, study questions
get_vocabslug_or_id (required): slug (e.g. "食べる") or numeric IDVocabulary details: readings, pitch accent, frequency, JMDict entries

来源:bunpro/README.md,提交 27dc1b2

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v1.0.1最新Oct 29, 2026
  2. v1.0.0Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分