mcpField
B
Bunpro

Bunpro

本地服务
github.com/jbeshir科研与教育12 天前更新

关于 Bunpro

Bunpro 是面向日语学习者的只读 MCP 服务,可供 MCP 客户端查询账户与学习数据、JLPT 进度、复习预测,以及单条语法和词汇信息。

主要功能

  1. 01读取用户资料和学习统计
  2. 02查看待复习队列与预测
  3. 03跟踪 JLPT 和 SRS 阶段进度
  4. 04查询语法点和词汇详情
  5. 05查看牌组设置与学习活动

适用场景

  1. 01查看待完成的复习数量
  2. 02根据复习预测安排学习
  3. 03查询语法结构和例句
  4. 04查看词汇读音与音调

MCP 相关

通过 stdio 向 MCP 客户端提供 12 个只读工具,用于查询 Bunpro 账户、SRS、语法和词汇数据。使用 Bunpro 账户凭据进行身份验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbbunpro-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

bunpro-mcp

一个 MCP 服务,可只读访问 Bunpro。Bunpro 是一个日语语法与词汇 SRS(间隔重复系统)平台。它提供 12 个工具,用于查询用户资料、学习统计数据、复习预测、JLPT 进度、SRS 阶段详情,以及单个语法点或词汇数据。身份验证会通过 Bunpro 的 Rails Devise 登录流程自动处理,只需提供电子邮件和密码。

核心概念

  • SRS(间隔重复系统) —— 核心学习机制。项目会依次进入以下阶段:初学、熟练、精通、专家、大师。答错的项目可能会变成鬼卡,出现频率更高。
  • 语法点 —— 日语语法模式(例如 da“是”),包含结构、含义、语感和例句。按 JLPT 等级组织。
  • 词汇 —— 日语单词,包含读音、音调模式、频率数据和 JMDict 词典条目。
  • JLPT 等级 —— 日本语能力测试等级,从 N5(最简单)到 N1(最难)。Bunpro 按 JLPT 等级组织所有内容。
  • 牌组 —— 学习合集,可配置每批数量和每日课程目标。
  • 复习预测 —— 对即将到来的复习数量的预测,可按天或按小时查看。

架构

该服务分为四层:读取配置并获取令牌的入口点、在需要时执行 Devise 登录流程的身份验证模块、使用 Bearer 令牌身份验证调用 Bunpro 前端 API 的 HTTP 客户端,以及注册工具并格式化响应的 MCP 服务。

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

身份验证在启动时执行一次。身份验证模块会从登录页面获取 CSRF 令牌,提交表单编码的凭据,并提取 frontend_api_token Cookie。该令牌的有效期约为 2 天,足以用于任何单次 MCP 会话。

数据流

下方的时序图展示了启动时获取令牌以及运行时调用工具的过程。所有 API 请求都是发往 api.bunpro.jp/api/frontend/* 的 GET 请求,令牌通过 Bearer 授权标头发送。

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

开始使用

要求
  • Go 1.27.3+(从源代码构建时需要)
  • Bunpro 账户(免费或付费)
安装

可从 Releases 获取预构建二进制文件。

从源代码安装:

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

或者从仓库根目录构建:

make build
配置
变量必填描述
BUNPRO_EMAIL是Bunpro 账户电子邮件
BUNPRO_PASSWORD是Bunpro 账户密码
BUNPRO_API_URL否API 基础 URL(默认值:https://api.bunpro.jp)
BUNPRO_LOGIN_URL否登录页面 URL(默认值:https://bunpro.jp)
Claude Desktop
{
  "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

工具

所有工具均为只读,不会修改 Bunpro 数据。

工具参数说明
get_user--用户资料:等级、XP、连续学习天数、订阅状态
get_study_queue--到期语法和词汇复习数量
get_decks--卡组设置:每日目标、进度、批次大小
get_stats--学习统计:学习天数、连续学习天数、准确率、徽章
get_jlpt_progress--JLPT N5-N1 进度及 SRS 阶段数量
get_review_forecastgranularity(可选):"daily" 或 "hourly"即将进行的复习预测,按语法和词汇分类
get_srs_overview--SRS 等级总数(从初学者到大师,另含幽灵和自学)
get_review_activity--过去约 30 天的每日复习数量
get_grammar_srs_detailslevel(必填):beginner、adept、seasoned、expert 或 master;page(可选)特定 SRS 等级的分页语法复习项目
get_vocab_srs_detailslevel(必填):beginner、adept、seasoned、expert 或 master;page(可选)特定 SRS 等级的分页词汇复习项目
get_grammar_pointid(必填)语法点详情:含义、结构、细微差别、学习题目
get_vocabslug_or_id(必填):slug(例如「食べる」)或数字 ID词汇详情:读音、音高重音、词频、JMDict 词条

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。