Model Context Protocol

自社の学習コンテンツを、
AI から直接参照する。

Manabu2 は MCP に対応しています。Claude などの AI クライアントを接続すると、 自社のコース・レッスンを AI がそのまま読めるようになります。 コピー&ペーストも、書き出しも必要ありません。

接続方法を見る

MCP とは

Model Context Protocol は、AI クライアントが外部のデータやツールに接続するための共通規格です。 対応したサービスは、AI から「読める・操作できる」対象になります。

Manabu2 が MCP に対応しているということは、 研修資料を AI に読ませるために、いちいち書き出して貼り付ける必要がないということです。 AI が必要なときに、必要なレッスンだけを直接取りに行きます。

使いどころの例
  • 既存レッスンをもとに、社内向けの要約記事をつくる
  • 研修内容から、新入社員向けの想定問答を組み立てる
  • 複数コースを横断して、扱っている論点を洗い出す
  • レッスン本文をもとに、勉強会用のスライド構成を考える

利用できるツール

接続すると、AI クライアントから次の 74 個のツールが使えるようになります。

実際に見えるのは、その方のロールで使えるものだけです。権限のないツールは tools/list に出てきません。受講者として接続すれば受講者向けのものだけが並び、 カリキュラム管理者として接続すれば教材の編集ツールも並びます。 そのために管理者の承認は必要ありません。 要承認 が付いたツールだけは例外で、組織としてそのクライアントを許可する必要があります。

カタログを見る

list_courses read:catalog

所属組織のコースと、公開コースの一覧。

get_course read:catalog

コース 1 件の詳細と、セクション・レッスンの構成。

search_content read:catalog

コース・レッスンを横断して検索します。

list_paths read:catalog

学習パスの一覧。

get_path read:catalog

学習パス 1 件と、含まれるコースの順序。

list_free_lessons read:content

組織が持つ「公開(public)」コースの、公開済みレッスン一覧。組織内部向けのコースは公開済みでも含まれません。

get_lesson_detail read:content

レッスン本文と教材。所属組織のものだけが返ります。

get_quiz read:content

レッスンのクイズ設問。選択肢はリクエストごとにシャッフルされ、正解は含みません。作成・確認には get_quiz_answer_key を使います。

自分の学習

list_my_organizations read:progress

所属している組織の一覧と、それぞれでの自分の役割。organizationId を必要とするツールを使う前に、まずこれを呼びます。

get_my_progress read:progress

本人の進捗。他の学習者の進捗は取得できません。

get_my_assignments read:progress

本人にアサインされたコースと学習パス。

get_my_certificates read:progress

本人が取得した修了証。

mark_lesson_complete write:progress

[変更] レッスンを完了として記録します。

attest_course write:progress

[変更] コースの誓約(内容を読み、理解した旨の確認)を本人として記録します。誓約が必要なコースは、これを行うまで完了になりません。

教材の作成・編集

create_course write:content

[変更] コースを作成します。対象者(学年・経験レベル)とタグも指定できます。作成時は必ず未公開です。

update_course write:content

[変更] コースのタイトル・説明・対象者・タグを変更します。公開状態はここでは変えません。

create_section write:content

[変更] コースにセクションを追加します。

update_section write:content

[変更] セクションのタイトル・概要を変更します。送ったフィールドだけが変わります。レッスンと並び順には触れません。

delete_section write:content

[変更] 空のセクションを削除します。取り消せません。レッスンが残っている場合は拒否します(一緒に消えてしまうため)。

reorder_course_sections write:content

[変更] コースのセクションの並び順を変更します。そのコースの全セクションを重複なく指定した場合だけ成功します。同じ内容の再送は安全です。

create_lesson write:content

[変更] セクションにレッスンを作成します。本文は次のツールで書きます。

get_lesson_source write:content

編集用にレッスンの原文(Markdown)を読みます。未公開のレッスン・コースも読めます。get_lesson_detail は受講者向けで公開済みしか見えません。

update_lesson_body write:content

[変更] レッスン本文を全置換します。部分更新ではないため、先に get_lesson_source で原文を取得してください。

set_lesson_published write:content

[変更] レッスンの公開・非公開を切り替えます。

reorder_section_lessons write:content

[変更] セクション内のレッスンの順序を並べ替えます。セクションの全レッスンを指定した場合だけ成功します。

move_lesson write:content

[変更] レッスンを同じコース内の別セクションへ移します。コースをまたぐ移動は学習記録が取り残されるため拒否します。

delete_lesson write:content

[変更] レッスンをクイズごと削除します。受講者が開いたレッスンは削除できません。

set_course_published write:content

[変更] コースの公開・非公開を切り替えます。

学習パス

create_path write:content

[変更] 学習パスを作成します。

update_path write:content

[変更] 学習パスの名称・説明を変更します。

