Canvas MCP Server

by vishalsachdev
Verified

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 へのローカル インターフェイスを提供し、次のことが可能になります。

  • コースの一覧表示と管理
  • 課題と提出物にアクセスする
  • お知らせを見る
  • コースのシラバスとモジュールを取得する
  • ユーザーと登録を管理する
  • コース概要を生成する

前提条件

インストール

  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ファイルを参照してください。


ヴィシャル・サッチデフ

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude Desktop を介して Canvas 学習管理システム API とのやり取りを可能にするローカル サーバー。ユーザーはコースの管理、課題へのアクセス、お知らせの表示、コース資料の取得を行うことができます。

  1. Overview
    1. Prerequisites
      1. Installation
        1. Configuration
          1. 1. Create Environment File
          2. 2. Configure Start Script
          3. 3. Claude Desktop Configuration
        2. Available Tools
          1. Course Management
          2. Assignments
          3. Submissions
          4. Users
          5. Resources
        3. Usage with Claude Desktop
          1. Technical Details
            1. Server Implementation
            2. Dependencies
          2. Troubleshooting
            1. Security Considerations
              1. Contributing
                1. License
                  ID: 2l5xnixkva