canvas-mcp
canvas-mcp
一个 MCP 服务器,将 Canvas LMS 数据(课程、作业、公告)暴露给任何兼容 MCP 的客户端(Claude Desktop、Claude Code 等)。
此仓库不附带任何凭据。 其中没有任何 Canvas 令牌或电子邮件地址。您需要在本地
.env文件中提供自己的令牌,该文件已被 git 忽略,绝不会离开您的机器。请参阅 您的令牌存放位置。
先决条件
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_* 这对变量用于可选的第二个 Canvas 账户;如果您只有一个账户,请将两者留空。
切勿提交
.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可用工具
Tool | Description |
| 列出所有已注册的活跃课程 |
| 按截止日期排序列出即将到来的作业 |
| 列出每门课程最近的公告 |
项目结构
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