使用说明
Canvas LMS MCP服务器
将Claude连接到Canvas LMS API的MCP(模型上下文协议)服务器。让Claude直接从Canvas阅读您的课程、作业、成绩、公告、文件等。
作品 远程地 (托管在Railway上,没有本地设置)或 本地 (克劳德桌面的stdio传输)。
工具
| 工具 | 说明 |
|---|---|
canvas_get_courses |
列出所有活动课程 |
canvas_get_assignments |
课程作业(截止日期、分数、提交状态) |
canvas_get_grades |
课程的当前成绩 |
canvas_get_announcements |
课程的最新公告 |
canvas_get_upcoming_due |
所有课程的作业将在接下来的N天内完成 |
canvas_submit_text_entry |
提交基于文本的作业 |
canvas_get_course_files |
列出课程中的文件 |
canvas_send_message |
发送Canvas收件箱消息 |
快速入门--远程(推荐)
无需安装。只需将此添加到您的Claude Desktop配置中:
窗户: %APPDATA%\Claude\claude_desktop_config.json
雨衣: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"canvas-lms": {
"url": "https://YOUR_RAILWAY_URL/mcp",
"headers": {
"x-canvas-api-token": "YOUR_CANVAS_API_TOKEN",
"x-canvas-base-url": "https://canvas.yourschool.edu"
}
}
}
}
替换 YOUR_RAILWAY_URL 使用部署的服务器URL,并填写您的Canvas凭据。
然后 重新启动克劳德桌面 (完全退出,而不仅仅是关闭窗口)。
本地设置(开发)
1.获取Canvas API代币
- 登录您的Canvas实例(例如。
https://canvas.yourschool.edu) - 首选 账户 > 设置
- 滚动到 已批准的集成
- 点击 +新访问令牌
- 为其命名(例如“Claude MCP”),根据需要设置到期时间,单击 生成令牌
- 立即复制令牌 --你再也看不到了
2.克隆和安装
git clone https://github.com/alexherman11/Canvas_MCP.git
cd Canvas_MCP
npm install
3.配置凭据
cp .env.example .env
编辑 .env 并填写您的值:
CANVAS_BASE_URL=https://canvas.yourschool.edu
CANVAS_API_TOKEN=your_token_here
4.测试
node test.js
这将:
- 验证Canvas API证书是否有效
- 调用每个API端点
- 启动stdio和HTTP MCP服务器并确认它们工作正常
5.在克劳德桌面(本地)注册
{
"mcpServers": {
"canvas-lms": {
"command": "node",
"args": ["/absolute/path/to/Canvas_MCP/src/index.js"],
"env": {
"CANVAS_BASE_URL": "https://canvas.yourschool.edu",
"CANVAS_API_TOKEN": "your_token_here"
}
}
}
}
重要提示: 替换中的路径
args通过绝对路径src/index.js在你的机器上。
铁路自助托管
- 分叉此回购
- 在上创建新项目 铁路 并连接你的叉子
- Railway自动检测Node.js——不需要Dockerfile
- 可选设置
CANVAS_BASE_URL和CANVAS_API_TOKEN单租户模式下铁路的环境变量 - 部署--服务器在指定的位置启动
PORT自动地 - 在Claude Desktop配置中使用Railway提供的URL(请参阅上面的快速入门)
服务器公开:
POST/GET/DELETE /mcp--MCP可流式HTTP端点GET /health--健康检查(退货200 OK)
在Claude Desktop中验证
重启后,试着问克劳德:
- “这个季度我要上什么课?”
- “本周有什么作业要交?”
- “我(课程名称)的成绩是多少?”
项目结构
Canvas_MCP/
src/
index.js — MCP server entry point (stdio transport, local dev)
server-http.js — MCP server entry point (HTTP transport, remote)
tools.js — All 8 tool definitions and handlers
canvas-api.js — Canvas REST API client (pagination, retries)
config.js — Environment configuration
test.js — Standalone test script
.env.example — Template for credentials
.gitignore — Excludes .env and node_modules
package.json
README.md
建筑
Remote mode:
Claude Desktop/claude.ai → HTTPS → Railway → Streamable HTTP → MCP server → Canvas API
↑
reads x-canvas-api-token &
x-canvas-base-url from headers
Local mode:
Claude Desktop → spawns process → stdio → MCP server → Canvas API
↑
reads CANVAS_API_TOKEN &
CANVAS_BASE_URL from env vars