mcpField
C
canvas-lms-mcp-local

canvas-lms-mcp-local

ローカル
github.com/Fireiscoolsolo科学・教育1今日更新

canvas-lms-mcp-local について

canvas-lms-mcp-localは、Canvasを使う学生向けのローカルMCPサーバーで、コース、成績、課題の確認や学習計画を支援します。ネットワークポートを開かずstdioで接続し、書き込み操作はプレビュー後に確認を求めます。

主な機能

  1. 01コース・課題・期限の確認
  2. 02成績分析と目標スコアの計算
  3. 03テキスト・リンク・ファイルの提出
  4. 04ディスカッション・受信箱・教材の閲覧
  5. 05書き込み操作の事前プレビューと確認

活用シーン

  1. 01今週期限の課題をコース横断で整理
  2. 02期末試験で必要な点数を試算
  3. 03成績への影響が大きい未提出課題を特定

MCP 対応

ローカルMCPサーバーとしてstdio経由でデスクトップおよびコマンドラインのMCPクライアントに接続し、Canvas APIを呼び出します。Canvasアクセストークンで認証します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"fireiscoolsolo-canvas-lms-mcp-local": {
"command": "npx",
"args": [
"-y",
"canvas-lms-mcp-local"
],
"env": {
"CANVAS_API_TOKEN": "<CANVAS_API_TOKEN>",
"CANVAS_BASE_URL": "<CANVAS_BASE_URL>"
}
}
}
}
起動コマンドnpx -y canvas-lms-mcp-local
設定が必要な環境変数
CANVAS_API_TOKENシークレットCanvas personal access token (Account > Settings > Approved Integrations > New Access Token)
CANVAS_BASE_URLYour school's Canvas address, e.g. https://yourschool.instructure.com

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcanvas-lms-mcp-local1.0.3

ツール

209

掲載時のツール一覧 · 1 日前に更新

このツールにパラメーターはありません。

詳細

ヒント

スマートフォンやウェブ、複数のコンピューターで使いたいですか? **🌐 リモート版 →**をご覧ください。209 個のツールはそのままに、パスワードで保護された ngrok トンネル経由で提供され、コンピューター間の自動フェイルオーバーにも対応しています。

💻 Canvas LMS MCP:ローカル版

お使いのコンピューター上で、AI アシスタントから Canvas を利用できます。トンネルもパスワードもバックグラウンドサービスも不要です。

209 個のツール · 設定ファイル 1 つ · インターネットには一切公開されません

npm npm downloads npm downloads per month Release downloads Node.js MCP License: MIT Website

ウェブサイト · クイックスタート · 設定 · ツール · トラブルシューティング

最終試験で必要な点数と今週の締め切りについて尋ねるチャットの例(サンプルデータ)


🤔 ローカル版とリモート版のどちらを選びますか?

💻 ローカル(このリポジトリ)🌐 リモート
対応クライアントこのコンピューター上のデスクトップおよびコマンドライン MCP クライアントどのデバイスからでも、リモートサーバーに対応した任意の MCP クライアント
実行時AI アプリが起動している間のみ。アプリがサーバーを起動しますバックグラウンドで常時稼働
必要なものNode.js と Canvas トークンNode.js、Canvas トークン、ngrok アカウント、パスワード
インターネットへの公開なし:ポートは開きませんパスワードで保護された公開 HTTPS アドレス
複数のコンピューターそれぞれのコンピューターに個別にインストールコンピューター間の自動フェイルオーバー機能を内蔵
セットアップ時間約 5 分約 15 分。追加のコンピューター 1 台につき約 5 分

✨ 特長

  • 📊 成績分析:what_if_grade、compute_needed_score、grade_impact_ranking、加重方式による詳細な内訳
  • 📅 計画:get_week_ahead、semester_snapshot、study_priority_ranking、複数コースの未提出課題を 1 回の呼び出しで確認
  • 📝 提出:テキスト、URL、ファイルを提出。最初にドライランでプレビューできます
  • 💬 ディスカッションと受信トレイ:リクエスト 1 回でスレッド全体を読み、教員にメッセージを送信
  • 📁 コンテンツ:ファイル、ページ、モジュール、講義の字幕、コース全体の .imscc エクスポート

