zju-mcp
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., "@zju-mcp列一下我的浙大待办"
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.
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-control
工具一览
只读工具
工具 | 能做什么 | 参数 |
| 列出待办的作业/考试/测验/问卷,含课程名、类型和截止日 | 无 |
| 列出「我的课程」里的所有课程,含课程 |
|
| 列出某门课下的所有作业,含每个作业的 |
|
| 查智云课堂某天/某段时间的课表,含每节课的 |
|
| 拉取某节课的语音识别转录(逐段中文、带时间戳) |
|
典型链路:zju_get_schedule 拿到某节课的 sub_id → 传给 zju_get_transcript 取转录。
写操作(会真实改动学在浙大,谨慎使用)
工具 | 能做什么 | 参数 |
| 把本地文件作为作业提交 |
|
| 撤回已提交的作业,回到草稿态(需老师允许撤回) |
|
activity_id 来自 zju_list_todos 或 zju_list_course_homework。提交是真实交付,交错了用 zju_retract_homework 撤回。
典型应用案例
案例一:一键消化一节课
课后不想回放两小时录像?让 AI 直接读转录,帮你把这节课嚼碎:
「把我今天《智能控制》那节课的转录拉出来,总结这节讲了什么、布置了什么作业,有没有点名或课堂小测。」
AI 会自动 zju_get_schedule 找到这节课的 sub_id → zju_get_transcript 取全程转录,然后替你产出:
本节要点:老师讲的核心内容浓缩成几条。
作业提醒:口头布置的作业 / 截止时间。
点名与小测:转录里出现的点名、随堂小测、加分提问等,别再错过平时分。
案例二:全自动完成作业
从「看到作业」到「拿到分数」全程交给 AI:
「看看《数字信号处理》这门课有哪些没交的作业,帮我做完并提交,交完把分数也查一下。」
一条链路跑通:
抓作业 —
zju_list_courses定位课程 →zju_list_course_homework列出未交作业,读出题目要求。做作业 — AI 根据要求生成解答,写成文件存到本地。
提交 —
zju_submit_homework把文件交上去,返回submission_id与读回确认。查分 — 等老师批改后,
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,作者会配合下架。
Available Tools
7 toolszju_get_scheduleA
获取「智云课堂」某一天(或日期区间)的课表,含每节课的 sub_id、课程名、老师、教室、上课时间,以及 status_label(“回放”表示语音转录已生成)。返回的 sub_id 可传给 zju_get_transcript。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | 起始日期 YYYY-MM-DD(东八区);省略则为今天 | |
| end_date | No | 结束日期 YYYY-MM-DD;省略则等于 date(仅查一天) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of transparency. It declares the tool is read-only ('只读'), which is a key behavioral trait. However, it does not disclose potential side effects, error conditions, or rate limits. For a simple read operation, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, extremely concise, and front-loads the core purpose. Every sentence adds value: the first sentence explains what is retrieved and its content, the second links to another tool and states read-only nature. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two optional parameters and no output schema, the description covers the essential aspects: input (with defaults and timezone), output fields, read-only status, and integration with a sibling tool. It lacks details on error handling or empty results, but overall is sufficiently complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (date, end_date) with 100% coverage. The description adds meaningful context: the time zone (东八区, East 8), default behavior (date defaults to today, end_date defaults to date), and the output fields. This goes beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a course schedule for a day or date range from '智云课堂' (Zhiyun Classroom), listing specific output fields (sub_id, course name, teacher, etc.). It distinguishes itself from sibling tools like zju_get_transcript by noting that sub_id can be passed to that tool, and from other list tools by focusing on schedule data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implicit guidance by mentioning that sub_id can be used with zju_get_transcript, suggesting a workflow. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to prefer zju_list_courses), nor does it mention situations where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_get_transcriptA
获取「智云课堂」某节课的语音识别转录(带时间戳的逐段中文文本)。需要 sub_id(来自 zju_get_schedule 的 courses[].sub_id)。仅“回放”状态的课有转录。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| sub_id | Yes | 课程节次 id(zju_get_schedule 返回的 sub_id) | |
| max_segments | No | 最多返回多少段(防止过长);省略则全部返回 | |
| with_translation | No | 是否附带英文翻译行(TransText),默认 false |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States '只读' (read-only), which is transparent. Mentions output format (time-stamped segments) and optional parameters (max_segments, with_translation). Lacks details on error handling, rate limits, or behavior when sub_id is invalid. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: three sentences covering purpose, prerequisites, and condition. Front-loaded with main action. No redundant words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema provided, yet description only vaguely describes output as '带时间戳的逐段中文文本'. Does not specify structure (e.g., array of objects with fields), possible limits on segments, or handling of missing data. with_translation parameter hints at extra field but not described. Incomplete for a tool without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for all three parameters. Description mentions sub_id and its source but adds no extra meaning beyond the schema. No additional context for max_segments or with_translation. Baseline 3 is appropriate as parameters are well-documented in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool retrieves speech recognition transcripts for a class from 智云课堂, including time-stamped Chinese text. It mentions the prerequisite sub_id from sibling tool zju_get_schedule and condition that only '回放' status classes have transcripts. Clearly distinguishes from siblings like zju_get_schedule and homework tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisites (needs sub_id from zju_get_schedule) and condition (only '回放' status). Implicitly guides when not to use (missing sub_id or non-playback status). Does not explicitly list alternatives or exclusions, but context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_list_course_homeworkA
列出某门课程下的【全部作业】——已提交、未提交、已结束的都在内,并给出每个作业的 activity_id(可直接传给 zju_submit_homework / zju_retract_homework)。相比只看未完成待办的 zju_list_todos,这个能操作「已完成」的作业。当 include_submission=true(默认)且老师已批改/公布时,返回顶层 score(我的得分)及 submission 里的 score/final_score/graded_at/instructor_comment(老师评语);未公布则 score 为 null。注意顶层 weight_percent 是该作业在总评里的分值占比,不是得分。需要 course_id(来自 zju_list_courses 的 courses[].id,或课程 URL /course/{id}/ 里的数字)。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | 课程 id(zju_list_courses 的 courses[].id,如 97960) | |
| include_submission | No | 是否附带「我的提交」详情(submission_id / 是否草稿 / 文件名 / 能否撤回),默认 true;置 false 更快、只返回列表级状态 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses the read-only nature ('只读'), explains the behavior of include_submission and score visibility based on grading/publication status, and clarifies that weight_percent is a weight, not a score. This is comprehensive behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph of moderate length. It front-loads the main purpose and distinctions, but could benefit from bullet points or clearer separation of parameter effects. Still, every sentence adds value with minimal redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains key return fields (activity_id, score, weight_percent, submission details) and links to sibling tools for actions. It covers all essential aspects for an agent to correctly invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaningful context: course_id source from zju_list_courses, include_submission default true and its effect on response (submission details, score, comments). It explains return data tied to parameter values, exceeding schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists '全部作业' (all homework) under a course, including various statuses, and provides activity_id for subsequent submission/retraction actions. It explicitly distinguishes from zju_list_todos, which only shows pending todos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly compares with zju_list_todos, noting this tool can handle 'completed' assignments while the sibling only handles pending ones. It also advises when to set include_submission to false for speed, and clarifies conditions for score/comment retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_list_coursesA
列出「学在浙大」我的全部课程(对应网页「我的课程」),含课程 id、课程名、课程代码、学年、学期、开课学院、授课教师、学习进度。返回的 id 就是课程 URL /course/{id}/ 里的数字,可传给 zju_list_course_homework 查该课作业。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | 可选:课程状态过滤(ongoing 进行中 / notStarted 未开始 / ended 已结束);省略则三者全取 | |
| keyword | No | 可选:按课程名 / 课程代码模糊过滤 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It declares the operation as read-only ('只读'), specifies returned fields, and explains how the id relates to other tools. No side effects or destructive actions are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence that packs purpose, output fields, inter-tool relationship, and read-only nature without any extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param listing tool with no output schema, the description covers output fields, read-only behavior, and id usage. It lacks mention of pagination or ordering but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no new parameter-level details beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all courses from '学在浙大' with specific fields (id, name, code, etc.), and distinguishes from siblings by noting the id can be passed to zju_list_course_homework.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: it corresponds to the web '我的课程' page and is read-only. However, it does not explicitly compare to sibling tools like zju_get_schedule or zju_get_transcript, leaving the agent to infer when to use this vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_list_todosA
列出「学在浙大」(courses.zju.edu.cn) 的全部待办(作业/考试/测验/问卷),含课程名、类型与东八区截止日期。注意:只含「未完成」的待办,已提交/已完成的作业不在此列 —— 要看某门课的全部作业(含已交)请用 zju_list_course_homework。只读,无参数。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses read-only nature and that only incomplete items are returned. While auth or rate limits are not mentioned, the description offers sufficient behavioral context for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Front-loaded with purpose, includes key details and alternative. Every sentence is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no parameters, no output schema, and low complexity. Description covers purpose, scope, limitation (incomplete only), timezone, and references alternative tool. Complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%). Description states '无参数' which adds no new info beyond schema but confirms it. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all incomplete todos from courses.zju.edu.cn, including course name, type, and deadline. It distinguishes from sibling zju_list_course_homework which lists all homework (including submitted) for a specific course.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (to see incomplete todos) and when not to (to see all homework for a course, use zju_list_course_homework). Provides clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_retract_homeworkA
【写操作】撤回某作业已提交的版本,使其回到草稿态(可重新修改提交)。需要 activity_id。仅当老师开启了 allow_retract 时可撤回;若当前已是草稿或无提交记录会原样告知。
| Name | Required | Description | Default |
|---|---|---|---|
| activity_id | Yes | 作业 id(同 zju_submit_homework) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses write operation, required flag, and edge-case handling. No annotations provided, so description carries burden; it is adequate but lacks detail on potential irreversible effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense sentence with front-loaded operation type and effect. Every piece of information is necessary and presented efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description fully covers purpose, prerequisites, and edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameter with description; tool description adds the same info (activity_id required). No significant additional semantic value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'retract' and resource 'submitted homework version'. Differentiates from sibling zju_submit_homework by specifying it returns to draft state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides condition (teacher's allow_retract) and edge cases (already draft/no submission), but does not explicitly list when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zju_submit_homeworkA
【写操作,会真实提交】把本地文件作为作业提交到「学在浙大」。需要 activity_id(作业 id,可从 zju_list_todos 的 todos[].id 取,或作业页 URL 里 #/后面的数字)和 file_path(本地文件绝对路径)。提交后会真实交付给老师;若老师开启了允许撤回,可用 zju_retract_homework 撤回改交。返回提交结果与读回确认(submission_id / 文件名 / 提交时间)。
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No | 可选:提交附言 | |
| file_path | Yes | 要提交的本地文件绝对路径 | |
| activity_id | Yes | 作业 id(zju_list_todos 的 todos[].id,或作业页 URL #/后面的数字,如 1146706) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that this is a real write operation (写操作,会真实提交) and that submission delivers to the teacher. Mentions retraction possibility if enabled. Without annotations, description carries full burden; it covers the key behavioral trait of being a permanent submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise one-paragraph description with critical information front-loaded (write operation, real submission). No fluff, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with 3 params and no output schema, description covers inputs, return values (submission_id, file name, time), and links related tools. Could mention potential overwrite behavior, but still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds context for activity_id (source from list or URL) but largely restates schema for file_path and comment. Minimal additional semantic value beyond schema, but sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool submits a local file as homework to 'ZJU Online', using specific verbs '提交' and resources. It distinguishes from sibling tools like zju_retract_homework by noting the submission is real and that retraction is possible separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (to submit homework) and provides alternative (zju_retract_homework for retraction) and prerequisite (obtain activity_id from zju_list_todos or URL).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
zju_get_schedule - First observed
zju_get_transcript - First observed
zju_list_course_homework - First observed
zju_list_courses - First observed
zju_list_todos - First observed
zju_retract_homework - First observed
zju_submit_homework
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: schedule retrieval, transcript retrieval, course listing, homework listing, todo listing, homework submission, and homework retraction. No overlap or ambiguity exists.
All tools follow a consistent 'zju_verb_noun' pattern (e.g., zju_get_schedule, zju_list_courses, zju_submit_homework), making naming predictable and easy to understand.
Seven tools is a well-scoped set for a university platform server, covering essential operations without being overly large or too small.
The tools cover core workflows (scheduling, homework management, course listing). Minor gaps exist, such as no tool for viewing detailed course info or announcements, but the main tasks are supported.
Maintenance
Related MCP Connectors
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLM interaction with the Macau University of Science and Technology (M.U.S.T.) campus system, including automated login to Wemust and Moodle, retrieving class schedules, checking assignments and deadlines, downloading course materials, and managing course content.73MIT
- AlicenseAqualityDmaintenanceTurns Canvas LMS into a scriptable pipeline and exposes it to AI assistants via MCP for querying courses, grades, assignments, and syncing files using natural language.143MIT
- FlicenseAqualityBmaintenanceEnables users to interact with the University of Tokyo's UTOL learning management system through natural language, providing access to courses, assignments, deadlines, notifications, and materials via MCP clients like Claude Desktop.151-
- AlicenseBqualityCmaintenanceEnables AI assistants to interact with the Chaoxing (超星学习通) platform through MCP, supporting teacher and student modes for course management, assignments, exams, sign-ins, and file operations.162MIT