delete_path write:content

[変更] 学習パスを削除します。

add_course_to_path write:content

[変更] 学習パスにコースを追加します。

remove_course_from_path write:content

[変更] 学習パスからコースを外します。

reorder_path_courses write:content

[変更] 学習パス内のコースの順序を並べ替えます。

assign_path_to_member write:members

[変更] 学習パスをメンバーにアサインします。期限・必須・再受講サイクル(か月)を指定できます。教材の編集ではなく人の管理にあたるため、必要なスコープが異なります。

unassign_path_from_member write:members

[変更] メンバーへのアサインを解除します。

クイズ・テスト

list_tests read:content

組織のテスト一覧。紐づく学習パスも表示します。パス未設定のテストは受講者から見えないため、その旨を付けて出します。

get_test_answer_key write:content

テストの正解一覧。読み取りですが、出題者向けの情報のため write:content が必要です。

create_test write:content

[変更] テストを作成し、学習パスに紐づけます。レッスンには紐づきません(レッスンのクイズは create_quiz です)。受講者はパス経由でしかテストに到達しないため、pathId を省くと誰にも見えません。

add_test_question write:content

[変更] テストに設問を追加します。

update_test write:content

[変更] テストのタイトル・合格ライン・制限時間・紐づく学習パスを変更します。パス未設定のテストを見えるようにするのもここです。

update_test_question write:content

[変更] テストの設問・解説・選択肢を差し替えます。レッスンのクイズとは設問IDの系統が別で、そちらは update_quiz_question です。

delete_test_question write:content

[変更] テストの設問を削除します。すでに解答された設問は削除できません。

delete_test write:content

[変更] テストを設問ごと削除します。受験記録があるテストは削除できません(記録ごと消えるため)。

create_quiz write:content

[変更] レッスンにクイズを作成します。未公開の状態で作られます。

add_quiz_question write:content

[変更] クイズに設問を追加します。

add_quiz_questions write:content

[変更] レッスンのクイズに設問を複数まとめて追加します。1問でも不正なら1問も追加しません。呼び出し回数を抑えたいときはこちらを使います。

get_quiz_answer_key write:content

クイズの設問と正解を確認します。未公開のクイズも読めます。get_quiz は受講者向けで、正解も未公開クイズも返しません。

update_quiz write:content

[変更] クイズのタイトル・合格ラインを変更します。

set_quiz_published write:content

[変更] クイズの公開・非公開を切り替えます。設問が0件のクイズは公開できません。

update_quiz_question write:content

[変更] 設問の文面と選択肢を差し替えます。選択肢は全置換です。

delete_quiz_question write:content

[変更] 設問を削除します。受講者が既に解答した設問は削除できません。

delete_quiz write:content

[変更] クイズと設問をまとめて削除します。受験履歴があるクイズは削除できません。

メンバー

list_members read:members

組織のメンバー一覧。

get_member_progress read:members

メンバー 1 人の学習状況。

list_departments read:members

部署の一覧。

invite_member write:members

[変更] メンバーを招待します。

deactivate_member write:members

[変更] メンバーを利用停止にします。記録は残ります。

create_department write:members

[変更] 部署を作成します。

レポート

get_organization_overview read:reports

組織全体の受講状況の概況。

get_completion_report read:reports

コース・パス別の修了状況。

get_compliance_report read:reports

必須研修の遵守状況。完了・学習中・未開始・期限超過の件数を部署別・パス別に集計します。個人別の一覧は REST の compliance エンドポイントで取得します。

Webhook・契約

get_subscription read:reports

プラン・契約状態・シートの利用状況。参照のみで、シートの購入やプラン変更はできません。

list_webhooks webhooks:manage

Webhook の登録一覧。署名シークレットは返しません。

list_webhook_deliveries webhooks:manage

直近の送信結果。失敗の理由もあわせて返します。

create_webhook webhooks:manage

[変更] Webhook を登録します。署名シークレットはこのときだけ返ります。

delete_webhook webhooks:manage

[変更] Webhook を削除します。送信履歴も一緒に消えます。

test_webhook webhooks:manage

[変更] 指定した 1 件にテスト送信します。他の宛先には送りません。

replay_delivery webhooks:manage

[変更] 失敗した送信を再送します。

アプリの管理

list_apps 要承認 apps:manage

この組織が登録した OAuth アプリの一覧。

get_app 要承認 apps:manage

アプリ 1 件の詳細。シークレットは返しません。

register_app 要承認 apps:manage

[変更] アプリを登録します。開発者ロールでは受講者向けスコープまでしか許可できません。

update_app 要承認 apps:manage

[変更] アプリの設定を変更します。

deactivate_app 要承認 apps:manage

[変更] アプリを停止し、発行済みのセッションを打ち切ります。