🧭 仕組み

 Your AI app (MCP client)      ──stdio──►  node index.js  ──HTTPS──►  your school's Canvas API
        (starts the server)              (209 tools, runs only
                                          while your app is open)

ウェブサーバーもポートもなく、稼働し続けるサービスも不要です。AI アプリを開くとサーバーが起動し、アプリを閉じると停止します。

🚀 クイックスタート

必要なもの: Node.js 18+ と Canvas アカウント。自分でダウンロードするものはありません。AI アプリが npx でサーバーを取得します。

1. Canvas アクセストークンを作成する

Canvas で Account → Settings → Approved Integrations → + New Access Token の順に移動します。Canvas でトークンが表示されるのは一度だけなので、すぐにコピーしてください。学生用トークンの有効期限は通常 30~120 日です。

2. AI アプリに追加する
デスクトップアプリ
  1. アプリの MCP 設定ファイルを開きます。通常は 設定 → 開発者 または 設定 → MCP サーバー にあり、多くのアプリでは mcpServers JSON ブロックを使用します。

  2. トークンと学校のアドレスを指定して、この canvas エントリーを追加します(mcp_config.example.json にもあります)。

    {
      "mcpServers": {
        "canvas": {
          "command": "npx",
          "args": ["-y", "canvas-lms-mcp-local"],
          "env": {
            "CANVAS_API_TOKEN": "your_token_here",
            "CANVAS_BASE_URL": "https://yourschool.instructure.com"
          }
        }
      }
    }
    
  3. アプリを完全に終了します。Windows では、システムトレイのアイコンを右クリックして 終了 を選択します。macOS では、⌘Q を押します。その後、アプリを再度開きます。ウィンドウを閉じるだけでは不十分です。

コマンドラインクライアント

CANVAS_API_TOKEN と CANVAS_BASE_URL を環境変数に設定し、このコマンドを canvas という名前の stdio MCP サーバーとして登録します。

npx -y canvas-lms-mcp-local

その後、クライアントの MCP ステータスを確認し、接続されていることを確かめます。

3. 試してみる

アシスタントに 「Run test_connection.」 と尋ねます。ユーザー情報、コース、プランナー、受信トレイ、未提出の課題を確認し、学校で無効になっている機能があれば報告します。

次に、「今週の締め切りは?」、「最終試験で B を取るには何点必要?」、または 「成績に最も影響している未提出課題はどれ?」 と尋ねてみましょう。

ソースから実行する場合
git clone https://github.com/Fireiscoolsolo/canvas-lms-mcp-local.git
cd canvas-lms-mcp-local
npm install

.env.example を .env にコピーし、index.js と同じフォルダーに置きます。トークンと学校のアドレスを入力したら、npx の代わりにこのファイルを指定するよう設定を変更します。

{ "mcpServers": { "canvas": { "command": "node", "args": ["C:/Users/YOUR-NAME/Documents/canvas-lms-mcp-local/index.js"] } } }

Windows ではスラッシュ(/)を使用できます。macOS ではパスは /Users/you/canvas-lms-mcp-local/index.js のようになります。Windows では、ファイル名が .env.txt ではなく .env になっていることを確認してください。確認するには、エクスプローラーで 表示 → ファイル名拡張子 を有効にします。

⚙️ 設定

ステップ 2 のように、設定の env ブロックに設定値を記述します。ソースから実行する場合は、代わりに index.js と同じ場所にある .env を使用できます。

変数必須デフォルト説明
CANVAS_API_TOKEN✅—Canvas の個人用アクセストークン
CANVAS_BASE_URL✅—例:https://yourschool.instructure.com
CANVAS_ALLOW_WRITEStruefalse = 読み取り専用モード
CANVAS_PROFILEfullcore = 厳選されたツールのサブセット
CANVAS_CACHE_TTL60レスポンスのキャッシュ時間(秒)
CANVAS_TIMEZONEsystem締め切り日時の計算に使う IANA タイムゾーン
CANVAS_DOWNLOAD_DIRindex.js と同じ場所にある canvas-downloadsダウンロードツールがファイルを保存する場所

