tutor-mcp は、Claude・ChatGPT・Gemini など MCP 対応のどの AI クライアントも、知的学習支援システム(ITS)に変える Go 製の OSS だ。主題と目標を決めると、AI がそれをスキルグラフに写し、診断・個別レッスン・演習・復習までを回す。設計の肝は「生成する教師・決定論的な教え方」——教材を作り説明するのは AI、進度を決めるのは監査可能なエンジン(習得度の BKT、間隔反復の FSRS など)という分担だ。MIT・star 67・alpha(v0.7.3)。まずは公式デモを見てほしい。

tutor-mcp の公式デモ。Claude Code 上で、学習者が目標を述べ、生成されたカリキュラムと前提を確認し、凍結したルーブリックで採点された誤答を受け、学習者メモリに書き出す要約でセッションを閉じる様子
公式デモ(出典: ArnaudGuiovanna/tutor-mcp・MIT)。Claude Code 上で stdio ローカル接続の実セッション

30秒でわかるtutor-mcp(v0.7.3・2026-11-02確認)

  • ・MCP対応のどのLLMも知的学習支援システム(ITS)に変えるGo製OSS(MIT・開発者 Arnaud Guiovanna)。
  • ・生成はAI、進度はエンジン。BKTで習得度を推定し閾値未満なら先へ進ませず、FSRSで復習日を出す。
  • ・Local / Hobby / Institution の3プロファイル。データはローカルSQLite〜組織のPostgreSQLから選べる。
  • ・alpha・star 67。教材の質は使うモデル次第で、内容は確かめる前提。版を固定して追うのが無難。

MCP そのものの仕組みはMCPサーバーの作り方2026年完全ガイド:TypeScript・Python両対応チュートリアルに、全体像はMCPの仕組み|リクエストの流れ・3つの機能・仕様改訂にまとめている。本記事はその応用として、「AI に“ちゃんと”教わる」ための1本を見る。

tutor-mcp とは:生成はAI、進度はエンジンが決める

生の LLM に「家庭教師して」と頼む弱点は、はっきりしている。毎回ゼロから始まり、あなたの習得度を覚えておらず、頼めばどんどん先へ進めてしまい、復習のタイミングは自己管理——結局「分かった気」で終わりやすい。tutor-mcp は、ここを学習科学の定石で律する。

HOW IT WORKS生成する教師・決定論的な教え方

AIが作り、エンジンが進度を決める

  1. 主題と目標を決める

    『会話スペイン語』から『バックエンド』まで。AIが主題を概念・前提・目標のスキルグラフに写し、Tutorが検証・バージョン管理する

  2. 診断して個別化

    出発点を診断し、個別のレッスンと演習を出す。弱点は復習に回す。narrative memory が会話をまたいで文脈を持つ

  3. 習得度を推定(BKT)

    ベイジアン知識トレースで習得度を推定。閾値(例0.85)に満たなければ先の課題を出さない=飛び級させない

  4. 復習日を決める(FSRS)

    間隔反復FSRSで復習日を算出。評価はルーブリックの証拠で記録し、断定でなく実証で進む

出典: ArnaudGuiovanna/tutor-mcp README・algorithms(bkt.go/fsrs.go/irt.go/kst.go)(2026-11-02・v0.7.3 確認)

流れはこうだ。主題と目標を決めると、AI がそれを概念・前提・目標のスキルグラフに写し、Tutor がそれを検証してバージョン管理する。出発点を診断し、個別のレッスンと演習を出し、弱点は復習に回す。ここで効くのが決定論エンジンだ。習得度はBKT(ベイジアン知識トレース)で推定し、閾値(デモでは 0.85)に満たなければ先の課題を出さない=飛び級させない。復習日はFSRS(間隔反復)で決め、合否は凍結したルーブリックの証拠で記録する。「できたと言い張る」のではなく「実証して進む」わけだ。narrative memory が会話をまたいで文脈を保つので、別の日でも続きから学べる。

重要なのは、これがマーケティング上の主張ではないことだ。これらのアルゴリズムはリポジトリの algorithms/ に実装されている(bkt.go・fsrs.go・irt.go=項目反応理論・kst.go=知識空間理論・thresholds.go)。生成の自由さと、進度の厳密さを分けたのが、この道具の設計思想だ。

生のLLMと何が違うか:BKTとFSRSの役割

背骨になっている2つのアルゴリズムを、かみ砕いておく。

RAW LLM VS TUTOR直接LLMに教わるのと何が違うか

その場の説明か、続く学習の設計か

LLMに直接『教えて』

tutor-mcp 経由

LLMに直接『教えて』: 毎回ゼロから。習得度を覚えていない

tutor-mcp 経由: 習得度(BKT)と履歴を持ち越す

LLMに直接『教えて』: 頼めば先に進めてしまう(飛び級)

tutor-mcp 経由: 閾値未満なら先の課題を出さない

LLMに直接『教えて』: 復習のタイミングは自己管理

tutor-mcp 経由: 間隔反復(FSRS)で復習日を提示

LLMに直接『教えて』: できた『気』で終わりがち

tutor-mcp 経由: ルーブリックの証拠で実証して記録

出典: README の設計説明(2026-11-02 確認)。alpha 段階。生成の質は使うモデルに依存する

