Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KU_PORTAL_IDYesYour KUPID portal ID (student number)
KU_PORTAL_PWYesYour KUPID portal password

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
kupid_loginA

KUPID 포털에 로그인하고 세션을 확인합니다.

환경변수 KU_PORTAL_ID, KU_PORTAL_PW가 설정되어 있어야 합니다. 세션이 유효하면 캐시된 세션을 재사용합니다.

kupid_get_noticesC

KUPID 포털의 공지사항 목록을 조회합니다.

Args: page: 페이지 번호 (기본값: 1) count: 한 페이지당 항목 수 (기본값: 20)

kupid_get_notice_detailA

KUPID 공지사항의 상세 내용을 조회합니다.

Args: notice_id: 공지사항 index (kupid_get_notices 결과의 index 필드) message_id: 공지사항 message_id (kupid_get_notices 결과의 message_id 필드)

kupid_get_schedulesA

KUPID 포털의 학사일정 목록을 조회합니다.

Args: page: 페이지 번호 (기본값: 1) count: 한 페이지당 항목 수 (기본값: 20)

kupid_get_schedule_detailB

KUPID 학사일정의 상세 내용을 조회합니다.

Args: schedule_id: 학사일정 index (kupid_get_schedules 결과의 index 필드) message_id: 학사일정 message_id (kupid_get_schedules 결과의 message_id 필드)

kupid_get_scholarshipsC

KUPID 포털의 장학공지 목록을 조회합니다.

Args: page: 페이지 번호 (기본값: 1) count: 한 페이지당 항목 수 (기본값: 20)

kupid_get_scholarship_detailA

KUPID 장학공지의 상세 내용을 조회합니다.

Args: scholarship_id: 장학공지 index (kupid_get_scholarships 결과의 index 필드) message_id: 장학공지 message_id (kupid_get_scholarships 결과의 message_id 필드)

kupid_searchA

KUPID 포털에서 키워드로 공지사항/학사일정/장학공지를 검색합니다.

제목에 키워드가 포함된 항목을 반환합니다.

Args: keyword: 검색할 키워드 board: 검색 대상 ("all", "notice", "schedule", "scholarship") count: 최대 결과 수 (기본값: 20)

kupid_get_library_seatsA

고려대학교 도서관 열람실 좌석 현황을 조회합니다.

인증 없이 실시간 좌석 현황을 확인할 수 있습니다.

Args: library_name: 도서관 이름 필터 (빈 문자열이면 전체 도서관 조회) - 중앙도서관, 중앙광장, 백주년기념 학술정보관, 과학도서관, 하나스퀘어, 법학도서관

kupid_get_timetableA

개인 수업시간표를 조회합니다 (SSO 로그인 필요).

포털 메인 페이지의 시간표 위젯 데이터를 파싱합니다.

Args: day: 요일 ("all"=전체, "mon"/"tue"/"wed"/"thu"/"fri") ics_export: True이면 ICS 캘린더 파일 내용도 포함

kupid_search_coursesA

개설과목을 검색합니다 (SSO 로그인 필요).

학과/단과대별로 개설된 과목을 조회합니다. 단과대 코드가 비어있으면 사용 가능한 단과대 목록을 반환합니다.

Args: year: 학년도 (기본값: 현재 학기 기준 자동 선택) semester: 학기 ("1"=1학기, "2"=2학기, "summer"=여름학기, "winter"=겨울학기) college: 단과대/대학원 코드 (예: 학부 "5720"=정보대학, 대학원 "7298"=SW·AI융합대학원) department: 학과 코드 (예: 학부 "5722"=컴퓨터학과, 대학원 "7313"=인공지능융합학과) campus: 캠퍼스 ("1"=서울, "2"=세종) is_grad: True면 대학원(LecGradMajorSub.jsp), False면 학부(LecMajorSub.jsp)

kupid_room_scheduleA

건물/강의실의 정규 수업 시간표를 조회합니다 (학부+대학원 통합, SSO 로그인 필요).

