COURSE_SJTU_MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JCOURSE_API_KEY | No | API Key for course.sjtu.plus, used as a Bearer token. Can alternatively be stored via `uv run course-sjtu-mcp login` in ~/.local/share/course-sjtu-mcp/config.json. Environment variable takes precedence over the config file. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jcourse_auth_statusA | 检查本机 API Key 是否存在、是否有效,并读取当前账号;不会输出 Key。 |
| jcourse_get_course_filtersA | 读取课程筛选值及计数:学分、院系、类别、目标年级、语言和学期。 |
| jcourse_search_coursesC | 搜索或筛选课程,返回课程 ID、代码、学分、教师、评分、开课学期和网页链接。 |
| jcourse_get_hot_coursesA | 读取本周或本月热门课程;热门分是社区活跃度,不是课程评分。 |
| jcourse_get_courseA | 读取课程详情:教师组、开课学期、评分分布、关注状态、我的选课与我的评价。 |
| jcourse_get_course_review_filtersA | 读取某门课程评价可用的学期和评分筛选项。 |
| jcourse_get_course_review_trendA | 按学期汇总某门课程的评价数量与平均分。 |
| jcourse_list_course_reviewsA | 分页读取课程评价;默认按获赞排序看代表性评价,按时间排序看近期反馈。 |
| jcourse_list_reviewsA | 分页读取全站评价;会排除已忽略课程。可按关键词、学期和评分筛选。 |
| jcourse_list_followed_reviewsB | 分页读取已关注课程的新评价,默认按发布时间倒序。 |
| jcourse_get_reviewA | 读取单条评价全文、课程信息、投票统计、版主备注和网页链接。 |
| jcourse_list_my_reviewsA | 分页读取我发布的评价,可按关键词、学期、评分和排序筛选。 |
| jcourse_get_teacher_filtersA | 读取教师筛选值:院系和职称及各自计数。 |
| jcourse_search_teachersB | 搜索或筛选教师,返回教师 ID、姓名、院系、职称和网页链接。 |
| jcourse_get_teacherA | 读取教师详情:姓名、代码、院系、职称和网页链接。 |
| jcourse_list_teacher_coursesB | 分页列出教师开设的课程,支持关键词、院系、语言、类别、学分和评分排序。 |
| jcourse_list_enrolled_coursesA | 列出我的选课记录及每条记录 ID;删除记录时需要使用该 ID。 |
| jcourse_list_followed_coursesB | 分页列出我关注(通知级别为 1)的课程。 |
| jcourse_list_ignored_coursesB | 分页列出我忽略(通知级别为 2)的课程。 |
| jcourse_get_pointsA | 读取我的积分总额与积分记录;不涉及积分消费或转账。 |
| jcourse_list_announcementsA | 读取当前有效公告、公告时间、优先级和可选的站外链接。 |
| jcourse_get_system_settingsA | 读取站点公开系统设置;标记为 secret 的值不会返回。 |
| jcourse_set_course_notificationA | 设置课程通知级别:0 正常、1 关注、2 忽略。修改远端状态,需 confirm=true。 |
| jcourse_delete_enrollmentA | 删除一条我的选课记录;使用 jcourse_list_enrolled_courses 返回的记录 ID,需 confirm=true。 |
| jcourse_create_reviewA | 发布课程评价:先向用户展示最终正文、评分、学期与成绩并取得授权,再传 confirm=true。 |
| jcourse_update_reviewA | 修改我的一条评价;未提供字段保持原值,score 传空字符串可清除。需 confirm=true。 |
| jcourse_delete_reviewA | 删除一条我发布的评价,可能无法恢复;需 confirm=true。 |
| jcourse_vote_reviewA | 给评价点赞、点踩或取消:like / dislike / clear。每日有投票上限;需 confirm=true。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| jcourse_course_advice | 在 SJTU 选课社区检索、比较课程并给出选课建议 |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| SJTU 选课社区使用指南 |
TDQS
Scored across 28 tools
Most tools have clearly distinct purposes (course vs teacher vs review vs enrollment vs account). A few list_* tools are close: jcourse_list_reviews vs jcourse_list_course_reviews, and jcourse_list_followed_reviews vs jcourse_list_followed_courses, but the descriptions do clarify scope (site-wide vs per-course, reviews-on-followed-courses vs followed-course-list).
Strong consistent jcourse_verb_noun pattern throughout: get_, list_, search_, create_, update_, delete_, set_, vote_. Minor deviations like jcourse_auth_status (noun status rather than a verb) and jcourse_vote_review (slightly different verb style) keep it from a perfect score.
28 tools is on the heavy side of the rubric (25+). The domain is rich (courses, reviews, teachers, filters, user lists, points, announcements) so most tools earn a place, but the surface is bordering on excessive and could likely be consolidated (e.g. the three filter tools).
Review lifecycle is fully covered (create/update/delete/vote/read) and courses/teachers have rich read coverage. However enrollment is list+delete only with no way to add or create an enrollment record, a notable gap for a core feature. Points and announcements are read-only, which is acceptable per their descriptions.