BKT(ベイジアン知識トレース)は、正答・誤答の履歴から「この概念を本当に身につけている確率」を更新し続ける手法だ。一度正解しただけでは確率は閾値に届かず、まぐれ当たりや取りこぼしも確率として織り込む。だから tutor-mcp は「2回連続で正解」ではなく「習得している確率が 0.85 を超えた」で先へ進ませる。FSRS(間隔反復)は、人の忘却曲線に合わせて「次にいつ復習すべきか」を算出するアルゴリズムで、Anki などでも使われる考え方だ。覚えたてのものは短い間隔で、定着したものは長い間隔で出すことで、最小の反復で記憶を保つ。この2つが、「生成AIが作った教材」を「続く学習」に変える要になっている。

冒頭のデモ(Claude Code 上の実セッション)は、この仕組みを具体的に見せている。README の説明によれば、学習者が「Go のバックエンド開発」を目標に挙げると、Tutor は主題を18 概念のスキルグラフに写し、学習者の Python の素養から何が転用できるかを診断する。そのうえで、習得度の推定がルーティング閾値 0.85 に対して 0.33 にとどまるため、Feynman(自分の言葉で説明させる)や転用の問いをまだ出さずに断る。練習を2回こなして推定が閾値を超えると、今度は未見のデバッグ場面で転用の問いを出し、結果を「できたと主張させる」のではなく凍結したルーブリックに照らして記録する。「分かったつもり」を機械的に塞いでいく様子が、そのまま映っている。

向くのは、独学で体系立てて積み上げたい人、語学や資格を継続的に進めたい人、そして研修プログラムを設計・共有したい組織だ。逆に、今すぐ一問だけ答えが欲しいだけなら、生の LLM に直接聞けば十分で、この道具の出番ではない。学習を「設計して続ける」ことに価値を感じるかどうかが分かれ目になる。

どのクライアントで、どこにデータを置くか

tutor-mcp は MCP サーバなので、MCP 対応のクライアントから使う。README によれば Claude Code・Claude Desktop・ChatGPT・Gemini CLI・Le Chat・Hermes・Pi などに対応し、ローカルは stdio、リモートは HTTPS/OAuth で接続する。同じ Tutor インストールに繋げば、クライアントを替えても学習履歴は共有される。

データの置き場所は3つのプロファイルから選べる。

プロファイル 向き 構成
Local 自分の PC で学ぶ 1バイナリ + --local。MCP クライアントが起動し、SQLite に履歴。アカウント・サーバ不要
Hobby 個人VPS・小グループ --profile hobby、SQLite + HTTPS プロキシ。SSH で招待、ユーザー名/パスワードでログイン
Institution 学習コミュニティ・研修組織 --profile institution、公開鍵ID・PostgreSQL・API/worker/migrator を分離。共有カタログと貢献レビュー

いちばん手軽なのは Local だ。MCP クライアントの設定でサーバとして登録すると、クライアントがバイナリを起動してくれる。

# ソースから(Go が要る)。リリースのバイナリでも可。詳細は docs/installation.md
git clone https://github.com/ArnaudGuiovanna/tutor-mcp
cd tutor-mcp && go build -o tutor-mcp .

# ローカル実行(履歴は手元の SQLite)。通常は下のMCP設定からクライアントが起動する
./tutor-mcp --local

MCP クライアント(例:Claude Desktop)には、stdio のサーバとして次のように登録する(パスは自分の環境に合わせる)。

{
  "mcpServers": {
    "tutor": { "command": "/path/to/tutor-mcp", "args": ["--local"] }
  }
}

組織で使うなら、Windows デスクトップクライアント Tutor ACP がある。メンバーは共有カタログからプログラムを見つけ、自分のペースで学び、会話と進捗に戻れる。オーナーはメンバーとアクセスを管理し、著者や認可されたトレーナーが同じアプリからプログラムを保守する。クライアントは仏/英の2言語とライト/ダーク/システムのテーマに対応し、学習の証拠を扱う仕組み(バッジや修了。リポジトリの auth/badges.go・certification/)も含まれる。公開したプログラムは、明示的な移行があるまで登録済み学習者向けに版を保つため、途中でカリキュラムが足元から変わる心配が小さいのも、組織運用では効く点だ。

# 組織向けサーバ(PostgreSQL・ロール分離)。詳細は docs/installation.md の institutional-deployment
./tutor-mcp --profile institution

使う前に押さえる点

・ステータスは alpha・star 67:新しいプロジェクトで、仕様やコマンドは変わりうる。版を固定して追うのが無難
・生成の質はモデル次第:エンジンは進度を律するが、教材の内容そのものの正しさは保証しない。説明は確かめる前提で使う
・スキルグラフは AI が作る:前提や目標の妥当性は自分でも点検したい。おかしなグラフの上に積み上げない
・データの置き場所を選べる:機微な学習内容は Local プロファイルで手元の SQLite に留めるのが堅実。VPS/組織は HTTPS/認証の設計を確認
・MCP 権限に注意:クライアント側で Tutor に与えるツール権限は、会話や再起動をまたいで記憶させられる。付与範囲を把握しておく
・学習エンジンは共通:どのプロファイル・どのクライアントでも同じエンジン。まず Local で自分の学習に効くか試すのが早い

総括。 tutor-mcp の面白さは、「AI に教わる」をその場の説明から、続く学習の設計へ引き上げた点だ。生成の自由さは AI に任せ、進度は BKT と FSRS という枯れた学習科学の手法で律する——この分担が、生の家庭教師プロンプトとの決定的な違いになる。alpha で小さなプロジェクトだが、アルゴリズムは実装済みで、データは手元に置ける。独学を「分かった気」で終わらせたくない人は、MCP クライアントに Local で挿して、自分のテーマで一度回してみる価値がある。

参照ソース