Skip to main content
Glama

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 dev

MCP Inspector로 확인하려면:

npm run inspect

MCP 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 과목 공지 상세 조회 흐름:

  1. chosun_clc_courseskjKey를 찾습니다.

  2. chosun_clc_course_content_listkind: "notice"kjKey를 넣어 공지 목록을 조회합니다.

  3. 목록의 idchosun_clc_course_content_detail에 넘겨 본문, 첨부파일, 댓글을 조회합니다.

OJ 문제 조회 흐름:

  1. chosun_oj_student_main으로 classId 기준 화면을 확인합니다.

  2. chosun_oj_contest_problem_listcontestId의 문제 목록을 조회합니다.

  3. chosun_oj_problem_info 또는 chosun_oj_status로 문제/제출 상태를 확인합니다.

  4. 대회 전체 집계가 필요하면 chosun_oj_contest_scoreboardclassId, contestId를 넘깁니다.

로그인 흐름 요약

포털은 p.chosun.ac.kr/index.jsp에서 SSO 로그인 페이지로 이동한 뒤, 로그인 페이지의 l_token/c_token을 추출합니다. 이후 .envchosun_id/chosun_pswsso.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 tools
chosun_academic_calendarChosun Academic CalendarB

Read the academic calendar widget for a YYYYMMDD date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
startDtNoStart date as YYYYMMDD. Defaults to the first day of the current month.
endDtNoEnd date as YYYYMMDD. Defaults to the last day of the current month.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesAcademic year, for example 2026.
semesterYesSemester code. Common values: 11 first semester, 12 summer, 21 second semester, 22 winter.
collegeCodeNoOptional college code such as 1A70000000.
departmentCodeNoOptional department code such as 1A70A30140.
subjectCodeNoOptional subject code.
professorNoNoOptional professor number.
completionTypeCodeNoOptional completion type / course category code.
curriculumTypeCodeNoOptional curriculum type code.
lectureTypeCodeNoOptional lecture type code.
dayNightCodeNoOptional day/night code.
closedStatusNoClosure status filter used by the portal. Default 2 matches the observed portal request.2
keywordNoLocal keyword filter over subject, professor, college, department, room, and time.
limitNo
offsetNo
includeContactNoInclude professor contact fields when present.

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
semesterYes
collegeCodeYes
departmentCodeYes
subjectCodeYes
sectionYes
professorNoYes
completionTypeCodeYes
corsGbNo1
maxPagesNoMaximum report pages to fetch and extract.
includeContactNoInclude contact information in extracted report text.
includeViewDataNoInclude raw ClipReport viewData base64 for fetched pages.

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
missingCourseLimitNoMaximum number of missing required courses to include. Use 0 to omit the list.

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekChangeNoWeek offset relative to the current week. Use 0 for the current week.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekChangeNoWeek offset for the timetable check. Use 0 for the current week.
startDtNoAcademic calendar start date as YYYYMMDD. Defaults to the first day of the current month.
endDtNoAcademic calendar end date as YYYYMMDD. Defaults to the last day of the current month.
includeGraduationNoWhether to include the academic-system graduation diagnosis check.

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 13 tool updatesv0.1.0
    • First observedchosun_academic_calendar
    • First observedchosun_clc_config_status
    • First observedchosun_course_offerings
    • First observedchosun_course_syllabus
    • First observedchosun_graduation_diagnosis
    • First observedchosun_graduation_summary
    • First observedchosun_notices
    • First observedchosun_oj_config_status
    • First observedchosun_server_time
    • First observedchosun_session_status
    • First observedchosun_timetable
    • First observedchosun_unread_messages
    • First observedchosun_verification_report

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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

Latest Blog Posts

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