テストの受験はできません。 クイズやテストの解答送信は MCP からは行えません。AI が本人の代わりに受験できてしまうと、 修了証の意味がなくなるためです。学習アプリからの受験は API で対応しています。
書き込みは組織ごとに確認します。 スコープは「どこかで編集してよい」ことしか表しません。ある組織のカリキュラム管理者は 他の組織でも write:content を持ったままなので、変更を伴うツールは実行のたびに 対象組織での役割を確認し、記録します。

接続方法

MCP サーバーのエンドポイントは https://api.manabu2.com/mcp です。

1
クライアントにサーバーを登録する

URL を登録するだけです。API キーの発行は必要ありません。 Claude Desktop の場合、設定ファイル claude_desktop_config.json に次のように追記します。

{
  "mcpServers": {
    "manabu2": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.manabu2.com/mcp"]
    }
  }
}

クライアントによって設定方法は異なりますので、各クライアントのドキュメントもあわせてご確認ください。

2
ブラウザでログインして許可する

クライアントを再起動すると、ブラウザで Manabu2 のログイン画面が開きます。 いつもの ID とパスワードでログインし、表示された内容を確認して許可してください。 以降、クライアントはあなたとして動作します。 見えるのはあなたが見える範囲だけで、できることもあなたの権限の範囲内です。

3
動作を確認する

「Manabu2 のコースを一覧して」のように話しかけてみてください。 接続できていれば、あなたが受講できるコースが返ります。

4
アプリ管理ツールを使えるようにする(任意)

教材の編集や学習の割り当ては、接続した本人のロールがあればそのまま使えます。 カリキュラム管理者として接続すれば、追加の手続きなしで教材を編集できます。

承認が必要なのは apps:manage(アプリの登録・管理)だけです。 このスコープは利用者の権限を使うのではなく、新たなクライアントを作れる という別の権限を生むため、組織としての判断を残しています。 開発者 → アプリケーション → 接続済みのクライアント で許可でき、 保存後はクライアント側で接続し直してください。

いずれの場合も、使う人の権限を超えることはありません。 受講者が同じクライアントを使えば、できることは受講者のままです。

できるのは、あなたが画面でできることまでです。 接続しても権限が増えることはありません。トークンに載るのはご自身のロールが持つ範囲だけで、 変更を伴う操作は実行のたびに対象組織でのロールを確認します。 受講者が接続すれば受講者のまま、カリキュラム管理者が接続すれば教材を編集できます。 例外は apps:manage(アプリの登録・管理)だけです。これは利用者の権限を使うのではなく 新しいクライアントを作れるという別の権限を生むため、組織管理者の許可を必要とします。
キーを管理する必要はありません。 設定ファイルに書く秘密情報はなく、うっかり共有してしまう鍵もありません。 接続を取り消したいときは、アカウント設定のセッション一覧から解除してください。即座に反映されます。

技術的な補足

エンドポイント POST https://api.manabu2.com/mcp(JSON-RPC 直接)
GET https://api.manabu2.com/mcp + POST https://api.manabu2.com/mcp/message?sessionId=…(SSE)
認証 OAuth 2.1(認可コード + PKCE)によるログインのみ。API キーは使えません。 未認証のリクエストには 401WWW-Authenticate: Bearer resource_metadata="…" を返すため、 対応クライアントは自動でログイン画面まで進みます。
ディスカバリ https://api.manabu2.com/.well-known/oauth-protected-resource(RFC 9728)
https://api.manabu2.com/.well-known/oauth-authorization-server(RFC 8414)
クライアント登録は POST https://api.manabu2.com/api/v1/oauth/register(RFC 7591)で自動的に行われます。
必要なスコープ ツールごとに異なります。閲覧は read:catalog / read:content、 自分の学習記録は read:progress、教材の編集は write:content。 使えるツールだけが tools/list に表示されます。
クライアントの許可 自己登録したクライアントは apps:manage を除くすべてのスコープを 要求できます。ただし要求できることと付与されることは別で、実際にトークンに 載るのは利用者本人のロールが持つ範囲だけです。さらに変更を伴う 操作は、実行のたびに対象組織でのロールを確認します。 apps:manage のみ、組織管理者が「接続済みのクライアント」画面で 許可する必要があります。
権限の範囲 ログインした本人の権限に従います。教材を編集できるのは、 その組織でカリキュラム管理者(または組織管理者)のロールを持つ場合のみです。
対象範囲 認証情報が属する組織のコンテンツ。組織 ID を引数で指定することはできません。
レート制限 認証済みの呼び出しは 1 分あたり 300 回。超過すると 429Retry-After が返ります。

REST API の詳細は API ドキュメント、 アプリ連携全般は 開発者向けガイド をご覧ください。

まずは接続してみてください

URL を登録してログインするだけです。数分で終わります。