Aula MCP服务器

一个MCP服务器,为Claude提供实时访问丹麦学校沟通平台Aula.dk的能力,包括学校公告、教师消息、日历事件等,并实时翻译丹麦语内容。

  • by ilenhart
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ilenhart/aula-mcp-server

使用说明

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手机应用程序扫描二维码进行身份验证。

  1. 让克劳德登录奥拉
  2. Chrome窗口打开,显示Aula登录页面
  3. 点击进入MitID屏幕,输入您的用户名,并用您的MitID应用程序扫描二维码
  4. 服务器检测到已完成的登录,捕获会话cookie,并关闭浏览器
  5. 会话每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的所有内容都是丹麦语。克劳德在向你展示时,会用对话的方式翻译和解释它。

许可证

麻省理工学院