Skip to main content
Glama

vibe-learning-in-zju(zju-mcp)

把「学在浙大 / 智云课堂」的一批能力封装成 MCP 工具,供 Claude Code、Cursor、或任意 MCP 客户端按需调用—— 用一句自然语言就能查待办、看课表、拉课堂语音转录、甚至提交作业。

  • 单文件、零第三方依赖:只用 Node 内置能力(fetch / FormData / crypto 等),一个 zju-mcp.mjs 跑起来即可。

  • 本地运行、凭据不上云:登录逆向与 RSA 加密都在你本机完成,密码不明文上行,.env 不进版本库。

⚠️ 先读免责声明:本项目仅供个人学习与自用,逆向自公开的网页登录流程。你需自行对使用行为负责,遵守学校相关规定;请勿用于批量抓取、代刷、扰乱平台等行为。写操作(提交/撤回作业)会真实改动你的学在浙大账户,务必谨慎。


快速开始

# 1. 克隆到本地
git clone https://github.com/EviterLesRoses2/vibe-learning-in-zju.git
cd vibe-learning-in-zju

# 2. 配置凭据:复制模板并填入你的学号 / 密码
cp .env.example .env
#   然后用编辑器打开 .env,填 ZJU_USER / ZJU_PASS

要求 Node 18+(用到内置 fetch)。用 node -v 确认。

在 Claude Code / Cursor 等客户端的 mcpServers 配置里加一条(把路径换成你实际 clone 的绝对路径):

{
  "mcpServers": {
    "zju": {
      "command": "node",
      "args": ["/path/to/vibe-learning-in-zju/zju-mcp.mjs"],
      "env": { "ZJU_USER": "你的学号", "ZJU_PASS": "你的密码" }
    }
  }
}

接好后在对话里直接说「列一下我的浙大待办」「今天课表」「把今天第二节课的转录给我」即可触发。


Related MCP server: Canvas LMS MCP Server

工具一览

只读工具

工具

能做什么

参数

zju_list_todos

列出待办的作业/考试/测验/问卷,含课程名、类型和截止日

zju_list_courses

列出「我的课程」里的所有课程,含课程 id、名称、代码、学期、教师、学习进度

keyword?(按课程名/代码过滤)、status?ongoing/notStarted/ended

zju_list_course_homework

列出某门课下的所有作业,含每个作业的 activity_id、状态、成绩和老师评语

course_id(必填)、include_submission?(默认带上提交详情/成绩)

zju_get_schedule

查智云课堂某天/某段时间的课表,含每节课的 sub_id、老师、教室、时间

date?end_date?YYYY-MM-DD,省略=今天)

zju_get_transcript

拉取某节课的语音识别转录(逐段中文、带时间戳)

sub_id(必填)、max_segments?with_translation?

典型链路:zju_get_schedule 拿到某节课的 sub_id → 传给 zju_get_transcript 取转录。

写操作(会真实改动学在浙大,谨慎使用)

工具

能做什么

参数

zju_submit_homework

把本地文件作为作业提交

activity_idfile_path(本地绝对路径)、comment?(附言)

zju_retract_homework

撤回已提交的作业,回到草稿态(需老师允许撤回)

activity_id

activity_id 来自 zju_list_todoszju_list_course_homework。提交是真实交付,交错了用 zju_retract_homework 撤回。


典型应用案例

案例一:一键消化一节课

课后不想回放两小时录像?让 AI 直接读转录,帮你把这节课嚼碎:

「把我今天《智能控制》那节课的转录拉出来,总结这节讲了什么、布置了什么作业,有没有点名或课堂小测。」

AI 会自动 zju_get_schedule 找到这节课的 sub_idzju_get_transcript 取全程转录,然后替你产出:

  • 本节要点:老师讲的核心内容浓缩成几条。

  • 作业提醒:口头布置的作业 / 截止时间。

  • 点名与小测:转录里出现的点名、随堂小测、加分提问等,别再错过平时分。

案例二:全自动完成作业

从「看到作业」到「拿到分数」全程交给 AI:

「看看《数字信号处理》这门课有哪些没交的作业,帮我做完并提交,交完把分数也查一下。」

一条链路跑通:

  1. 抓作业zju_list_courses 定位课程 → zju_list_course_homework 列出未交作业,读出题目要求。

  2. 做作业 — AI 根据要求生成解答,写成文件存到本地。

  3. 提交zju_submit_homework 把文件交上去,返回 submission_id 与读回确认。

  4. 查分 — 等老师批改后,zju_list_course_homework(带 include_submission)读回成绩和评语。

⚠️ 这一步会真实提交到你的账户。建议先让 AI 把生成的答案给你过目,确认无误再让它提交;交错了可用 zju_retract_homework 撤回。


前置约束

  • 必须在国内网络的本机运行courses.zju.edu.cn*.cmc.zju.edu.cn 只对国内 IP 开放,境外(云端 / 远程 agent)抓不到。

  • Node 18+(用到内置 fetch)。

  • 凭据二选一:填 .env,或写进 MCP 客户端配置的 env 块。

免责声明

  • 本项目为个人学习用途,逆向对象为公开可访问的网页登录与接口流程,不含任何绕过鉴权、爬取他人数据的能力。

  • 使用者需自行遵守浙江大学及相关平台的使用规定,因使用本工具产生的一切后果由使用者自行承担。

  • 提交/撤回作业等写操作会真实改动你的账户数据,请在充分理解语义后使用。

  • 如学校或平台方认为不妥,请提 issue,作者会配合下架。

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EviterLesRoses2/vibe-learning-in-zju'

If you have feedback or need assistance with the MCP directory API, please join our Discord server