monash
Provides read-only access to Monash Moodle, including deadlines, grades, assignments, announcements, course files, activities, messages, and calendar feeds.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@monashDo I have anything due this week, and any new Ed replies?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Monash 学习助手(monash-study-kit)
把 Monash 的 Moodle 和 Ed 接进 Claude,在 Claude 里直接问:
“这周我有什么要交的?” —— Moodle 截止日期、可能漏交的作业、Ed 上还没做的 lesson、最新公告
“Ed 上有什么新消息?我上次问的问题有人回了吗?”
“FIT2102 哪一周讲了 monad?在哪份讲义第几页?”
“帮我看看 A2 的 spec 要求什么”、“我 FIT2109 现在成绩多少?”
所有东西都在你自己的电脑上:课件、登录状态、数据库都存在本机,不经过任何第三方服务器。 工具全部是只读的:不会帮你交作业、做测验或在 Ed 上发帖。
适合 Monash 马来西亚校区(时间按 UTC+8 处理);澳洲校区也能用,见常见问题。
它由两部分组成
同一套底层代码(登录、同步、查询),给两种“用户”用:
MCP:给 Claude 用的接口。 Moodle 和 Ed 都要 Okta + MFA 登录,Claude 自己进不去。
MCP 让 Claude 在聊天中途自己去查(study_todo、search_content、ed_updates 等工具):
答案来自真实数据:截止时间、公告、成绩都是当下查到的,还能给出处,比如“Workshop 5 Slides 第 25 页”。
两边合起来看:一句“这周要做什么”,同时查 Moodle 截止、Ed 没做完的 lesson、两边的公告。
不用手动搬资料:不用下载 PDF 再上传。Claude 按需找到那份课件、只读需要的几页,省事也省额度。
可以接着追问:“A2 spec 要求什么?”“那周讲的 functor 结合讲义解释一下”。
CLI(monash 命令):给人用的接口。
只有人能做的事:安装配置、在登录窗口里过 MFA、粘贴 Ed 令牌(令牌不该经过聊天,所以只在终端输入)。
不依赖 AI:没额度或只想快速看一眼时,
monash todo一秒出结果(见没额度了也能用)。排错和维护:
status、sync、update、uninstall。
简单说:MCP 让 Claude 变成懂你课程的助教,CLI 负责装好、登录和兜底。平时在 Claude 里问,偶尔用终端。
Related MCP server: moodle-mcp
需要什么
Claude Desktop(下载)或 Claude Code
Chrome、Edge 或 Brave 其中一个(Windows 自带 Edge 就行),用来登录 Moodle
Monash 账号
安装
macOS
打开“终端”(启动台里搜 Terminal),一行一行粘贴运行:
curl -LsSf https://astral.sh/uv/install.sh | sh装完关掉终端再重新打开,然后:
uv tool install https://github.com/Waldo0926/monash-study-kit/archive/refs/heads/main.zipmonash setupWindows
打开 PowerShell(开始菜单里搜 PowerShell),一行一行粘贴运行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"装完关掉 PowerShell 再重新打开,然后:
uv tool install https://github.com/Waldo0926/monash-study-kit/archive/refs/heads/main.zipmonash setup
uv是一个 Python 工具管理器,会自动准备好 Python,不用自己装 Python。
第一次设置(monash setup)
跟着提示走,一共四步:
Ed:会帮你打开 Ed 的 API 令牌页面。点 Create Token, 名字随便写,把生成的令牌复制,粘贴回终端(粘贴时不显示,正常)。这个令牌不会过期,不想用了在同一个页面删掉就作废。
Moodle:会打开一个单独的浏览器窗口,在里面照常登录 Monash(Okta + MFA)。登录成功后窗口自动关闭。 这个窗口有自己独立的配置,和你平时用的浏览器互不影响——工具只从这个窗口里拿 Moodle 的登录状态, 不会去读你日常浏览器里的任何东西。
选课:默认跟踪本学期的课,也可以自己挑。
接进 Claude:自动把
monash加进 Claude Desktop 和 Claude Code。macOS 上会先帮你退出 Claude Desktop(开着的时候改配置会被它覆盖),改完再打开。
Windows 上会请你先完全退出 Claude Desktop:右下角托盘里的 Claude 图标 → 右键 → Quit。
最后可以选择马上同步一次。第一次同步会下载所有课件,要几分钟到十几分钟。
完成后打开 Claude Desktop,在聊天输入框的 “+” → Connectors 里能看到 monash,开着就行。
平时怎么用
直接在 Claude 里问就行。Claude 开着的时候,工具会在后台:
每小时同步一次 Ed 和 Moodle(新帖、新回复、新课件),并更新全文索引;
每 20 分钟给 Moodle 续一次期(Moodle 空闲 4 小时就会把你登出)。
不知道能问什么
直接用自己的话问就行:Claude 按意思挑工具,不是靠关键词触发,“这周有啥要交的”和“我是不是漏交了什么”都能用到待办。 想看都能做什么:
在 Claude 里问“你能做什么”,或者从输入框的 “+” 菜单里选 monash 的预设提示:功能大全、本周待办、 Ed 新消息、找知识点、测验题复习、成绩和反馈。预设提示点了才发给 Claude,平时不占额度。
终端里运行
monash help:每项功能附一句示例问法和对应的命令。
Moodle 登录过期了怎么办
电脑关机、睡眠久了,Moodle 会话会过期。这时 Claude 会告诉你,并问要不要登录—— 同意的话它会在你电脑上打开登录窗口;如果 Okta 还记得你,会在后台自动登录,连窗口都不用弹。 也可以自己在终端运行:
monash login登录过期期间,截止日期照样能查(用的是 Moodle 的日历订阅链接,不需要登录);Ed 的功能完全不受影响。
Claude 没额度了也能用
命令行工具不需要 AI,不耗任何额度。先 monash sync 同步一下,然后:
想知道 | 命令 |
这周要做什么 |
|
截止日期 |
|
某个知识点在哪份课件/哪一页 |
|
Ed 上的新帖和新回复 |
|
我的帖子有没有人回 |
|
读某个帖子全文 |
|
成绩 / 可能漏交的作业 |
|
区别是没人帮你总结,只列出原始信息。另外,后台同步和 Moodle 续期是跟着 Claude Desktop 跑的:
Claude 开着时,就算额度用完也照常进行;Claude 关掉的话,查之前先 monash sync,Moodle 过期了 monash login。
接入其他 AI 客户端
MCP 是开放协议,monash mcp 是标准的本地(stdio)MCP 服务器,所以支持本地 MCP 的客户端理论上都能接。
monash setup 只会自动配置 Claude Desktop 和 Claude Code,下面这些要手动配置。
⚠️ 下面这些客户端都没有实际测试过,配置格式照各家官方文档写(2026-09),以官方文档为准。 测试过的只有 Claude Desktop 和 Claude Code。
第 1 步:找到 monash 程序的完整路径(很多客户端启动时读不到终端的 PATH,所以最好写完整路径)
macOS:终端里运行
which monash,一般是/Users/你的用户名/.local/bin/monashWindows:PowerShell 里运行
(Get-Command monash).Source,一般是C:\Users\你的用户名\.local\bin\monash.exe
下面的例子里把 /完整路径/monash 换成你的路径。Windows 路径写进 JSON 时,反斜杠要写两遍
(C:\\Users\\...);写进 TOML 时用单引号('C:\Users\...')。
第 2 步:按客户端配置
客户端 | 配置位置 | 状态 |
Codex CLI / ChatGPT 桌面 App 里的 Codex / Codex IDE 插件 |
| 未测试 |
Cursor |
| 未测试 |
VS Code(Copilot) | 命令面板 → | 未测试 |
Gemini CLI |
| 未测试 |
ChatGPT 网页版 / 手机 App | —— | 不支持:只能接远程服务器,连不上你电脑上的程序 |
Codex(~/.codex/config.toml),或者直接运行 codex mcp add monash -- /完整路径/monash mcp:
[mcp_servers.monash]
command = "/完整路径/monash"
args = ["mcp"]Cursor(~/.cursor/mcp.json)和 Gemini CLI(~/.gemini/settings.json),格式一样:
{
"mcpServers": {
"monash": { "command": "/完整路径/monash", "args": ["mcp"] }
}
}VS Code(mcp.json,注意外层是 servers 不是 mcpServers):
{
"servers": {
"monash": { "command": "/完整路径/monash", "args": ["mcp"] }
}
}文件里已经有别的服务器的话,把 monash 那一项加进去就行,别把整个文件覆盖掉。改完重启客户端。
注意:
登录、选课还是用
monash setup做。没装 Claude 的话,最后一步会提示“没找到 Claude Desktop”,忽略就行。后台同步和 Moodle 续期只在客户端开着、MCP 在运行时进行。
工具说明是按 Claude 写的,别的模型一般也能照着用,但效果没验证过。
不想折腾的话,命令行本身跟任何 AI 都无关(见没额度了也能用),可以把
monash todo之类的输出直接复制给任何 AI。
搜得到哪些内容
monash grep 和 Claude 里的课件搜索覆盖:
Moodle 上的课件(PDF、Word、PowerPoint、文本和代码)
Ed Lessons 里的 PDF,以及直接写在 Ed 里的正文页
课程笔记网页:很多课的讲义在老师的公开网站上,比如 FIT2102 的 tgdwyer.github.io、FIT2109 的 yqtian-se.github.io。Moodle 和 Ed 里链接到的这类页面会被抓下来转成文字,存在课件文件夹的
Course notes (web)里。只抓课程直接链接的页面,不会顺着链接整站爬;每页最多一周重抓一次。 学校官网、视频、Google 文档之类不抓。不想要的话:monash config web_notes false录播字幕稿(装了
[media]才有)
隐私和安全
数据存在哪:
macOS:
~/Library/Application Support/monash-study-kitWindows:
%LOCALAPPDATA%\monash-study-kit
里面有课件(
files)、数据库(data)、登录凭据(secrets,只有你自己的账户能读)、专用登录窗口的配置(browser-profile)。 运行monash open可以打开课件文件夹。存了哪些凭据:Moodle 的会话 cookie、Ed 的 API 令牌、Moodle 日历订阅链接。都只在你电脑上,只用来访问 Moodle / Ed 本身。 别把
secrets文件夹发给别人。Claude 能看到什么:只有你提问时 Claude 调用工具返回的内容(比如截止日期列表、某个帖子的全文、某份课件的文字)。 令牌和 cookie 永远不会发给 Claude。也不要把 Ed 令牌贴进聊天里——令牌只在终端里输入。
会对 Moodle / Ed 做什么:只读。请求之间有间隔,不会像爬虫一样猛打学校的系统。
彻底删除:
monash uninstall uv tool uninstall monash-study-kitmonash uninstall会把它从 Claude 里移除,并询问要不要删掉所有数据。最后记得去 Ed 设置页删掉令牌。
命令速查
不用 Claude 也可以直接在终端里查:
命令 | 作用 |
| 登录状态、上次同步时间 |
| 能做的事,每条附示例问法和对应命令 |
| 出问题时的体检:一项项查,告诉你怎么修;需要帮忙时把输出整段发给别人 |
| 本周待办:截止、可能漏交、Ed 没做完的 lesson、公告、未读回复 |
| 截止日期 |
| 全文搜课件、课程笔记网页、Ed Lessons 正文、录播字幕稿(带页码/时间戳) |
| 立刻同步 |
| 登录 Moodle / 换 Ed 令牌 |
| 重新选要跟踪的课 |
| 打开课件文件夹 |
| 成绩和反馈 |
| 可能漏交的作业 |
| 公告 / 找活动 / 下载单个文件 / 站内信 / 日历订阅链接 |
| Ed 新动态 / 我的帖子有没有新回复 / 搜索 / 读帖子 |
| Ed Lessons 进度 / 测验题(复习用) |
| 整节 lesson 的正文:文字页、阅读网页、PDF 按页序拼成 Markdown,附测验题 |
| 看/改设置(改完重启 Claude Desktop) |
| 更新到最新版 |
加 --json 输出 JSON(输出被管道接走时自动是 JSON,--text 强制文本)。每个命令都有 --help。
退出码(写脚本时用):0 成功,1 参数不对,2 需要登录(monash login / monash login ed),
3 连不上 Moodle/Ed 或对方出错,4 找不到课程或帖子,130 被 Ctrl-C 中断。
录播字幕(可选)
想让 Claude 知道“老师上课讲了什么”,可以把录播转成带时间戳的字幕稿:
Ed 上 “Week N … Recording” 帖子里的 YouTube 链接:直接取 YouTube 字幕,很快;
Zoom 录像:用帖子里的 Passcode 下载,再在你电脑上用 Whisper 转写(普通笔记本上一节两小时的课要二三十分钟)。
这部分依赖比较大(约 1 GB),默认不装。想要的话重新安装时加上 [media]:
uv tool install --reinstall "monash-study-kit[media] @ https://github.com/Waldo0926/monash-study-kit/archive/refs/heads/main.zip"然后需要的时候手动运行(不会在后台自动跑,免得拖慢电脑):
monash mediaMoodle 上直接挂的录像默认也不下载(动辄几百 MB),会记成链接。想下载:monash config download_videos true。
更新
monash update更新后重启一下 Claude Desktop。Windows 上它会告诉你先退出 Claude、再运行哪条命令(正在运行的程序没法被覆盖)。
有新版本时会提醒你:终端里运行命令后多一行提示,Claude 里问待办时也会顺带说一句。每天最多查一次 GitHub,
不带任何个人信息;不想要的话 monash config update_check false。
常见问题
Claude 里看不到 monash
运行 monash setup claude 重新接一次。Windows 上一定要先从托盘完全退出 Claude 再运行。
还不行的话看 Claude Desktop → Settings → Developer 里有没有报错。
登录窗口打不开 / 提示没找到浏览器
装一个 Chrome 或 Edge。浏览器装在不常见的位置的话,指定一下:
monash config browser "C:\Program Files\...\chrome.exe"。如果之前的专用窗口还开着,先把它关掉。
Windows 上课件同步报“路径太长”
Windows 默认整条路径不能超过 260 个字符,课程名 + 周次名 + 文件名叠起来可能超。把课件放到短一点的地方:
monash config files_dir C:\Monash,然后 monash sync。
澳洲校区
Moodle 页面上的时间按账号时区显示,默认按马来西亚(UTC+8)。澳洲校区:monash config tz_offset 10(夏令时 11)。
Ed 的“作业截止时间”在哪
Ed 的 lesson 大多没有截止日期;作业截止以 Moodle 为准。study_todo 里 Ed lesson 部分是按你自己的进度列的
(做到第几周,就列到下一周为止没完成的)。
出问题了
运行 monash doctor,照着每项后面的 → 去修。需要别人帮忙时把整段输出发过去,里面不含令牌、cookie 之类的东西。
在 Claude 里也可以直接说“monash 用不了了”,它会跑同一套检查。MCP 的后台日志在数据目录的 mcp.log。
开发
uv sync
uv run pytest
uv run monash --help发新版:改了 src/ 就把 src/monash_study_kit/__init__.py 里的 __version__ 加一(修 bug 加最后一位,
加功能加中间一位),朋友那边的更新提示比的就是 main 上的这个号。CI 的 version-bump 检查会拦住忘了改的 PR。
代码结构:moodlelib(Moodle 客户端)、syncer(课件同步)、features(截止/成绩/公告等查询)、
edlib / edsync / edquery / lessons(Ed)、content_index(全文索引)、browser_login + cdp(专用登录窗口)、
jobs(同步和续期)、mcp_server、cli。只依赖 pypdf。
许可
MIT。这是学生自己做的工具,和 Monash University、Ed 或 Anthropic 没有关系。
This server cannot be deployed
Maintenance
Related MCP Connectors
- uNotesOAuthnet.unotes
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
Connect your Moodle to AI assistants: courses, content, grading and reports from the chat.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Claude to Canvas LMS accounts, enabling natural language queries about courses, assignments, grades, and files. Supports content search, file downloads, syllabus retrieval, and bulk course exports via 13 integrated tools.14 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides Claude with full access to Moodle learning management systems, enabling interaction with courses, files, assignments, grades, and calendar events. It also supports building Obsidian study vaults from course materials through automated knowledge graph creation.34 npm17MIT
- AlicenseBqualityCmaintenanceEnables Claude to interact with Canvas LMS, allowing natural language queries about courses, deadlines, grades, and feedback.29MIT
- AlicenseNot gradedqualityBmaintenanceEnables Claude to interact with Moodle via the official REST API for read-only tasks like listing courses, materials, assignments, submissions, and grades. Uses token-based authentication and emphasizes safe, no-write operations.2MIT