klas-mcp
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., "@klas-mcpWhat deadlines are due this week?"
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.
klas-mcp
광운대학교 학사관리시스템(KLAS) 연동을 위한 Model Context Protocol (MCP) 서버입니다.
Claude Desktop, Cursor, Hermes Agent 등 다양한 AI 에이전트에서 학사 일정, 과제 마감, 온라인 강의 진도율, 강의 자료실 다운로드를 안전하게 자동화할 수 있습니다.
🌟 주요 특징
자가 치유 세션 브릿지 (Self-Healing Session)
평상시에는 가벼운 비동기 HTTP(
httpx) 통신을 수행하여 초고속으로 데이터를 조회합니다.KLAS 세션이 만료되면 백그라운드에서 격리된 Playwright 헤드리스 브라우저가 자동 기동되어 세션을 복구합니다.
보안 자격증명 격리 (Credential Security)
학번과 비밀번호를 LLM 프롬프트나 로그에 일체 노출하지 않습니다.
OS Keychain(
keyring) 또는 권한0600격리 파일을 통해 안전하게 보관됩니다.
다운로드 안전 가드 (Path Traversal Guard)
강의 자료실 첨부파일을 다운로드할 때 시스템 루트 탈출을 원천 방어하며, SHA256 해시값과 로컬 경로를 LLM에 전달합니다.
Related MCP server: SABIS MCP Server
🚀 빠른 시작
1. 설치 및 브라우저 준비
# uv 사용 시 (권장)
uv pip install -e .
uv run klas-mcp setup2. 자격증명 설정
대화형 CLI를 통해 1회 안전하게 학번과 비밀번호를 등록합니다:
uv run klas-mcp configure3. 상태 확인
uv run klas-mcp status🔌 MCP 클라이언트 연동 가이드
1. Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"klas": {
"command": "uvx",
"args": ["--from", "/Users/goonbam/hermesWorkspace/projects/klas-agent", "klas-mcp"]
}
}
}2. Hermes Agent (~/.hermes/config.yaml)
mcp_servers:
klas:
command: "uv"
args: ["--directory", "/Users/goonbam/hermesWorkspace/projects/klas-agent", "run", "klas-mcp"]🛠️ 제공 도구 (Tools)
Tool 이름 | 설명 |
| 이번 주 할 일 요약 (수강 과목, 마감 임박 과제, 미수강 강의) |
| 현재 학기 수강 과목 목록 조회 |
| 과제 및 퀴즈 마감 일정 조회 |
| 특정 과목 온라인 동영상 강의 진도율 및 출석 마감 조회 |
| 강의 자료실 게시글 및 첨부파일 목록 조회 |
| 강의 자료 첨부파일 로컬 다운로드 (경로 및 SHA256 반환) |
| 로그인 상태 및 세션 유효성 진단 |
| 세션 쿠키 강제 재발급 및 갱신 |
Available Tools
8 toolsklas_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?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the tool does not expose passwords, which is a meaningful safety trait for an agent. However, it doesn't disclose whether the tool performs a live network check versus reading cached state, or what failure modes exist. The single safety disclosure adds value but leaves behavioral detail thin.
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 action, the target resource, and the key safety qualifier with no wasted words. Every element 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?
With zero parameters and an output schema present, the description covers the essentials. The only gap is usage context — a brief note about checking status before session refresh or before other KLAS operations would make it fully complete. As-is, it is adequate but leaves the agent to infer when to invoke it.
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 takes zero parameters, so there is nothing for the description to document beyond the baseline. The description appropriately confirms the tool operates on stored state without needing input, which is consistent with the empty schema. Baseline 4 for zero-parameter tools is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (진단/diagnoses) with a specific resource (stored KLAS credential configuration state and session validity), and adds a safety qualifier (password not exposed). The purpose is clearly distinct from all siblings, which deal with courses, materials, deadlines, and progress rather than authentication state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus its closely related sibling klas_refresh_session. An agent cannot tell whether to call this first to check status before refreshing, or how the diagnostic outcome should influence next steps. The context is implied but never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_download_materialA
강의 자료실 첨부파일을 로컬 디렉토리에 안전하게 다운로드하고 저장 경로 및 해시를 반환합니다.
| 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?
The description discloses the key side effect (writing to a local directory) and the integrity-oriented return value (hash), which is useful because no annotations are present. However, it does not explain overwrite behavior, destination defaults, authentication needs, or failure modes, and 'safely' is asserted without detail.
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 conveys the operation, target resource, destination, and result with no redundant clauses. Apart from the mildly vague 'safely', every component 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?
The presence of an output schema covers return-value structure, but the description still leaves material gaps: auth prerequisites, overwrite/destination defaults, and file_sn semantics. For a side-effecting download tool with no annotations, these gaps prevent fully confident 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% and the description adds no explicit parameter documentation. It loosely relates to destination_dir ('local directory') and overwrite ('safely'), but it does not explain the relationship between attachment_id and file_sn or when defaults apply.
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 action (download), a specific resource (lecture-material attachments), and the result (local save path plus hash). This clearly distinguishes it from sibling tools that list materials or fetch overview/auth/deadline data.
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 is implied by 'download material attachments', but there is no explicit when-to-use guidance, prerequisite step, or exclusion relative to siblings like klas_list_materials. An agent must infer when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '조회합니다' implies a read-only lookup, but the description does not state auth/session requirements, whether data is cached or live, or what happens when course_id is omitted beyond the all-courses implication.
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 Korean sentence states the operation, resource, and scope with no filler. It is appropriately sized for a one-parameter query 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?
With an output schema present, the definition does not need to describe return values. It covers the main query scope, but lacks context about when to prefer this over sibling tools and whether session/auth preparation is required, which is relevant given klas_refresh_session and klas_auth_status exist.
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 only exposes course_id with an empty default and 0% description coverage, so this dimension relies on the tool description. The phrase '전체 과목 또는 특정 과목' conveys the key optionality of the parameter, but it stops short of explicitly mapping course_id to 'specific course' or describing the expected ID format.
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 verb ('조회' / retrieve) and resource ('과제 및 제출 마감 일정' / assignment and submission deadline schedules), and clarifies the scope (all courses or a specific course). It is distinguishable from siblings like klas_list_materials or klas_get_lecture_progress, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to call this instead of klas_get_overview, klas_get_lecture_progress, or another sibling. The only usage signal is the implicit 'all or a specific course' scope in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_get_lecture_progressC
특정 과목의 온라인 동영상 강의 진도율 및 출석 마감 일정을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| 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?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It indicates a read-only query via '조회합니다' but says nothing about authentication needs, session freshness, empty-result behavior, or limitations. This is minimal disclosure for a query 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 compact sentence that front-loads the object and then specifies the retrieved data. There is no filler, redundancy, or irrelevant detail, making it appropriately sized for a simple query 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?
An output schema exists, so the return shape is presumably covered. However, the description does not help an agent choose between this tool and klas_get_deadlines or klas_get_overview, and yearhakgi remains semantically unclear. For a simple query this is close to viable, but it still has meaningful 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%, and the description adds little for parameters. '특정 과목' loosely maps to course_id, but the required parameter is never named, and yearhakgi is not explained at all, including the meaning of its default empty string. Agents are left to infer semantics from parameter names alone.
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 clear operation ('조회합니다' / retrieves) and a specific resource: a specific course's online video lecture progress rate and attendance deadline schedule. It is clear about the data domain, though it does not explicitly differentiate itself from sibling tools like klas_get_deadlines or klas_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?
There is no guidance on when to use this tool versus alternatives such as klas_get_deadlines or klas_get_overview, and no mention of prerequisites like authentication or how to obtain a valid course_id. The phrase 'specific course' only implies that a course must already be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_get_overviewB
광운대 KLAS 수강 과목, 마감 임박 과제, 미수강 온라인 강의 종합 현황을 한 번에 요약 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | 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?
No annotations are provided, so the description carries full behavioral burden. It conveys read-only intent through '조회', but it does not disclose that the KLAS session must be authenticated, what happens without one, or any limitation on freshness of the overview data. These are important for safe invocation.
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 identifies the tool's scope without fluff. It could be slightly improved by front-loading the exact subject covered, but the current structure is adequate and economic.
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 aggregates multiple domain concerns but the description does not explain how parameters shape the result, whether authentication is required, or what distinguishes it from the sibling functions in practical selection. The output schema helps with return values, but the context around invocation is incomplete.
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 either parameter. 'term' is left to the reader to interpret (semester code, academic year, or empty default), and 'deadline_days' is never connected to the mentioned '마감 임박' threshold.
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 (조회합니다) and names the exact scope: KLAS courses, imminent assignments, and unwatched lectures. By calling it a comprehensive summary, it clearly distinguishes the tool from narrower siblings such as klas_list_courses, klas_get_deadlines, and klas_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 phrase '종합 현황을 한 번에' implies this tool is for a broad dashboard-style overview rather than detailed lists. However, it never explicitly says when to prefer this over a sibling, and it provides no exclusion criteria or conditions for when a more specific tool should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_list_coursesA
현재 학기(또는 지정 학기)의 수강 과목 목록(과목명, 과목코드, 담당교수, 분반)을 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| term | 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 conveys a non-mutating '조회' (query) operation and the returned fields, but does not disclose auth requirements, term format, error behavior, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It states the action, resource, scope, and returned fields compactly, and the parenthetical adds term semantics without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and an output schema, the description gives enough to select and invoke it. The remaining gaps—term format and auth prerequisites—prevent it from being fully self-sufficient.
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 by distinguishing '현재 학기' (current semester) from '지정 학기' (specified semester), effectively explaining the optional term parameter's empty/current vs. specified behavior. It stops short of defining the exact term format.
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: '현재 학기(또는 지정 학기)의 수강 과목 목록 ... 조회' (retrieves enrolled course list for current/specified semester), and lists returned fields (course name, code, instructor, section). This clearly distinguishes it from sibling tools like klas_list_materials and klas_get_deadlines.
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 is implied: call it when a course list for the current or a specified semester is needed. However, it does not explicitly say when not to use it or mention alternatives such as klas_get_overview or klas_list_materials, so routing guidance is 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.
klas_list_materialsB
특정 과목의 강의 자료실 게시글 목록과 첨부파일 ID(atchFileId)를 조회합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 burden of behavioral disclosure. It does add meaningful behavior context: the tool returns a list of posts and attachment IDs, not file contents. However, it does not mention authentication requirements, pagination behavior, or any limitations about what is included in the results, so some behavioral gaps remain.
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, tightly scoped sentence with no filler. It front-loads the target resource and states the key output immediately, making it easy for an agent to scan and understand.
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?
Although output schema existsched, the description is too thin for a tool with no annotations and an unexplained optional parameter. It lacks any context about the expected authentication state, the meaning of yearhakgi, or how this tool relates to the sibling download tool, which is likely the next step after listing 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, but it only clarifies the course dimension ('특정 과목') for course_id. The optional yearhakgi parameter is completely unexplained in both the schema and the description, leaving a clear semantic gap for an agent trying to supply it correctly.
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 verb ('조회합니다' / retrieves), a clear resource ('특정 과목의 강의 자료실 게시글 목록'), and the key return element ('첨부파일 ID(atchFileId)'). This makes the tool's purpose distinct from siblings like klas_download_material, which would actually download the file, and klas_get_overview, which likely returns course overview information.
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 what the tool does but gives no guidance on when to use it versus alternatives such as klas_download_material or klas_get_overview. There is no mention of prerequisites, no 'when not to use', and no hint that the returned atchFileId can be used with the download tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
klas_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 must carry the full behavioral burden. It does say that the local cache will be updated and the session cookie reissued, which is useful, but it omits critical facts such as whether an existing session is invalidated, whether authentication is required beforehand, what happens on failure, and whether server-side side effects occur.
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 short, focused sentence delivers exactly the core action — session cookie reissue and local cache refresh — with no filler or redundant explanation. The description is appropriately sized for a simple, parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has zero parameters and an output schema exists, the description is mostly sufficient for making the call. However, because no annotations are present, the description still lacks important context about when forced refresh is appropriate and what risks or prerequisites exist, so it is only minimally 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?
The tool declares zero parameters and an empty input schema with 100% coverage, so there is no parameter ambiguity for the description to resolve. The baseline for zero-parameter tools is 4, and the description does not need to compensate.
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 on a specific resource: reissuing the KLAS session cookie and refreshing local cache. It is clearly distinct from the sibling tools, which are all read/list operations, because the verb 'refresh/reissue' and the cookie/cache resource are unique among them.
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 versus alternatives, such as 'when the session is expired' or 'instead of klas_auth_status'. Usage must be inferred from the name 'refresh_session' and the vague 'forcibly reissue' phrasing, with no prerequisites, conditions, or exclusions provided.
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.
8 tool updates
v0.1.0- First observed
klas_auth_status - First observed
klas_download_material - First observed
klas_get_deadlines - First observed
klas_get_lecture_progress - First observed
klas_get_overview - First observed
klas_list_courses - First observed
klas_list_materials - First observed
klas_refresh_session
TDQS
Scored across 8 tools
Each tool targets a distinct concern: course listing, deadlines, lecture progress, materials retrieval, download, and session/auth management. The overview tool aggregates other data but does not overlap functionally since it provides a high-level summary rather than detailed records.
Tool names follow a consistent klas_ prefix and mostly use verb_noun structure, such as list_courses, get_deadlines, and download_material. The only minor deviation is klas_auth_status, which lacks a verb, but it remains clear and fits the overall pattern.
Eight tools is well-scoped for a KLAS integration server, covering both information retrieval and session maintenance without redundancy. Each tool serves a clear purpose and the count feels appropriate for the domain.
The tool set covers the core read-only workflows: course overview, assignments, lecture progress, and materials download. Session refresh and auth status fill operational gaps, though there is no explicit tool for detailed assignment submission or announcements, but these are likely outside the server's intended scope.
Maintenance
Related MCP Connectors
- openhelmOAuthai.openhelm
Autonomous cloud agent tasks: real browser + your tools, structured evidence-backed results.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
- mcpweaveOAuthcom.mcpweave
Korea-native MCP gateway: Korean commerce, payments, messaging, gov & finance APIs for AI 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 gradedqualityCmaintenanceEnables AI assistants to securely retrieve academic grades and course information from Sakarya University's SABIS student information system through automated web scraping.2ISC
- AlicenseAqualityAmaintenanceEnables Korea University students to query their KUPID portal and Canvas LMS using natural language for notices, library seats, timetable, grades, courses, and assignments.3113MIT
- 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