Skip to main content
Glama

Canvas MCP サーバー

このリポジトリには、Canvas Learning Management System APIと連携するためのメッセージ制御プロトコル(MCP)サーバー実装が含まれています。このサーバーは、Claude Desktopおよび他のMCPクライアントと連携するように設計されています。

概要

Canvas MCP サーバーは、Canvas LMS API へのローカル インターフェイスを提供し、次のことが可能になります。

  • コースの一覧表示と管理

  • 課題と提出物にアクセスする

  • お知らせを見る

  • コースのシラバスとモジュールを取得する

  • ユーザーと登録を管理する

  • コース概要を生成する

Related MCP server: Canvas MCP Server V2.0

前提条件

インストール

  1. このリポジトリをクローンします:

git clone https://github.com/vishalsachdev/canvas-mcp.git cd canvas-mcp
  1. 仮想環境を作成してアクティブ化します。

python -m venv canvas-mcp source canvas-mcp/bin/activate # On Unix/macOS
  1. 依存関係をインストールします:

pip install -r requirements.txt

構成

1. 環境ファイルを作成する

次の変数を含む.envファイルをルート ディレクトリに作成します。

CANVAS_API_TOKEN=your_canvas_api_token_here CANVAS_API_URL=https://canvas.youruniversity.edu/api/v1

値を次のように置き換えます。

2. 起動スクリプトを設定する

start_canvas_server.shスクリプトはすでに次のように設定されています。

  • .envファイルから環境変数を読み込む

  • 仮想環境をアクティブ化する

  • キャッシュされたサーバーの実装を実行する

起動スクリプトを実行可能にします。

chmod +x start_canvas_server.sh

3. クロードデスクトップ構成

  1. まだインストールしていない場合は、 Claude Desktopをインストールしてください。

  2. Claude Desktop 構成ファイルを作成または編集します。

vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Canvas MCP サーバー構成を追加します。

{ "mcpServers": [ { "name": "canvas-api", "command": "/Users/YOUR_USERNAME/path/to/canvas-mcp/start_canvas_server.sh" } ] }

/Users/YOUR_USERNAME/path/to/canvas-mcpこのリポジトリのクローンを作成した場所への絶対パスに置き換えます。

  1. 新しい構成を読み込むには、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 とシームレスに連携するように設計されています。

  1. Claude Desktopは必要に応じてサーバーを自動的に起動します

  2. Claude デスクトップ インターフェース (ハンマー アイコン 🔨) に Canvas API ツールが表示されます。

  3. Claude に「私のコースを表示」や「私の生物学コースのシラバスを取得」などの Canvas 操作を実行してもらうことができます。

手動テストの場合は、サーバーを直接起動できます。

./start_canvas_server.sh

技術的な詳細

サーバーの実装

サーバーは以下を使用します:

  • fastmcp : MCP サーバーを構築するための Python ライブラリ

  • httpx : Canvas APIへの非同期HTTPリクエスト用

  • コース検索のパフォーマンスを向上させるキャッシュメカニズム

主な実装ファイルは、次の機能を提供するcanvas_server_cached.pyです。

  • コース情報の効率的なキャッシュ

  • Canvas API リクエストのページネーション処理

  • エラー処理とレポート

  • コースIDとコースコードの両方をサポート

依存関係

サーバーには次の Python パッケージが必要です。

  • httpx : HTTPリクエスト用

  • fastmcp : MCPサーバーの実装用

  • requests : 一部のHTTP操作の場合

  • エンコードとネットワーク用のその他の標準ライブラリ

トラブルシューティング

問題が発生した場合:

  1. サーバーが起動しない

    • .envファイルが存在し、有効な資格情報が含まれていることを確認してください

    • start_canvas_server.shで仮想環境のパスを確認します。

    • すべての依存関係がインストールされていることを確認する

  2. 認証エラー

    • Canvas APIトークンが有効で期限切れでないことを確認してください

    • Canvasで必要な権限があることを確認してください

  3. 接続の問題

    • Canvas API URLが正しいことを確認してください

    • インターネット接続を確認してください

    • 機関がAPIアクセスを制限していないことを確認してください

  4. デバッグ

    • Claudeデスクトップコンソールでサーバーログを確認します

    • エラー出力を確認するには、サーバーを手動で実行してみてください。

セキュリティに関する考慮事項

  • Canvas APIトークンはCanvasアカウントへのアクセスを許可します

  • .envファイルをバージョン管理にコミットしないでください

  • 可能であれば、権限が制限されたトークンの使用を検討してください

  • サーバーはローカルマシン上で実行され、資格情報は外部に公開されません。

貢献

貢献を歓迎します!お気軽にどうぞ:

  • バグや機能リクエストに関する問題を送信する

  • 改善点を盛り込んだプルリクエストを作成する

  • ユースケースとフィードバックを共有する

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。


ヴィシャル・サッチデフ

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/vishalsachdev/canvas-mcp'

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