mk-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MK163_ORIGIN | No | 站点源 (Site origin). Default: https://www.icourse163.org | https://www.icourse163.org |
| MK163_AUTH_FILE | No | 会话保存位置 (Session storage path). Default: ~/.mk163/auth.json | ~/.mk163/auth.json |
| MK163_MIN_INTERVAL_MS | No | 写请求最小间隔 (Minimum interval between write requests, in milliseconds). Default: 13000 | 13000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mk_login_startA | 拉起本机 Chrome/Edge 打开登录页,由用户手动登录 icourse163.org(课程平台)。本调用立即返回;成功后自动抓取全部 cookie(含 HttpOnly)和该浏览器的 UA 存盘。用 mk_login_status 轮询结果。 |
| mk_login_statusA | 查询浏览器登录流程状态: idle/running/success/failed/timeout/cancelled。running 时提示用户到弹出的浏览器窗口完成验证码或扫码。 |
| mk_login_cancelA | 关闭登录浏览器并取消进行中的登录流程。 |
| mk_check_loginA | 检查本地保存的会话是否有效;给 termId 时会实际调用鉴权接口验证。 |
| mk_list_coursesA | 列出当前账号最近学习的课程(含 termId/教师/学校/起止时间/发布状态)。各工具要的 tid 直接从这里拿;若目标课程不在列表里,提供课程页 URL 里的 tid 也可以。 |
| mk_get_courseA | 获取课程完整结构:章(chapters)→节(lessons)→任务点(units),含类型/完成度/发布状态。 |
| mk_list_unitsB | 列出课程全部任务点(可按类型/完成度过滤)。类型: 1=视频 3=文档 4=富文本 5=测验 6=讨论。 |
| mk_complete_unitA | 上报一个任务点的学习完成。视频(ct=1)一次上报 videoTime=时长+50 即 100%;文档(ct=3)需 textPages(可传 contentId 自动取);富文本/讨论(ct=4/6)打开即完成。 |
| mk_complete_courseA | 批量完成任务点:视频(ct1)一次上报;文档(ct3)自动下载 PDF 字节再上报;富文本(ct4)打开即完成;测验(ct5)默认只写学习记录,autoQuiz=true 走拟真逐题作答(含故意错题);讨论(ct6)不代发——返回讨论清单,由你逐条用 mk_discuss_reply 撰写并回帖(每条间隔 ~30s 波动)。内置 ≥13s 写节流与限流重试。 |
| mk_get_quizB | 取随堂测验/考试试卷:题目、选项与正确答案(服务端 DTO 自带 option.answer=true 与 stdAnswer),可据此满分作答。 |
| mk_submit_quizA | 按真实节奏交卷:先写"打开测验"学习记录,然后逐题作答(每题 5-6s 基准波动,题干长则延长、短则缩短,真实时间戳写入答卷),故意错几道(默认约 25%,1-3 题),留检查间隔后提交。sessionSeconds 控制整场压缩到多少秒内(适配 MCP 超时,节奏比例保持不变)。 |
| mk_discuss_replyA | 在讨论单元发一条回复(MocForumBean.addReply, DWR)。讨论只有真实回帖才会置为完成。text 必须由你(agent)根据讨论话题撰写与主题相关的内容,不要用模板或占位文字。时间戳节奏由调用方控制:批量发帖时请在两次调用之间自行 sleep(建议 30s±10s 高斯波动,半天内摊完即可);也可传 pauseBeforeMs 让本调用内部先等待。 |
| mk_verifyB | 重新拉取学习树,输出每个任务点的 completePercent 与汇总(未满 1 的单独列出)。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools target distinct resources or actions: login lifecycle, course listing, unit completion, quiz flow, and discussion replies are clearly separable. Minor ambiguity exists between mk_check_login (validates a saved session) and mk_login_status (polls an in-progress browser login), and between mk_verify and mk_list_units/mk_get_course since all three surface completion information.
All tools share the mk_ prefix and snake_case, which is highly predictable. The only deviation is ordering: the login tools use noun_verb (mk_login_start/status/cancel) while everything else uses verb_noun (mk_list_courses, mk_complete_unit, mk_get_quiz).
13 tools is well-scoped for an icourse163 automation server: one or two tools per lifecycle stage (auth, discovery, completion, quiz, discussion). No tool feels redundant or padded given the domain breadth.
The surface covers the full core workflow: login, session validation, course listing, structure inspection, single and batch completion, quiz fetch/submit, and discussion replies. Minor gaps: discussions can only be enumerated indirectly through mk_complete_course output rather than a dedicated list tool, and there's no way to inspect quiz results or scores after submission.