Skip to main content
Glama
Flagwill

COURSE_SJTU_MCP

by Flagwill

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JCOURSE_API_KEYNoAPI 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription
jcourse_course_advice在 SJTU 选课社区检索、比较课程并给出选课建议

Resources

Contextual data attached and managed by the client

NameDescription
SJTU 选课社区使用指南

TDQS

B3.3/5.0

Scored across 28 tools

Disambiguation4/5

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).

Naming Consistency4/5

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.

Tool Count3/5

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).

Completeness3/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues