使用说明
画布MCP
Canvas LMS的本地MCP(模型上下文协议)服务器。从任何兼容MCP的AI客户端(Claude Desktop、Cursor、VS Code Copilot等)查询您的课程、作业、成绩、模块等。
您的API密钥保留在您的计算机上。 与需要您交出Canvas凭据的托管MCP服务器不同,此服务器在本地运行并直接与您的Canvas实例通信。
建筑
graph TB
subgraph "MCP Clients"
Claude["Claude Desktop"]
Cursor["Cursor / VS Code"]
Other["Other MCP Clients"]
end
subgraph "Your Machine (Local)"
Server["Canvas MCP Server<br/>Node.js + TypeScript"]
ENV["Environment Variables<br/>CANVAS_API_KEY"]
end
subgraph "Canvas LMS Tools"
Courses["list_courses"]
Assignments["get_assignments<br/>get_upcoming_assignments"]
Grades["get_grades<br/>get_submission_status"]
Content["get_modules<br/>get_announcements<br/>get_discussions"]
Calendar["get_calendar_events<br/>get_todo_items<br/>get_quizzes"]
Profile["get_user_profile"]
end
subgraph "Canvas Instance"
API["Canvas REST API<br/>HTTPS Only"]
end
Claude -->|stdio| Server
Cursor -->|stdio| Server
Other -->|stdio| Server
ENV -.->|read at startup| Server
Server --> Courses
Server --> Assignments
Server --> Grades
Server --> Content
Server --> Calendar
Server --> Profile
Courses --> API
Assignments --> API
Grades --> API
Content --> API
Calendar --> API
Profile --> API
style Server fill:#4CAF50,stroke:#333,color:#fff
style ENV fill:#FF9800,stroke:#333,color:#fff
style API fill:#2196F3,stroke:#333,color:#fff
style Claude fill:#7C4DFF,stroke:#333,color:#fff
style Cursor fill:#7C4DFF,stroke:#333,color:#fff
style Other fill:#7C4DFF,stroke:#333,color:#fff
🔒 隐私设计 -API密钥从本地环境变量中读取,并仅通过HTTPS发送到Canvas实例。没有中间服务器,没有第三方存储。
特性
- 12个Canvas LMS工具 --课程、作业、成绩、模块、测验等
- 在本地运行 --您的凭据永远不会离开您的计算机
- 零配置托管 --无需服务器、Cloudflare或Docker
- 适用于任何MCP客户端 --克劳德桌面,光标,VS代码副本,ChatGPT
- TypeScript --完全键入Zod验证
快速开始
1.获取Canvas API密钥
首选 Canvas → Account → Settings → Approved Integrations → New Access Token
📖 以前从没做过? 跟随 带截图的分步指南
2.克隆和构建
git clone https://github.com/a-ariff/canvas-mcp.git
cd canvas-mcp
npm install
npm run build
3.添加到您的MCP客户端
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/path/to/canvas-mcp/dist/standalone.js"],
"env": {
"CANVAS_API_KEY": "your-canvas-api-token",
"CANVAS_BASE_URL": "https://your-canvas-instance.edu"
}
}
}
}
Cursor / VS Code
添加到您的 .cursor/mcp.json 或VS代码MCP设置:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/path/to/canvas-mcp/dist/standalone.js"],
"env": {
"CANVAS_API_KEY": "your-canvas-api-token",
"CANVAS_BASE_URL": "https://your-canvas-instance.edu"
}
}
}
}
4.开始聊天
问你的AI助手一些事情,比如:
- “我报名参加了哪些课程?”
- “本周有什么作业要交?”
- “给我看计算机科学101的成绩”
- “有什么新的公告吗?”
工具
| 工具 | 描述 | Args |
|---|---|---|
list_courses |
获取所有活动课程 | -- |
get_assignments |
获取课程作业 | course_id |
get_upcoming_assignments |
所有课程即将完成的作业 | -- |
get_grades |
课程的成绩和分数 | course_id |
get_user_profile |
您的Canvas个人资料信息 | -- |
get_modules |
课程模块和结构 | course_id |
get_announcements |
最近的课程公告 | course_id |
get_discussions |
讨论主题 | course_id |
get_calendar_events |
即将到来的日历活动 | -- |
get_todo_items |
未决行动项目 | -- |
get_quizzes |
课程测验 | course_id |
get_submission_status |
任务提交状态 | course_id, assignment_id |
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
CANVAS_API_KEY |
是 | - | 您的Canvas API访问令牌 |
CANVAS_BASE_URL |
没有 | https://canvas.instructure.com |
您的Canvas实例URL |
DEBUG |
没有 | false |
启用调试日志记录 |
安全
- 仅限本地执行 --服务器通过stdio在您的计算机上运行
- 直接API调用 -Canvas API密钥仅发送到Canvas实例,从不发送到任何第三方
- 无数据存储 --会话之间不会缓存或持久化任何内容
- 基于环境的配置 --凭据是从环境变量中读取的,从不进行硬编码
发展
# install deps
npm install
# build
npm run build
# run locally
CANVAS_API_KEY=your-token CANVAS_BASE_URL=https://your-canvas.edu npm start
# run tests
npm test
# lint
npm run lint
贡献
欢迎投稿!请看 贡献.md 作为指导方针。