Skip to main content
Glama

CanvasLMS - API

CanvasLMS - API は、Canvas LMS アカウントを AI アシスタントの前に置くローカル MCP サーバーです。お使いのマシン上で動作し、ご自身の個人アクセストークンで Canvas と通信し、コース、課題、採点、ディスカッション、モジュール、ページ、ファイル、メッセージング、ピアレビュー、アクセシビリティをカバーする約 100 のツールを公開します。すべてのツールは Markdown を返します。Canvas を変更するすべてのツールは、まず変更内容のプレビューを表示し、確認後にのみ変更を適用します。

クイックスタート

  1. Canvas の個人アクセストークンを取得します。Canvas で Account > Settings > Approved Integrations > New Access Token に移動します。

  2. リポジトリをクローンしてインストールします。

    git clone https://github.com/harryx2011-boop/CanvasLMS-API.git
    cd CanvasLMS-API
    uv venv .venv
    uv pip install -e .

    uv を使用しない場合は、代わりに標準の仮想環境を使用します。

    python -m venv .venv
    .venv\Scripts\activate   # Windows
    source .venv/bin/activate # macOS/Linux
    pip install -e .
  3. サンプル環境ファイルをコピーし、Canvas のホストとトークンを入力します。

    cp .env.example .env
  4. 接続を確認します。

    canvaslms-api --test

    これにより、名前、ユーザー ID、アクティブなコースが表示されます。失敗した場合は、.env 内の CANVAS_URLCANVAS_TOKEN を確認してください。

Related MCP server: Canvas LMS MCP Server

Claude Code に接続する

Windows:

claude mcp add --scope user canvaslms-api -- "<absolute path>\.venv\Scripts\canvaslms-api.exe"

macOS/Linux:

claude mcp add --scope user canvaslms-api -- "<absolute path>/.venv/bin/canvaslms-api"

サーバーは起動時にリポジトリフォルダから .env を読み取るため、クライアント設定に環境変数を入れる必要はありません。.venv 内の実行ファイルへの絶対パスを使用してください。

Claude Desktop に接続する

Claude Desktop の設定ファイルにエントリを追加します。

{
  "mcpServers": {
    "canvaslms-api": {
      "command": "<absolute path>\\.venv\\Scripts\\canvaslms-api.exe"
    }
  }
}

macOS/Linux では、command<absolute path>/.venv/bin/canvaslms-api を使用します。

設定ファイルの場所:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

ファイルを編集した後、Claude Desktop を再起動します。

その他のクライアント

stdio サーバーをサポートする MCP クライアントは、上記の Claude Code や Claude Desktop と同じ方法で、実行ファイルを直接起動できます。

HTTP のみをサポートするクライアントの場合は、HTTP トランスポートでサーバーを実行します。

canvaslms-api --transport http --host 127.0.0.1 --port 7100

クライアントを http://127.0.0.1:7100 に向けます。サーバーは引き続きリポジトリフォルダ内の .env から Canvas の認証情報を読み取ります。

動作の仕組み

  • コース識別子。 任意の course 引数は、数値の Canvas ID、コースコード(ENG101)、コース名の一部、または sis_course_id:X を受け付けます。どれを使うか不明な場合は、最初に list_courses を使用してください。

  • 確認ゲート。 Canvas を変更するすべてのツールは、confirm: bool = false 引数を受け取ります。これを指定せずに呼び出すと、ツールは変更内容のプレビューを返し、Canvas を変更するリクエストは行いません。プレビューを確認した後、confirm=true を指定してもう一度呼び出します。

  • 権限。 すべてのツールはトークン所有者として実行されます。学生トークンは、他の学生のプライベートデータを表示したり、採点や一括メッセージングなどの教育者向けツールを使用したりすることはできません。そのような呼び出しは、不足している権限に関するヒントとともに Canvas の 403 を返します。

  • 出力。 すべてのツールは、チャットのトランスクリプトに直接表示するためにフォーマットされた Markdown を返します。

  • 匿名化。 CANVAS_ANONYMIZE_STUDENTS=true の場合、ツール出力の学生名は実名ではなく、コースごとに安定した仮名に置き換えられます。

ツールリファレンス

書き込みツール(confirm と表示)は、confirm=true を指定して再度呼び出されるまでプレビューを返します。

コースと ID

ツール

目的

confirm

get_profile

トークン所有者の Canvas プロフィールを取得する

get_enrollments

トークン所有者のコース横断的な登録情報を一覧表示する

list_courses

トークン所有者が閲覧できるコースを一覧表示・検索する

