{"version":"v1","status":"mcp-http-contract","tools":[{"name":"klasslab_v1_grading_online_exams_list","description":"등록된 온라인 과제·재시험 조회(온라인 번호·구분·진행 상태)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/online-exams","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_online_exams_get","description":"온라인 시험 구분·응시대상 설정 현황","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/online-exams/{onlineExamId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_online_exams_kind","description":"온라인 시험 구분 변경(연결된 재시험은 먼저 연결 해제)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PATCH","path":"/v1/grading/online-exams/{onlineExamId}/kind","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_retest_get","description":"과제장 재시험 연결·해제할 등록 번호 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/retest","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_retest_set","description":"재시험 연결·선택한 과제장 학생 응시 등록·재시험 대상 체크(원자적 저장)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PUT","path":"/v1/teaching/lessons/{lessonId}/retest","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_retest_unlink","description":"조회한 연결 해제·개별 응시 등록 제거(공유 학생·반 등록·성적·출결 보존)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"DELETE","path":"/v1/teaching/lessons/{lessonId}/retest","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_missing_submissions_list","description":"미제출 명단 조회(재시험은 지정 응시대상, 통합은 두 시험 모두 성적 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/exams/{examId}/missing-submissions","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_get","description":"직원 기본정보 상세(비밀번호·급여 제외)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.read","method":"GET","path":"/v1/attendance/staff/{staffId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_create","description":"직원 기본정보 등록(로그인 비밀번호 발급 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.manage","method":"POST","path":"/v1/attendance/staff","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_update","description":"직원 기본정보·입퇴사일 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.manage","method":"PUT","path":"/v1/attendance/staff/{staffId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_stop","description":"직원 퇴사 처리(근무 이력 보존)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.manage","method":"DELETE","path":"/v1/attendance/staff/{staffId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_cancel_transfer","description":"전반 취소(새 반 수강번호 지정·이전 반 복원·취소 이력 보존)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/students/{id}/enrollments/{enrollmentId}/cancel-transfer","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_date","description":"수강 등록일 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"PATCH","path":"/v1/students/{id}/enrollments/{enrollmentId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_delete","description":"수강 등록 삭제(출결·과제 기록이 있으면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"DELETE","path":"/v1/students/{id}/enrollments/{enrollmentId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_patch","description":"학생 단일 필드 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"PATCH","path":"/v1/students/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_restore","description":"퇴원 취소","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/students/{id}/enrollments/{enrollmentId}/restore","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_move","description":"수강반 전반(원 수강 종료와 신규 등록을 함께 저장)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/students/{id}/enrollments/{enrollmentId}/move","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_teachers","description":"Teaching teacher names and IDs, including teachers without classes; shared by classes, lessons and exams. Not employee time-clock staff.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams/teachers","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_staff","description":"상담 담당자 선택 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.read","method":"GET","path":"/v1/consultations/staff","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_categories","description":"생활기록 분류 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.read","method":"GET","path":"/v1/life-records/categories","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_list","description":"수강반·담당·시간표 목록. status=open 미종강(미래 개강·종강 포함), closed 종강, all 전체. 한국 오늘 기준. sort=id_desc 최신 등록번호순, begin_date_asc/desc 개강일순. appliedSort/appliedStatus 확인 For latest registered classes use sort=id_desc and check appliedSort. The default id_asc is not newest-first. For opening-date order use begin_date_asc or begin_date_desc. Preserve pagination and search filters. Names resolve through authorized results, not user-supplied internal IDs; ask only for actual duplicate matches. A class ID is not a schedule, lesson or enrollment ID.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_day_plan","description":"예정 수업·담당자·시각·고유 재원 인원. date의 하루 조회; lookAheadDays>0이면 그날부터 범위 안 첫 수업일 조회. 개강·종강·시간표 기간 적용, 저장 출석부 아님","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams/daily-plan","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_get","description":"수강반 상세 Reuse the verified selected class/exam ID. Do not read solely to rediscover its identity. Requested current values, stale data, live authorization, required pre-write validation and post-write verification still require appropriate fresh reads; selection is never mutation consent.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams/{id}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_create","description":"수강반 등록 If the user requests a new class together with weekly schedules, use teams.create-with-schedules for one atomic save. This operation creates only the class, not its schedules.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"POST","path":"/v1/teams","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_create_with_schedules","description":"새 수강반과 시간표를 함께 등록(원자적 저장·하나라도 실패하면 전체 취소) For a requested NEW class with known weekly schedules, prefer this single atomic operation and one confirmation instead of creating the class and each schedule separately. Resolve the teacher using teams.teachers; teacher account administration is unavailable. Use returned class and schedule IDs for later enrollment/lesson steps; do not recreate them.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"POST","path":"/v1/teams/with-schedules","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_update","description":"수강반 수정 · 종강/종강 취소","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"PUT","path":"/v1/teams/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_delete","description":"수강반 삭제(재원생이 있으면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"DELETE","path":"/v1/teams/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_schedules_list","description":"수강반의 시간표 목록(id는 teamId이며 scheduleId 아님) The id parameter is the class teamId, never scheduleId. Enrollment rows already contain scheduleDay/scheduleFrom/scheduleTo; reuse those fields when they satisfy the requested schedule details.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams/{id}/schedules","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_schedules_create","description":"시간표 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"POST","path":"/v1/teams/{id}/schedules","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_schedules_update","description":"시간표 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"PUT","path":"/v1/teams/{id}/schedules/{scheduleId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_schedules_delete","description":"시간표 삭제(수업·재원생이 있으면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.write","method":"DELETE","path":"/v1/teams/{id}/schedules/{scheduleId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_list","description":"학생 검색 · 목록(공백으로 구분한 이름·학생번호·연락처 중 하나라도 일치) Search supplied names without requiring internal IDs. Keep all requested students; ask for school/grade only for actual unresolved duplicate names. The response data is a page: data.items contains student rows including memo; total/page/pageSize describe pagination, not a student. Reuse a uniquely verified current identity without repeating selection. Search again for explicit lists, changed/ambiguous targets, stale data or requested refresh. A guessed ID is not a selection.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_get","description":"학생 기본정보 Reuse the verified selected student ID. Do not read details solely to rediscover an already resolved identity. Read normally for requested details/current values, stale results, required pre-write validation or post-write verification; an ID never bypasses current academy/access checks or mutation confirmation.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_create","description":"학생 기본정보 등록(수강 등록은 별도)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/students","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_update","description":"학생 기본정보 수정(전체 필드 교체)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"PUT","path":"/v1/students/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_students_delete","description":"학생 삭제(재원 중이면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"DELETE","path":"/v1/students/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_list","description":"학생 수강 이력","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/enrollments","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_create","description":"기존 학생 수강 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/enrollments","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_enrollments_end","description":"퇴원 처리","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"PUT","path":"/v1/students/{id}/enrollments/{enrollmentId}/end","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_list","description":"기간별 상담 예약","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.read","method":"GET","path":"/v1/consultations","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_get","description":"상담 예약 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.read","method":"GET","path":"/v1/consultations/{id}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_create","description":"상담 예약 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.write","method":"POST","path":"/v1/consultations","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_update","description":"상담 예약 변경 · 완료 · 취소","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.write","method":"PUT","path":"/v1/consultations/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_consultations_delete","description":"상담 예약 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"consultations.write","method":"DELETE","path":"/v1/consultations/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_fields","description":"생활기록 항목 정의","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.read","method":"GET","path":"/v1/life-records/fields","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_fields_update","description":"생활기록 항목 설정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.write","method":"PUT","path":"/v1/life-records/fields","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_list","description":"수강 시간표별 학생 생활기록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.read","method":"GET","path":"/v1/life-records","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_save","description":"학생 생활기록 저장(항목 값 병합)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.write","method":"PUT","path":"/v1/life-records","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_life_delete","description":"학생 생활기록 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"life.write","method":"DELETE","path":"/v1/life-records/{id}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_subjects_list","description":"채점 과목 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/subjects","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_sections_list","description":"과목별 대분류 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/subjects/{subject}/sections","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_sections_create","description":"과목·대분류 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/sections","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_sections_update","description":"과목 내 대분류 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PUT","path":"/v1/grading/sections/{sectionId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_sections_delete","description":"대분류 삭제(사용 중이면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"DELETE","path":"/v1/grading/sections/{sectionId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_patterns_list","description":"대분류의 소분류 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/sections/{sectionId}/patterns","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_patterns_create","description":"소분류 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/sections/{sectionId}/patterns","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_patterns_update","description":"소분류 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PUT","path":"/v1/grading/sections/{sectionId}/patterns/{patternId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_patterns_delete","description":"소분류 삭제(사용 중이면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"DELETE","path":"/v1/grading/sections/{sectionId}/patterns/{patternId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_omr_templates_list","description":"공식 OMR 양식별 총 칸 수·종류 목록·PDF/이미지 제공 정보. 개별 문항 번호·답안 종류·정답 입력 틀은 grading.answer-template.get에 있음. answerTypes는 필요한 종류 교집합 필터(0 객관식, 1 단답형 정답 비교, 2 서술형 획득점수). 미지정 필터는 생략. 양식 코드는 학원 시험 이름이 아님","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/omr-templates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_omr_templates_download","description":"공식 빈 OMR PDF·이미지 원본 다운로드","webSubscriptionRequired":false,"outputSchema":null,"scope":"grading.read","method":"GET","path":"/v1/grading/omr-templates/{code}/files/{format}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_answer_template_get","description":"지정한 OMR 양식의 문항별 번호(number)·답안 종류(answerType)·정답·배점 입력 틀 배열. 특정 문항 범위의 종류 확인에도 사용. 0 객관식, 1 단답형 정답 비교, 2 서술형 획득점수. 실제 시험·채점 점수 조회가 아님","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/omr-templates/{code}/answers","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_exams_list","description":"시험·정답지 검색·목록(제목·회차·연도·학년으로 구별, 수강반 목록과 다름) For single-target follow-up work, reuse the verified user-selected class/exam ID from session state instead of searching for the same identity again. A class ID is not a schedule/lesson/enrollment ID. Search normally for explicit lists, a new/ambiguous target, stale results or requested refresh; never choose an arbitrary same-name result.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/exams","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_exams_get","description":"시험과 전체 문항별 정답 상세 Reuse the verified selected class/exam ID. Do not read solely to rediscover its identity. Requested current values, stale data, live authorization, required pre-write validation and post-write verification still require appropriate fresh reads; selection is never mutation consent.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/exams/{examId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_exams_create","description":"새 시험·정답지 등록(학생 답안 채점 아님)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/exams","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_exams_update","description":"정답지 전체 교체(성적표 설정·문항 이미지 연결 보존)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PUT","path":"/v1/grading/exams/{examId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_exams_delete","description":"시험 삭제(채점 자료가 있으면 거절)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"DELETE","path":"/v1/grading/exams/{examId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_scores_list","description":"채점 점수·답안·코멘트 조회. 오답·보충·만점 대비 비율 분석은 includeAnalysis=true로 서버 판정을 사용. 빈 답안은 실제 무응답으로 단정하지 않고 미식별 학생은 추측하지 않음","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/exams/{examId}/scores","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_scores_create","description":"기존 시험에 학생 수기·엑셀 답안 채점·저장(결과는 학생별 번호 배열)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/exams/{examId}/scores","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_scores_update","description":"개별·일괄 기존 채점 답안 수정 및 재채점. 기존 미식별 답안은 행 id와 빈 studentId로 학생 연결·인식 이름을 보존하며 수정. 정답지와 원본 marks 전체를 조회해 요청하지 않은 답안은 유지","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PUT","path":"/v1/grading/exams/{examId}/scores","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_scores_delete","description":"채점 행 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"DELETE","path":"/v1/grading/exams/{examId}/scores/{scoreId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_scores_comment","description":"학생별 성적 개별 코멘트 저장","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"PATCH","path":"/v1/grading/exams/{examId}/scores/{scoreId}/comment","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_pdfs_upload","description":"OMR PDF 원본 업로드(최대 50MB·100쪽 / 페이지 자동 변환)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/pdf-uploads","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_attachments_upload","description":"채팅 첨부 OMR PDF 업로드(최대 50MB·100쪽 / 이미지·XLSX도 지원)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/attachments","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_files_upload","description":"보조 업로드: PNG·JPG 스캔 이미지·XLSX 답안 파일(파일당 5MB)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/uploads","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_omr_create","description":"단일·두 회차 OMR 채점 작업 등록(구독 OMR 장수 집계)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.omr","method":"POST","path":"/v1/grading/omr-jobs","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_excel_create","description":"XLSX 답안 등록 작업 생성","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/exams/{examId}/excel-imports","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_jobs_get","description":"데이터 작업 진행 상태·인식 결과 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/jobs/{jobId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_recalculate_create","description":"정답 변경 후 점수·통계 재계산 작업 생성","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.write","method":"POST","path":"/v1/grading/recalculation-jobs","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_grading_usage_get","description":"현재 API 호출·OMR 장수의 사용량과 구독 한도 확인","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"grading.read","method":"GET","path":"/v1/grading/usage","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_lessons_list","description":"날짜·반별 수업 기록·과제장 목록(수강반 목록 아님) Display the lesson's verified teamName, not a guessed class label. Retain explicit student, class and date scopes when changing read type.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_lessons_get","description":"과제장 수업과 항목 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_lessons_create","description":"수업·과제장 내용과 숙제 정의 등록(학생별 출석·과제완료는 학생별 결과 변경으로 별도 처리) This saves the lesson header and assignment definitions only. A compound request also reporting student attendance or assignment completion needs a later teaching.results.update stage. After saving, read the actual lesson roster; confirm teaching.roster.add first only for requested students missing from it.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"POST","path":"/v1/teaching/lessons","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_lessons_update","description":"수업·과제장 전체 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PUT","path":"/v1/teaching/lessons/{lessonId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_lessons_delete","description":"수업·과제장 삭제와 연결 출석 정리","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"DELETE","path":"/v1/teaching/lessons/{lessonId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_roster_get","description":"수업 목록의 lessonId로 저장된 출석·검사 조회(반·시간표 번호 아님, 빈 명단은 roster.add 후 기록) Resolve lessonId from teaching.lessons.list using the selected teamId and date. Never use a class/schedule ID or an ID from old prose as lessonId. For a read by class and date alone, prefer attendance.daily.list.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/students","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_roster_add","description":"수강 등록에서 선택한 일반 학생을 출석부에 추가","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"POST","path":"/v1/teaching/lessons/{lessonId}/students","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_results_update","description":"수업 학생 출석·결석·검사결과 부분 수정(입퇴실·수강등록 아님). 학생 코멘트는 rows[].values.comment에 전달하고 생략 항목은 보존 Resolve the saved lesson and its roster first. Preserve every explicitly requested attendance and assignment outcome. Missing students require confirmed teaching.roster.add before this stage; never replace that with another student creation, class enrollment or entry/exit event.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PATCH","path":"/v1/teaching/lessons/{lessonId}/results","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_roster_delete","description":"명단 학생 삭제(연결된 원래 결석 복원)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"DELETE","path":"/v1/teaching/lessons/{lessonId}/students/{studentId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_attendance_delete","description":"수업의 저장된 출석부 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"DELETE","path":"/v1/teaching/lessons/{lessonId}/attendance","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_makeups_list","description":"보강완료 연결 후보(같은 학생·타반·수업일 ±10일) Resolve the ORIGINAL lesson by class, date and title through teaching.lessons.list first. Never use the latest destination lesson or student ID as lessonId. Returned id is the incoming attendance record to select as rows[].makeupId; lessonId identifies its destination lesson. Do not choose among multiple candidates for the user.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/students/{studentId}/makeup-candidates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_makeups_link_get","description":"원래 수업의 현재 보강 연결·복원 출결 조회(해제 전 필수 확인) lessonId is the ORIGINAL completed lesson. Read its makeup-link first. Copy every unlink body field exactly from that fresh result; never invent versions or restoration codes. Unlink preserves both attendance rows, assignments and comments. Do not substitute roster deletion or an ordinary attendance update.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/students/{studentId}/makeup-link","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_makeups_unlink","description":"조회한 보강 연결만 해제하고 보존된 원래 출결 복원. 보강생 행·과제·코멘트는 보존하며 확인값이 달라지면 거절 lessonId is the ORIGINAL completed lesson. Read its makeup-link first. Copy every unlink body field exactly from that fresh result; never invent versions or restoration codes. Unlink preserves both attendance rows, assignments and comments. Do not substitute roster deletion or an ordinary attendance update.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PATCH","path":"/v1/teaching/lessons/{lessonId}/students/{studentId}/makeup-link","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_absences_list","description":"목적지 보강 수업 lessonId로 원래 결석 후보 조회(응답 originalLessonId에서 선택) lessonId is the DESTINATION lesson that will receive the makeup student, not the original absence. Resolve that destination by class/date/title first. Select the original absence from returned originalLessonId; do not swap the two lesson roles.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/absence-candidates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_makeups_create","description":"목적지 lessonId에 선택한 원래 결석 originalLessonId를 연결해 보강생(8) 추가·원반 보강완료(7) 처리 Use the destination lessonId and the explicitly selected absence's originalLessonId as different references. Saving links an incoming student in the destination to the original absence; do not add an ordinary roster row first.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"POST","path":"/v1/teaching/lessons/{lessonId}/makeups","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_scores_sync","description":"연결된 OMR 점수를 과제장에 동기화","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"POST","path":"/v1/teaching/lessons/{lessonId}/score-sync","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_season_update","description":"선택 과제장의 학기·기간 일괄 변경","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PUT","path":"/v1/teaching/seasons","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_todos_list","description":"기간별 재검사 일정 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/todos","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_todos_get","description":"재검사 일정 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/todos/{todoId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_todos_update","description":"재검사 메모·날짜·처리 결과 저장","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PUT","path":"/v1/teaching/todos/{todoId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_cumulative_list","description":"기간별 누적 과제·시험·출결 결과. valueItems가 같은 수업의 제목·슬롯·표시 안내·결과를 연결. 값만으로 만점·단위를 추측하지 않음 Display the lesson's verified teamName, not a guessed class label. Retain explicit student, class and date scopes when changing read type.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/cumulative-results","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_attendance_daily_list","description":"반·날짜별 학생 이름·출결 상태·검사 조회. teamId와 from/to로 직접 조회하며 lessonId 불필요. 출결 단순 조회에 우선 사용 Use this for attendance by an explicitly selected class and date. Resolve teamId from a class, never a student ID. For named students without a class selection, use student.detail.attendance with each student ID. Preserve pagination and every requested target. Display teamName for the lesson class and attendanceName for attendance status; attendanceCode is the stored numeric code.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"attendance.read","method":"GET","path":"/v1/attendance/daily","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_attendance_students_list","description":"기간 내 전체 또는 선택 반의 학생별 출결 합계·결석 학생 명단 조회. 무결·유결 합계로 결석 구분, 타반 보강생 제외","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"attendance.read","method":"GET","path":"/v1/attendance/students","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_attendance_checks_list","description":"학생 입퇴실 체크 내역","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"attendance.read","method":"GET","path":"/v1/attendance/checks","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_attendance_checks_create","description":"현재 시각 입실·퇴실 기록(수업 출석 아님·발송 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"attendance.write","method":"POST","path":"/v1/attendance/checks","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_attendance_checks_delete","description":"학생 입퇴실 기록 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"attendance.write","method":"DELETE","path":"/v1/attendance/checks/{checkId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_clinics_list","description":"기간별 클리닉 리뷰 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/clinic-reviews","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_clinics_get","description":"클리닉 리뷰 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/clinic-reviews/{reviewId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_clinics_create","description":"클리닉 리뷰 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"POST","path":"/v1/teaching/clinic-reviews","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_clinics_update","description":"클리닉 리뷰 전체 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PUT","path":"/v1/teaching/clinic-reviews/{reviewId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_clinics_delete","description":"클리닉 리뷰 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"DELETE","path":"/v1/teaching/clinic-reviews/{reviewId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_list","description":"Time-clock employee identities, excluding passwords/payroll. Never use as the teaching teacher roster or teacher IDs.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.read","method":"GET","path":"/v1/attendance/staff","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_journals_list","description":"기간별 직원 출퇴근·근무일지","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.read","method":"GET","path":"/v1/attendance/staff/journals","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_journals_get","description":"직원 출퇴근·근무일지 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.read","method":"GET","path":"/v1/attendance/staff/journals/{journalId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_journals_create","description":"직원 출근·퇴근·근무일지 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.write","method":"POST","path":"/v1/attendance/staff/journals","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_journals_update","description":"직원 출퇴근·근무일지 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.write","method":"PUT","path":"/v1/attendance/staff/journals/{journalId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_journals_delete","description":"직원 출퇴근 기록 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.write","method":"DELETE","path":"/v1/attendance/staff/journals/{journalId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_staff_summary","description":"직원별 근무 일수·시간 합계","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"staff.read","method":"GET","path":"/v1/attendance/staff/summary","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_list","description":"교재비 항목 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.read","method":"GET","path":"/v1/books","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_get","description":"교재비 항목 상세","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.read","method":"GET","path":"/v1/books/{bookId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_create","description":"교재비 항목 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"POST","path":"/v1/books","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_update","description":"교재비 항목 수정","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"PUT","path":"/v1/books/{bookId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_delete","description":"사용 이력이 없는 교재비 항목 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"DELETE","path":"/v1/books/{bookId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_items","description":"기존 출고 부교재 이름 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.read","method":"GET","path":"/v1/books/{bookId}/items","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_issues_list","description":"원본 교재 번호(books.list/get id)별 출고·반품·수납 현황","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.read","method":"GET","path":"/v1/books/{bookId}/issues","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_issues_get","description":"원본 교재·출고 번호의 학생별 현재 지급·반품·제외·금액·수납·메모 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.read","method":"GET","path":"/v1/books/{bookId}/issues/{issueId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_issues_create","description":"원본 교재 번호·학생·시간표로 학생별 교재 출고 등록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"POST","path":"/v1/books/{bookId}/issues","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_issues_update","description":"원본 출고 조회 후 전체 값 수정(반품 해제·원복은 returned=false, 제외 해제·원복은 excluded=false, 다른 현재 값 보존)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"PUT","path":"/v1/books/{bookId}/issues/{issueId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_books_issues_delete","description":"청구에 사용하지 않은 출고 기록 삭제","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"books.write","method":"DELETE","path":"/v1/books/{bookId}/issues/{issueId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_overview","description":"학생 이름 클릭 통합정보: 기본정보·수강 전체·최근 상담·시험성적·클리닉 요약","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_profile","description":"학생 통합정보 기본정보 조회(이름·번호·연락처·학교·학년·메모, 비밀번호 제외) Reuse the verified selected student ID. Do not read details solely to rediscover an already resolved identity. Read normally for requested details/current values, stale results, required pre-write validation or post-write verification; an ID never bypasses current academy/access checks or mutation confirmation.","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/profile","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_enrollments","description":"학생 통합정보의 수강·퇴원·전반·종강·전반취소 이력과 이전 수강반 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/enrollments","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_attendance","description":"지정 학생 1명의 수업일별 출결·보강 이력(0=무결·4=유결은 결석, 5=출석·6=인강·7=보강완료·8=보강생과 구별)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/attendance","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_homework","description":"학생 과제·시험 검사결과와 수업 회차·출결·코멘트. valueItems가 같은 수업의 실제 항목 제목·안내·결과를 연결, 빈 값은 미완료로 추측하지 않음","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/homework","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_scores","description":"학생 시험별 점수·평균·만점·등수 이력(오답 미제공, 공개 성적표 링크 발급 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/scores","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_list","description":"학생의 원문 상담 내역·예약 유형·담당자·진행 상태 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/notes","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_get","description":"선택 학생의 특정 상담 원문·담당자·예약 일시·변경 검증 version 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/notes/{noteId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_create","description":"학생 통합정보에서 상담 기록 등록(선택한 담당자·유형·명시한 예약일만 사용)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"POST","path":"/v1/students/{id}/detail/notes","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_update","description":"상담 원문·담당자·유형·예약 수정(생략한 값 보존·학원/학생/현재 version 원자적 검증)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"PATCH","path":"/v1/students/{id}/detail/notes/{noteId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_delete","description":"선택 학생의 상담 기록 삭제(현재 version 확인·소프트 삭제)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.write","method":"DELETE","path":"/v1/students/{id}/detail/notes/{noteId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_notes_options","description":"학생 통합정보 상담 편집에서 실제 선택 가능한 담당자·예약 유형 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/detail/note-options","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_life","description":"학생별 생활기록 이력과 실제 사용 설정된 항목 이름·값·도표 설정 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/life","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_clinics","description":"학생의 클리닉 예약·완료·취소·불참과 리뷰·메모 이력 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/clinics","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_discounts","description":"학생 통합정보의 할인율·형제 할인 연결 학생 이름과 번호 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/discounts","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_messages","description":"학생별 문자·알림톡 발송 내용·수신번호·요청번호 이력 조회(발송 실행 없음) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/messages","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_student_detail_logins","description":"학생별 로그인 시각·접속 주소·구분 이력 조회 · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"students.read","method":"GET","path":"/v1/students/{id}/detail/logins","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_defaults","description":"반별 최근 학기·다음 회차와 실제 시간표에서 계산한 다음 수업일 후보(저장·자동 지정 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/teams/{id}/registration-defaults","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_publication_get","description":"선택 과제장 제목과 현재 학생 공개 상태 조회 · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/lessons/{lessonId}/publication","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_publication_update","description":"학생에게 과제장 공개·비공개 변경(직전 공개 상태 일치 확인·수업 내용 보존) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PATCH","path":"/v1/teaching/lessons/{lessonId}/publication","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teams_detail_roster","description":"반별 전체 수강 이력(종료 포함·재원 인원 아님). 현재 학생 명단·인원은 students.list의 teamId 사용. 학생·수강번호·퇴원/전반/종강 사유","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teams.read","method":"GET","path":"/v1/teams/{id}/detail/students","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_teachers","description":"과제장 등록에서 실제 선택 가능한 담당 선생님 이름과 번호","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/options/teachers","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_seasons","description":"실제 저장된 과제장 학기·기간 선택 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/options/seasons","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_copy","description":"담당 선생님의 복사 원본 과제장 선택 목록(조회만 하며 새 과제장을 만들지 않음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/options/copy-sources","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_templates","description":"공유 템플릿 불러오기에서 실제 선택 가능한 과제장 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/options/templates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_exams","description":"과제장의 시험 항목에 연결 가능한 담당 선생님의 채점지 이름과 번호","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/options/exams","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_schedules","description":"선택 수강반의 실제 시간표 목록(요일에 맞는 시간표를 임의 지정하지 않음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/teams/{id}/schedules","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_options_course","description":"반별 과제장 분류·교과·저장 양식과 실제 적용 양식 조회(시간표 자동 선택 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/teams/{id}/course","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_reports_settings_get","description":"반별 과제장 성적표 저장값·실제 적용 양식·이름·version 조회(미지정 0 등은 당일형 80, 82는 누적형) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/teams/{id}/report-settings","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_teaching_reports_settings_update","description":"반별 과제장 성적표를 당일형 80/누적형 82로 변경(현재 version 확인·다른 반 설정 보존) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"teaching.write","method":"PATCH","path":"/v1/teaching/teams/{id}/report-settings","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_clinic_appointments_list","description":"클리닉 실제 예약·입실·퇴실·불참·취소 학생 명단 조회(상태 동기화나 메시지 발송 없음)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/clinic-appointments","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_clinic_templates_review","description":"클리닉 리뷰 등록에서 저장된 리뷰 문구 목록 조회","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/clinic-review-templates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_clinic_templates_message","description":"클리닉 문자 작성에서 저장된 문구 목록 조회(발송 없음) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"teaching.read","method":"GET","path":"/v1/teaching/clinic-message-templates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_categories","description":"공유 문자 예제 분류 목록(학원 저장 문구와 분리) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.read","method":"GET","path":"/v1/messages/template-examples/categories","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_examples","description":"공유 문자 예제 제목·분류·원문 조회(제목순·삭제 제외) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.read","method":"GET","path":"/v1/messages/template-examples","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_list","description":"현재 학원이 저장한 문자 문구 목록(공유 예제·AI 프롬프트 제외) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.read","method":"GET","path":"/v1/messages/templates","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_get","description":"저장된 문자 문구 원문·현재 변경 검증 version 조회 · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.read","method":"GET","path":"/v1/messages/templates/{templateId}","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_create","description":"학원 문자 문구 신규 저장(발송·AI 호출 없음) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.write","method":"POST","path":"/v1/messages/templates","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_update","description":"현재 학원의 문자 문구 제목·분류·내용 수정(현재 version 검증·공유 예제 수정 불가) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.write","method":"PUT","path":"/v1/messages/templates/{templateId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_messages_templates_delete","description":"현재 학원 문자 문구 삭제(현재 version 검증·소프트 삭제) · 해당 웹 구독 등급과 관리자 권한 필요","webSubscriptionRequired":true,"outputSchema":{"ValueKind":1},"scope":"messages.write","method":"DELETE","path":"/v1/messages/templates/{templateId}","annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_statistics_teams","description":"통계 조회 가능한 수강반·시간표 key 목록","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"statistics.read","method":"GET","path":"/v1/students/statistics/teams","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_statistics_summary","description":"월별·연간 신규·재원·퇴원 고유 인원(명시 선택한 수강반 기준 전환)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"statistics.read","method":"GET","path":"/v1/students/statistics/summary","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_statistics_withdrawals","description":"기간별 퇴원 명단. basis=academy는 학원 최종 퇴원, enrollment는 반별 퇴원 이력(다른 반 계속 수강도 포함). 반별 명단은 enrollment 사용. 원본 학생·반명·퇴원일, 전반·종강·전반취소 제외","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"statistics.read","method":"GET","path":"/v1/students/statistics/withdrawals","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}},{"name":"klasslab_v1_statistics_students","description":"통계 학생별 상세(학생 이름·번호 포함, month=0은 연간 월별 집합 합집합)","webSubscriptionRequired":false,"outputSchema":{"ValueKind":1},"scope":"statistics.read","method":"GET","path":"/v1/students/statistics/students","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"ValueKind":1}}]}