Chosun MCP
The Chosun MCP server provides read-only access to Chosun University's portal, academic system, CLC/e-Class, and Online Judge (OJ) systems.
Portal (p.chosun.ac.kr)
Check login/session status and server time
Get unread message count
View timetable widget (week offsets -8 to +8), notices, and academic calendar (by date range)
Academic System (a.chosun.ac.kr)
Search course offerings (by year, semester, keyword, college, department, professor, etc.)
Retrieve course syllabi
Access raw or summarized graduation self-diagnosis data
Run a combined verification report (session, timetable, notices, calendar, graduation)
CLC/e-Class (clc.chosun.ac.kr) — requires chosun_clc_enabled=true
Check configuration/credential status
When enabled: access dashboard, courses, notifications, schedule, content lists/details, and file downloads
OJ — Online Judge (oj.chosun.ac.kr) — requires chosun_oj_enabled=true
Check configuration/credential status
When enabled: browse judge home, student main, contest/problem lists, submission status/source, and problem details
Click on "Install 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., "@Chosun MCPshow my timetable"
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.
Chosun MCP
조선대학교 포털, 종합정보, CLC/e-Class, OJ 정보를 MCP(Model Context Protocol) tool로 조회하는 TypeScript 서버입니다.
개인 사용을 위해 취미로 만드는 비공식 프로젝트입니다. 조선대학교 공식 서비스나 공식 API가 아니며, 학교 시스템 화면/요청 구조가 바뀌면 언제든 동작하지 않을 수 있습니다.
기능
포털(
p.chosun.ac.kr)로그인/세션 상태
서버 시간
읽지 않은 쪽지 수
시간표 위젯
공지 위젯
학사일정 위젯
종합정보(
a.chosun.ac.kr)개설과목 조회
개설과목 수업계획서 조회
성적 학기 요약 및 학기별 상세 조회
졸업 자가진단 원본 조회
개인정보를 줄인 졸업 자가진단 요약
CLC/e-Class(
clc.chosun.ac.kr)대시보드, 수강과목, 알림/TODO/쪽지 카운트
일정, 공지, 이벤트, 메인 위젯
과목 홈, 메뉴별 안읽은 수, 활동 위젯
강의자료/공지/과제 목록 및 상세
첨부파일 다운로드
OJ(
oj.chosun.ac.kr)별도 로그인 세션
judge 홈, 학생 메인
대회/과제 문제 목록
제출 상태
제출 소스
문제 상세
현재 구현은 조회 중심입니다. 파일 다운로드 외에는 학교 시스템에 데이터를 쓰는 기능을 넣지 않는 방향으로 관리합니다.
Related MCP server: snuETL-mcp
주의
이 프로젝트는 보안을 신경 써서 설계하거나 검토한 프로젝트가 아닙니다.
사용 중 발생하는 계정 문제, 개인정보 노출, 세션/쿠키 유출, 학교 시스템 이용 제한, 기타 보안 문제에 대해 프로젝트 작성자는 책임지지 않습니다.
실제 계정으로 사용할 경우 모든 책임은 사용자 본인에게 있습니다.
.env에는 실제 학번/비밀번호가 들어가므로 Git에 올리지 않습니다.HAR 파일에는 쿠키, 세션, 요청 파라미터가 들어갈 수 있으므로 Git에 올리지 않습니다.
이 프로젝트는 학교 공식 API를 사용하는 것이 아니라 실제 웹 요청 흐름을 재현합니다.
계정 정보와 조회 결과에는 개인정보가 포함될 수 있으니 MCP host 로그, 공유 화면, 저장 파일을 조심해서 다뤄야 합니다.
요구사항
Node.js 18 이상
npm
설치
npm install설정
.env.example을 복사해 프로젝트 루트에 .env를 만듭니다.
cp .env.example .env예시:
chosun_id=학번또는교직원번호
chosun_psw=비밀번호
# CLC/e-Class는 포털과 비밀번호가 다를 수 있어 별도 설정을 사용합니다.
chosun_clc_enabled=false
chosun_clc_id=CLC아이디
chosun_clc_psw=CLC비밀번호
# OJ도 별도 로그인입니다.
chosun_oj_enabled=false
chosun_oj_id=OJ아이디
chosun_oj_psw=OJ비밀번호CLC/e-Class 도구는 chosun_clc_enabled=true일 때만 등록됩니다.
OJ 도구는 chosun_oj_enabled=true일 때만 등록됩니다.
실행
npm run build
npm start개발 중에는 TypeScript를 직접 실행할 수 있습니다.
npm run devMCP Inspector로 확인하려면:
npm run inspectMCP host 설정 예시
빌드 후 build/index.js를 MCP 서버 엔트리로 등록합니다.
{
"mcpServers": {
"chosun-mcp": {
"command": "node",
"args": ["/path/to/chosun-mcp/build/index.js"],
"cwd": "/path/to/chosun-mcp"
}
}
}이 저장소를 현재 위치 그대로 쓴다면 /path/to/chosun-mcp를 프로젝트 절대경로로 바꾸면 됩니다.
도구 목록
포털
chosun_session_status: 포털 로그인 및 세션 상태 확인chosun_server_time: 포털 서버 시간 조회chosun_unread_messages: 읽지 않은 쪽지 수 조회chosun_timetable: 시간표 위젯 조회chosun_notices: 공지 위젯 조회chosun_academic_calendar: 학사일정 위젯 조회
종합정보
chosun_course_recommendations: 졸업요건·취득과목·실시간 개설과목을 조합한 충돌 없는 추천 시간표chosun_course_offerings: 개설과목 조회chosun_course_syllabus: 개설과목의 수업계획서 조회chosun_grade_terms: 성적조회 전체의 학기별 요약 조회chosun_grade_detail: 특정 연도/학기 과목별 성적 상세 조회chosun_graduation_diagnosis: 졸업 자가진단 원본 조회chosun_graduation_summary: 개인정보 식별자를 줄인 졸업 자가진단 요약chosun_verification_report: 세션, 시간표, 공지, 학사일정, 졸업진단 등 주요 조회를 한 번에 검증
CLC/e-Class
chosun_clc_config_status: CLC/e-Class 활성화 및 계정 설정 여부 확인chosun_clc_session_status: CLC/e-Class 로그인 및 세션 상태 확인chosun_clc_dashboard: 대시보드 요약 조회chosun_clc_courses: 수강과목 및 과목별 안읽은 글 수 조회chosun_clc_counts: 쪽지/알림/TODO 카운트 조회chosun_clc_schedule: 일별 일정 조회chosun_clc_notices: 커뮤니티 공지 또는 CTL 공지 조회chosun_clc_events: 신규 이벤트 조회chosun_clc_main_widgets: 빠른메뉴, 월간 일정, OCW, 소모임, 사이트 링크, 중요글 조회chosun_clc_course_home: 과목 홈/서브메인 요약 조회chosun_clc_course_menu_counts: 과목 메뉴별 안읽은 수 조회chosun_clc_course_activity: 제출/새글/새댓글/중요글 위젯 조회chosun_clc_course_room_auth: 과목 방 접근 권한 확인 endpoint 조회chosun_clc_course_chat: 과목 채팅 화면 및 메시지 목록 요약 조회chosun_clc_course_content_list: 강의자료/공지/과제 목록 조회chosun_clc_course_content_detail: 강의자료/공지/과제 상세, 첨부파일, 댓글 조회chosun_clc_course_file_download: CLC 첨부파일을downloads/clc아래에 새 파일로 다운로드
OJ
chosun_oj_config_status: OJ 활성화 및 계정 설정 여부 확인chosun_oj_session_status: OJ 로그인 및 세션 상태 확인chosun_oj_home: judge 홈 조회chosun_oj_student_main: 학생 메인 조회chosun_oj_contest_problem_list: 대회/과제 문제 목록 조회chosun_oj_status: 제출 상태 조회(/10,/20... 페이지 자동 수집,maxPages)chosun_oj_contest_scoreboard: contest 전체 제출을 userId -> 문제별 최고점 -> 총점으로 집계chosun_oj_source: 제출 소스 조회(problemText,submittedCode,filledAnswers분리)chosun_oj_problem_info: 문제 상세 조회 및 본문 접근 가능 여부(access.reason) 표시
사용 예시
개설과목 조회:
{
"year": "2026",
"semester": "11",
"keyword": "데이터구조",
"limit": 5
}졸업요건 기반 추천 시간표:
{
"year": "2026",
"semester": "21",
"targetCredits": 17,
"includeAdvancedRequired": false,
"includeNight": false,
"maxSchedules": 3
}추천 도구는 미이수 필수과목, 이미 취득한 과목, 교양 영역별 부족 학점, 개설 분반의 강의시간을 교차 검증합니다. 교양 교과목 분류는 학교가 공개한 2026학년도 카탈로그에만 현재 대응하며, 다른 학년도는 필수과목 추천과 교양 부족 정보만 반환합니다.
chosun_course_offerings 결과의 rows[].syllabusRequest 값을 chosun_course_syllabus 입력으로 넘기면 해당 과목의 수업계획서를 조회할 수 있습니다.
CLC 과목 공지 상세 조회 흐름:
chosun_clc_courses로kjKey를 찾습니다.chosun_clc_course_content_list에kind: "notice"와kjKey를 넣어 공지 목록을 조회합니다.목록의
id를chosun_clc_course_content_detail에 넘겨 본문, 첨부파일, 댓글을 조회합니다.
OJ 문제 조회 흐름:
chosun_oj_student_main으로classId기준 화면을 확인합니다.chosun_oj_contest_problem_list로contestId의 문제 목록을 조회합니다.chosun_oj_problem_info또는chosun_oj_status로 문제/제출 상태를 확인합니다.대회 전체 집계가 필요하면
chosun_oj_contest_scoreboard에classId,contestId를 넘깁니다.
로그인 흐름 요약
포털은 p.chosun.ac.kr/index.jsp에서 SSO 로그인 페이지로 이동한 뒤, 로그인 페이지의 l_token/c_token을 추출합니다. 이후 .env의 chosun_id/chosun_psw로 sso.chosun.ac.kr/Login.eps에 로그인하고, SSO ticket을 통해 포털 세션을 확정한 뒤 조회성 endpoint를 호출합니다.
종합정보는 포털 세션 확정 후 a.chosun.ac.kr/exsignon/sso/sso_index.jsp를 통해 학사 시스템 세션을 열고, PATIS 요청 파라미터를 세션 키로 암호화해 호출합니다.
CLC/e-Class는 chosun_clc_enabled=true일 때만 도구가 등록됩니다. /ilos/lo/login.acl 로그인 POST 이후 /ilos/lo/login_branch.acl을 거쳐 /ilos/main/main_form.acl 세션을 확정한 뒤 조회성 endpoint를 호출합니다.
OJ도 chosun_oj_enabled=true일 때만 도구가 등록됩니다. /index.php/auth/login/, /index.php/auth/authentication?returnURL=, /index.php/judge 흐름으로 로그인한 뒤 조회성 페이지를 호출합니다.
개발
npm test
npm run typecheck
npm run build쿠키, PATIS 응답, HTTP 제한, 다운로드 경로, 성적 필드 매핑, 추천 시간표의 충돌 검사는 fixture 기반 단위 테스트로 검증합니다. 실제 로그인 흐름은 계정과 학교 서버가 필요하므로 chosun_verification_report, chosun_course_recommendations, CLC/OJ 세션 상태 도구, 관련 상세 조회 도구로 별도 확인해야 합니다.
네트워크 요청은 기본 30초 타임아웃을 사용합니다. 텍스트 응답은 10MB, CLC 첨부파일은 100MB로 제한하며, 외부 도메인 리다이렉트는 차단합니다. CLC 다운로드는 downloads/clc 외부 경로, 심볼릭 링크 경로, 기존 파일 덮어쓰기를 허용하지 않습니다.
앞으로 개선하면 좋은 것
실제 응답에서 개인정보를 제거한 CLC/OJ HTML fixture 테스트 확대
CLC/OJ HTML 파싱 결과의 스키마를 더 안정적으로 정리
로그인 실패, 세션 만료, 권한 없음 에러 메시지 개선
학사 시스템 코드값 조회 도구 추가
수업계획서 결과를 더 구조화된 JSON으로 변환
OJ classId/contestId/problemId를 자동 탐색하는 보조 도구 추가
민감정보 마스킹 유틸과 디버그 로그 정책 추가
라이선스
아직 라이선스를 정하지 않았습니다. 공개 사용을 명확히 하려면 LICENSE 파일을 추가하는 것이 좋습니다.
Available Tools
13 toolschosun_academic_calendarChosun Academic CalendarB
Read the academic calendar widget for a YYYYMMDD date range.
| Name | Required | Description | Default |
|---|---|---|---|
| startDt | No | Start date as YYYYMMDD. Defaults to the first day of the current month. | |
| endDt | No | End date as YYYYMMDD. Defaults to the last day of the current month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries the burden but only states 'Read', implying read-only behavior without detailing caching, response size, or any side 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 sentence, no waste. Could be slightly more structured (e.g., specifying default behavior explicitly).
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 read tool with two parameters and no output schema, the description is adequate but lacks return value details and behavioral context.
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 is 3. Description adds no extra meaning beyond schema's date format and defaults.
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 verb 'Read' and resource 'academic calendar widget' with a specific date range format. It distinguishes from sibling tools like chosun_notices and chosun_timetable.
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?
No guidance on when to use this tool versus alternatives. No exclusions or context for use, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_clc_config_statusChosun CLC Config StatusA
Report whether CLC/e-Class tools are enabled and whether separate CLC credentials are configured, without exposing secrets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so description must fully disclose behavior. It mentions 'without exposing secrets' but does not clarify whether the tool is read-only, any potential side effects, or response structure. This is insufficient for a tool that may involve configuration checks.
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 sentence with no redundant information. Every word serves a purpose.
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 zero-parameter tool, the description explains the output's purpose (reporting enablement and configuration status) but does not specify output format (e.g., boolean, text). Still, it is mostly complete for a status check.
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, so schema coverage is 100%. The description adds meaning about what the report covers (status of tools and credentials), which is adequate.
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 reports whether CLC/e-Class tools are enabled and whether separate credentials are configured, without exposing secrets. This verb+resource specification is distinct from sibling tools like chosun_oj_config_status.
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?
No guidance on when to use this tool versus alternatives. Does not provide context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_course_offeringsChosun Course OfferingsC
Search undergraduate course offerings from the Chosun academic system.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Academic year, for example 2026. | |
| semester | Yes | Semester code. Common values: 11 first semester, 12 summer, 21 second semester, 22 winter. | |
| collegeCode | No | Optional college code such as 1A70000000. | |
| departmentCode | No | Optional department code such as 1A70A30140. | |
| subjectCode | No | Optional subject code. | |
| professorNo | No | Optional professor number. | |
| completionTypeCode | No | Optional completion type / course category code. | |
| curriculumTypeCode | No | Optional curriculum type code. | |
| lectureTypeCode | No | Optional lecture type code. | |
| dayNightCode | No | Optional day/night code. | |
| closedStatus | No | Closure status filter used by the portal. Default 2 matches the observed portal request. | 2 |
| keyword | No | Local keyword filter over subject, professor, college, department, room, and time. | |
| limit | No | ||
| offset | No | ||
| includeContact | No | Include professor contact fields when present. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully convey behavioral traits. It only says 'Search', implying read-only, but fails to clarify side effects, result limits, caching, or error handling. For a tool with 15 parameters and no output schema, this is insufficient.
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 extremely concise (one short sentence), front-loaded, and without fluff. However, for a complex tool, it sacrifices essential context, making it too minimal to earn a higher score.
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?
With 15 parameters, no output schema, and no annotations, the description should provide more context about return format, pagination, default behaviors, and failure modes. It falls short, leaving the agent with an incomplete picture.
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 description coverage is 87% (high), so the schema explains most parameters. The description adds no additional parameter meaning, but since the schema is already rich, a score of 3 (baseline) 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?
The description clearly states 'Search undergraduate course offerings', specifying the verb 'Search' and resource 'course offerings'. It distinguishes itself from sibling tools like chosun_course_syllabus (syllabus for a specific course) and chosun_timetable (personal schedule) by focusing on available offerings.
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 provides no guidance on when to use this tool versus alternatives like chosun_course_syllabus or chosun_graduation_diagnosis. It lacks context for typical use cases, prerequisites, or exclusion criteria, leaving the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_course_syllabusChosun Course SyllabusC
Read a course syllabus report for a course offering returned by chosun_course_offerings.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| semester | Yes | ||
| collegeCode | Yes | ||
| departmentCode | Yes | ||
| subjectCode | Yes | ||
| section | Yes | ||
| professorNo | Yes | ||
| completionTypeCode | Yes | ||
| corsGb | No | 1 | |
| maxPages | No | Maximum report pages to fetch and extract. | |
| includeContact | No | Include contact information in extracted report text. | |
| includeViewData | No | Include raw ClipReport viewData base64 for fetched pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Read,' indicating a safe, read-only operation. However, it does not disclose pagination behavior (maxPages), whether contact inclusion or raw data inclusion affects output, or any side effects. The behavioral disclosure is minimal but not contradictory.
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, front-loaded sentence that efficiently states the tool's purpose. It is concise and easy to parse, but it could include a brief parameter overview without becoming verbose.
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 complexity of 12 parameters (8 required) and no output schema, the description is insufficient. It does not explain the return format, how parameters relate to the syllabus report, or what to expect from optional flags like includeContact or includeViewData. The description is only slightly helpful for a simple read operation.
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 description adds no explanation for the 12 parameters, despite only 3 having descriptions in the schema (25% coverage). The required parameters (year, semester, collegeCode, etc.) are not elaborated, leaving the agent without meaning beyond their names. The description does not compensate for the low schema coverage.
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 reads a course syllabus for a specific course offering, linking it to the sibling tool chosun_course_offerings. The verb 'Read' and resource 'course syllabus report' are specific, and the mention of the sibling differentiates it. However, it could further clarify that it retrieves the syllabus for a single offering identified by the required parameters.
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 implies the tool is used after obtaining a course offering from chosun_course_offerings, but it does not explicitly state when to use it versus alternatives, nor does it provide exclusions or prerequisites. The guidance is implicit, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_graduation_diagnosisChosun Graduation DiagnosisB
Read graduation self-diagnosis data from the Chosun academic system.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must carry the burden. Only states 'read', implying read-only, but no mention of authentication, data format, or side 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 sentence, no redundancy. Efficient but could be expanded with minimal additional context.
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 and no annotations, the description is too minimal. Does not specify what data is returned or any format, leaving agent without key info.
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?
Tool has 0 parameters (schema empty), baseline is 4. Description adds no parameter info but none needed.
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 action (read) and resource (graduation self-diagnosis data) but does not differentiate from sibling tool 'chosun_graduation_summary' which may overlap.
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?
No guidance on when to use this tool versus alternatives like 'chosun_graduation_summary'. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_graduation_summaryChosun Graduation SummaryA
Summarize graduation self-diagnosis data without exposing student identifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| missingCourseLimit | No | Maximum number of missing required courses to include. Use 0 to omit the list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the privacy-preserving behavior ('without exposing student identifiers') but does not mention other behavioral traits such as read-only nature, aggregation method, or any side effects. With no annotations, more detail would be beneficial.
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?
A single concise sentence that communicates the tool's purpose and key constraint without any extraneous words or repetition.
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?
The description is adequate for a simple tool with one parameter and no output schema, but it lacks information about the content of the summary (e.g., counts, completion status) and the return format. Given no output schema, more detail on what the summary looks like would improve completeness.
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 a clear description for the single parameter. The tool description does not add any parameter semantics beyond what the schema already provides, so 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 the verb 'summarize' and resource 'graduation self-diagnosis data', and adds the key constraint 'without exposing student identifiers'. This distinguishes it from sibling tools like chosun_graduation_diagnosis, which likely provides detailed data with identifiers.
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 implies this tool is for obtaining summary data while preserving privacy, but it does not explicitly state when to use it over alternatives like chosun_graduation_diagnosis. No direct comparison or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_noticesChosun NoticesB
Read the fixed notice widget from the Chosun University portal.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only indicates a read operation but fails to specify authentication requirements, side effects, or what happens if the portal is unavailable. The description is too minimal for a tool with no annotations.
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 sentence with no unnecessary words. It is extremely concise and fits the tool's simplicity.
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?
Despite having no parameters or output schema, the description lacks detail about the returned data format, error conditions, or any behavioral nuances. For a tool that retrieves a 'widget', more context about its structure or update frequency would improve completeness.
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?
There are zero parameters, and the schema coverage is 100% (vacuously). The description does not need to add further parameter meaning; a baseline of 4 is appropriate since there is nothing missing.
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 verb 'Read' and the resource 'fixed notice widget from the Chosun University portal', which distinguishes it from sibling tools that deal with other data types.
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?
No guidance is provided on when to use this tool versus alternatives like chosun_unread_messages or other portal tools. There is no mention of prerequisites, limitations, or suggested use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_oj_config_statusChosun OJ Config StatusA
Report whether OJ tools are enabled and whether separate OJ credentials are configured, without exposing secrets.
| 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 clearly states the tool reports status without revealing secrets, which is important for security. No mention of dependencies or side effects, but for a simple read-only status check, this is adequate.
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 sentence, front-loaded with core action and key constraint, 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?
For a zero-parameter tool with no output schema, the description is sufficiently complete. It specifies what is reported (enabled status, configured credentials) and a critical boundary (no secrets). Could mention authentication requirement, but not essential.
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?
Tool has zero parameters, so schema coverage is 100%. The description does not need to add parameter details. Baseline is 4 for no parameters.
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 reports whether OJ tools are enabled and credentials configured, without exposing secrets. Verb is 'Report', resource is 'OJ tools/credentials'. Does not differentiate from siblings like chosun_clc_config_status, but the name and context imply a config check.
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?
No guidance on when to use this tool versus alternatives like chosun_session_status or other config tools. No context, prerequisites, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_server_timeChosun Server TimeA
Read the Chosun University portal server time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'Read' with no info on behavior like timezone, latency, or side 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 sentence, no wasted words, perfectly concise for a simple read operation.
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?
Adequate for a parameterless tool, but lacks details on return format, timezone, or error conditions.
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 and full schema coverage; description adds meaning by naming the action and resource, sufficient for this empty 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?
Clear verb 'Read' and specific resource 'Chosun University portal server time'. Distinguishes from siblings like academic calendar or course offerings.
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 for checking server time, but no explicit when-to-use or contrasts with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_session_statusChosun Session StatusB
Log in to the Chosun University portal and report the current MCP session status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies a side effect ('Log in') but does not clarify if this is a read-only operation or modifies state. No annotations provided, so description should clarify mutability, but it is ambiguous.
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 sentence, concise. No wasted words, but front-loading could be improved with a clearer subject-verb structure.
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?
Lacks explanation of what 'report the current MCP session status' means as output. No output schema or description of return value, leaving agent uncertain about what information is provided.
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 in input schema. Schema coverage is 100%, baseline 4 applies as no additional parameter information is needed.
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 states the tool logs in and reports session status, specifying the portal and MCP session. It is clear about the resource and action, but ambiguous whether it actually performs login or just queries status.
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?
No guidance on when to use this tool vs alternatives like chosun_server_time or chosun_verification_report. No context about prerequisites or typical usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_timetableChosun TimetableC
Read the fixed timetable widget from the Chosun University portal.
| Name | Required | Description | Default |
|---|---|---|---|
| weekChange | No | Week offset relative to the current week. Use 0 for the current week. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should explicitly state that the tool is read-only and has no side effects. While 'Read' implies read-only behavior, it does not confirm safety or disclose any behavioral traits like whether the data is cached or if network access is required. The single-sentence description lacks transparency.
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 extremely concise at one sentence, with no redundant information. It is front-loaded with the core purpose. However, it could be slightly more informative without losing conciseness, such as mentioning the parameter.
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's simplicity (one parameter, no output schema), the description is incomplete. It does not explain what the timetable widget returns (e.g., schedule items, dates), nor does it provide context relative to sibling tools. The absence of output schema places a burden on the description to describe the return, which it fails to do.
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 covers the single parameter (weekChange) completely, including default, constraints, and description. The description adds no additional meaning beyond what the schema provides, which is sufficient for a baseline score of 3.
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 action ('Read') and the resource ('fixed timetable widget'), and the tool name and context differentiate it from sibling tools like chosun_academic_calendar and chosun_server_time. However, it does not specify what the timetable contains or how it differs from a dynamic timetable.
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 provides no guidance on when to use this tool versus alternatives. For instance, it does not explain when to use chosun_timetable instead of chosun_course_offerings or chosun_graduation_summary. The agent would need to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_unread_messagesChosun Unread MessagesB
Read the unread portal message count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives minimal behavioral information. It does not disclose whether the read is cached, what permissions are needed, or any side effects. For an unannotated tool, this is insufficient.
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 sentence with no wasted words. It is front-loaded and appropriately concise for a simple read tool.
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 and no parameters, the description is minimal but still missing details like return format (integer? object?) and source of messages. Could be more complete for an agent.
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 has zero parameters, and the description adequately clarifies that it reads a count. With no parameters, the baseline is 4, and the description adds no extra confusion.
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 states 'Read the unread portal message count', which is a specific verb and resource. It distinguishes from sibling tools like chosun_notices, but could be more precise about what 'portal messages' are.
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?
No guidance on when to use this tool versus alternatives like chosun_notices or chosun_verification_report. The description does not provide context on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chosun_verification_reportChosun Verification ReportC
Run the same portal and academic-system checks used in the MCP verification log, then return a compact report.
| Name | Required | Description | Default |
|---|---|---|---|
| weekChange | No | Week offset for the timetable check. Use 0 for the current week. | |
| startDt | No | Academic calendar start date as YYYYMMDD. Defaults to the first day of the current month. | |
| endDt | No | Academic calendar end date as YYYYMMDD. Defaults to the last day of the current month. | |
| includeGraduation | No | Whether to include the academic-system graduation diagnosis check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond what is immediately obvious. With no annotations, the description carries full burden, but it lacks information on side effects (e.g., read-only guarantee), error handling, or what happens if checks fail. It only states 'run checks' and 'return report', leaving significant gaps.
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 sentence, which is concise, but it lacks structure. It front-loads the purpose but omits important details like what specifically is checked or the report format. It is not overly verbose, but the brevity comes at the cost of clarity.
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 parameter count (4), no output schema, and no annotations, the description is insufficiently complete. It does not describe the report's content, format, or how to interpret results. It fails to provide enough context for an agent to use the tool effectively, especially since it combines multiple underlying checks.
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 the baseline is 3. The description does not add meaning beyond the parameter descriptions already present in the input schema. The description's reference to 'same checks as MCP verification log' provides context but not parameter-level detail. Thus, it meets the baseline but does not exceed it.
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 verb 'run' and the resource 'portal and academic-system checks' with an outcome 'return a compact report'. It also references the MCP verification log, providing context. However, it does not explicitly distinguish this composite tool from the individual sibling tools (e.g., chosun_timetable, chosun_graduation_diagnosis), though the composite nature is implied.
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?
No explicit guidance on when to use this tool versus the sibling tools. There is no mention of prerequisites, when-not-to-use, or alternatives. The description implies it is for running the verification log checks, but without telling the agent when a combined report is preferred over individual checks.
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. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
chosun_academic_calendar - First observed
chosun_clc_config_status - First observed
chosun_course_offerings - First observed
chosun_course_syllabus - First observed
chosun_graduation_diagnosis - First observed
chosun_graduation_summary - First observed
chosun_notices - First observed
chosun_oj_config_status - First observed
chosun_server_time - First observed
chosun_session_status - First observed
chosun_timetable - First observed
chosun_unread_messages - First observed
chosun_verification_report
TDQS
Each tool targets a distinct resource or function (e.g., calendar vs. course vs. graduation). Even related tools like graduation_diagnosis and graduation_summary have clearly different purposes: raw data vs. anonymized summary. No ambiguity.
All tools follow the 'chosun_<domain>_<specific>' pattern consistently, using snake_case. The prefix provides clear server identity, and the names are descriptive and predictable.
13 tools cover a comprehensive set of portal functions without being bloated. Each tool serves a specific need, and the count feels appropriate for a university portal MCP.
The tool set covers most core informational needs (calendar, courses, syllabus, graduation, notices, timetable, etc.). Missing are write/action tools (e.g., logout, submit changes) and possibly grade lookup, but the set is reasonable for a read-heavy portal interface.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server providing attendance data queries via the CloudTime API.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Cloudflare Workers MCP server: govdata-korea
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server to search and retrieve regulations from 14 Korean universities' regulation management systems. Supports querying, listing, and viewing full text or specific articles.4112MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that provides tools to interact with SNU eTL (Canvas LMS), including viewing courses, assignments, announcements, grades, downloading and organizing course files, with persistent local storage and automatic sync.MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that aggregates department notices and provides structured answers to queries about courses, schedules, and academic dates via tool calling.-
- AlicenseAqualityBmaintenanceUnofficial MCP server for Kangwon National University that provides academic calendar, cafeteria menus, notices, shuttle bus and city bus arrival information via natural language.7MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andyjusa/ChosunMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server