"이 강의실 오늘 비어있나?" 확인용. 학부 22개 + 대학원 38개 단과대를 병렬 호출하므로 호출당 30~60초 소요 (총 800+ 학과 fan-out). 같은 학기는 자주 안 바뀌니 결과를 호출 측에서 캐싱 권장.

한계:

  • 학사 시스템에 등록된 정규 수업만 잡힘

  • 학회·세미나·임시 행사 등 비정규 점유는 별도 (spacek.korea.ac.kr 시스템 영역)

Args: building: 건물명 부분일치 (예: "애기능" → "애기능생활관" 매치) room: 호실 부분일치 (예: "301" → "301호" / "B301"). 비우면 건물 전체. day: 요일 필터 ("월"/"화"/.../"토"/"일"). 비우면 전 요일. year: 학년도 (기본값: 현재 학기 기준 자동) semester: 학기 ("1","2","summer","winter") campus: "1"=서울, "2"=세종 include_grad: True(기본)면 대학원도 검색, False면 학부만

kupid_get_syllabusA

강의계획서를 조회합니다 (SSO 로그인 필요).

Args: course_code: 학수번호 (예: "COSE101") section: 분반 (예: "02") year: 학년도 (기본값: 현재 학기 기준 자동 선택) semester: 학기 ("1"=1학기, "2"=2학기, "summer"=여름학기, "winter"=겨울학기)

kupid_my_coursesA

내 수강신청 내역을 조회합니다 (SSO 로그인 필요).

학수번호, 강의시간, 강의실, 교수, 학점, 이수구분 등 상세 정보를 반환합니다. 대학원 과목도 포함됩니다.

Args: year: 학년도 (기본값: 현재 학기 기준 자동 선택) semester: 학기 ("1"=1학기, "2"=2학기, "summer"=여름학기, "winter"=겨울학기)

kupid_get_all_gradesA

전체 성적, 누적 GPA, 취득학점을 조회합니다 (SSO 로그인 필요).

KUPID 학적/졸업 > 성적사항 > 전체성적조회 화면의 최종 확정 성적을 가져옵니다.

Args: year_term: 조회할 학년도/학기 코드 (예: "20242R"). 비우면 전체 조회

kupid_dept_noticesA

학과/대학원 홈페이지 공지사항을 조회합니다 (인증 불필요).

고려대학교 학과 홈페이지의 공지사항 게시판을 스크래핑합니다. site_name을 지정하지 않으면 사용 가능한 사이트 목록을 반환합니다.

환경변수 KU_DEPT_URLS로 소속 학과를 설정할 수 있습니다. 형식: "라벨|URL,라벨|URL,..." 예: "SW·AI융합대학원|https://gscit.korea.ac.kr/gscit/board/notice_master.do"

Args: site_name: 사이트 이름 또는 키 (빈 문자열이면 사이트 목록 반환) page: 페이지 번호 (기본값: 1) count: 한 페이지당 항목 수 (기본값: 20)

kupid_dept_notice_detailA

학과/대학원 공지사항의 상세 내용을 조회합니다 (인증 불필요).

kupid_dept_notices로 조회한 공지의 상세 내용을 가져옵니다.

Args: site_name: 사이트 이름 또는 키 (kupid_dept_notices에서 사용한 값) article_no: 게시글 번호 (kupid_dept_notices 결과의 article_no 필드)

kupid_lms_coursesB

Canvas LMS 수강과목 목록을 조회합니다.

mylms.korea.ac.kr의 Canvas LMS에서 수강 중인 과목 목록을 가져옵니다. SSO 로그인이 필요합니다.

kupid_lms_assignmentsA

Canvas LMS 과제 목록을 조회합니다.

특정 과목의 전체 과제(assignments) 목록을 가져옵니다. 기본적으로 완료/마감 과제 포함 전체를 반환합니다. kupid_lms_courses로 course_id를 먼저 확인하세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드) upcoming_only: True이면 마감 전 과제만 표시 (기본값: False, 전체 과제 반환)

kupid_lms_modulesA

Canvas LMS 강의자료(모듈)를 조회합니다.

주차별 강의 모듈과 포함된 자료를 가져옵니다. kupid_lms_courses로 course_id를 먼저 확인하세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드)

