Canvas LMS MCP for students について
Canvasを利用する学生向けのオープンソースMCPサーバーで、AIアプリからコース、課題、成績、告知を確認できます。Canvas上では読み取り専用で、必要に応じてローカルに締切日の.icsファイルを作成します。
主な機能
- 01コース、課題、締切日の確認
- 02未提出課題とコース成績の確認
- 03コース教材、シラバス、告知の閲覧
- 04最近の更新とディスカッションの要約
- 05締切日の.icsファイルへの出力
活用シーン
- 01今週の提出物や期限超過課題の確認
- 02コース別の成績と課題スコアの確認
- 03教員の告知や最近の更新の把握
- 04Canvasの締切日のカレンダーへの取り込み
MCP 対応
AIクライアントに、Canvasを読み取る13個のツールを提供します。唯一の書き込み操作は、指定したローカルフォルダーへの.icsファイルの作成です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y canvas-lms-student-mcpCANVAS_BASE_URLYour school's Canvas address, for example https://myschool.instructure.comCANVAS_API_TOKENシークレットA Canvas access token, created in Canvas under Account > Settings > New Access Tokenローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
学生向け Canvas LMS MCP
Canvasで実際に残っている課題をAIに尋ねましょう。
Canvas LMS MCPは、Claude、ChatGPT、CursorなどのAIアプリ向けの無料のオープンソースMCPサーバーです。Canvasのコース、締め切り、成績、アナウンスを読み取ります。Canvas上では読み取り専用で、何かを提出、編集、削除することはありません。書き込むのは、お使いのコンピューター上の.icsカレンダーファイルだけで、あなたが依頼した場合に限られます。
インストール手順は不要で、npxで実行できます。
npx -y canvas-lms-student-mcp
読み取る環境変数は2つです。学校のCanvasアドレスであるCANVAS_BASE_URLと、Canvasで作成するトークンであるCANVAS_API_TOKENです。
Canvasを利用している学校ならどこでも使えます。Instructureとは提携していません。永久に無料で、登録もサブスクリプションも不要です。ログイン情報が送信されるのは、あなたの学校だけです。
クイックスタート
- Canvasでアカウント > 設定に移動し、承認済みの連携までスクロールして、新しいアクセストークンをクリックします。トークンをコピーします。
- AIアプリのMCP設定に以下を追加します(Claude Desktopの場合は
claude_desktop_config.jsonです)。
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["-y", "canvas-lms-student-mcp"],
"env": {
"CANVAS_BASE_URL": "https://yourschool.instructure.com",
"CANVAS_API_TOKEN": "paste-your-token-here"
}
}
}
}
- AIアプリを再起動し、「今週の締め切りは?」などと尋ねます。
まず設定を確認するには、2つの環境変数を設定した状態でnpx canvas-lms-student-mcp doctorを実行します。
学校によっては、学生のアクセストークンへのアクセスが無効になっています。「新しいアクセストークン」ボタンが表示されない場合、学校によって無効化されているため、このサーバーはアカウントに接続できません。
質問できること
- 「今週の締め切りは?」
- 「未提出または期限を過ぎた課題はある?」
- 「各クラスの成績と、その成績を構成する課題を教えて」
- 「最近、担当教員からどんなお知らせがあった?」
- 「先週からCanvasで何が新しくなった?」
- 「NetworkingのWeek 3モジュールの内容を見せて」
- 「Networking 1のコースで、まだ締め切りが来ていない課題はどれ?」
- 「Canvasの締め切りをGoogle Calendarに登録して」
ツール
13 個のツールはすべて Canvas LMS から情報を読み取るだけで、Canvas 上で何かを送信、編集、削除することはできません。各ツールの説明には AI がコピーして使えるプロンプト例が含まれており、「質問例」列にも同じプロンプトが記載されています。最後の export_due_dates_calendar は、指定したフォルダーに .ics ファイルを書き込みます。
1 つのコースを対象とするツールでは、コース番号を調べる代わりにコース名を指定できます。Canvas のコース ID またはコース名を指定してください。たとえば「Networking 1」のように指定すると、get_my_courses が表示するリストと照合されます。どのコースにも一致しない名前を指定すると、その旨が表示され、get_my_courses を参照するよう案内されます。
| ツール | 機能 | 質問例 |
|---|---|---|
get_my_courses | 履修中のコースとその ID | "今学期の Canvas コースは何ですか?" |
get_todo | Canvas の ToDo リスト | "Canvas にまだやる必要があると表示されていることは何ですか?" |
get_upcoming_due_dates | 期限が近い順に並んだ、今後の課題とイベント | "今週、Canvas で期限を迎えるものは何ですか?" |
get_missing_assignments | 提出期限を過ぎていて、まだ提出していない課題 | "Canvas で未提出の課題は何ですか?" |
get_assignments | ID または名前で指定したコースの課題、期限、提出状況 | "Networking 1 の Canvas 課題で、期限を過ぎているものはどれですか?" |
get_my_grades | 各コースの現在の成績と、その成績の内訳となる課題の点数および提出状況 | "各 Canvas コースの成績と、その内訳となる課題を教えてください。" |
get_course_content | ID または名前で指定したコースのモジュールと項目 | "Canvas の Networking コースの Week 3 モジュールを表示してください。" |
get_syllabus | ID または名前で指定したコースのシラバスのテキスト | "Scripting の Canvas シラバスには、成績評価について何と書かれていますか?" |
get_announcements | 指定したコース、またはすべてのコースの最近のお知らせ | "最近、Canvas で講師からどのようなお知らせがありましたか?" |
get_whats_new | 最近のお知らせ、新たに採点された課題、未読のディスカッションへの返信をまとめて確認 | "先週以降、Canvas で何か新しいことはありましたか?" |
get_discussions | ID または名前で指定したコースのディスカッショントピック | "Canvas の Networking コースで、現在参加できるディスカッションは何ですか?" |
get_calendar_events | 2 つの日付の間にあるカレンダーイベント | "2026-10-01 から 2026-10-31 までの Canvas カレンダーには何がありますか?" |
export_due_dates_calendar | Google Calendar または Apple Calendar にインポートできる、期限を記載した .ics ファイル | "Canvas の期限を Google Calendar に入れてください。" |
カレンダーのエクスポート
export_due_dates_calendar は、Canvas の課題期限と Canvas カレンダーのイベントを iCalendar ファイルに変換します。フォルダーを指定すると、そこにファイルが保存されます。たとえば「Canvas の期限を .ics ファイルとして Documents フォルダーに保存して」のように指定します。ファイルを開くか、Google Calendar、Apple Calendar、または Outlook にインポートしてください。
ファイルには今後 30 日間の予定のうち、まだ提出していない課題のみが含まれます。より長い期間を指定するには days_ahead を、ID または名前で 1 つのコースを指定するには course_id を、すでに提出した課題も含めるには include_submitted を使用してください。各イベントには、コース名、点数、提出状況、Canvas へのリンク、および前日のリマインダーが記載されます。フォルダーを指定しない場合は、代わりにカレンダーのテキストが返されるので、好きな名前で保存できます。
プライバシーとセキュリティ
- トークンはお使いのコンピューター上に保持されます。送信先はご自身の学校の Canvas アドレスだけです。
- このプロジェクトから他のサーバーに情報が送信されることはありません。
- 12 個のツールは読み取り専用としてマークされています。カレンダーのエクスポートでは、指定したフォルダーに .ics ファイルを 1 つ書き込むだけで、それ以外のことは行いません。
- Canvas の設定から、いつでもトークンを取り消せます。
トラブルシューティング
Canvas からのエラーと接続に関するエラーには、問題の内容と修正方法が示されます。最もよくあるものは次のとおりです。
| メッセージ | 対処方法 |
|---|---|
| Not signed in | トークンがないか、期限切れまたは取り消されています。Canvas(Account > Settings > New Access Token)で新しいトークンを作成してから、npx canvas-lms-student-mcp doctor を実行してください。 |
| Access denied | 学校が学生向けにその機能を無効にしているか、トークンが別の Canvas アカウントのものです。 |
| Not found | get_my_courses を使ってコース名または ID を確認してください。すべてのリクエストで「not found」と表示される場合は、CANVAS_BASE_URL が間違っています。 |
| Rate limited | メッセージに表示された秒数だけ待ってから、もう一度お試しください。 |
| Could not reach | CANVAS_BASE_URL のホストが存在しません。たとえば https://myschool.instructure.com のように、スペルを確認してください。 |
| did not return Canvas API JSON | CANVAS_BASE_URL のアドレスは Canvas サイトではありません。余分なパスを付けずに、学校の Canvas アドレスを使用してください。 |
開発
npm install
npm run build
npm test
テストは偽の Canvas サーバーに対して実行されるため、アカウントもネットワークも必要ありません。doctor コマンド、不正なトークン、アクセス拒否、レート制限、Canvas 形式ではない応答に関するエラーメッセージ、.ics カレンダーのエクスポート、名前によるコース検索がテストスイートに含まれています。メタデータテストでは、package.json、server.json、glama.json、llms.txt、サーバーコードのバージョン番号が一致していること、ドキュメントのツール一覧がサーバーに登録されているツールと一致していること、コードから読み取り専用ツールの数を数えてドキュメントの数値がツールに追従していること、レジストリの項目にコードが読み取る環境変数と同じものが記載されていることを確認します。main へのプッシュとプルリクエストの作成時には、同じビルドとテストが実行されるため、このページ上部のバッジに現在の結果が表示されます。
npm パッケージには、レジストリ用のファイルが 2 つ含まれています。Model Context Protocol レジストリ用の server.json と、Glama ディレクトリ用の glama.json です。どちらにも名前、説明、バージョン、ライセンス、キーワード、リポジトリ、ホームページが記載されているため、掲載情報からサーバーの機能とコードの所在がわかります。server.json の項目には、ランタイムとして npx も指定されており、掲載サイトが入力を求めるべき 2 つの環境変数が列挙されています。そのうち CANVAS_API_TOKEN はシークレット値としてマークされています。GitHub リポジトリ ID も含まれており、リポジトリ名が変更されてもこの ID は変わりません。
Canvas MCP を選ぶ理由
学校で Canvas を使用している場合は、このサーバーを使用してください。Brightspace を使用している場合は、brightspace-mcp-server を使用してください。どちらも、それぞれの LMS で同じ範囲をカバーしています。
| Canvas MCP | brightspace-mcp-server | |
|---|---|---|
| LMS | Canvas(Instructure) | Brightspace(D2L) |
| 無料 | はい | はい |
| LMS に変更を加えない | はい | はい |
| npx のワンライナー | はい | はい |
Canvas MCP は、Canvas で作成した API トークンを使ってサインインします。brightspace-mcp-server は、初回セットアップコマンドを使って学校のログイン情報でサインインします。
学生向けのその他の無料 MCP サーバー
すべて無料、オープンソースで、アカウントにアクセスする場合も読み取り専用です。全一覧はbrightspacemcp.com/more-mcpsをご覧ください。
| サーバー | 機能 |
|---|---|
| Brightspace MCP | AI 向けの D2L Brightspace です。実際の提出状況を反映した期限、成績、目標成績計算ツール、コースファイルを確認できます。 |
| Moodle MCP | AI 向けの Moodle です。読み取り専用です。期限、期限超過の課題、成績、お知らせを確認できます。 |
| Google Classroom MCP | AI 向けの Google Classroom です。読み取り専用です。やること、期限、未提出の課題、成績を確認できます。 |
| GPA Calculator MCP | AI 向けに、GPA、成績の換算、期末試験で必要な成績を計算します。オフラインで動作し、アカウントは不要です。 |
| Citations MCP | DOI、ISBN、または入力した詳細情報から、APA、MLA、Chicago 形式の引用を作成します。アカウントは不要です。 |
| Study Planner MCP | 試験勉強のスケジュール、間隔反復の日程、ポモドーロ計画、課題のマイルストーンを作成します。オフラインで動作します。 |
| Paper Finder MCP | OpenAlex を通じて学術論文を検索し、オープンアクセス版や関連研究を見つけます。キーは不要です。 |
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。