Canvas MCP サーバー
このリポジトリには、Canvas Learning Management System APIと連携するためのメッセージ制御プロトコル(MCP)サーバー実装が含まれています。このサーバーは、Claude Desktopおよび他のMCPクライアントと連携するように設計されています。
概要
Canvas MCP サーバーは、Canvas LMS API へのローカル インターフェイスを提供し、次のことが可能になります。
コースの一覧表示と管理
課題と提出物にアクセスする
お知らせを見る
コースのシラバスとモジュールを取得する
ユーザーと登録を管理する
コース概要を生成する
Related MCP server: Canvas MCP Server V2.0
前提条件
Python 3.x
仮想環境(venv)
キャンバスAPIトークン
Canvas API URL (例: https://canvas.illinois.edu/api/v1 )
インストール
このリポジトリをクローンします:
仮想環境を作成してアクティブ化します。
依存関係をインストールします:
構成
1. 環境ファイルを作成する
次の変数を含む.envファイルをルート ディレクトリに作成します。
値を次のように置き換えます。
Canvas API トークン ( Canvas API トークンの取得方法)
大学のCanvas API URL
2. 起動スクリプトを設定する
start_canvas_server.shスクリプトはすでに次のように設定されています。
.envファイルから環境変数を読み込む仮想環境をアクティブ化する
キャッシュされたサーバーの実装を実行する
起動スクリプトを実行可能にします。
3. クロードデスクトップ構成
まだインストールしていない場合は、 Claude Desktopをインストールしてください。
Claude Desktop 構成ファイルを作成または編集します。
Canvas MCP サーバー構成を追加します。
/Users/YOUR_USERNAME/path/to/canvas-mcpこのリポジトリのクローンを作成した場所への絶対パスに置き換えます。
新しい構成を読み込むには、Claude Desktop を再起動します。
利用可能なツール
サーバーは、Canvas LMS との対話用に次のツールを提供します。
コース管理
list_courses: 認証されたユーザーのすべてのコースを一覧表示しますget_course_details: 特定のコースの詳細情報を取得するsummarize_course: コースの包括的な要約を生成する
課題
list_assignments: コースのすべての課題を一覧表示するget_assignment_details: 特定の課題に関する詳細情報を取得するget_assignment_description: 課題の完全な説明を取得する
提出物
list_submissions: 特定の課題のすべての提出物を一覧表示する
ユーザー
list_users: コースに登録されているすべてのユーザーを一覧表示する
リソース
list_announcements: コースのすべてのお知らせを一覧表示するget_course_syllabus: コースのシラバスを取得するget_course_modules: コースのすべてのモジュールを取得する
Claude Desktopでの使用
この MCP サーバーは、Claude Desktop とシームレスに連携するように設計されています。
Claude Desktopは必要に応じてサーバーを自動的に起動します
Claude デスクトップ インターフェース (ハンマー アイコン 🔨) に Canvas API ツールが表示されます。
Claude に「私のコースを表示」や「私の生物学コースのシラバスを取得」などの Canvas 操作を実行してもらうことができます。
手動テストの場合は、サーバーを直接起動できます。
技術的な詳細
サーバーの実装
サーバーは以下を使用します:
fastmcp: MCP サーバーを構築するための Python ライブラリhttpx: Canvas APIへの非同期HTTPリクエスト用コース検索のパフォーマンスを向上させるキャッシュメカニズム
主な実装ファイルは、次の機能を提供するcanvas_server_cached.pyです。
コース情報の効率的なキャッシュ
Canvas API リクエストのページネーション処理
エラー処理とレポート
コースIDとコースコードの両方をサポート
依存関係
サーバーには次の Python パッケージが必要です。
httpx: HTTPリクエスト用fastmcp: MCPサーバーの実装用requests: 一部のHTTP操作の場合エンコードとネットワーク用のその他の標準ライブラリ
トラブルシューティング
問題が発生した場合:
サーバーが起動しない
.envファイルが存在し、有効な資格情報が含まれていることを確認してくださいstart_canvas_server.shで仮想環境のパスを確認します。すべての依存関係がインストールされていることを確認する
認証エラー
Canvas APIトークンが有効で期限切れでないことを確認してください
Canvasで必要な権限があることを確認してください
接続の問題
Canvas API URLが正しいことを確認してください
インターネット接続を確認してください
機関がAPIアクセスを制限していないことを確認してください
デバッグ
Claudeデスクトップコンソールでサーバーログを確認します
エラー出力を確認するには、サーバーを手動で実行してみてください。
セキュリティに関する考慮事項
Canvas APIトークンはCanvasアカウントへのアクセスを許可します
.envファイルをバージョン管理にコミットしないでください可能であれば、権限が制限されたトークンの使用を検討してください
サーバーはローカルマシン上で実行され、資格情報は外部に公開されません。
貢献
貢献を歓迎します!お気軽にどうぞ:
バグや機能リクエストに関する問題を送信する
改善点を盛り込んだプルリクエストを作成する
ユースケースとフィードバックを共有する
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。