kupid_lms_todoA

Canvas LMS 할 일(Todo) 목록을 조회합니다.

마감이 다가오는 과제, 퀴즈 등을 보여줍니다.

kupid_lms_dashboardA

Canvas LMS 대시보드를 조회합니다.

현재 수강 중인 과목 카드와 과제/이벤트 현황을 보여줍니다.

kupid_lms_announcementsA

Canvas LMS 공지(announcement)를 조회합니다.

course_id를 지정하면 해당 과목, 생략하면 현재 활성 과목 전체의 공지를 가져옵니다. kupid_lms_dashboard와 달리 message 본문을 절단하지 않고 전문(HTML)으로 반환합니다.

Args: course_id: 과목 ID (생략 시 활성 과목 전체, kupid_lms_courses 참조)

kupid_lms_gradesA

Canvas LMS 성적/점수를 조회합니다.

과목별 현재 점수, 최종 점수, 학점(grade)을 확인합니다. kupid_lms_courses로 course_id를 먼저 확인하세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드)

kupid_lms_submissionsA

Canvas LMS 과제 제출 현황을 조회합니다.

과목의 전체 과제에 대한 제출 여부, 점수, 채점 상태를 확인합니다. kupid_lms_courses로 course_id를 먼저 확인하세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드)

kupid_lms_quizzesA

Canvas LMS 퀴즈/시험 목록을 조회합니다.

과목의 퀴즈, 시험, 설문 목록과 마감일, 시간제한 등을 확인합니다. kupid_lms_courses로 course_id를 먼저 확인하세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드)

kupid_lms_syllabusA

Canvas LMS 수업 계획서(syllabus)를 조회합니다.

과목의 수업 계획서 내용을 가져옵니다. course_code(예: BDC115) 또는 course_id 중 하나를 입력하세요. course_code를 입력하면 수강과목 목록에서 자동으로 course_id를 찾습니다.

Args: course_code: 과목코드 (예: BDC115). course_id 대신 사용 가능 course_id: 과목 ID (kupid_lms_courses의 id 필드). course_code 대신 사용 가능

kupid_lms_download_fileA

Canvas LMS 파일을 지정한 디렉토리에 다운로드합니다.

file_id는 kupid_lms_modules 결과의 items에서 type이 'File'인 항목의 content_id 필드에서 얻을 수 있습니다.

Args: file_id: Canvas 파일 ID (items[*].content_id) save_dir: 저장할 디렉토리 절대경로 (예: /Users/me/Documents/lecture) filename: 저장 파일명 (생략 시 Canvas 원본 파일명 사용)

kupid_lms_list_boardsA

Canvas LMS 과목의 게시판 목록을 조회합니다.

Q&A 게시판, 강의자료실 등 교수님이 자료를 올리는 게시판들을 반환합니다. Canvas 네이티브 모듈(kupid_lms_modules)에 자료가 없으면 여기서 찾아보세요.

Args: course_id: 과목 ID (kupid_lms_courses의 id 필드)

kupid_lms_list_board_postsB

게시판의 게시글 목록을 조회합니다.

Args: course_id: 과목 ID board_id: 게시판 ID (kupid_lms_list_boards의 id 필드) page: 페이지 번호 (기본 1) keyword: 제목 검색어 (기본 전체)

kupid_lms_get_board_postA

게시글 상세와 첨부파일, 댓글(첨부 포함)을 조회합니다.

attachments의 canvas_file_id를 kupid_lms_download_file의 file_id로 넘기면 파일을 다운로드할 수 있습니다. attachments[].url은 직접 다운로드 링크입니다(시간제한 verifier 토큰 포함).

comments에는 각 댓글의 본문과 첨부파일(동영상/PDF 등)이 포함됩니다. 예: 텀프로젝트 게시판에서 팀별 발표 동영상은 댓글 첨부로 제출됩니다.

Args: course_id: 과목 ID board_id: 게시판 ID post_id: 게시글 ID (kupid_lms_list_board_posts의 id 필드)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/SonAIengine/ku-portal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server