local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides access to Canvas Learning Management System API, allowing users to list and manage courses, access assignments and submissions, view announcements, retrieve course syllabi and modules, manage users and enrollments, and generate course summaries
Canvas MCP サーバー
このリポジトリには、Canvas Learning Management System APIと連携するためのメッセージ制御プロトコル(MCP)サーバー実装が含まれています。このサーバーは、Claude Desktopおよび他のMCPクライアントと連携するように設計されています。
概要
Canvas MCP サーバーは、Canvas LMS API へのローカル インターフェイスを提供し、次のことが可能になります。
- コースの一覧表示と管理
- 課題と提出物にアクセスする
- お知らせを見る
- コースのシラバスとモジュールを取得する
- ユーザーと登録を管理する
- コース概要を生成する
前提条件
- 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ファイルを参照してください。
This server cannot be installed
Claude Desktop を介して Canvas 学習管理システム API とのやり取りを可能にするローカル サーバー。ユーザーはコースの管理、課題へのアクセス、お知らせの表示、コース資料の取得を行うことができます。
- Overview
- Prerequisites
- Installation
- Configuration
- Available Tools
- Usage with Claude Desktop
- Technical Details
- Troubleshooting
- Security Considerations
- Contributing
- License