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 分