klax
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@klaxWhat's my daily academic briefing?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KLAX (klax)
광운대학교 학사관리시스템(KLAS) Model Context Protocol (MCP) 서버 & 학업 보조 CLI
Claude Desktop, Claude Code, Codex, Cursor 등 AI 에이전트에 광운대 학사 일정 및 강의자료 인텔리전스를 연결합니다.
⚠️ 중요한 면책 고지 (Disclaimer)
비공식 오픈소스 프로젝트: 본 프로젝트는 광운대학교 공식 소프트웨어가 아니며, 학생 개인의 학업 생산성 향상을 위해 개발된 비공식 오픈소스 학업 비서입니다.
학칙 및 윤리 준수 (Strict Academic Integrity):
자동 출석, 매크로 조작, 동영상 자동 재생 기능이 일절 포함되어 있지 않습니다.
교수 저작물(강의 영상)의 무단 복제/다운로드 기능을 제공하지 않습니다.
시험 공정성을 해치는 행위(시험 힌트 추출, 부정행위)와 관련된 로직이 완전히 배제되어 있습니다.
Local-First & 개인정보 보호:
학생 자격증명(학번, 비밀번호)은 오직 로컬 머신의 **OS 키체인(macOS Keychain / Windows Credential Manager)**에만 암호화되어 보관됩니다.
모든 교안 색인 및 퀴즈/노트 데이터는 로컬 SQLite(
~/.klax/)에만 저장되며, 외부 서버로 전송되지 않습니다.
Related MCP server: CAU e-class MCP
⚡ 주요 기능
1. 학사 일정 & 학업 대시보드
종합 현황 요약 (
klax_get_overview): 수강 과목 수, 마감 임박 과제, 미수강 동영상 강의 진도율 종합 진단.마감 일정 관리 (
klax_get_deadlines): 과목별 과제 제출 마감 일시 및 제출 여부 조회.수업시간표 & 캘린더 생성 (
klax_get_timetable): 개인 시간표(요일/교시/강의실) 조회 및 표준 iCal(.ics) 파일 생성.일일 학업 브리핑 (
klax_get_daily_briefing): 오늘/내일 수업 시간표, D-Day 임박 과제, 출결 위험도를 종합한 마크다운 리포트.강의계획서 & 학점 시뮬레이터 (
klax_get_syllabus,klax_simulate_grade): 평가 비율 분석 및 목표 학점(A+) 달성에 필요한 잔여 평가 최저 점수 역산.
2. 강의자료 로컬 인텔리전스 (Local-First FTS)
자료실 첨부파일 수집 (
klax_list_materials,klax_download_material): 강의계획서 및 자료실 파일을 로컬에 안전하게 다운로드.슬라이드 단위 정확한 색인 (
klax_index_learning_material): PDF/PPTX 교안을 페이지/슬라이드 단위로 분해하여 로컬 SQLite FTS5에 색인.출처 기반 인용 검색 (
klax_search_learning_materials): 검색어와 관련된 교안의 정확한 위치(page:N,slide:N) 및 원문 발췌문 조회.교안 외부 링크 & 맥락 분석 (
klax_extract_pdf_links,klax_analyze_material_links): 교안 속 웹 링크를 추출하고 슬라이드 전후 문맥과 웹페이지 핵심을 분석해 실전 학습 활용법 도출.
3. AI 적응형 학습 & 독자적 학습 노트
과제 요구사항 분해 (
klax_build_assignment_checklist,klax_link_assignment_to_materials): 과제 지문에서 필수 구현 요구사항을 추출하고 관련 교안 슬라이드를 자동 매핑.소크라테스식 개념 튜터 (
klax_tutor_concept): 점진적 힌트 사다리(Hint Ladder, 1~3단계)로 학생 스스로 개념을 떠올리도록 유도.자가 진단 퀴즈 & 에빙하우스 복습 큐 (
klax_generate_quiz,klax_submit_quiz_answer,klax_get_review_queue): 교안 원문 기반 객관식 퀴즈 생성 및 망각곡선 주기 복습 스케줄러.단일 HTML 학습 노트 생성 (
klax_write_study_note_html): 모델이 작성한 구조화 노트를 원문 locator 전수 검증 후 브라우저에서 바로 읽는 단일 HTML 파일로 렌더링.
MCP 도구 이름
등록되는 도구는 모두 klax_* 네임스페이스를 사용합니다.
klax_get_overview
klax_list_courses
klax_get_deadlines
klax_get_lecture_progress
klax_list_materials
klax_download_material
klax_auth_status
klax_refresh_session
klax_get_timetable
klax_get_syllabus
klax_get_attendance_status
klax_get_assignment_feedback
klax_get_daily_briefing
klax_simulate_grade
klax_search_course_materials
klax_list_learning_materials
klax_index_learning_material
klax_search_learning_materials
klax_get_video_transcript
klax_get_learning_excerpt
klax_build_assignment_checklist
klax_generate_quiz
klax_submit_quiz_answer
klax_get_review_queue
klax_get_study_plan
klax_link_assignment_to_materials
klax_tutor_concept
klax_extract_pdf_links
klax_analyze_material_links
klax_write_study_note_html
klax_generate_study_guide_htmlklax_get_timetable은 기본적으로 구조화된 시간표만 반환합니다. iCal 텍스트가 필요할 때만
generate_ics=true를 지정하세요. 원본 진단 payload는 지원되는 조회 도구에서
verbose=true를 지정한 경우에만 포함됩니다.
🛠️ 설치 및 설정
Python 3.10 이상이 필요합니다.
1. 저장소 클론 및 패키지 설치
git clone https://github.com/goonbam0306/klax.git
cd klax
python3 -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\Activate.ps1
pip install -e ".[materials]"2. 초기 런타임 설정
# 세션 브리지용 헤드리스 Chromium 설치
klax setup
# KLAS 학번 및 비밀번호 저장 (OS 키체인 안전 보관)
klax configure
# 진단 도구 실행
klax doctor3. AI 클라이언트에 원클릭 등록
Claude Code / Codex 자동 등록
klax install --all
# 또는 개별 등록
klax install --claude
klax install --codexClaude Desktop 수동 설정 (claude_desktop_config.json)
{
"mcpServers": {
"klax": {
"command": "/path/to/klax/.venv/bin/python",
"args": ["-m", "klax.server"]
}
}
}🔒 보안 및 개인정보 수칙
klax는 비밀번호를 평문으로 저장하지 않으며, OS Secure Enclave / Keyring을 최우선 사용합니다.학생 본인의 KLAS 계정 정보는 외부 클라우드, 원격 API, 분석 서버로 일절 전송되지 않습니다.
로컬 SQLite 데이터베이스(
~/.klax/)는 소유자 전용 권한(0700,0600)으로 보호됩니다.
📄 라이선스
본 프로젝트는 MIT License에 따라 자유롭게 사용, 수정, 배포할 수 있습니다.
Available Tools
31 toolsklax_analyze_material_linksA
PDF 교안 내 링크를 추출하고, 해당 슬라이드 맥락과 외부 웹페이지 내용을 실시간 페칭/이해하여
개념 연결(Conceptual Bridge), 시험/과제 실전 활용법을 담은 종합 학습 가이드를 생성합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | ||
| file_path | Yes | ||
| fetch_web_content | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key behavior: real-time fetching of external web pages, link extraction, and guide generation. With no annotations available, it does not explicitly state side effects, read-only status, network dependency, rate limits, or latency concerns, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact single sentence that moves from input to processing to output. It contains no filler, though a clearer structural separation of the output benefits could aid readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the absence of return-value detail is acceptable. However, parameter semantics and alternative-tool routing are not fully covered, and with no annotations and 0% schema coverage, the description alone is only somewhat complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps conceptually to file_path (PDF) and fetch_web_content (external web fetching), but timeout is entirely undocumented, and the boolean's behavior is only implicit through '실시간 페칭'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's scope: extract links from PDF lecture materials, fetch and understand related slide context and external web content, and generate a comprehensive learning guide containing conceptual bridges and exam/assignment strategies. This distinguishes it from sibling klax_extract_pdf_links, which only extracts links, and from generic guide generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is clear: use this when a user wants a learning guide built from links inside a PDF lecture document, including external web content. The description does not explicitly name exclusions or alternatives, but the context is strong enough that an agent can decide when to invoke it versus an extraction-only sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_auth_statusA
현재 저장된 KLAS 자격증명 구성 상태와 세션 유효성을 진단합니다 (비밀번호 비노출).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds a meaningful safety guarantee ('비밀번호 비노출' / password not exposed) and the verb '진단합니다' (diagnoses) strongly implies a read-only operation. However, it does not explicitly state that the tool makes no state changes, nor does it mention prerequisites like prior authentication. Still, the core behavioral traits of a diagnostic, non-exposing tool are conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the purpose and the key safety property. Every word earns its place; the security note is concise but important. No fluff, no redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a zero-parameter diagnostic tool with an output schema, so the description does not need to enumerate return values. The description covers what the tool inspects and a critical security guarantee. For such a simple tool, it is complete and sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), so the baseline for parameter semantics is 4. The description correctly says nothing about parameters, allowing the empty schema to stand as the complete specification. There is no additional semantic burden to resolve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('진단합니다' / diagnoses) and names the exact resource being inspected (KLAS credential configuration status and session validity). It also adds a distinguishing trait ('비밀번호 비노출' / password not exposed), which clearly separates it from sibling tools like klax_refresh_session or klax_list_courses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Nothing in the description explains when to prefer this tool over klax_refresh_session or other auth-related siblings. There is no explicit when/when-not guidance, only an implicit 'use to check status' inference from the name and description. The absence of any alternative routing or context hurts an agent's ability to decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_build_assignment_checklistA
과제 설명(task_id) 또는 로컬에 색인된 강의자료(material_id)에서 제출 요구사항으로 보이는 문장만 규칙 기반으로 추려 locator/출처가 표시된 체크리스트를 만듭니다.
생성형 요약이나 완성 답안을 만들지 않으며, 원문 줄을 그대로 보존한 결정론적 구조화입니다. task_id와 material_id 중 최소 하나를 지정해야 합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | ||
| course_id | Yes | ||
| yearhakgi | No | ||
| material_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool is deterministic, rule-based, preserves original lines, does not generate summaries or complete answers, and produces a checklist with locator/source information. This is a meaningful behavioral profile, though it does not mention side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the main action is stated first, followed by behavioral constraints and input requirements. Every sentence earns its place with no redundant or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior, output nature, and input constraint, and an output schema exists. However, it omits the required course_id from the usage explanation and gives no explicit guidance on when to prefer this tool over sibling tools, so the agent may under-specify the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for task_id and material_id as the two input sources and states the at-least-one requirement. However, the required course_id is not mentioned at all, and yearhakgi is also unexplained, leaving a significant gap for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it builds a checklist by rule-based extraction of submission-requirement sentences from task_id or material_id. It also explicitly distinguishes itself from generative summaries or complete answers, which helps differentiate it from sibling tools like klax_generate_quiz or klax_generate_study_guide_html.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear source context (assignment description or indexed materials) and a hard usage constraint: at least one of task_id and material_id must be specified. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for basic routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_download_materialB
강의 자료실 첨부파일을 로컬 디렉토리에 안전하게 다운로드하고 저장 경로 및 해시를 반환합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| file_sn | No | ||
| overwrite | No | ||
| attachment_id | Yes | ||
| destination_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the core side effect (writing to disk) and the returned information (path and hash), but does not explain overwrite behavior, default destination handling, error conditions, or security implications. 'Safely' is vague and unqualified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and output without any fluff. It is appropriately concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters and an output schema, the description is insufficient. It lacks parameter semantics, usage prerequisites, and any note about the output structure (though an output schema exists). An agent would struggle to call this correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the four parameters. It does not explain attachment_id, file_sn, overwrite, or destination_dir beyond the implication that attachment_id identifies an attachment. Critical parameters like overwrite and destination_dir are entirely unexplained, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: downloading lecture material attachments to a local directory and returning the save path and hash. It specifies the resource (attachments) and the output (path and hash), making it unambiguous and distinct from sibling listing/search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that the attachment_id must come from a prior listing call, nor does it discuss prerequisites, exclusions, or fallback tools. The agent is left to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_extract_pdf_linksB
PDF 교안 파일 내부의 클릭 가능한 하이퍼링크(Hyperlink Annotation) 및 본문 텍스트에 포함된 URL 링크를 페이지별로 추출합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail: it targets both hyperlink annotations and raw URLs in body text, and organizes extraction by page. However, with no annotations at all, it does not disclose side effects, permissions, file prerequisites, or behavior when no links are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler; every phrase contributes information about what is extracted and how. It is compact and appropriately sized for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description is minimally sufficient: an agent knows what the tool does and that file_path refers to a PDF lecture material file. It still lacks preconditions, usage guidance, and safety context, which matters because no annotations are provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required file_path parameter has zero schema description coverage, and the description does not explain what value should be supplied. The phrase 'PDF 교안 파일' implies the target is a PDF file, but path format, source, and prerequisites are left unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it extracts clickable hyperlink annotations and URL text from PDF lecture-material files, page by page. It is clear in function and distinct from listing or downloading tools, though it does not explicitly name a sibling tool to differentiate itself from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage conditions, exclusions, or alternatives are provided. The description says what the tool does but not when to use it instead of a sibling like klax_analyze_material_links or klax_list_materials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_generate_quizA
로컬에 색인된 강의자료 청크(chunk_id)의 본문에서 결정론적 규칙으로 객관식 퀴즈 1개를 생성합니다.
정답/해설은 채점 전 노출을 막기 위해 반환하지 않으며, klax_submit_quiz_answer로 제출해야 확인할 수 있습니다. 생성된 퀴즈는 로컬 학습 저장소(study.db)에 저장되고, 채점 시 자동으로 망각곡선 복습 큐에 등록됩니다. 생성형 요약이 아닌 원문 정의/빈칸 추출 기반입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| chunk_id | Yes | ||
| course_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It discloses important behaviors: answers/explanations are withheld until submission, quizzes are persisted to study.db, and auto-enrollment in the forgetting curve queue. It also notes the deterministic rule-based nature. It could mention side effects of storage and queue enrollment more explicitly, but it does mention them. The only minor gap is not describing the output schema in detail, but that is not required since output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action. It uses a clear structure: first sentence states the action and method, second sentence adds key behavioral details (withholding answers, submission flow), third sentence adds persistence and queue behavior. No filler or redundant content. It could be slightly more structured with bullet points, but it's effective as is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 params, no annotations, output schema exists), the description covers the essential aspects: what it does, how it works (deterministic rules), key behavioral side effects (persistence, queue enrollment), and the workflow with klax_submit_quiz_answer. It doesn't describe the output schema shape, but that's provided by the output schema already. It could mention prerequisites like needing to index materials first, but that's a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that chunk_id refers to a locally indexed lecture chunk (adding meaning to the parameter), and course_id is implied as the course context. It does not detail the format or constraints, but given the simplicity of the parameters, the description provides enough context to understand their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (generate), the resource (a quiz), and the specific basis (deterministic rules from indexed lecture chunks). It also differentiates from siblings like klax_submit_quiz_answer and klax_get_review_queue by specifying that quiz generation is one quiz per chunk and not for other purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when a quiz needs to be generated from a specific chunk, and it explicitly mentions the workflow with klax_submit_quiz_answer. However, it does not explicitly state when not to use it or mention alternatives for summarization (e.g., klax_generate_study_guide_html), so it misses explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_generate_study_guide_htmlA
색인 완료된 로컬 강의자료를 재사용해, 출처와 페이지/슬라이드 locator가 보존된 단일 HTML 학습 가이드를 생성합니다.
먼저 klax_download_material과 klax_index_learning_material로 자료를 로컬 색인해야 합니다. KLAS에는 쓰지 않으며, output_path는 홈 디렉토리 하위의 .html 파일이어야 합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| course_id | Yes | ||
| output_path | Yes | ||
| include_link_analysis | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses important traits: local reuse of indexed materials, preservation of source/locators, a required prior indexing step, no KLAS interaction, and a constrained output path. It does not mention overwrite behavior or the effect of include_link_analysis, but the core side effect and prerequisites are clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main action, and every sentence earns its place: the core purpose, the prerequisites, and the output constraint are all stated without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values do not need to be explained, and the prerequisites plus output_path constraint are well covered. The main gap is input semantics: include_link_analysis is an optional boolean defaulting to true with no description, and the meaning of the generated 'link analysis' section is not clarified. For a 4-parameter tool, this is a noticeable completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema provides no property descriptions, so the description must compensate. It does add real meaning for output_path by requiring a .html file under the home directory, and course_id is inferable from the indexing context. However, include_link_analysis and title receive no explanation, and include_link_analysis in particular is opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: it generates a single HTML study guide from already-indexed local lecture materials, preserving sources, page locators, and slide locators. It does not explicitly differentiate from the similar sibling klax_write_study_note_html, so it falls short of a 5, but the core action and constraints are unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit prerequisites: klax_download_material and klax_index_learning_material must be run first. It also tells the agent that this tool does not write to KLAS and that output_path must be a local .html file under the home directory. However, it does not mention when to prefer this over alternatives such as klax_generate_quiz or klax_write_study_note_html.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_assignment_feedbackB
제출 완료되어 채점된 과제의 점수와 교수 피드백 코멘트를 조회합니다 (조회 전용).
task_id는 klax_get_deadlines로 조회한 과제의 식별자를 사용합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| verbose | No | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses read-only behavior and that it returns scores and feedback comments, but doesn't mention what happens for ungraded submissions, whether feedback may be absent, or any auth requirements. The read-only disclosure is useful but limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and read-only nature. The task_id guidance is relevant and concise. No wasted words, though it could add a bit more parameter context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. However, with no annotations and 0% schema description coverage, the description should explain more about the parameters and edge cases (e.g., ungraded assignments, empty feedback). It's adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains task_id's origin (from klax_get_deadlines) but says nothing about course_id, verbose, or yearhakgi. The description adds meaning for one parameter only, leaving three undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves scores and professor feedback comments for submitted and graded assignments, and explicitly notes it is read-only. It distinguishes itself from siblings by referencing klax_get_deadlines for task_id, though it doesn't explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use it for graded assignments, and use task_id from klax_get_deadlines. It doesn't explicitly state when not to use it or name alternatives, but the read-only note and task_id source give practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_attendance_statusA
특정 과목의 전자출결(KW출첵) 현황을 조회하고 결석 위험도를 분석합니다.
위험도 계산은 결석 1/3 이상 시 F 처리되는 일반적 학칙을 가정한 참고용이며 학교의 공식 판정을 대체하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose an important behavioral trait: the risk score is a heuristic based on the general rule that 1/3 absences result in an F, and it explicitly disclaims being the school's official determination. However, it does not mention whether the operation is read-only, requires authentication, or how current the data is, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the first sentence states the core purpose and scope, and the second sentence provides an important caveat about the risk calculation. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details do not need to be described. However, the description lacks parameter semantics, usage timing, and any behavioral context beyond the risk disclaimer. For a simple required 'course_id' call an agent may still proceed, but 'yearhakgi' and 'verbose' semantics are missing, making the description only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only loosely maps to 'course_id' through '특정 과목', but gives no explanation of 'yearhakgi' (year/semester) or 'verbose'. These parameters remain ambiguous, which is a significant gap for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('조회하고' / query and analyze) on a specific resource ('특정 과목의 전자출결 현황' / attendance status for a specific course), and adds a distinctive output element: absence risk analysis. This clearly differentiates it from sibling tools like klax_get_timetable or klax_get_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful—when a user needs attendance status for a course—but it provides no explicit guidance about when to choose this tool over siblings, no exclusions, and no mention of prerequisites such as an active session or semester context. Usage context is only implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_daily_briefingA
오늘/내일 수업 시간표·강의실, 마감 임박 과제 D-Day, 출결 위험 알림을 종합한 일일 학업 브리핑(마크다운)을 생성합니다.
참고용 요약이며 공식 학사 정보를 대체하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | ||
| include_attendance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses that the output is a markdown summary and that it is not official academic information, which is useful. However, it does not disclose whether the tool performs network calls, requires an active session, or how it handles missing data. The '참고용' caveat is a positive behavioral signal, but the description remains thin on operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core value proposition: what the briefing contains and its format. The second sentence adds an important caveat about non-official status. It is efficient, though it could have used the available space to explain parameters instead of leaving them undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are presumably structured, and the description explains the content categories. However, with two undocumented parameters and no usage guidance, the description is not fully complete for an agent to invoke it correctly. The output schema may cover return structure, but parameter semantics remain a gap. For a composite briefing tool, the description should clarify what 'term' accepts and how 'include_attendance' changes the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the two parameters: 'term' and 'include_attendance'. The description mentions attendance risk alerts, which loosely relates to 'include_attendance', but it does not clarify what 'term' means (e.g., academic term, date range, or semester) or how the boolean affects the output. With zero schema coverage and no parameter explanation, the agent cannot confidently set these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it generates a daily academic briefing in markdown that combines today's/tomorrow's class schedule, classrooms, upcoming assignment deadlines with D-Day, and attendance risk alerts. It uses a specific verb ('생성합니다') and resource ('일일 학업 브리핑'), and the scope is distinct from sibling tools like klax_get_timetable or klax_get_deadlines, which are individual data fetchers rather than a composite briefing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is a summary/reference tool for daily academic information, and it explicitly notes it is not a substitute for official academic information. However, it does not state when to prefer this over alternatives like klax_get_timetable or klax_get_deadlines, nor does it mention any prerequisites such as authentication or session state. The '참고용 요약' caveat gives some guidance on expectations but not on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_deadlinesB
전체 과목 또는 특정 과목의 과제 및 제출 마감 일정을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb '조회합니다' indicates a read-only operation, which is the core behavioral trait. However, with no annotations present, the description carries the full burden and does not mention whether the operation requires authentication, whether it returns only future deadlines, or any other behavioral nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded, information-dense sentence. It states the action, the resource, and the parameter scope with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional parameter) and has an output schema, so the description covers the core invocation. However, it lacks any usage context, such as how to obtain a course_id, whether deadlines are filtered by date range, or what a typical response covers. These gaps are minor but noticeable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining the one parameter implicitly: '전체 과목 또는 특정 과목' maps to course_id being optional, where empty means all courses and populated means a specific course. This adds meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '조회합니다' (retrieve) and the resource: assignment and submission deadline schedules. It also specifies the scope: all courses or a specific course. It does not explicitly differentiate from sibling tools like klax_get_assignment_feedback, but the deadline-specific purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It only implies that it is for querying deadlines, relying entirely on the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_learning_excerptA
klax_search_learning_materials 결과의 chunk_id로 원문 발췌 전체(페이지/슬라이드 텍스트)와 출처를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| chunk_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only lookup by saying '조회' and specifies what is returned, but it does not disclose failure behavior, authentication needs, or rate limits. For a simple get-by-id tool this is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler. The key input (chunk_id) and the output (full excerpt and source) are front-loaded, and every word contributes to the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with an output schema present, the description covers the input origin, the returned content, and the source. It does not mention error cases or authentication, but these are less critical for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does: chunk_id is identified as coming from klax_search_learning_materials results, which is essential context beyond the bare schema. It stops short of describing format or constraints, but for a single string parameter this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('조회합니다' / retrieves) and names the exact resource: the full original excerpt (page/slide text) and its source, keyed by chunk_id. It clearly differentiates this tool from the search tool by stating it consumes search results' chunk_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the prerequisite: use a chunk_id from klax_search_learning_materials results. This gives clear context for when to call the tool, though it does not explicitly mention when not to use it or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_lecture_progressB
특정 과목의 온라인 동영상 강의 진도율 및 출석 마감 일정을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It communicates a read-only lookup ('조회합니다') and the data scope, but does not mention prerequisites such as authentication/session state, side effects, or data-source limitations. For a simple query tool this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single Korean sentence with no filler or repetition; it front-loads the scoping phrase '특정 과목'. It is concise, though its brevity also contributes to the missing parameter and alternative guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, covering return structure, and the core object of the query is clear. However, the tool does not explain optional parameters (yearhakgi, verbose) or distinguish itself from deadline/attendance siblings, leaving some ambiguity for an agent deciding whether to use this tool versus klax_get_deadlines or klax_get_attendance_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only hints that course_id refers to a specific course ('특정 과목'); verbose and yearhakgi are left undefined in both the schema and description. This is partial compensation for a 3-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear query verb ('조회합니다' / retrieves) and identifies the resource: a specific course's online video lecture progress rate and attendance deadline schedule. It does not, however, name or differentiate from closely related siblings such as klax_get_deadlines or klax_get_attendance_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '특정 과목' gives an implied use case (when the user needs progress/deadline info for a particular course), but no explicit when-to-use vs alternatives or exclusions are given. Sibling tools like klax_get_deadlines overlap on the deadline portion, so clearer routing would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_overviewB
광운대 KLAS 수강 과목, 마감 임박 과제, 미수강 온라인 강의 종합 현황을 한 번에 요약 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | ||
| verbose | No | ||
| deadline_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden itself. It does convey that this is a read-only summary operation via '조회' and specifies the three data domains it aggregates, which is useful. However, it does not disclose prerequisites like authentication/session requirements, freshness of data, or how missing data is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler. It front-loads the data categories (courses, imminent assignments, unwatched lectures) and ends with the core action ('요약 조회'), making the tool's purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists and may cover return values, the description omits crucial operational context: parameter semantics, term format, and usage boundaries versus other tools. For a moderately complex tool with three optional parameters and zero annotation support, this leaves significant gaps in what an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description contains no mention of any of the three parameters: term, verbose, or deadline_days. The agent is given no guidance on what term format to use, what verbose changes, or how deadline_days influences the result, so the description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('요약 조회' - summarize/retrieve) and a concrete resource: the combined status of KLAS courses, urgent assignments, and unwatched online lectures. The word '종합' (comprehensive) and '한 번에' (at a glance) clearly distinguish this aggregate overview tool from sibling tools like klax_list_courses, klax_get_deadlines, and klax_get_lecture_progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied: use this tool when the user wants a single consolidated overview of courses, deadlines, and lecture progress. However, it does not explicitly state when not to use it, nor does it name alternative tools for more detailed or filtered views, such as klax_get_deadlines for specific deadline details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_review_queueA
오늘 기준으로 복습해야 할 망각곡선 복습 큐 항목을 조회합니다 (로컬 저장소 조회, KLAS 호출 없음).
course_id를 지정하면 해당 과목으로만 필터링합니다. 항목이 비어 있으면 오늘 복습할 대상이 없다는 뜻입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses the local-storage read nature, explicitly states no KLAS call is made, and explains that an empty result means nothing is due today. It does not cover auth or side effects, but '조회' and local lookup strongly imply a safe read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The main verb and resource appear first, and the local-storage qualifier and empty-result explanation each add meaningful value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-parameter read tool, the description covers purpose, data source, filtering behavior, and empty-result semantics. An output schema exists, so return structure does not need to be repeated in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage, so the description compensates by explaining that course_id is optional and filters results to that course. This is sufficient for the single simple parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('조회합니다' – retrieves), a specific resource (forgetting-curve review queue items), and the as-of-today scope. It also distinguishes this tool by noting it is a local-storage lookup with no KLAS call, separating it from server-backed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use it for today's review queue items and optionally filter by course_id. However, it does not explicitly name alternative tools or state when not to use it, so the guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_study_planA
마감 임박 과제와 오늘 복습해야 할 망각곡선 큐 항목을 결합한 향후 7일 학습 계획을 생성합니다.
과제는 마감 하루 전 날짜에, 복습 항목은 7일에 걸쳐 분산 배치됩니다. 마감일을 해석할 수 없는 과제는 unscheduled_assignments로 별도 표시되며 임의로 날짜를 추정하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses assignment placement rules, review-item distribution, and the handling of unparseable deadlines via unscheduled_assignments. It does not discuss side effects or auth, but the tool name and read-oriented nature mitigate that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The first sentence states the purpose, and the second provides key behavioral details. Every sentence adds useful information with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, one optional parameter, and presence of an output schema, the description covers the essential planning logic and edge cases well. The only meaningful gap is the undocumented course_id parameter; otherwise the agent has enough context to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description never mentions the sole parameter course_id. An agent must infer its meaning from the name alone, with no guidance on optional behavior or what an empty default means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('생성합니다') and resource ('향후 7일 학습 계획') and clearly states it combines deadline assignments with forgetting-curve review queue items. This makes it easy to distinguish from siblings like klax_get_deadlines or klax_get_review_queue, since it merges both.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this tool is useful: when a combined 7-day study plan is needed. However, it does not explicitly name alternatives or state when NOT to use it, such as when the user only wants deadlines or only wants the review queue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_syllabusB
특정 과목의 강의계획서(주차별 진도 계획, 교재, 평가비율)를 상세 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It honestly frames the operation as a read/query and discloses what content the syllabus includes, which is useful behavioral context. However, it does not disclose auth/session requirements, behavior for invalid course_ids, or what 'verbose' mode changes, leaving notable gaps for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single Korean sentence that is front-loaded with the action and packs useful content detail (weekly plan, textbooks, evaluation ratios) without waste. It earns its length, though a parenthetical note on the two unexplained parameters could have been added without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, 0% schema coverage, and no annotations, the one-sentence description leaves too much undisclosed: yearhakgi semantics, verbose behavior, and the empty-default meaning are all absent. The existence of an output schema reduces the need to explain return values, but the input-side gaps and lack of usage guidance make this incomplete for reliable agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It only implicitly covers course_id via '특정 과목', while yearhakgi (year/semester, Korean terminology) and verbose are completely unexplained, including what an empty yearhakgi default means (e.g., current semester). The description adds minimal semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('조회합니다' / retrieves) with a clear resource ('강의계획서' / syllabus) and enumerates the content scope (weekly schedule, textbooks, evaluation ratios). It does not explicitly name a sibling it is distinct from, but the level of content detail lets an agent tell it apart from vaguely similar tools like klax_get_overview or klax_get_study_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied: an agent can infer this tool is for fetching detailed syllabus information when a course_id is known. There is no explicit guidance on when not to use it, no mention of alternatives among the 30 siblings, and no stated distinction from other course-information tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_timetableA
개인 수업시간표(과목명, 요일, 교시, 강의실, 교수명)를 조회합니다.
generate_ics=True일 때만 응답에 iCal(.ics) 텍스트를 포함합니다. export_ics_path를 지정하면 응답 크기를 늘리지 않고 홈 디렉토리 하위에 klas_timetable.ics 파일로 저장합니다. semester_start(YYYY-MM-DD)를 지정하면 해당 날짜를 기준으로 반복 일정을 계산하며, 미지정 시 오늘 날짜를 기준으로 합니다. weeks는 반복 주차 수(기본 16주)입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | ||
| weeks | No | ||
| verbose | No | ||
| generate_ics | No | ||
| semester_start | No | ||
| export_ics_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses conditional ICS inclusion, file export side effect under the home directory, semester_start fallback to today, and the 16-week default. It does not cover term/verbose behavior or wider session requirements, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the core purpose front-loaded and parameter behavior grouped logically. Every sentence contributes and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The ICS/export behavior and defaults are well covered, and an output schema exists for return values. However, with six optional parameters and no annotations, leaving term and verbose undefined creates a noticeable gap for an agent deciding how to fill in arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain all parameters. It adds real semantics and formats for generate_ics, export_ics_path, semester_start, and weeks, but term and verbose remain completely unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific action ('조회합니다' – retrieves) and target resource ('개인 수업시간표'), and enumerates the returned fields (subject, day, period, classroom, professor). No sibling tool targets timetable, so the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly positions this as the tool for retrieving a personal class schedule and explains the ICS/export behavior relevant to calendar use. It does not explicitly name alternative tools or provide exclusion rules, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_get_video_transcriptA
색인된 강의자료(material_id) 또는 로컬 동영상 경로의 자막/STT 전사를 타임코드 구간으로 조회합니다.
material_id_or_video_id가 로컬 색인 저장소(SQLite)에 존재하면 저장된 time:HH:MM:SS 청크를
사용하고, 존재하지 않으면 로컬 동영상 경로로 간주해 같은 파일명의 자막(.vtt/.srt) 또는 로컬
STT(faster-whisper/whisper)로 즉시 전사를 시도합니다. start_time/end_time(HH:MM:SS 또는
MM:SS)을 지정하면 해당 구간과 겹치는 청크만 반환합니다. STT 라이브러리 미설치 시
unsupported 상태와 사유를 반환하며, 원격 URL 다운로드나 외부 클라우드 API는 호출하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | ||
| start_time | No | ||
| material_id_or_video_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the fallback behavior (local video path if not indexed), the STT attempt with faster-whisper/whisper, the unsupported status when STT library is missing, and explicitly states it does not download remote URLs or call external cloud APIs. This is substantial behavioral disclosure beyond what annotations would provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but front-loaded with the core purpose, then systematically explains fallback, time filtering, and constraints. Every sentence adds value; there is no filler. Slightly long but appropriately detailed for a tool with nuanced behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (indexed vs local, STT fallback, time-range filtering) and the presence of an output schema, the description covers the key scenarios and error conditions (unsupported STT). It does not exhaustively cover edge cases like invalid local paths, but the main use cases are well documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the dual meaning of material_id_or_video_id (indexed ID or local path), and specifies the accepted time formats (HH:MM:SS or MM:SS) for start_time/end_time. It also clarifies how time ranges filter chunks. This adds meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves subtitles/STT transcripts for indexed lecture materials or local video paths, with optional time-range filtering. It uses a specific verb (조회/query) and resource (transcript), and while it doesn't explicitly name sibling tools, the scope is unambiguous and distinct from any other sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (when transcript of indexed material or local video is needed) and how it chooses between the two sources based on existence in the index. It does not mention alternatives or exclusions, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_index_learning_materialA
로컬에 이미 다운로드된 PDF/PPTX 파일을 읽어 페이지/슬라이드 단위로 텍스트를 추출하고 로컬 검색 인덱스에 반영합니다.
KLAS에는 어떤 것도 쓰지 않으며, klax_download_material로 받은 로컬 경로만 처리합니다. 동일 파일 내용(SHA256)이 이미 색인되어 있으면 재처리하지 않고 기존 결과를 반환합니다 (force_reindex=True로 강제 재처리 가능). PyMuPDF/python-pptx 미설치, 스캔본(텍스트 없음), 미지원 확장자는 각각 unsupported/needs_ocr 상태와 사유(error_reason)로 반환됩니다.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| semester | No | ||
| course_id | Yes | ||
| local_path | Yes | ||
| source_url | No | ||
| force_reindex | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does well: it discloses deduplication via SHA256 with existing-result return, the force_reindex=True escape hatch, and the unsupported/needs_ocr states with error_reason for missing libraries, scanned files, and unsupported extensions. This is rich edge-case transparency, though it omits the return payload shape and any permission/rate considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the primary purpose front-loaded in the first line. The following sentences earn their place by covering deduplication, force_reindex, and failure modes without redundancy. Appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Behavioral coverage is solid and an output schema exists, so return values need not be described. However, with 0% parameter coverage in the schema and a required course_id left unexplained, plus no explicit when-not-to-use guidance, the definition is not fully complete for a 6-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only explains two of six parameters: local_path (processes paths from klax_download_material) and force_reindex. The required course_id and the optional title, semester, and source_url are left entirely unexplained, creating a real gap for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource+action: reads locally downloaded PDF/PPTX files, extracts per-page/slide text, and reflects it into the local search index. It clearly distinguishes itself from siblings like klax_download_material (downloads) and klax_search_learning_materials (searches), and explicitly notes it does not write to KLAS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it only processes local paths obtained from klax_download_material and never writes to KLAS. However, it does not explicitly name sibling alternatives or state when-not-to-use, leaving the routing mostly implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_link_assignment_to_materialsB
과제 설명문에서 핵심 개념/요구사항을 분해하고, 색인된 교안(PDF/PPTX)에서 가장 관련 높은 슬라이드를 매핑합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | ||
| top_k_per_req | No | ||
| assignment_text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It doesn't disclose important behavioral aspects: how the decomposition works, whether it actually modifies anything (it appears read-only but not stated), the reliability of the mapping, or the format of the response. For a tool that likely requires indexed materials (prerequisite: materials must be indexed), it doesn't mention this dependency. An agent might call it without knowing materials need to be pre-indexed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the main action. It avoids unnecessary details. However, it could be slightly structured to separate purpose from parameter implications, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mapping assignment to slides) and the presence of an output schema, the description lacks critical context. It doesn't explain the necessity of having indexed materials (a prerequisite likely satisfied by klax_index_learning_material). It doesn't clarify the role of top_k_per_req or the output format. There are sibling tools like klax_build_assignment_checklist that seem related, and the description doesn't differentiate. Overall, an agent would have many unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It mentions course_id and assignment_text implicitly as inputs, but doesn't clarify their formats. The third parameter, top_k_per_req, is not mentioned at all. The description doesn't explain how 'top_k_per_req' affects output. This is a significant gap because the parameter is non-obvious and has a default. The baseline for 0% coverage is high, and the description barely compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: decomposing assignment text and mapping to relevant slides from indexed materials. It specifies the input (assignment explanation) and output (mapped slides). It distinguishes itself from materials list or search tools by focusing on linking assignment to specific slides. However, it could be more explicit about the exact output structure, but the purpose is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that it is used when a user has an assignment and needs to find relevant materials. It doesn't explicitly say when not to use it or name alternatives. For example, it doesn't contrast with klax_search_learning_materials or klax_build_assignment_checklist. Without explicit exclusions, the agent might use it inappropriately, but the context is somewhat inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_list_coursesB
현재 학기(또는 지정 학기)의 수강 과목 목록(과목명, 과목코드, 담당교수, 분반)을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | ||
| verbose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is a read operation (조회) and lists the output fields, but it doesn't disclose whether the term parameter is required, what happens if no term is specified, whether the data is cached, or any authentication requirements. For a read tool with zero annotation coverage, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose and lists the output fields. It's efficient with no wasted words, though it could benefit from a brief note about the term format or verbose parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are documented elsewhere. However, with 0% schema description coverage, two parameters (term and verbose) are only partially explained, and there's no guidance on term format or verbose behavior. For a simple list tool, this is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented parameters. The description mentions '지정 학기' (specified term), which maps to the 'term' parameter, but it doesn't explain the expected format (e.g., '2024-1' vs '2024년 1학기') or what the 'verbose' boolean controls. The description adds some meaning for 'term' but leaves 'verbose' completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it retrieves a list of courses for the current (or specified) term, including course name, code, instructor, and section. This is a specific verb+resource combination that distinguishes it from sibling tools like klax_get_timetable or klax_get_syllabus, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'current term (or specified term)' and the optional term parameter, but it doesn't explicitly state when to use this tool versus alternatives like klax_get_timetable or klax_get_syllabus. There's no exclusion guidance or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_list_learning_materialsA
로컬에 색인된(또는 색인 시도된) 강의자료 목록과 처리 상태(pending/processing/completed/failed/unsupported)를 조회합니다.
KLAS 원격 조회가 아닌 로컬 색인 저장소(SQLite) 조회이며, status를 지정하면 해당 상태로만 필터링합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| course_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose that the operation reads a local SQLite index (not remote), and enumerates the status values (pending/processing/completed/failed/unsupported). However, it omits what happens for materials that failed or are unsupported, whether any authentication is needed, and what the returned payload looks like. Adequate but minimal for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words. The core purpose is front-loaded in the first sentence, and the filtering behavior is stated in the second. It is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema is present, so return-value documentation is covered elsewhere. The description conveys the tool's scope (local index), the status taxonomy, and the filter behavior, which is the essential context for a list-type tool. The main omission is course_id semantics, but overall this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain status semantics ('if status is specified, filters to only that status') and lists valid status values, which adds meaning beyond the bare schema. But course_id — the only required parameter — is never explained in the description, leaving a gap for the required field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (조회합니다, 'retrieves') and a precise resource: the locally indexed learning-materials list plus its processing status. It also scopes the operation as a local SQLite query rather than a remote KLAS lookup, which adds clarity. However, it never differentiates itself from the near-identically named sibling klax_list_materials, so the agent cannot reliably tell the two apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one useful usage signal: it is explicitly NOT a remote KLAS query but a local index lookup, and states that specifying status filters results. But it names no sibling alternatives and gives no guidance on when to choose this tool over klax_list_materials, klax_search_learning_materials, or klax_search_course_materials. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_list_materialsC
특정 과목의 강의 자료실 게시글과 온라인 강의 콘텐츠에 직접 첨부된 자료(예: 컴퓨터그래픽스의 실습 파일)를 병합한 목록과 첨부파일 ID(atchFileId)를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the merging behavior and return of atchFileId, which is useful. However, it does not state that this is a read-only operation, nor mention pagination, limits, or any side effects. For a query tool, this is acceptable but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that front-loads the core purpose and key output (atchFileId). No redundant or verbose phrasing; it efficiently communicates the essential behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and 0% schema coverage, the description is insufficient for an agent to correctly call the tool. It lacks parameter semantics, usage context (e.g., what yearhakgi means, whether verbose is needed), and any mention of response structure beyond atchFileId. An output schema exists but is not visible, so the description should compensate more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of any parameter (course_id, yearhakgi, verbose). It mentions 'specific course' but does not explicitly map it to course_id or explain the other parameters. This is a major gap given zero schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('조회' - retrieve) and a clear resource: a merged list of lecture materials from two sources (bulletin board posts and online content attachments) with attachment file IDs. This clearly distinguishes it from generic list tools, though it doesn't explicitly name sibling tools to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for a specific course ('특정 과목의') and describes what it returns, but gives no explicit guidance on when to choose this over alternatives like klax_search_course_materials or klax_list_learning_materials. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_refresh_sessionA
KLAS 세션 쿠키를 강제로 재발급받아 로컬 캐시를 갱신합니다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly states that the tool forces a new session cookie and updates local cache, but it does not disclose side effects such as invalidating the previous session, authentication requirements, or possible failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence that front-loads the action and states the outcome. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-annotation maintenance action with an output schema, the description covers the core operation and its effect. It is slightly incomplete in not saying when the refresh is appropriate, but the lack of parameters and presence of an output schema lower the burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is complete by definition. The description does not need to add parameter semantics, so the no-parameter baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (forcefully reissuing the KLAS session cookie) and a clear resource/effect (refreshing local cache). This distinguishes it from all sibling tools, none of which is a session-refresh operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to call this tool, such as after an expired auth status, when the session cookie is stale, or before making other KLAS requests. It also does not mention alternatives or prerequisites like needing an existing valid session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_search_course_materialsA
과목의 강의계획서 주차별 내용과 자료실 게시글 제목을 로컬 검색 인덱스(SQLite FTS)에 색인한 뒤 질의어로 검색하여 출처(과목/유형/제목)가 표시된 결과를 반환합니다.
외부 API나 임베딩 서비스로 전송하지 않는 로컬 전용 검색이며, 다른 과목 자료는 결과에 포함되지 않습니다 (권한 인식 검색).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| course_id | Yes | ||
| yearhakgi | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses local-only SQLite FTS indexing, no external API/embedding transmission, permission-aware scoping, and the format of returned results. It does not fully explain whether indexing happens as a side effect on each call, but it is substantially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are used efficiently: the first states the core operation and output, the second adds meaningful behavioral constraints. There is no filler, and the most identifying information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough context for an agent to understand the tool's purpose, scope, and local/permission-aware behavior. However, it leaves gaps around parameter semantics, whether indexing must be performed beforehand, and how it relates to sibling tools like klax_search_learning_materials or klax_index_learning_material.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only loosely hints at 'query' and 'course' without mapping them to parameter names. Most importantly, 'yearhakgi' is completely unexplained, and 'limit' receives no semantic guidance. The description does not compensate for the schema's lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: searching locally indexed course syllabus weekly contents and material room post titles, then returning results with source info. It also differentiates from generic or cross-course search tools by explicitly noting permission-aware, course-scoped results that exclude other courses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when searching course-specific materials locally and mentions constraints like no external APIs and no cross-course results. However, it does not explicitly name alternatives, state when not to use it, or mention prerequisites such as prior indexing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_search_learning_materialsA
색인된 강의자료(PDF/PPTX/HWPX/동영상) 청크를 로컬 FTS로 검색하고 각 결과에 locator, source_url, retrieved_at, freshness를 포함해 반환합니다.
locator 형식은 자료 종류에 따라 다릅니다: PDF는 page:N, PPTX는 slide:N, HWPX는
section:N, 동영상 자막/전사는 time:HH:MM:SS입니다. time: locator가 있는 결과는
klax_get_video_transcript(material_id, start_time, end_time)로 해당 구간 전문을 조회할 수 있습니다.
검색 범위 내에 색인 실패/미지원/처리중 자료가 있으면 partial_failure=True와 사유 목록을 함께 반환해
결과가 불완전할 수 있음을 명시합니다. 외부 API나 임베딩 서비스로 전송하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| course_id | No | ||
| material_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers: local FTS with no transmission to external APIs/embedding services, partial_failure=True with a reason list when indexing-failed/unsupported/processing materials are in scope, and material-type-dependent locator semantics. These are exactly the non-obvious behaviors an agent needs to interpret results and anticipate incomplete output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with purpose front-loaded, and every sentence earns its place: search scope, locator contract with follow-up route, and failure/privacy behavior. No filler or redundant restating of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and 0% schema coverage, the description covers the hard parts — partial-failure contract, per-type locator semantics, privacy behavior, and transcript follow-up path — while the existing output schema covers return values. The remaining gaps are the undocumented limit/course_id semantics and the unaddressed overlap with klax_search_course_materials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so partially — the corpus and material-type enumeration give meaning to query and material_type, and locator rules are type-conditional — but limit and course_id are never explained. The description adds valuable context but does not fully document all four parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — searches indexed lecture-material chunks (PDF/PPTX/HWPX/video) via local FTS — and enumerates the returned fields (locator, source_url, retrieved_at, freshness). The corpus enumeration and per-type locator contract make the purpose specific enough to distinguish it from the sibling search tools in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear search context and one routing hint (time: locator results can be fetched in full via klax_get_video_transcript), plus a local-only privacy note. However, it never says when to prefer this tool over the near-identical sibling klax_search_course_materials, nor states any exclusions, leaving the closest alternative unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_simulate_gradeA
강의계획서 평가비율과 현재 확보 점수를 이용해 목표 총점 달성에 필요한 잔여 평가 평균 점수를 역산합니다.
current_scores는 klax_get_syllabus의 evaluation_ratio와 동일한 키 (midterm/final/assignment/attendance/quiz/etc)를 사용하며, 아직 채점되지 않은 항목은 생략합니다. 공식 성적 예측이 아닌 가정 기반 시뮬레이션입니다.
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | ||
| yearhakgi | No | ||
| target_score | Yes | ||
| current_scores | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses that this is a simulation rather than an official prediction, that current_scores must align with klax_get_syllabus's evaluation_ratio keys, and that ungraded items should be omitted. This gives an agent a realistic sense of the tool's assumptions and limits, though it does not detail output structure or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences with no filler. It front-loads the main purpose, then adds the key-mapping detail and the important caveat that this is not an official prediction. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculation tool, the description covers the essential context: the inputs, the relationship to the syllabus, the handling of ungraded items, and the assumption-based nature of the result. An output schema exists, so return-value details are not required. The only minor gap is the unexplained optional yearhakgi parameter, but it is not critical to understanding the tool's core behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics for current_scores by specifying the key alignment with klax_get_syllabus and the omission rule for ungraded items. However, it leaves yearhakgi unexplained and does not clarify the numeric scale of current_scores or target_score beyond the general 'total score' context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation: back-calculate the remaining average score needed to hit a target total, using syllabus evaluation ratios and current scores. It also distinguishes itself from official grade prediction by explicitly labeling the result an assumption-based simulation, which separates it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the context: use when you have syllabus evaluation ratios and current secured scores and want to know what remaining average is needed. It also warns that this is not an official grade prediction, providing a clear exclusion. It does not name alternative tools, but no sibling appears to offer the same simulation capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_submit_quiz_answerA
생성된 퀴즈(quiz_id)에 대한 답안(user_answer, options 배열의 인덱스)을 채점합니다.
채점 결과(정답 여부, 정답 인덱스, 해설)를 반환하고, 결과에 따라 에빙하우스 망각곡선 기반 복습 큐(review_queue)의 간격을 SM-2 변형 알고리즘으로 자동 갱신합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| quiz_id | Yes | ||
| user_answer | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the side effect of automatically updating the review queue interval using the SM-2 variant algorithm, and mentions it returns grading results. However, it does not address error handling, idempotency, or authentication requirements, which are relevant for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the core action, and the second explains the return and side effect. It is front-loaded with the primary purpose and contains no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and only two parameters, the description covers the essential purpose, the side effect on the review queue, and a key parameter clarification. It lacks explicit error conditions or additional behavioral details, but these are not critical given the simplicity and the presence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining that user_answer is the index in the options array, which the schema does not provide. quiz_id is self-explanatory as the identifier of the generated quiz. This adds meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool grades a user answer for a quiz, specifying the verb (grade), resource (quiz answer), and key input semantics (user_answer is an index into the options array). It also mentions the return of grading results and the side effect on the review queue, which distinguishes it from sibling tools like quiz generation or review queue retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you have a quiz_id and a user answer) and clarifies the input format. However, it does not explicitly state alternatives or exclusions, though the context makes it clear this is for submitting answers, not for generating quizzes or retrieving the queue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_tutor_conceptC
소크라테스식 점진적 힌트 사다리(Hint Ladder, 1~3단계)를 통해 학생의 개념 이해도를 점검하고 유도합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | ||
| hint_level | No | ||
| user_answer | No | ||
| context_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the hint ladder levels (1-3) but does not disclose what the tool actually does with user_answer, context_text, or what the output looks like. It is unclear whether this is interactive, what the response structure is, or any side effects. This is a significant gap for a tutoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose and method without any filler. It is appropriately sized for the tool's apparent simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (1 required) and an output schema, the description is incomplete. It lacks parameter semantics, usage context, and any behavioral detail. An agent would not know how to set hint_level, user_answer, or context_text, or what the response will be. The output schema exists but its content is not described, so the description must compensate and fails to do so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It only references 'concept' implicitly through the hint ladder and does not explain hint_level, user_answer, or context_text at all. The agent has no guidance on how to fill these parameters beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'checks and induces student's conceptual understanding' via a 'Socratic progressive hint ladder (levels 1-3)'. It is clear about the tool's core function and method. It does not explicitly contrast with sibling tools like quiz generation or submission, but the purpose is distinct enough for an agent to infer its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you want to check conceptual understanding through hints. However, it provides no explicit guidance on when to choose this tool over alternatives such as klax_generate_quiz or klax_submit_quiz_answer, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klax_write_study_note_htmlA
모델이 교안 원문을 읽고 작성한 구조화된 note JSON을, 출처 locator 검증 후 로컬 단일 HTML 학습 노트로 저장합니다.
note 필수 필드: title, overview, sections[]. 각 섹션에는 title, explanation, why_it_matters, source_locators(page:N/slide:N 등)가 필요합니다. 이 도구는 LLM/API를 호출하지 않고 HTML만 렌더링하며, locator가 색인 자료에 없으면 저장을 거부합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| course_id | Yes | ||
| output_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool does not call LLM/API, only renders HTML, rejects saving if locators are not in the index, and writes a local file. This is thorough behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences in Korean, front-loaded with the main purpose, then behavioral details. Each sentence adds value with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested note parameter and the output schema presence, the description covers the note structure, validation behavior, and local write. It could mention error cases beyond locator rejection, but that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It details the required structure of the note object (title, overview, sections with title, explanation, why_it_matters, source_locators) and gives locator examples. It does not explain course_id or output_path, but their names are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (save), a concrete resource (local single HTML study note), and a distinguishing process (validating source locators before saving). This clearly separates it from siblings like klax_generate_study_guide_html, which generates a guide rather than persisting a pre-built note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for saving a structured note after the model writes it, and it explicitly notes that it does not call LLM/API, implying it is a local renderer. However, it does not explicitly name alternatives or state when not to use it.
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.
31 tool updates
v0.1.0- First observed
klax_analyze_material_links - First observed
klax_auth_status - First observed
klax_build_assignment_checklist - First observed
klax_download_material - First observed
klax_extract_pdf_links - First observed
klax_generate_quiz - First observed
klax_generate_study_guide_html - First observed
klax_get_assignment_feedback - First observed
klax_get_attendance_status - First observed
klax_get_daily_briefing - First observed
klax_get_deadlines - First observed
klax_get_learning_excerpt - First observed
klax_get_lecture_progress - First observed
klax_get_overview - First observed
klax_get_review_queue - First observed
klax_get_study_plan - First observed
klax_get_syllabus - First observed
klax_get_timetable - First observed
klax_get_video_transcript - First observed
klax_index_learning_material - First observed
klax_link_assignment_to_materials - First observed
klax_list_courses - First observed
klax_list_learning_materials - First observed
klax_list_materials - First observed
klax_refresh_session - First observed
klax_search_course_materials - First observed
klax_search_learning_materials - First observed
klax_simulate_grade - First observed
klax_submit_quiz_answer - First observed
klax_tutor_concept - First observed
klax_write_study_note_html
TDQS
Scored across 31 tools
Most tools target a distinct resource and action, but there are several closely related pairs such as extract_pdf_links vs analyze_material_links, list_materials vs list_learning_materials, and search_course_materials vs search_learning_materials. The detailed descriptions help clarify boundaries, but an agent could still easily misselect among the overlapping material, search, and summary tools.
The klax_ prefix and verb_noun style are applied consistently across nearly all tools, such as list_courses, get_deadlines, download_material, and generate_quiz. Minor exceptions like klax_auth_status and klax_tutor_concept deviate from the strict verb-first pattern, but the overall naming scheme remains predictable.
With 31 tools, the server is above the 25-tool threshold and feels heavy for a single MCP. Several tools are variations on material handling, searching, and summary generation, so the set could likely be consolidated without losing core functionality.
The tool set covers the main KLAS workflows—courses, deadlines, attendance, timetable, syllabus, and materials—plus a coherent local study loop of downloading, indexing, searching, quizzing, reviewing, and generating study plans. Minor lifecycle gaps exist, such as no unindex/delete for local materials and no listing of generated quizzes or notes, but agents can generally work around them.
Maintenance
Related MCP Connectors
Your personal data for AI — Telegram, bank, courses, Zoom & more, scoped to you.
Governed memory and workspace for any AI: tasks, calendar, mail and pages, with per-action consent.
- openhelmOAuthai.openhelm
Autonomous cloud agent tasks: real browser + your tools, structured evidence-backed results.
Give your AI hands. Identity, credential vault, and API gateway for autonomous agents.
Related MCP Servers
- -licenseCqualityNot gradedmaintenanceEnables AI assistants to interact with Hangzhou Dianzi University's academic system through automatic login and course schedule retrieval. Supports secure authentication and structured academic data access for HDU students.2-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access Chung-Ang University's e-class platform, including dashboard, daily briefing, course details, VOD links, and smart file download.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with Moodle LMS, fetching assignments, grades, deadlines, course content, and syncing to Obsidian, with WhatsApp alerts and class-slot filtering.-
- AlicenseAqualityAmaintenanceRead-only MCP server that lets Jeonbuk National University students query their LMS in natural language, covering daily briefings, deadlines, announcements, assignments, and course materials while keeping credentials local.2522 npmMIT