使用说明
A2L MCP——人工智能助理的学习之路
一个MCP(模型上下文协议)服务器,允许AI助手访问麦克马斯特的学习大道(D2L Brightspace)。向你的人工智能询问作业、成绩、截止日期、课程内容等。
学术诚信通知:此工具仅用于个人生产力。请勿将其用于任何违反麦克马斯特学术诚信政策的活动。
你能做什么
- 作业 --列出作业、查看详细信息、检查提交和反馈
- 成绩 --查看所有成绩和讲师反馈
- 日历 --获取即将到来的截止日期和活动
- 课程内容 --浏览教学大纲、模块、主题和讲座
- 公告 --阅读讲师公告
- 文件下载 --从课程文件(docx、pdf等)下载和提取内容
- 研究工具 --任务跟踪、笔记同步、每周计划
先决条件
- Node.js 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 chromium
2.配置环境
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。之后,会话将自动保存。
学分
分叉自 mcp工作区 通过 哈姆扎卡马尔,他构建了具有Piazza集成、研究工具和身份验证框架的原始D2L MCP服务器,使这成为可能。该项目将其应用于McMaster的分体式主机SSO设置。
最初灵感来自 d2l mcp服务器 Mudkip将军。
许可证
麻省理工学院