🧰 ツール

グループ数主な機能
ユーザー情報24check_token_expiry、get_rate_limit_status、カスタムデータの保存
コース16権限、ニックネーム、お気に入り
課題12list_missing_submissions、get_late_policy
提出物16テキスト、URL、ファイルの提出、コメント、ルーブリック評価
成績13what_if_grade、compute_needed_score、grade_impact_ranking
小テスト12読み取り専用:日程、受験履歴、レビュー
ディスカッション17get_full_topic_view、返信、評価
受信トレイ14メッセージ、find_recipients、スレッド
カレンダー11イベント、オフィスアワーの予約
コンテンツ33ファイル、ページ、モジュール、字幕、.imscc エクスポート
グループ11グループ作業スペース
ルーブリック11ピアレビュー
検索3キーワードによるフォールバック機能付きの smart_search
計画11get_week_ahead、semester_snapshot、study_priority_ranking
メタ4上記にない任意のエンドポイントに対する raw_canvas_request

🔐 セキュリティ

  • 外部には公開されません: サーバーはどのポートでも待ち受けません。起動したアプリだけが、プライベートなパイプを通じてサーバーと通信できます。
  • 確認ゲート: 送信、提出、投稿、削除を行うツールは、まずプレビューを返し、confirm: true を指定して呼び出された場合にのみ処理を実行します。
  • プロンプトインジェクション対策: 他の人が書いたテキストは <<<CANVAS_CONTENT>>> マーカーで囲み、信頼できないテキストとしてラベル付けします。
  • 小テストの受験はできません: 小テストの受験エンドポイントは意図的に含めていません。

.env は絶対にコミットしないでください。 すでに .gitignore に記載されています。SECURITY.md を参照してください。

🎓 責任ある利用

これは学習と整理のためのツールです。締め切りの確認、成績の把握、週の計画に役立ちます。クイズに回答することはなく、プレビューを確認して承認するまでは、何も送信・提出されません。

  • 学校の学業上の誠実さおよび利用規定を守ってください。学校によっては、個人用 API トークンやサードパーティ製ツールの使用が制限されています。
  • 誤操作による変更のリスクをゼロにしたい場合は、読み取り専用モードにするため CANVAS_ALLOW_WRITES=false を設定してください。

🛠️ トラブルシューティング

症状対処方法
アプリに Canvas ツールが表示されない設定が有効な JSON であり、index.js へのパスが絶対パスであることを確認してから、アプリを完全に終了して再起動してください
spawn npx ENOENT / 「npx」が見つからないNode.js をインストールしてから、アプリを再起動してください。それでも解決しない場合は、command に完全なパスを指定してください。例:"C:/Program Files/nodejs/npx.cmd"
初回起動が遅い初回は npx がパッケージをダウンロードします。2 回目以降の起動は速くなります
「CANVAS_API_TOKEN is not set」設定の canvas エントリにある env ブロックに追加してください。ソースから実行する場合は、.env が index.js と同じ場所にあり、ファイル名が .env.txt ではないことを確認してください
Canvas が 401 を返すトークンの有効期限が切れています。新しいトークンを作成してください(手順 2)
index.js への変更が反映されない接続時にツール一覧が読み込まれるため、AI アプリを再起動してください
ログの保存場所は?AI アプリの MCP ログフォルダーです。このサーバーのすべての行は [canvas-mcp] で始まります

既知の制限: 学生用トークンでは、管理者向けエンドポイント、成績表の履歴、コース分析、クイズの統計情報にはアクセスできません。smart_search は Canvas のベータ機能であり、404 を返すことがよくあります。

📄 ライセンス

MIT。このプロジェクトは Instructure とは提携していません。

コメント

MCP は初めてですか?

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

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