get_course

1 つのコースの詳細を取得する

get_syllabus

コースのシラバス本文を取得する

get_course_overview

コースを要約する: シラバス、モジュール、今後の課題

get_course_structure

コースの完全なモジュール/ページ/課題の概要を取得する

get_cache_status

キャッシュされているコース解決データを表示する

clear_cache

コース解決キャッシュをクリアする

学生

ツール

目的

confirm

get_upcoming_assignments

コース横断的に近日中に期限が来る課題を一覧表示する

get_todo

Canvas の ToDo リストを取得する

get_submission_status

コースの提出済み/未提出/採点済みのステータスを表示する

get_grades

1 つまたはすべてのコースの現在の成績を取得する

get_pending_peer_reviews

トークン所有者がまだ行っていないピアレビューを一覧表示する

get_submission

1 つの提出物の詳細とフィードバックを取得する

submit_assignment

課題を提出する

confirm

comment_on_submission

提出物にコメントを追加する

confirm

mark_module_item_done

モジュール項目を完了としてマークする

confirm

課題と採点

ツール

目的

confirm

list_assignments

コースの課題を一覧表示する

get_assignment

1 つの課題の詳細を取得する

list_submissions

課題の提出物を一覧表示する

get_assignment_analytics

課題の提出数と成績分布を要約する

get_student_analytics

コース内の 1 人の学生の活動を要約する

create_assignment

課題を作成する

confirm

update_assignment

課題を更新する

confirm

bulk_grade_submissions

1 回の呼び出しで複数の提出物を採点する

confirm

grade_with_rubric

ルーブリックに基づいて提出物を採点する

confirm

ルーブリック

ツール

目的

confirm

list_rubrics

コースのルーブリックを一覧表示する

get_rubric

1 つのルーブリックの評価基準を取得する

get_rubric_assessment

提出物のルーブリック評価を取得する

create_rubric

ルーブリックを作成する

confirm

create_rubric_from_csv

CSV 定義からルーブリックを作成する

confirm

associate_rubric

ルーブリックを課題に添付する

confirm

ディスカッションとアナウンス

ツール

目的

confirm

list_discussion_topics

コースのディスカッショントピックを一覧表示する

get_discussion_topic

1 つのディスカッショントピックを取得する

list_discussion_entries

トピック内のトップレベルのエントリを一覧表示する

get_discussion_entry

1 つのディスカッションエントリを取得する

get_discussion_thread

返信を含む完全なスレッドを取得する

post_discussion_entry

トピックに新しいエントリを投稿する

confirm

reply_to_discussion_entry

既存のエントリに返信する

confirm

create_discussion_topic

ディスカッショントピックを作成する

confirm

update_discussion_topic

ディスカッショントピックを更新する

confirm

list_announcements

コースのアナウンスを一覧表示する

create_announcement

アナウンスを作成する

confirm

delete_announcement

1 つのアナウンスを削除する

confirm

delete_announcements

ID で複数のアナウンスを削除する

confirm

delete_announcements_matching

フィルタに一致するアナウンスを削除する

confirm

モジュール

ツール

目的

confirm

list_modules

コースのモジュールを一覧表示する

list_module_items

モジュール内の項目を一覧表示する

create_module

モジュールを作成する

confirm

update_module

モジュールを更新する

confirm

delete_module

モジュールを削除する

confirm

add_module_item

モジュールに項目を追加する

confirm

update_module_item

モジュール項目を更新する

confirm

delete_module_item

モジュール項目を削除する

confirm

ページ

ツール

目的

confirm

list_pages

コースのページを一覧表示する

get_page

1 つのページのメタデータを取得する

get_page_content

1 つのページの本文を取得する

get_front_page

コースのフロントページを取得する

create_page

ページを作成する

confirm

edit_page_content

ページの本文を置き換える

confirm

update_page_settings

ページの設定(タイトル、公開状態、編集権限)を更新する

confirm

bulk_update_pages

複数のページに同じ編集を適用する

confirm

delete_page

ページを削除する

confirm

ファイル

ツール

目的

confirm

list_files

コースのファイルを一覧表示する

read_file

テキストファイルの内容を読み取る

download_file

ファイルをディスクにダウンロードする

upload_file

コースにファイルをアップロードする

confirm

メッセージング

ツール

目的

confirm

list_conversations

Canvas Inbox の会話を一覧表示する

get_conversation

1 つの会話のメッセージを取得する

get_unread_count

未読メッセージ数を取得する

mark_conversations_read

会話を既読としてマークする

confirm

send_conversation

新しいメッセージを送信する

