Skip to main content
Glama
salvadoracuna

canvas-mcp

canvas-mcp

Canvas LMSのデータ(コース、課題、お知らせ)を、MCP互換の任意のクライアント(Claude Desktop、Claude Codeなど)に公開するMCPサーバーです。

このリポジトリには認証情報は一切含まれていません。 Canvasトークンやメールアドレスはどこにもありません。あなた自身のトークンを、gitで無視され、あなたのマシンから出ることはないローカルの .env ファイルに指定してください。トークンの保存場所 を参照してください。

前提条件

  • uv(Pythonパッケージマネージャー)

  • APIトークンを持つCanvas LMSアカウント

Related MCP server: canvas-mcp

セットアップ

1. Canvas APIトークンを生成する

  1. 学校のCanvasサイトにログインします(例:https://canvas.fen.uchile.cl

  2. アカウント → 設定 → 承認済みインテグレーション に移動します

  3. + 新しいアクセストークン をクリックし、名前を付けて、トークンをコピーします

2. 環境を設定する

トークンの保存場所: このプロジェクトフォルダのルート(main.py のすぐ隣)に、正確に .env という名前のファイルに保存します。このファイルは .gitignore に記載されているため、gitがコミットやプッシュをすることはありません。

テンプレートをコピーします:

cp .env.example .env

次に .env を開いて、空欄を埋めます:

# Your Canvas instance URL -- change this to your school's Canvas address
CANVAS_URL=https://canvas.fen.uchile.cl

# Paste the token from step 1 here
CANVAS_API_TOKEN=

# Optional second account (use account="udd" in the tools). Leave blank if unused.
CANVAS_UDD_URL=
CANVAS_UDD_TOKEN=

必須なのは CANVAS_URLCANVAS_API_TOKEN だけです。CANVAS_UDD_* のペアは、オプションの2つ目のCanvasアカウント用です。アカウントが1つだけの場合は、両方とも空のままにしてください。

.env をコミットしたり、トークンをチャットに貼り付けたり、共有されるファイルに入れたりしないでください。トークンはあなたのCanvasアカウントへの完全なアクセスを許可します。漏洩した場合は、Canvasでトークンを削除し(アカウント → 設定 → 承認済みインテグレーション)、新しいものを生成してください。

3. 依存関係をインストールする

uv sync

4. サーバーを手動で実行する(オプションのテスト)

uv run python main.py

サーバーはstdioで通信するため、MCPクライアントが接続するまで何も出力しません。

Claude Desktopに接続する

Claude Desktopの設定ファイルに以下を追加します:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "canvas": {
      "command": "uv",
      "args": ["run", "--project", "/absolute/path/to/canvas-mcp", "python", "main.py"]
    }
  }
}

/absolute/path/to/canvas-mcp をこのフォルダの実際のパスに置き換えてください。Windowsでもスラッシュ / を使用してください。

このファイルにはトークンは入りません。トークンは .env から読み込まれます(トークンの保存場所 を参照)— python-dotenv が自動的に読み込みます。

Claude Codeに接続する

Claude Codeの設定でMCPサーバーを追加するか、次のコマンドを実行します:

claude mcp add canvas -- uv run --project /absolute/path/to/canvas-mcp python main.py

利用可能なツール

ツール

説明

get_courses

登録されているすべてのアクティブなコースを一覧表示します

get_assignments(days_ahead=30)

期限日順に並べた今後の課題を一覧表示します

get_announcements

コースごとの最近のお知らせを一覧表示します

プロジェクト構造

canvas-mcp/
├── main.py          # MCP server
├── .env             # Your token lives here (git-ignored, never pushed)
├── .env.example     # Template
├── pyproject.toml   # Project metadata & dependencies
└── uv.lock          # Locked dependency versions
Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth.

  • MCP server for the Inistate platform: module discovery, entry management, and activity submission.

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

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