zju-mcp

zju-mcp

Enables interaction with Zhejiang University's learning platform (学在浙大 / 智云课堂) via MCP tools, allowing natural language commands to check todos, view schedules, fetch lecture transcripts, and submit homework.

Category
访问服务器

README

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": "你的密码" }
    }
  }
}

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


工具一览

只读工具

工具 能做什么 参数
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,作者会配合下架。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选