confirm

send_bulk_messages

同じメッセージを複数の受信者に送信する

confirm

ピアレビュー

ツール

目的

確認

list_peer_reviews

課題のピアレビュー割り当てを一覧表示する

assign_peer_review

ピアレビューを割り当てる

confirm

get_peer_review_assignments

誰が誰をレビューしているかを一覧表示する

get_peer_review_completion_analytics

ピアレビューの完了率を要約する

get_peer_review_followup_list

まだピアレビューを提出していない学生を一覧表示する

get_peer_review_comments

ピアレビューに残されたコメントを取得する

analyze_peer_review_quality

ピアレビューのフィードバックを深さと有用性で評価する

identify_problematic_peer_reviews

低品質または未提出のピアレビューをフラグ付けする

generate_peer_review_report

ピアレビュー活動の要約レポートを作成する

generate_peer_review_feedback_report

ピアレビュー全体のフィードバック内容のレポートを作成する

extract_peer_review_dataset

分析用にピアレビューデータをエクスポートする

message_peer_reviewers

学生にピアレビュー割り当てについてメッセージを送る

confirm

send_peer_review_followups

未完了のピアレビューがある学生にリマインダーを送る

confirm

人とプライバシー

ツール

目的

確認

list_users

コースに登録されているユーザーを一覧表示する

list_groups

コースのグループを一覧表示する

check_enrollment

コースにおける1人のユーザーの登録状況を確認する

export_anonymization_map

仮名と実名の対応関係をエクスポートする

confirm

get_privacy_status

匿名化が有効かどうかを表示する

アクセシビリティ

ツール

目的

確認

scan_course_content_accessibility

コースのページとファイルをアクセシビリティの問題についてスキャンする

fix_accessibility_issues

検出されたアクセシビリティの問題に修正を適用する

confirm

fetch_ufixit_report

既存のUFIXITアクセシビリティレポートを取得する

parse_ufixit_violations

UFIXITレポートから違反を解析する

format_accessibility_summary

アクセシビリティスキャンを読みやすい要約に整形する

コースコピー

ツール

目的

確認

create_content_migration

コースコンテンツの移行/コピーを開始する

confirm

get_content_migration_status

コンテンツ移行の進捗を確認する

メタ

ツール

目的

確認

search_tools

利用可能なツールをキーワードで検索する

設定

すべての設定は環境変数から取得され、リポジトリルートの.envファイルから読み込まれます。

変数

必須

デフォルト

目的

CANVAS_URL

はい

Canvasホスト。例: https://yourschool.instructure.com/api/v1接尾辞は付けません。

CANVAS_TOKEN

はい

Canvasの個人アクセストークン。

CANVAS_TIMEOUT

いいえ

30

HTTPリクエストのタイムアウト(秒)。

CANVAS_CACHE_TTL

いいえ

300

コース解決結果がキャッシュされる時間(秒)。

CANVAS_MAX_CONCURRENCY

いいえ

5

Canvasへの最大同時リクエスト数。

CANVAS_ANONYMIZE_STUDENTS

いいえ

false

ツール出力で学生名を安定した仮名に置き換えます。

CANVAS_DOWNLOAD_DIR

いいえ

システム一時ディレクトリ

download_fileがダウンロードしたファイルを書き込む場所。

canvaslms-api --configを実行すると、トークンをマスクした状態で解決済みの設定が表示されます。

開発

開発用エクストラをインストール:

uv pip install -e ".[dev]"

テストを実行:

pytest

Lint:

ruff check .

CIはプッシュのたびにテストとLintを実行します。Dockerイメージも利用可能で、そのエントリポイントはcanvaslms-apiです。

開発中に役立つCLIフラグ: canvaslms-api --list-toolsは登録済みのすべてのツール名を表示し、canvaslms-api --configは解決済みの設定を表示し、canvaslms-api --versionはインストール済みのバージョンを表示します。

セキュリティに関する注意事項

  • Canvasトークンはローカルに保持されます。起動時に.envから読み込まれ、設定したCanvas APIの呼び出しにのみ使用されます。

  • トークンがログに記録されることはありません。--configget_privacy_statusはトークンをマスクします。

  • 書き込みツールはプレビューの後に明示的なconfirm=trueが必要です。Canvasで誤って変更が発生することはありません。

  • download_fileは宛先パスに既存のファイルがある場合、上書きしません。

ライセンス

MIT。LICENSEを参照してください。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/harryx2011-boop/CanvasLMS-API'

If you have feedback or need assistance with the MCP directory API, please join our Discord server