Aula MCP服务器
一 MCP(模型上下文协议) 允许Claude实时访问的服务器 Aula.dk --丹麦学校交流平台。向克劳德询问你孩子的上学日、即将举行的活动、老师的信息等等——所有这些都是即时从丹麦语翻译过来的。
先决条件
- Node.js 18+
- 谷歌浏览器 已安装(用于MitID身份验证)
- A. MitID 与您孩子的Aula个人资料链接的帐户
- 克劳德桌面 (Windows、macOS或Linux)
快速开始
将此添加到您的Claude Desktop配置文件中:
窗户: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"aula": {
"command": "npx",
"args": ["-y", "@ilenhart/aula-mcp-server"],
"env": {
"BROWSER_EXECUTABLE_PATH": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"AULA_CHILD_NAME": "YourChildFirstName"
}
}
}
}重新启动克劳德桌面。然后问克劳德: “让我登录到奥拉” --将打开一个Chrome窗口进行MitID身份验证。
身份验证的工作原理
Aula.dk使用丹麦的MitID国家2FA系统。没有API密钥-您可以使用MitID手机应用程序扫描二维码进行身份验证。
- 让克劳德登录奥拉
- Chrome窗口打开,显示Aula登录页面
- 点击进入MitID屏幕,输入您的用户名,并用您的MitID应用程序扫描二维码
- 服务器检测到已完成的登录,捕获会话cookie,并关闭浏览器
- 会话每15分钟通过后台ping自动保持活动状态
会话在Claude Desktop重新启动时持续存在(存储在 ~/.aula-mcp/session.json).您只需要在会话过期时(通常在服务器维护后)重新进行身份验证。
可用工具
认证
| 工具 | 说明 |
|---|---|
aula_login | 启动MitID身份验证流或确认现有会话 |
aula_check_auth | 轮询已完成的二维码扫描(自动调用) |
aula_session_status | 检查当前会话是否有效 |
学校数据
| 工具 | 说明 |
|---|---|
aula_get_posts | 学校最近的公告和更新 |
aula_get_messages | 来自老师和家长的最新消息 |
aula_get_thread | 按ID列出的完整对话线程 |
aula_get_threads | 所有活动消息线程 |
aula_get_calendar | 具有类型筛选的日历事件 |
aula_get_daily_overview | 今天的出席情况和注意事项 |
aula_get_gallery | 最近的相册和媒体 |
aula_find_people | 搜索家长、教师和工作人员 |
aula_get_meebook | 每周课程计划和书籍清单 |
配置
所有配置都是通过环境变量进行的,在 "env" 您的Claude Desktop配置块。
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
BROWSER_EXECUTABLE_PATH | 是 | -- | Chrome可执行文件的路径 |
AULA_CHILD_NAME | 是 | -- | 您孩子的名字(用于个人资料选择) |
AULA_INSTITUTION_NAME | 没有 | *(首次发现)* | 学校名称(部分匹配) |
AULA_API_URL | 没有 | https://www.aula.dk/api/ | Aula API基础URL |
PING_INTERVAL_MINUTES | 没有 | 15 | 会话保持活动间隔 |
AULA_DATA_DIR | 没有 | ~/.aula-mcp/ | 会话数据目录 |
常见Chrome路径
- 窗户:
C:\Program Files\Google\Chrome\Application\chrome.exe - macOS:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome - Linux:
/usr/bin/google-chrome
对话示例
你: 本周学校发生了什么事? 克劳德: *获取帖子、日历事件和消息,从丹麦语翻译,并为您提供摘要*
你: 老师有什么消息我应该回复吗? 克劳德: *检查最近的消息线程,确定需要回复的线程*
你: 我孩子下周的日程安排是什么样的? 克劳德: *提取日历事件和MeeBook每周计划*
发展
如果你想贡献或从源代码运行:
git clone https://github.com/ilenhart/aula-mcp-server.git
cd aula-mcp-server
npm install
npm run build对于具有自动重新加载功能的本地开发:
npm run dev要在Claude Desktop中使用本地版本,请更新配置以指向构建文件:
{
"mcpServers": {
"aula": {
"command": "node",
"args": ["C:/path/to/aula-mcp-server/dist/index.js"],
"env": {
"BROWSER_EXECUTABLE_PATH": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"AULA_CHILD_NAME": "YourChildFirstName"
}
}
}
}故障排除
“未存储会话”/“会话已过期” 呼叫 aula_login 通过MitID重新进行身份验证。
Chrome无法打开 验证 BROWSER_EXECUTABLE_PATH 指向您的实际Chrome安装。路径必须是可执行文件的完整路径,而不仅仅是目录。
“启动登录流失败” Chrome可能已经运行了一个冲突的配置文件。请先关闭所有Chrome窗口。
会话频繁终止 默认的15分钟ping间隔应使会话保持活动状态。如果你仍然在失去会话,试着减少 PING_INTERVAL_MINUTES 到 10.
运作原理
此服务器使用 @ilenhart/aula-apiclient-ts 库与Aula的内部API进行通信。身份验证通过以下方式处理 puppeteer-core (使用您安装的Chrome浏览器——没有捆绑浏览器)在MitID登录后捕获会话cookie。
Aula的所有内容都是丹麦语。克劳德在向你展示时,会用对话的方式翻译和解释它。
许可证
麻省理工学院
