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トークンを生成する
学校のCanvasサイトにログインします(例:
https://canvas.fen.uchile.cl)アカウント → 設定 → 承認済みインテグレーション に移動します
+ 新しいアクセストークン をクリックし、名前を付けて、トークンをコピーします
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_URL と CANVAS_API_TOKEN だけです。CANVAS_UDD_* のペアは、オプションの2つ目のCanvasアカウント用です。アカウントが1つだけの場合は、両方とも空のままにしてください。
.envをコミットしたり、トークンをチャットに貼り付けたり、共有されるファイルに入れたりしないでください。トークンはあなたのCanvasアカウントへの完全なアクセスを許可します。漏洩した場合は、Canvasでトークンを削除し(アカウント → 設定 → 承認済みインテグレーション)、新しいものを生成してください。
3. 依存関係をインストールする
uv sync4. サーバーを手動で実行する(オプションのテスト)
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利用可能なツール
ツール | 説明 |
| 登録されているすべてのアクティブなコースを一覧表示します |
| 期限日順に並べた今後の課題を一覧表示します |
| コースごとの最近のお知らせを一覧表示します |
プロジェクト構造
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 versionsMaintenance
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
- AlicenseAqualityAmaintenanceMCP server for Canvas LMS enabling parent observers and students to access courses, assignments, grades, and more. Supports multiple authentication methods including token, OAuth, and a convenient fetchproxy fallback.18165MIT
- AlicenseNot gradedqualityCmaintenanceEnables managing Canvas LMS courses, assignments, grades, modules, and more from MCP-compatible clients like Claude Desktop, Kiro, or Amazon Q Developer.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.339MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for Canvas LMS that exposes a user's courses, upcoming work, and assignments as callable tools.MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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