A2L MCP——人工智能助理的学习之路
一个MCP(模型上下文协议)服务器,允许AI助手访问麦克马斯特的学习大道(D2L Brightspace)。向你的人工智能询问作业、成绩、截止日期、课程内容等。
学术诚信通知:此工具仅用于个人生产力。请勿将其用于任何违反麦克马斯特学术诚信政策的活动。
你能做什么
- 作业 --列出作业、查看详细信息、检查提交和反馈
- 成绩 --查看所有成绩和讲师反馈
- 日历 --获取即将到来的截止日期和活动
- 课程内容 --浏览教学大纲、模块、主题和讲座
- 公告 --阅读讲师公告
- 文件下载 --从课程文件(docx、pdf等)下载和提取内容
- 研究工具 --任务跟踪、笔记同步、每周计划
先决条件
- v18+
- 麦克马斯特MacID(
your-macid@mcmaster.ca)
设置
1.克隆并安装
git clone https://github.com/alanxue1/a2l-mcp.git
cd a2l-mcp/a2l-mcp
npm install
npx playwright install chromium2.配置环境
cp .env.template .env编辑 .env 使用您的麦克马斯特证书:
D2L_HOST=avenue.cllmcmaster.ca
D2L_SSO_LOGIN_URL=https://avenue.mcmaster.ca/login.php
D2L_USERNAME=your-macid@mcmaster.ca
D2L_PASSWORD=your-password只有当你想要学习工具(任务跟踪、笔记搜索)时,才需要Supabase和OpenAI键。服务器在没有它们的情况下工作。
3.构建和验证
npm run build
node dist/auth-cli.js浏览器将打开并通过McMaster的Microsoft SSO登录。完成任何MFA提示。会话已保存到 ~/.d2l-session/ 持续约24小时。
4.启动服务器
MCP_TRANSPORT=http node dist/index.js服务器在上运行 http://localhost:3000/mcp.
连接到您的AI助手
光标
添加到MCP设置(.cursor/mcp.json):
{
"mcpServers": {
"a2l": {
"url": "http://localhost:3000/mcp"
}
}
}VS代码(副本)
添加到您的VS代码设置中:
{
"mcp": {
"servers": {
"a2l": {
"url": "http://localhost:3000/mcp"
}
}
}
}克劳德桌面版
添加 claude_desktop_config.json:
{
"mcpServers": {
"a2l": {
"command": "node",
"args": ["/path/to/a2l-mcp/a2l-mcp/dist/index.js"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}日常使用
会议持续约24小时。每天:
cd a2l-mcp
# 1. Start the server
MCP_TRANSPORT=http node dist/index.js
# 2. If session expired, re-auth in a separate terminal
node dist/auth-cli.js然后,只需与您的AI助手交谈: *“本周我有什么作业要交?”*
可用工具
| 工具 | 说明 |
|---|---|
get_assignments | 列出所有作业及其截止日期 |
get_assignment | 获取特定任务的完整详细信息 |
get_assignment_submissions | 获取您的意见和反馈 |
get_my_grades | 获取所有分数 |
get_upcoming_due_dates | 获取日历事件和截止日期 |
get_course_content | 获取完整的课程大纲 |
get_course_modules | 获取主要课程部分 |
get_course_module | 获取特定模块的内容 |
get_course_topic | 获取特定主题的详细信息 |
get_announcements | 获取课程公告 |
get_my_courses | 列出已注册的课程 |
download_file | 下载课程文件 |
read_file | 读取下载的文件内容 |
学习工具(需要Supabase+OpenAI)
| 工具 | 说明 |
|---|---|
sync_all | 将所有任务同步为任务 |
tasks_list | 按课程/状态列出任务 |
tasks_add | 添加手动任务 |
tasks_complete | 将任务标记为已完成 |
plan_week | 制定每周学习计划 |
notes_sync | 从存储库同步笔记 |
notes_search | 搜索笔记 |
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
D2L_HOST | 是的 | avenue.cllmcmaster.ca |
D2L_SSO_LOGIN_URL | 是的 | https://avenue.mcmaster.ca/login.php |
D2L_USERNAME | 是 | 您的MacID电子邮件 |
D2L_PASSWORD | 是 | 您的MacID密码 |
SUPABASE_URL | 学习工具 | Supabase项目URL |
SUPABASE_SERVICE_ROLE_KEY | 学习工具 | Supabase服务密钥 |
OPENAI_API_KEY | 用于研究工具 | 用于嵌入的OpenAI API密钥 |
MCP_TRANSPORT | 没有 | http (默认)或 stdio |
故障排除
“找不到用户名字段” SSO登录页面结构可能已更改。打开错误日志问题。
会话很快过期 会议持续约24小时。跑 node dist/auth-cli.js 再一次。
MFA/2FA提示 浏览器将为您打开以完成MFA。之后,会话将自动保存。
学分
最初灵感来自 d2l mcp服务器 Mudkip将军。
许可证
麻省理工学院
