mcpField
B
Bunpro

Bunpro

ローカル
github.com/jbeshir科学・教育12 日前に更新

Bunpro について

Bunpro は、Bunpro で日本語を学ぶ人向けの読み取り専用 MCP サーバーです。MCP クライアントからアカウントや学習データ、JLPT の進捗、復習予測、文法・語彙項目を確認できます。

主な機能

  1. 01ユーザープロフィールと学習統計の取得
  2. 02復習キューと予測の確認
  3. 03JLPT と SRS 段階の進捗確認
  4. 04文法項目と語彙の詳細確認
  5. 05デッキ設定と学習履歴の確認

活用シーン

  1. 01未完了の復習数の確認
  2. 02復習予測に基づく学習計画
  3. 03文法の構造と例文の検索
  4. 04語彙の読み方とアクセントの確認

MCP 対応

stdio 経由で、Bunpro のアカウント、SRS、文法、語彙データを照会する 12 個の読み取り専用ツールを MCP クライアントに提供します。Bunpro アカウントの認証情報で認証します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbbunpro-mcp.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

bunpro-mcp

Bunpro への読み取り専用アクセスを提供する MCP サーバーです。Bunpro は日本語の文法と語彙を学ぶための SRS(間隔反復システム)プラットフォームです。ユーザーのプロフィール、学習統計、復習の予測、JLPT の進捗状況、SRS ステージの詳細、個々の文法項目や語彙データを照会するための 12 個のツールを公開します。認証は、メールアドレスとパスワードを使って Bunpro の Rails Devise ログインフローを通じて自動的に行われます。

主な概念

  • SRS(間隔反復システム) -- 学習の中心となる仕組みです。項目は、初級者、熟達者、経験者、エキスパート、マスターの各ステージへと進みます。誤答した項目はゴーストになり、より頻繁に再び出題されることがあります。
  • 文法項目 -- 構造、意味、ニュアンス、例文を含む日本語の文法パターン(例:da「である」)です。JLPT レベル別に整理されています。
  • 語彙 -- 読み、ピッチアクセントのパターン、頻度データ、JMDict の辞書項目を含む日本語の単語です。
  • JLPT レベル -- 日本語能力試験のレベルです。最も易しい N5 から最も難しい N1 まであります。Bunpro では、すべてのコンテンツが JLPT レベル別に整理されています。
  • デッキ -- バッチサイズと毎日のレッスン目標を設定できる学習コレクションです。
  • 復習予測 -- 今後の復習件数の予測です。日単位または時間単位で確認できます。

アーキテクチャ

サーバーは 4 つのレイヤーで構成されています。設定を読み込んでトークンを取得するエントリーポイント、必要に応じて 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 アカウント(無料または有料)
インストール

ビルド済みバイナリは リリース から入手できます。

ソースからインストールする場合:

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--デッキ設定:1日の目標、進捗、バッチサイズ
get_stats--学習統計:学習日数、連続学習日数、正答率、バッジ
get_jlpt_progress--SRS ステージ別の件数を含む JLPT N5〜N1 の進捗
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(必須):スラッグ(例:「食べる」)または数値 ID語彙の詳細:読み、ピッチアクセント、頻度、JMDict エントリー

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。