Skip to main content
Glama

Server Details

숭실대학교의 모든 정보 제공과 자동화 에이전트 기능을 MCP 표준 도구로 제공하는 공개 서버

지속적으로 업데이트 및 기능 추가 중입니다

공개 도구 •학식 - 학생식당·도담식당·기숙사(레지던스홀)등 모든 식당 메뉴 및 식당정보 •시설 - 캠퍼스 내 카페·편의점·복사 등 검색 •도서관 - 좌석 실시간 조회 / 도서 검색 •공지사항 - 최신 공지 목록·키워드검색·학과별공지 등

개인 도구 요청시 로그인 URL을 받아 한 번 로그인하면 이후 모든 개인 도구를 사용 가능

•u-SAINT - 시간표, 성적, 채플 정보, 졸업요건, 장학금 내역 등 •LMS - 현재 학기 미제출 과제·퀴즈목록 등 •도서관 - 대출 현황 및 반납 기한(예약 현황 및 예약 자동화 에이전트 도입 예정)

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
17.0% over 72 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 52 tools

Disambiguation4/5

Tools are mostly distinct with clear purposes across domains like library, LMS, academics, and notices. Some overlap exists within library seat queries (get_library_available_seats vs get_room_available_seats vs get_library_seat_status) and academic policy tools, but descriptions help differentiate them.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (e.g., get_my_grades, prepare_reserve_library_seat, search_notices). The convention is uniform and predictable, making it easy to infer tool functionality from the name.

Tool Count2/5

With 52 tools, the server is heavily loaded. While it covers a wide range of campus services (auth, meals, library, LMS, academics, facilities), the sheer number exceeds typical well-scoped servers and may overwhelm agents. The count is justified by the breadth but still feels excessive.

Completeness4/5

The tool set covers most core student workflows: notices, meals, library seat management, LMS materials, grades, schedules, graduation checks, and authentication. However, there is a notable gap: search_library_book exists but no tool for borrowing or reserving books, which is a dead end for that workflow.

Available Tools

52 tools
cancel_library_waitA
Destructive
Inspect

아직 예약이 시작되지 않은 활성 도서관 좌석 대기 intent를 취소합니다. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive (destructiveHint=true), and the description aligns by explicitly saying it cancels an active wait. It adds useful context beyond annotations: the precise object being destroyed and the LIBRARY login requirement. No contradiction with annotations is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler. The main action and scope are front-loaded, and the session requirement is stated in a compact parenthetical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive tool, the description covers what is cancelled, when it applies, and the session/login requirement. However, with no output schema and a destructive operation, it omits the expected result and any required preceding steps such as prepare_cancel_library_seat or confirmation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully documents mcp_session_id as optional, with a clear fallback to the current MCP transport session. The description's statement 'mcp_session_id 필요' contradicts this optionality and could mislead an agent into treating the parameter as required. The login context adds some value, but the conflict is harmful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, '취소합니다' (cancel), and a clear resource: an active library seat wait intent whose reservation has not started. This distinguishes it from read-only siblings like get_library_wait_status and from wait_for_library_seat, though it does not 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear condition for use ('아직 예약이 시작되지 않은 활성 도서관 좌석 대기 intent') and a prerequisite ('mcp_session_id 필요(LIBRARY 로그인)'). It does not, however, mention alternatives or related workflow steps such as prepare_cancel_library_seat or confirm_action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_graduation_requirementsB
Read-onlyIdempotent
Inspect

인증된 학생의 u-SAINT 졸업 가능 여부와 졸업요건 충족 현황을 조회합니다. mcp_session_id 필요(SAINT 로그인).

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful context that this requires an authenticated SAINT session. It does not disclose return format or edge cases, but the annotation coverage lowers the burden, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that front-loads the tool's purpose (query graduation status) and includes the key prerequisite (mcp_session_id / SAINT login). There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only query with one optional parameter and comprehensive annotations, the description provides enough context for an agent to select and invoke the tool. However, with no output schema, it does not specify the shape of the graduation status result, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents mcp_session_id as optional with a bound-session fallback. The description adds that the session relates to SAINT login but does not add meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('조회합니다' / queries) and names a specific resource (graduation eligibility and requirement fulfillment in u-SAINT for authenticated students). It is clear about what the tool does, though it does not explicitly differentiate it from the sibling tool evaluate_graduation_with_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that a session ID is needed and ties it to SAINT login, but it gives no guidance on when to prefer this tool over alternatives like evaluate_graduation_with_policy or check_scholarship_policy. No exclusions or distinguishing usage scenarios are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_scholarship_policyB
Read-onlyIdempotent
Inspect

장학금 질문과 GPA·취득학점·입학연도·TOPIK을 공식 근거와 대조합니다. 기존 decision/matchedRequirements와 별도로 지원되는 외국인/TOPIK·백마 규칙의 deterministic tierEvaluation을 반환합니다.

NameRequiredDescriptionDefault
gpaNo직전학기 또는 누적 GPA. 장학별 산식이 다를 수 있어 evidence 확인 필요.
liveNotrue면 공식 원문을 live fetch. false/생략이면 빠른 seed corpus 검색.
limitNo반환할 근거 수. 기본 5, 최대 10.
queryNo장학금 질문. 예: 백마성적우수장학금 기준 알려줘.
topikLevelNoTOPIK 급수. 외국인 유학생 장학금 기준 확인에 사용.
admissionYearNo입학연도. 외국인 유학생 장학금 등 연도별 기준 확인에 사용.
earnedCreditsNo직전학기 취득학점.
internationalStudentNo외국인 유학생 장학금 여부.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive), so the description only needs to add behavioral context. It adds the facts that the comparison is against official grounds and that the returned tierEvaluation is deterministic. However, it does not describe live-fetch versus seed-corpus behavior or the shape of the returned evaluation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each earning its place: the first states the core comparison behavior, the second clarifies the deterministic output and separation from other decision outputs. The jargon ('tierEvaluation', 'decision/matchedRequirements') costs some clarity, but the text remains compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only policy-check tool with fully described parameters and strong annotations, the description is adequate but not complete. It tells the agent what the tool does and the general output, but leaves out usage conditions, output structure, and live-vs-seed behavior. No output schema exists to fill the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to re-document parameters. It does mention GPA, credits, admission year, and TOPIK, but adds no semantics beyond the schema; live, limit, query, and internationalStudent are only covered in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a concrete verb ('대조합니다') and names the resource (scholarship policy) plus the supported rule families (foreigner/TOPIK/Baekma). It distinguishes itself from 'existing decision/matchedRequirements', but those terms are not sibling tool names and are left undefined, so differentiation is only partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. The phrase '별도로 지원되는' hints at a separate path from other decision logic, but it does not tell an agent when to prefer this tool over siblings like get_my_scholarships or evaluate_graduation_with_policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

classify_academic_questionA
Read-onlyIdempotent
Inspect

학사 질문을 졸업/장학/학사일정/일반 규정 의도로 분류하고, 이어서 호출할 ssuMCP 도구를 추천합니다.

NameRequiredDescriptionDefault
queryYes분류할 학사 질문. 예: 복수전공 졸업 학점 조건 알려줘.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful behavioral context by naming the classification categories and the fact that it recommends a follow-up tool, which goes beyond the annotations. The lack of output-format detail is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and immediately states the classification categories and downstream recommendation behavior. There is no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a classification and recommendation tool, the description covers what the tool does and what it returns conceptually: intent labels and a recommended next tool. With no output schema, a bit more detail about the exact response shape would be ideal, but the description is still sufficiently complete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the single required 'query' parameter already has a description and an example. The tool description adds no further parameter-level detail, but none is necessary because the schema fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: classify an academic question into four specific intents and recommend the next ssuMCP tool to invoke. This distinguishes it from sibling data-retrieval and action tools, which do actual lookups or mutations rather than routing and classification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context clear: it is for academic questions that need intent classification and downstream tool selection. It does not explicitly state when not to use it or name alternative classifiers, but its unique role as a routing/recommendation tool is implied well enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_actionAInspect

SSU Campus(숭실대학교 캠퍼스)에서 준비된 사용자 승인 대기 액션을 최종 확인하고 실행합니다. 대기 중인 액션이 하나뿐이면 action_id 없이 그 액션을 실행합니다. 같은 좌석/예약을 다시 prepare하면 이전 대기 액션이 자동 무효화(superseded)되지만, 서로 다른 좌석 등 별개의 액션을 여러 개 prepare하면 각각 별도로 대기하며 이 경우 confirm_action은 실행하지 않고 대기 중인 action_id 목록을 안내합니다. 특정 액션을 지정하려면 prepare 응답의 actionId를 action_id로 전달하세요. prepare_reserve_library_seat(좌석 예약)는 예약 intent 큐를 통해 비동기로 접수만 하고 즉시 반환하며, 최종 결과는 get_library_wait_status로 확인합니다. prepare_cancel_library_seat(좌석 반납)와 prepare_swap_library_seat(자리 변경)는 직접 실행합니다. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
action_idNo확정할 액션 ID (prepare 응답의 actionId). 생략하면 현재 대기 중인 단일 액션을 확정합니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false, etc.), the description discloses crucial runtime behaviors: re-preparing the same seat/reservation auto-supersedes the pending action, distinct preparations queue independently and cause confirm_action to refuse execution, and the reserve flow is asynchronous while cancel/swap are synchronous. It also states the mcp_session_id/LIBRARY login requirement. These traits are not derivable from the annotations and materially affect how an agent should behave.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: core purpose, single-action default, supersede/multi-action edge cases, how to specify an action, async vs direct sibling flows, and auth requirement. The information is front-loaded with the main verb first and follows a logical order from simple to complex cases. No redundancy or filler, despite the length being justified by the tool's genuinely complex semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (superseding, multi-action ambiguity, async reservation flow) and the absence of an output schema, the description covers the behavioral contract very well. However, it does not describe what a successful execution returns (acknowledgment, status, error shape) or the edge case of no pending action at all. These are minor gaps for an executing tool, but an output schema or one more sentence on return values would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds workflow-level meaning beyond the schema: it explains the multi-pending-action case where action_id must be chosen from a returned list, and it ties action_id to the prepare-response actionId with context on superseding. It also clarifies that mcp_session_id is needed for LIBRARY login while the schema already covers the safe fallback binding. Genuinely useful, though the schema already carried much of the per-parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it '최종 확인하고 실행합니다' (finalizes and executes) user-approval pending actions prepared on SSU Campus. It clearly differentiates from siblings by naming the prepare_* tools (which create the pending actions), get_library_wait_status (which checks async results), and cancel_library_wait, so an agent can tell exactly which stage of the workflow this tool occupies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use rules: call without action_id when exactly one action is pending; do not call expecting execution when multiple distinct actions are pending (it returns a list of action_ids instead); pass the prepare response's actionId to target a specific action. It also routes the agent correctly across the workflow, noting that prepare_reserve_library_seat is async and requires get_library_wait_status for final results, while prepare_cancel/swap execute directly. This is unambiguous operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

confirm_lms_material_exportAInspect

대기 상태인 LMS 자료 내보내기 액션을 실행 승인합니다. 승인 성공 시 비동기 ZIP 압축 빌드 작업이 큐에 쌓이고, 20분간 유효한 capability URL 다운로드 링크가 반환됩니다. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
action_idNo확인할 미리보기 action ID. prepare 응답의 actionId를 전달하면 재시도도 멱등 처리됩니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-readOnly and non-destructive, and the description adds meaningful behavior beyond them: asynchronous ZIP build, queued job, 20-minute download link validity, and LMS-login/session requirement. This gives the agent a realistic model of what happens after approval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and communicates the core action and outcomes efficiently. However, the final 'mcp_session_id 필요' clause is redundant with and contradictory to the schema, so not every sentence fully earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async approval action with no output schema, the description covers the key outcomes: queued ZIP build, download capability URL, 20-minute expiration, and auth/session context. It is slightly incomplete because it does not explicitly name prepare_lms_material_export as the prerequisite step and contains the misleading session-required claim.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description's only parameter-related statement, 'mcp_session_id 필요', directly contradicts the schema's explicit optionality and fallback-to-current-transport behavior. It adds no useful parameter meaning and actively misleads about whether mcp_session_id must be supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: approving a pending LMS material export action. It also states the observable outcome (async ZIP build queued, 20-minute capability URL returned), which distinguishes it clearly from generic confirm_action and export_all_lms_materials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context: it applies to pending LMS export actions and requires an LMS session. The schema's note about passing the prepare response actionId reinforces the intended prepare-then-confirm flow. It does not explicitly say 'use after prepare_lms_material_export' or contrast itself with confirm_action, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_graduation_with_policyA
Read-onlyIdempotent
Inspect

인증된 학생의 u-SAINT 졸업요건 상태와 공식 학칙/졸업 안내 근거를 함께 반환합니다. mcp_session_id를 생략하면 현재 transport에 안전하게 바인딩된 세션을 사용합니다.

NameRequiredDescriptionDefault
liveNotrue면 공식 원문을 live fetch. false/생략이면 빠른 seed corpus 검색.
questionNo추가로 확인할 졸업 질문. 생략하면 졸업요건, 이수학점, 전공/교양 기준을 검색합니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds meaningful context: it requires an authenticated student, returns official regulation basis, and safely binds to the current transport session when mcp_session_id is omitted. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first front-loads the core purpose, and the second provides a useful default behavior. There is no filler or redundant expansion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives the core purpose and session behavior, but does not differentiate from the closely related sibling check_graduation_requirements. With no output schema, it also leaves the exact return shape somewhat underspecified, though 'status + official basis' gives a basic idea.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description only restates the mcp_session_id fallback already documented in the schema and adds no new meaning for live or question parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: returning an authenticated student's u-SAINT graduation requirement status together with official policy/regulation basis. It clearly conveys what the tool does, though it does not explicitly distinguish itself from sibling tool check_graduation_requirements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus check_graduation_requirements or other policy-related siblings. The only usage hint is the mcp_session_id fallback behavior, which concerns parameter handling rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_all_lms_materialsAInspect

사용자가 '모든 자료', '전체 과목', '다 다운로드' 등 전 과목 일괄 다운로드를 명시적으로 요청했을 때만 사용하세요. 특정 과목만 받으려는 일반 요청에는 사용하지 말고 get_my_lms_courses → prepare_lms_material_export 흐름을 따르세요. 현재 학기 전체 과목의 LMS 학습 자료(PDF, PPT, HWP, DOC 등)를 한 번에 수집하여 내보내기 미리보기를 반환합니다. 결과에는 과목별 파일 목록, 파일 수, 용량, 제외 항목이 포함됩니다. 확인 후 confirm_lms_material_export를 호출하면 ZIP 다운로드 링크가 발급됩니다. 비디오·오디오 파일은 용량 제한으로 자동 제외됩니다. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
term_idNo조회할 학기 ID. 생략 시 현재 활성 학기가 자동 선택됩니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse annotations, the description discloses that the tool returns a preview rather than a final ZIP, that confirmation is required to issue the download link, that video/audio files are auto-excluded due to capacity limits, and that an LMS session is required. This gives an agent a clear model of side effects and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition front-loads the most important routing gate, then states the alternative flow, output contents, follow-up action, exclusions, and auth requirement in a compact paragraph. It is dense but not bloated; the only minor redundancy is the session note already covered by the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent what the preview contains (per-course file list, count, size, excluded items) and what happens next (confirm_lms_material_export → ZIP link). Together with the schema and sibling names, all call-relevant context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters at 100% coverage, including term_id fallback and mcp_session_id optional binding, so the baseline applies. The description's note 'mcp_session_id 필요' adds auth context but is slightly less precise than the schema's optional-session behavior and provides no new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific action and resource: collecting all courses' LMS materials in one batch and returning an export preview. It also clearly distinguishes itself from single-course material requests by naming the alternative flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with an explicit trigger condition ('only when the user explicitly asks for bulk download of all courses/materials') and an explicit when-not rule for single-course requests, directing agents to get_my_lms_courses → prepare_lms_material_export. It also names confirm_lms_material_export as the next step, so routing is fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_academic_calendar_eventsA
Read-onlyIdempotent
Inspect

숭실대학교 학사일정을 연도, 월, 키워드로 필터링해 반환합니다. 수강신청·개강·종강·시험 같은 일정 검색에 사용합니다.

NameRequiredDescriptionDefault
yearNo조회할 연도(예: 2026). 생략 시 현재 연도.
limitNo반환할 최대 일정 수. 기본 20, 최대 50.
monthNo조회할 월(1-12). 생략 시 전체 월.
keywordNo일정명 또는 카테고리 키워드. 예: 수강신청, 기말고사.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the filtering/scoping behavior but does not mention result ordering, pagination, empty-result behavior, or what fields the returned events contain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first states what the tool returns and how filtering works, and the second gives practical usage examples. There is no repetition, filler, or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, filtered-list tool, the description covers the key facts: resource, filters, and common use cases, and the schema documents all parameters. The main gap is the lack of explicit differentiation from get_academic_calendar and the absence of any mention of the returned event structure, though neither is strictly required for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are fully documented in the schema, so the baseline is 3. The description mostly restates 'year, month, keyword' filtering and provides examples already present in the keyword parameter description, adding no new semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('returns Soongsil University academic calendar events') and the filters ('year, month, keyword'), and it gives concrete use cases like course registration and exams. However, it does not explicitly distinguish this tool from the sibling get_academic_calendar, which appears to target the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: use it to search academic calendar events filtered by year, month, and keyword, especially for events like registration, class start/end, and exams. It does not, however, name alternatives or state when not to use it, leaving the comparison with sibling tools implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_academic_calendarA
Read-onlyIdempotent
Inspect

숭실대학교 학사일정을 조회합니다. 수강신청·중간/기말고사·방학 등의 주요 일정을 [{date, endDate, event, category}] 형태로 반환합니다. date는 시작일(ISO), endDate는 기간 일정의 종료일(ISO, 포함)이며 하루짜리 일정은 endDate가 null입니다. year를 생략하면 현재 연도를 사용합니다.

NameRequiredDescriptionDefault
yearNo조회할 연도(예: 2026). 생략 시 현재 연도.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly and idempotent behavior. The description adds meaningful detail beyond them: the exact return record shape, ISO date formats, the inclusive endDate semantics for multi-day events, and the null endDate for single-day events. This is strong behavioral disclosure, though it does not cover edge cases like empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: purpose first, then return format, then date conventions and default behavior. Each sentence earns its place and the structure is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one optional parameter, the description is complete: it explains what is returned, the shape of each record, the meaning of fields, and default year behavior. No output schema exists, but the description compensates fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the schema already documents the year parameter and its default. The description only repeats that default and adds no additional parameter semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('조회합니다' / retrieve) and resource ('숭실대학교 학사일정') and enumerates event types such as course registration, midterm/final exams, and vacations. However, it does not explicitly distinguish itself from the similarly named sibling find_academic_calendar_events, so it misses the differentiation needed for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for using the tool—academic calendar queries—and explains the optional year parameter. It provides no guidance on when to choose this tool over find_academic_calendar_events or any other sibling, leaving the when-not-to-use/alternatives dimension implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_academic_policy_briefA
Read-onlyIdempotent
Inspect

학사 질문에 대해 evidence에 근거한 answer/facts와 미확인 사항, 개정본 검증 상태가 포함된 citations를 분리해 반환합니다.

NameRequiredDescriptionDefault
liveNotrue면 공식 원문을 live fetch. false/생략이면 빠른 seed corpus 검색.
limitNo반환할 근거 수. 기본 5, 최대 10.
queryYes요약할 학사 질문.
categoryNo검색 범위: graduation, scholarship, academic 중 하나. 생략하면 전체.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds meaningful behavioral detail: it separates answer/facts from citations, reports unconfirmed matters, and includes revision verification status. This reveals output structure and caveats that annotations do not express. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that front-loads the purpose and then specifies the key output components. Every clause adds information: evidence basis, answer/facts separation, unconfirmed items, and revision verification status. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description does a good job of summarizing the return composition, but it remains high-level. It omits details about how the brief is structured, what filters like 'live' affect in terms of output confidence, and how this relates to sibling policy tools. Still, the core behavior is sufficiently conveyed for an agent to select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific guidance beyond echoing the 'query' concept ('학사 질문'). It does not explain nuance around 'live', 'limit', or 'category', but the schema fully covers those parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it returns an evidence-based academic policy brief with answer/facts and citations, including unconfirmed items and revision verification status. This clearly goes beyond the tool name. However, it does not explicitly differentiate itself from sibling search_academic_policy_sources or list_academic_policy_sources beyond implying synthesis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '학사 질문에 대해' implies the tool is for academic policy questions that need evidence-backed answers. Yet there is no explicit when-to-use vs alternatives guidance, such as when to choose this over check_graduation_requirements, evaluate_graduation_with_policy, or search_academic_policy_sources. Usage context is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_active_noticesA
Read-onlyIdempotent
Inspect

진행중(마감 전) 공지만 반환합니다. 마감 임박 공지나 현재 신청 가능한 공지를 확인할 때 유용합니다.

NameRequiredDescriptionDefault
categoryNo카테고리 필터 (선택).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying the active/deadline filter, but it does not mention ordering, pagination, or whether the result includes all notice fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no redundant wording. The core behavior is front-loaded, and the practical use case adds value without bloating the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter, the description covers the core behavior and intended use. The absence of an output schema makes return details unspecified, but the tool's simplicity and annotations make this acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the optional category parameter is already documented in the schema. The description adds no new parameter-level guidance, but the schema is sufficient; hence the baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: it returns only ongoing notices (before deadline). This distinguishes it from siblings like get_recent_notices, which return notices without the active-status restriction. The use case of checking imminent-deadline or currently applicable notices further clarifies its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for use: when you need active, not-yet-closed notices. It implies the distinction from broader notice-retrieval tools, though 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.

get_auth_statusA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스)의 현재 인증 세션 상태를 반환합니다. 'status' 필드는 다음 중 하나입니다: OK (세션 유효 — 각 provider의 'linked' 값을 확인하세요); INVALID_SESSION (mcp_session_id가 전달됐지만 잘못됐거나 만료됨 — start_auth로 새로 발급받으세요. 로그인 실패로 처리하지 마세요); NO_SESSION (아직 mcp_session_id가 전달되지 않음). 인증 도구 호출 전에 이 도구를 먼저 호출하면 불필요한 AUTH_REQUIRED 재시도를 줄일 수 있습니다. 세션은 데이터베이스에 저장되어 서버 재시작 후에도 유지됩니다.

NameRequiredDescriptionDefault
mcp_session_idNostart_auth로 발급받은 MCP session ID. 없거나 유효하지 않으면 모든 provider가 미연동으로 표시됨.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotentHint annotations, the description adds valuable behavioral details: the exact status enum, the distinction between missing and invalid session IDs, and the fact that sessions persist across server restarts via the database. No contradictions with annotations exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact but information-dense: it front-loads the purpose, then systematically explains all status values, practical usage guidance, and persistence behavior. Every sentence contributes meaning without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by explaining the status field and the linked field for providers. It also covers the key operational context—when to call it, what each status means, and how to recover from an invalid session—making it sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents mcp_session_id and covers 100% of parameters, so the baseline is 3. The description adds meaning by tying the absence or invalidity of the parameter directly to the NO_SESSION and INVALID_SESSION statuses, which goes beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the current authentication session status for SSU Campus, which is a specific verb and resource. It also distinguishes itself from sibling auth tools like start_auth and logout_all by enumerating the exact status values and their meanings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent to call this tool before invoking other authentication tools to reduce unnecessary AUTH_REQUIRED retries. It also directs the agent to start_auth when INVALID_SESSION occurs and warns not to treat that state as a login failure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_department_noticesA
Read-onlyIdempotent
Inspect

특정 학과/부서 공지만 반환합니다. 예: '컴퓨터학부', '장학팀', '국제팀', '소프트웨어학부'.

NameRequiredDescriptionDefault
pageNo페이지 번호 (기본 1).
departmentYes학과/부서 이름. 예: 컴퓨터학부, 장학팀, 소프트웨어학부.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety with readOnlyHint, idempotentHint, and destructiveHint. The description adds the useful scoping behavior that only department-specific notices are returned, but it does not disclose output format, ordering, pagination behavior beyond the page parameter, or behavior for unknown department names. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with concrete examples, no filler, and the core scoping information front-loaded. It earns its place by showing realistic department values.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only, idempotent tool with full schema coverage, the description is sufficiently complete. It states the filter and provides input examples, though it could be stronger by mentioning alternatives or exact-match expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both page and department already having meaningful descriptions. The examples in the description largely duplicate the schema examples, adding only slight reinforcement of what values department can take.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns notices for a specific department/division, using a specific verb and resource, and gives concrete examples. It does not explicitly distinguish itself from siblings like search_notices or get_recent_notices, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '특정 학과/부서 공지만 반환합니다' implies this tool is for department-scoped notice retrieval, and the examples clarify valid inputs. However, it gives no explicit guidance on when to prefer this over alternatives such as search_notices, get_active_notices, or get_notice_detail.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dorm_weekly_mealA
Read-onlyIdempotent
Inspect

숭실대학교 레지던스홀(기숙사) 식당의 이번 주 주간 메뉴를 조회합니다. 7일치 조식/중식/석식과 휴무 정보를 함께 반환합니다.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent/non-destructive safety profile, so the description adds value by disclosing the result scope: seven days of breakfast/lunch/dinner plus closure information. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence states the resource, scope, and return contents with no filler. Every clause contributes information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only lookup with no output schema, the description is complete: it names the exact cafeteria, the week period, the meal types, and the closed-day information. An 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is empty, so there are no parameter semantics for the description to clarify. Under the rubric, zero parameters earns a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('조회합니다') and a specific resource: Soongsil University Residence Hall cafeteria's weekly menu. It also specifies the time scope ('이번 주'), which helps distinguish it from generic meal tools, though it does not explicitly name sibling alternatives like get_meal_by_date or get_today_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool is appropriate: retrieving the dormitory cafeteria's current-week menu, including seven days of meals and closure info. It does not provide explicit when-not-to-use guidance or name alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_library_available_seatsA
Read-onlyIdempotent
Inspect

숭실대학교 도서관 전체 열람실(7개)의 예약 가능 좌석을 실시간으로 조회합니다. 열람실별로 이용 가능한 좌석 수, externalSeatId 목록, 좌석 번호 목록을 반환합니다. 이석(away) 상태인 좌석(자리 비움, 곧 반납될 수 있음)도 함께 표시됩니다. externalSeatId는 prepare_reserve_library_seat 호출 시 사용합니다. compact=true이면 좌석 ID 배열을 생략하고, offset/limit(최대 200)으로 열람실별 배열 크기를 제한할 수 있습니다. truncated/hasMore 메타데이터를 확인하세요. 전체 현황 파악 후 특정 열람실 세부 현황은 get_room_available_seats로 조회하세요. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
limitNo열람실별 최대 반환 좌석 수(1~200).
offsetNo열람실별 이용 가능 좌석 배열 시작 위치(0 이상).
compactNotrue이면 열람실별 좌석 ID/번호 배열을 생략합니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral detail beyond those: it returns away-status seats, explains compact/truncated/hasMore semantics, notes real-time nature, and clarifies that externalSeatId is consumed by a related reservation tool. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and front-loaded: it opens with the core purpose, then lists return contents, parameter behaviors, metadata flags, the alternative sibling tool, and authentication requirement. Each sentence carries distinct useful information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description fully compensates by specifying return fields (available count, externalSeatId, seat numbers, away seats, truncated/hasMore), auth requirements, pagination, and how the result connects to reservation workflows. An agent has enough context to call this tool and interpret its response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description meaningfully extends parameter understanding: it defines limit's maximum as 200, specifies that limit/offset apply per-room arrays, explains that compact=true omits seat ID/number arrays, and describes mcp_session_id fallback behavior. This goes well beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it querys real-time reservable seats across all 7 library rooms at Soongsil University, returning per-room available counts, externalSeatId lists, and seat numbers. It also explicitly distinguishes itself from get_room_available_seats by framing this as the whole-library overview tool, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: use this for overall library seat availability, then follow up with get_room_available_seats for detailed views of a specific room. It also mentions that externalSeatId feeds into prepare_reserve_library_seat and that mcp_session_id requires LIBRARY login, giving both workflow and prerequisite guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_library_seat_catalogA
Read-onlyIdempotent
Inspect

스크린샷으로 구축한 숭실대학교 도서관 열람실·좌석 배치도 정적 카탈로그를 반환합니다. 실시간 좌석 현황은 포함하지 않으며 인증도 필요하지 않습니다. LLM이 간단한 텍스트 기반 층별 배치도가 필요할 때는 include_layout=true를 사용하세요. 인증 불필요.

NameRequiredDescriptionDefault
room_codeNoroomCode 필터(선택), 예: open-reading-2f.
floor_codeNo층 필터(선택): B1, 2F, 5F, 6F 또는 숫자 2/5/6.
include_layoutNocompact textLayout 라인 포함 여부. 기본 false.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds meaningful context beyond this: the catalog is a static snapshot (not real-time), the data source is screenshots, and no authentication is required — information that shapes an agent's expectations about freshness and invocation prerequisites. This exceeds the minimal safety-only coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The four-sentence Korean description is tightly written and front-loaded: the first sentence states the core purpose, the second sets exclusions, and the third gives parameter guidance. The only waste is '인증 불필요' (no auth required) repeated at the end after '인증도 필요하지 않습니다' in sentence two — a minor redundancy that prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only catalog tool with zero required parameters, fully documented schema, and comprehensive annotations, the description is nearly complete. It covers what the tool returns, what it excludes, authentication requirements, and one parameter's usage scenario. The only minor gap is that the default return format is not precisely described — 'built from screenshots' implies image or structured layout data, but the exact representation is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (room_code, floor_code, include_layout) with examples like 'open-reading-2f'. The description adds modest value by hinting at the purpose of include_layout for text-based floor layouts, but it adds nothing beyond the schema for room_code or floor_code. This matches the baseline-3 expectation for fully-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns a static catalog of Soongsil University library reading room/seat layout maps built from screenshots. It explicitly distinguishes itself from real-time sibling tools by stating '실시간 좌석 현황은 포함하지 않으며' (does not include real-time seat status), which separates it from get_library_seat_status, get_library_available_seats, and get_room_available_seats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when this tool is appropriate: when a static layout catalog is needed rather than real-time seat data, and notes that no authentication is required. It also instructs when to use the include_layout parameter ('LLM이 간단한 텍스트 기반 층별 배치도가 필요할 때'). However, it never names a specific alternative tool to use when real-time status IS needed, stopping short of the explicit routing the top tier demands.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_library_seat_statusA
Read-onlyIdempotent
Inspect

숭실대학교 중앙도서관의 현재 좌석 현황을 층별로 조회합니다. 응답에는 해당 층의 전체/이용 가능/예약/사용 불가 좌석 수와 구역별 분포가 포함됩니다. compact=true 지원. 좌석 집계는 공개 정보이며 인증이 필요하지 않습니다. 이 도구는 읽기 전용이며, 좌석 예약은 별도의 동작 도구로 분리되어 있습니다.

NameRequiredDescriptionDefault
floorYes조회할 도서관 층 코드. 가능한 값: 2 (2층), 5 (5층), 6 (6층).
compactNocompact=true: 전체/가용/예약 수치만 반환 (층 요약). compact=false(기본): 구역별 상세 포함.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and destructiveHint annotations, the description adds meaningful behavioral context: the seat aggregation is public, authentication is not required, the tool is read-only, and reservation is out of scope. It also describes the response contents, which helps an agent understand what to expect. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured: purpose first, then response contents, then compact behavior, then auth and reservation notes. It is concise, though the read-only note and compact=true support partly repeat what annotations and schema already provide.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only status lookup with no output schema, the description provides enough: it explains what the response includes, states that no authentication is required, and clarifies scope. Combined with the 100% schema coverage, an agent can select and invoke the tool correctly without missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents the floor values and the compact parameter behavior. The description only repeats that compact=true is supported without adding meaning beyond the schema, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation: retrieving current library seat status by floor, and specifies the response contents (total/available/reserved/unavailable counts and area distribution). It is clear and specific, but it does not explicitly differentiate from sibling tools such as get_library_available_seats or recommend_library_seats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful usage context: the data is public, no authentication is needed, the tool is read-only, and seat reservation is intentionally kept in separate action tools. It does not name the specific alternative tools, but it does provide an explicit exclusion for reservation-related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_library_wait_statusA
Read-onlyIdempotent
Inspect

도서관 좌석 대기/예약 intent 상태를 조회합니다. intent_id를 생략하면 가장 최근 intent를 반환합니다(대기 intent가 하나뿐인 일반적인 경우에 사용). confirm_action으로 접수된 좌석 예약처럼 여러 intent가 동시에 진행 중일 수 있는 경우, confirm_action 응답에 포함된 intentId를 intent_id로 지정해 특정 intent의 결과를 확인하세요. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
intent_idNo조회할 특정 intent ID (confirm_action/wait_for_library_seat 응답의 intentId). 생략하면 가장 최근 intent를 반환합니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description adds complementary context: default behavior (most recent intent), the possibility of concurrent intents from confirm_action, and the authentication requirement (LIBRARY login). The 'mcp_session_id 필요' phrasing is slightly ambiguous against the schema's optional marking, but in context it reads as 'a session with LIBRARY login is required' rather than 'this parameter is mandatory.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero redundancy: purpose first, then the default behavior, then the exception case and auth note. Every sentence earns its place and the most decision-relevant information (when to omit vs. specify intent_id) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Invocation semantics are fully covered: default behavior, the multi-intent exception, and the authentication requirement. With no output schema, the description does not describe the response shape or possible status values, which is a minor gap for an agent deciding next steps in the wait flow, but the calling logic itself is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters and their defaults, placing this at baseline 3. The description adds scenario context for intent_id (the confirm_action multi-intent case) beyond the schema's explanation, plus the LIBRARY login requirement for the session. These additions are useful but marginal rather than compensating for any schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '도서관 좌석 대기/예약 intent 상태를 조회합니다' (queries library seat waiting/reservation intent status). The resource is precise — the intent state, not the seat itself — which implicitly separates it from siblings like get_library_seat_status and get_my_library_seat. However, it never names a sibling explicitly, so differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit parameter-selection guidance: omit intent_id when only one wait intent exists (the common case), and pass the intentId from a confirm_action response when multiple intents may be in flight. It clearly marks the multi-intent case as the exception that requires the explicit ID. It does not, however, address tool-level alternatives or conditions for not using this tool at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_lms_dashboardA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스) LMS 대시보드: 인증된 사용자의 미제출 과제·퀴즈 마감, 학사일정(시험·수강신청 등), 진행 중인 공지사항을 한 번에 요약합니다. term_id를 생략하면 현재 학기가 자동 선택됩니다. 인증이 필요합니다(start_auth provider=LMS 후 mcp_session_id 전달).

NameRequiredDescriptionDefault
term_idNo학기 ID (선택). 생략 시 현재 학기 자동 선택.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds important behavioral context beyond annotations: authentication is required, and term selection defaults to the current term when term_id is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with no filler. The main dashboard function and data categories are front-loaded, followed by the optional-term behavior and the authentication prerequisite.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys what the tool returns: a summary of deadlines, academic calendar items, and active notices. It also covers auth and the optional term parameter. It is complete enough for an aggregate read-only dashboard tool, though it does not mention error cases or response format details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both term_id and mcp_session_id are already documented. The description adds the requirement to pass mcp_session_id after LMS authentication and reinforces term_id omission behavior, but this largely overlaps with the schema and provides no new parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool summarizes an authenticated user's LMS dashboard: unsubmitted assignments/quiz deadlines, academic calendar items, and active notices. It is distinguishable from sibling tools like get_my_assignments or get_academic_calendar because it explicitly says it aggregates 'at once,' but it does not explicitly name or contrast those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it is for authenticated users, requires start_auth via LMS provider, and automatically selects the current term if term_id is omitted. It does not explicitly state when not to use it or which alternative to choose for detailed data, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meal_by_dateA
Read-onlyIdempotent
Inspect

지정한 날짜(yyyy-MM-dd)의 숭실대학교 학생식당 메뉴를 조회합니다. restaurant 인자를 비워두면 캠퍼스 내 모든 식당의 코너별 메뉴와 휴무 정보를 함께 반환합니다. restaurant 인자를 지정하면 해당 식당만 조회합니다.

NameRequiredDescriptionDefault
dateYes조회할 날짜. 반드시 ISO 형식 yyyy-MM-dd 의 문자열 (예: 2026-05-07). 빈 값/다른 형식이면 에러.
restaurantNo선택사항. 특정 식당만 조회하고 싶을 때 식당 이름을 한국어로 전달합니다. 가능한 값: 학생식당, 숭실도담식당, 스낵코너, 푸드코트, THE KITCHEN, FACULTY LOUNGE. 비워두면 전체 식당의 메뉴를 함께 반환합니다.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds meaningful behavioral context beyond annotations: an empty restaurant argument returns menus for all restaurants along with closed-day information, while a specified restaurant limits the query. This clarifies the tool's aggregation behavior without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact at three sentences, front-loads the core purpose and date format, and each sentence contributes distinct information: what is queried, what happens when restaurant is empty, and what happens when restaurant is specified. 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.

Completeness4/5

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 two parameters and no output schema, the description covers the essential request semantics and response scope, including all-restaurant versus single-restaurant behavior. It could be slightly more complete by describing the return structure or what happens when no menu exists for the date, but the schema and annotations cover the remaining critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with 100% coverage, so the baseline is 3. The description adds extra value by explaining the effect of leaving restaurant empty versus providing a value, which reinforces the schema's guidance and clarifies the scope of the result set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: querying the Soongsil University student cafeteria menu for a specified date in yyyy-MM-dd format. It also distinguishes behavior based on whether the restaurant parameter is provided, which separates it from date-specific meal tools like get_today_meal or get_meal_weekly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete guidance on how to use the restaurant parameter: leave it empty for all campus restaurants or specify one for a single restaurant. However, it does not explicitly contrast this tool with sibling tools like get_today_meal, get_meal_weekly, or get_dorm_weekly_meal, so the when-to-use-vs-alternatives guidance is only implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meal_weeklyA
Read-onlyIdempotent
Inspect

숭실대학교 학생식당의 주간(7일) 메뉴를 조회합니다. weekOffset=0(기본)이면 이번 주 월요일부터 7일치, weekOffset=1이면 다음 주를 반환합니다. 기숙사 주간 메뉴는 get_dorm_weekly_meal을 사용하세요.

NameRequiredDescriptionDefault
weekOffsetNo주 오프셋. 0=이번 주(기본), 1=다음 주, -1=지난 주. 정수.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation read-only and idempotent. The description adds behavioral detail beyond that: the result is 7 days starting Monday, and the default offset behavior. It does not discuss response format or error conditions, but for a simple read-only query this is a reasonable level of disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with no filler: purpose first, then parameter behavior, then sibling routing. Every sentence contributes unique guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter read-only tool, this is complete: it covers what is returned, the default, the offset semantics, and the correct sibling for dormitory menus. The output shape is not described, but the term 'menu' and the read-only annotations make the expected result clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds value by stating the default (0), that 0 means the current week from Monday, and that 1 means next week. It omits repeating the -1 case, but the schema already documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action ('조회합니다') and resource ('숭실대학교 학생식당의 주간 7일 메뉴'), and clarifies it is for the student cafeteria rather than the dormitory. It also differentiates from the sibling get_dorm_weekly_meal by explicitly naming that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use each offset value (weekOffset=0 for this week from Monday, weekOffset=1 for next week) and explicitly says to use get_dorm_weekly_meal for dormitory weekly menus. This gives the agent clear selection criteria rather than leaving the choice implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_assignmentsA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스)에서 인증된 학생의 미제출 LMS 과제와 퀴즈를 조회합니다. mcp_session_id 필요(LMS 로그인). compact=true 지원. term_id를 지정하지 않으면 LMS 기본 학기를 사용합니다. 다른 학기 과제를 조회하려면 get_my_lms_terms로 학기 목록을 먼저 확인하세요. 미인증 시 loginUrl이 포함된 AUTH_REQUIRED를 반환하므로, loginUrl을 사용자에게 보여주고 브라우저에서 로그인하도록 안내한 뒤 발급된 mcp_session_id로 다시 호출하세요.

NameRequiredDescriptionDefault
compactNocompact=true: 과제명·마감일만 반환. compact=false(기본): 상세 정보 포함.
term_idNo조회할 학기 ID (get_my_lms_terms에서 반환된 id). null이면 LMS 기본 학기 사용.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely valuable behavioral context beyond annotations: the AUTH_REQUIRED/loginUrl failure mode, session-binding requirements, and the default-term fallback when term_id is null. No contradiction exists — the description's read-only framing matches the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single well-organized paragraph with purpose front-loaded first, then prerequisites, options, defaults, sibling routing, and failure recovery in logical order. Each sentence carries distinct information with no repetition of schema content — it is dense but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description bears responsibility for conveying return behavior, and it covers the key contracts: success content (assignment names/deadlines in compact mode, detailed info otherwise) and the AUTH_REQUIRED error shape with loginUrl. It does not fully enumerate the success response structure, but given the moderate complexity and strong coverage of preconditions and failure modes, the practical essentials for correct invocation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description enriches parameters beyond the schema by tying mcp_session_id to the auth recovery flow, explaining term_id's relationship to get_my_lms_terms, and specifying compact=true's output implications. This cross-parameter workflow context exceeds baseline but the schema already documents each parameter individually, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (조회/retrieves), resource (미제출 LMS 과제와 퀴즈 — unsubmitted LMS assignments and quizzes), and scope (인증된 학생, authenticated student at SSU Campus). The '미제출' (unsubmitted) qualifier clearly distinguishes it from siblings like get_my_lms_courses, get_my_lms_materials, and get_lms_dashboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage conditions: requires mcp_session_id (LMS login), compact=true mode, and term_id defaulting to the LMS default term. It also names the sibling get_my_lms_terms as the prerequisite for cross-term queries and gives a complete AUTH_REQUIRED recovery workflow (show loginUrl, have user log in, retry with issued session). This exceeds 'clear context' and approaches full when/how guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_chapel_infoA
Read-onlyIdempotent
Inspect

인증된 학생의 u-SAINT 채플 출석 정보를 조회합니다. year와 semester는 선택이며, 생략하면 현재 u-SAINT 학기를 사용합니다. mcp_session_id 필요(SAINT 로그인).

NameRequiredDescriptionDefault
yearNo조회할 학년도(예: 2026).
semesterNo학기: 1학기, 여름학기, 2학기, 겨울학기 중 하나.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate those. It adds useful behavioral context about default semester selection and SAINT session requirements, which goes beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences: the first states the tool's purpose, the second covers parameter defaults and authentication requirements. Every clause adds value and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with three fully documented optional parameters, the description is largely complete: it covers scope, defaults, and auth. It does not describe the exact return shape, but with no output schema and a familiar attendance-info resource, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful extra semantics by explaining that omitted year/semester fall back to the current u-SAINT term and that a SAINT login session is required. The phrase 'mcp_session_id 필요' is slightly ambiguous against the schema's optional flag, but it likely refers to needing an active session rather than mandating the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('조회합니다' / retrieves), a precise resource ('u-SAINT 채플 출석 정보'), and a clear scope ('인증된 학생'). This is distinctive enough to separate it from sibling tools like get_my_schedule or get_my_grades without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical usage context: year and semester are optional and default to the current u-SAINT semester, and an mcp_session_id / SAINT login is needed. It does not explicitly name alternatives, but the context is clear and there are no confusing exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_gradesA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스)에서 인증된 학생의 u-SAINT 누적 성적을 학기별 GPA 이력과 함께 조회합니다. mcp_session_id 필요(SAINT 로그인). 미인증 시 loginUrl이 포함된 AUTH_REQUIRED를 반환하므로, loginUrl을 사용자에게 보여주고 브라우저에서 로그인하도록 안내한 뒤 발급된 mcp_session_id로 다시 호출하세요.

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by disclosing the unauthenticated behavior (returns AUTH_REQUIRED with loginUrl) and instructing the agent to guide the user through login and re-invoke. Annotations already cover read-only and idempotent hints, and the description complements them without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise, purposeful sentences. The primary function is front-loaded, followed by the session requirement and authentication failure handling. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately conveys the return content (cumulative grades and semester GPA history) and the main failure mode (AUTH_REQUIRED with loginUrl). It stops short of describing the exact result structure, but it is sufficient for correct invocation and basic error recovery.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, and the mcp_session_id parameter is already well-described in the schema with its fallback behavior. The description reinforces the parameter's necessity and auth flow but adds no new semantic meaning beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('조회합니다' / retrieves) and resource ('u-SAINT 누적 성적' / cumulative grades with semester GPA history). It distinguishes itself from siblings like get_my_scholarships and simulate_gpa by focusing on actual stored grades plus GPA history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: requires mcp_session_id and explains the exact re-auth workflow with AUTH_REQUIRED and loginUrl. It does not explicitly mention alternatives or when not to use the tool, so it falls slightly short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_library_loansA
Read-onlyIdempotent
Inspect

인증된 사용자의 현재 도서관 대출 현황을 반납 예정일과 함께 조회합니다. mcp_session_id 필요(LIBRARY 로그인). 미인증 시 loginUrl이 포함된 AUTH_REQUIRED를 반환하므로, loginUrl을 사용자에게 보여주고 브라우저에서 로그인하도록 안내한 뒤 발급된 mcp_session_id로 다시 호출하세요.

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond that: the tool is auth-gated, and unauthenticated calls return AUTH_REQUIRED carrying a loginUrl, with a prescribed re-invocation flow. No contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: the first front-loads the core purpose and output content, the second covers the prerequisite and the auth-failure recovery path. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one optional parameter, no output schema) and the description covers purpose, return content (loans with due dates), the auth prerequisite, and the failure mode. A bit more detail on the returned loan fields would help, but nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, giving the parameter its own baseline of 3. The description adds meaning beyond the schema by clarifying that mcp_session_id must be tied to LIBRARY authentication and explains the consequence of an invalid/missing session (AUTH_REQUIRED), which is behaviorally important for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('조회합니다' — retrieves), a specific resource (the authenticated user's current library loans), and a concrete output detail (with due dates). This clearly differentiates it from sibling library tools like get_my_library_seat, get_library_wait_status, and search_library_book, which concern seats, waitlists, and book search rather than loans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: an mcp_session_id authenticated against LIBRARY is required, and it spells out the full failure-recovery flow — when AUTH_REQUIRED with loginUrl is returned, show loginUrl to the user, guide browser login, and re-call with the issued session. It does not explicitly name alternatives, but the loan-specific purpose already distinguishes it from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_library_seatA
Read-onlyIdempotent
Inspect

현재 도서관에서 예약 중인 좌석 정보를 조회합니다. 예약 중인 좌석이 없으면 없다고 알려줍니다. 반납하려면 prepare_cancel_library_seat를, 자리를 바꾸려면 prepare_swap_library_seat를 사용하세요. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavior beyond annotations: it will explicitly report when there is no reserved seat, and it requires a LIBRARY-authenticated session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences front-load the core purpose, then add the empty-result behavior, alternatives, and session requirement. No filler; each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, single-optional-parameter lookup, the description covers what the tool does, the no-result case, the session prerequisite, and relevant action alternatives. It does not enumerate returned fields, and there is no output schema, but the level of detail is sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents mcp_session_id as optional with a bound-session fallback (100% coverage), so the baseline is 3. The description adds the LIBRARY-login auth requirement, which clarifies what kind of session is needed beyond the schema text. The wording '필요' is slightly looser than the schema's optional flag, but the intended meaning is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('조회합니다' / retrieves) and a specific resource: the currently reserved library seat. It also covers the empty-result behavior ('no reserved seat -> says none') and explicitly names the sibling tools for canceling and swapping, so an agent can distinguish the query action from follow-up mutations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent exactly when to use this tool: to check the current reserved seat, and explicitly routes to prepare_cancel_library_seat for returning and prepare_swap_library_seat for changing seats. It also states the LIBRARY-login session prerequisite, which is key context for selecting this tool successfully.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_lms_coursesA
Read-onlyIdempotent
Inspect

인증된 사용자의 LMS 수강 과목을 각 과목의 다운로드 가능한 자료(파일)와 함께 한 번에 조회합니다. 로그인 직후 이 도구 하나만 호출하면 과목별로 파일 수·총 용량·확장자별 그룹·각 파일의 content_id가 모두 반환됩니다. 사용자에게는 '과목 | 파일 수 | 용량' 표(파일이 있는 과목만)와 합계를 보여주고 어떤 과목을 받을지 물어보세요. 사용자가 과목을 고르면 이 응답에 들어있는 content_id로 바로 prepare_lms_material_export를 호출하면 됩니다(get_my_lms_materials를 다시 부를 필요 없음). term_id를 지정하지 않으면 현재 날짜 기준 활성 학기가 자동 선택됩니다. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
term_idNo조회할 학기 ID. 생략 시 현재 활성 학기가 선택됩니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so safety is covered. The description adds concrete behavior beyond annotations: it returns aggregated per-course stats (file count, total size, extension groups), includes content_id per file, auto-selects the active term when term_id is omitted, and requires/uses mcp_session_id for LMS login context. It also exposes an implicit behavior of presenting a summary table to the user. Minor gap: no mention of what happens if the user has no enrolled courses or no files, but the description does considerably more than the annotations require.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and front-loaded with the core purpose and value proposition, then flows into usage and follow-up instructions. It is longer than minimal, but every sentence earns its place by explaining the aggregated content, the user interaction step, and the follow-up call. A minor deduction for density: multiple clauses per sentence may require re-reading, but the structure is logical and not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with 2 optional parameters and no output schema, the description is remarkably complete: it states what is returned (file count, total size, extension groups, content_id), how to surface it to the user, which sibling to use next and why get_my_lms_materials is unnecessary, and the default term selection behavior. There is no output schema, so the description must specify return contents—and it does. The only minor omission is empty-state behavior, but this does not meaningfully hurt callability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters (term_id and mcp_session_id) with meaningful descriptions. The tool description adds context for term_id's default behavior and states mcp_session_id is needed for LMS login, but doesn't add new parameter syntax or format details. Baseline 3 is appropriate because the schema carries the burden and the description only slightly supplements it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (retrieves the authenticated user's LMS courses) and specifies a key differentiator: it bundles downloadable materials per course. It clearly distinguishes from sibling get_my_lms_materials by explaining that this one returns content_id per file and removes the need for a second call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call this right after login, describes the user-facing table format, instructs how to ask the user which course to receive, and directs the follow-up call to prepare_lms_material_export using the content_ids from this response. Also explains term_id behavior when omitted and notes that mcp_session_id is required (LMS login). This is strong usage guidance with invocation ordering and next-step routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_lms_materialsA
Read-onlyIdempotent
Inspect

지정된 LMS 과목들의 주차학습 비디오 외 주차별 학습 자료(PDF, PPT, DOC, HWP, TXT 등) 목록을 조회합니다. 결과는 파일 확장자별 그룹(개수 및 상세 목록)으로 분류되어 제공되며, 비디오 및 오디오 파일은 보안 및 용량 제한으로 포함되지 않습니다. term_id를 지정하지 않으면 현재 활성 학기가 자동 선택됩니다. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
term_idNo조회할 학기 ID (선택).
course_idsYes조회할 LMS 과목 ID 목록 (get_my_lms_courses에서 획득).
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive, so the description adds useful behavioral context: results are grouped by file extension, video/audio are excluded for security/capacity reasons, and the current active term is auto-selected when term_id is omitted. Without an output schema, this return-structure summary is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: purpose first, then result grouping, exclusions, term default, and authentication requirement. Every sentence adds necessary information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup with no output schema, the description covers the resource, scope, exclusions, result grouping, term fallback, and auth prerequisite. It could be slightly more explicit about empty-result behavior or limits on the number of courses, but it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds useful meaning: course_ids come from get_my_lms_courses, and term_id defaults to the active term. However, it states 'mcp_session_id 필요' (mcp_session_id required) while the schema marks it optional with a fallback, creating a contradictory usage signal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (조회/retrieve) and an exact resource: weekly learning materials for specified LMS courses, listing common file types and explicitly excluding video/audio. This also distinguishes it from sibling export tools like export_all_lms_materials and prepare_lms_material_export, since this is a read-only list operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it takes course_ids, defaults to the active term when term_id is omitted, and requires an LMS session. It does not explicitly name alternatives or state when not to use this tool, but the read-only list purpose and explicit exclusion of video/audio imply the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_lms_termsA
Read-onlyIdempotent
Inspect

사용자의 LMS 등록 학기 목록을 반환합니다. 각 학기의 id, name, 시작/종료 날짜, 현재 기본 학기 여부(defaultTerm)를 포함합니다. defaultTerm=true는 현재 활성 학기 하나에만 표시됩니다(term_id 생략 시 이 학기가 사용됨). 반환된 id를 get_my_lecture_list 또는 get_my_assignments의 term_id 파라미터에 사용하세요. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and non-destructive guarantees. The description adds meaningful behavioral context: LMS login is needed via mcp_session_id, only one active term has defaultTerm=true, and the default term is used when term_id is omitted. This goes beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then output contents, then key defaultTerm behavior, then downstream usage, then authentication note. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only, zero-required-parameter tool, the description covers return fields, default-term semantics, downstream usage, and authentication needs. It loses one point because it references get_my_lecture_list, which is not present in the sibling list, and because exact date formats or error behavior are not mentioned — though the latter is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the only parameter, mcp_session_id, is already well-described in the schema as optional with transport-bound session fallback. The description adds the LMS login requirement, which is mildly useful, but it does not substantially extend the schema's parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the user's LMS registered term list, with concrete fields (id, name, start/end dates, defaultTerm). It is distinguishable from related get_* tools because it focuses specifically on terms rather than courses, schedules, or dashboard data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it should be used to obtain term IDs, especially the default active term, and those IDs feed into get_my_assignments (and get_my_lecture_list). It does not explicitly state when NOT to use it versus siblings, but the downstream usage guidance is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_scheduleA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스)에서 인증된 학생의 u-SAINT 시간표를 과목별로 묶어 조회합니다. year와 term을 생략하면 현재 u-SAINT에서 선택된 학기를 반환하며, 특정 학기를 조회하려면 year와 term을 모두 전달하세요. term 값: 1=봄학기, 2=여름학기, 3=가을학기, 4=겨울학기. mcp_session_id 필요(SAINT 로그인). 미인증 시 loginUrl이 포함된 AUTH_REQUIRED를 반환하므로, loginUrl을 사용자에게 보여주고 브라우저에서 로그인하도록 안내한 뒤 발급된 mcp_session_id로 다시 호출하세요.

NameRequiredDescriptionDefault
termNo학기: 1=봄, 2=여름, 3=가을, 4=겨울. year와 함께 지정해야 함.
yearNo조회할 학년도(예: 2026). term과 함께 지정해야 함.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses the authentication prerequisite, the AUTH_REQUIRED response with loginUrl, and the expected retry flow. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, all load-bearing: what it returns, default vs specific semester behavior, term codes, and auth retry instructions. No filler and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no output schema, this is complete: all parameters are covered, default behavior is specified, and the only notable edge condition (unauthenticated) is handled explicitly with a remediation path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the term code mapping, the default current-semester behavior when year/term are absent, and the role of mcp_session_id in the login flow, which goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (u-SAINT timetable of an authenticated student at SSU Campus) and a specific action (retrieve grouped by subject). This is distinguishable from sibling tools like get_my_grades or get_lms_dashboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: omit year/term for the current u-SAINT semester, pass both for a specific one, and describes the auth failure flow. It does not explicitly name sibling alternatives or state when not to use it, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_scholarshipsA
Read-onlyIdempotent
Inspect

인증된 학생의 u-SAINT 장학금 수혜 내역을 조회합니다. year는 선택이며, 생략하면 조회 가능한 전체 내역을 반환합니다. mcp_session_id 필요(SAINT 로그인).

NameRequiredDescriptionDefault
yearNo조회할 학년도(예: 2026).
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds useful context about authentication via SAINT login and the optional year behavior. However, it introduces some ambiguity by saying 'mcp_session_id 필요' while the schema marks it optional, which slightly weakens transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main purpose and immediately followed by parameter behavior. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup with zero required parameters and a 100% schema-covered input schema, the description covers the essential context: who is eligible, what data is returned, and how optionality works. It does not specify response shape, but the absence of an output schema makes this a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful behavior beyond the schema: omitting year returns the full available history, and mcp_session_id is tied to SAINT login. This extra semantic context helps an agent choose and fill parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb (조회합니다/retrieve) and a specific resource (authenticated student's u-SAINT scholarship benefit history), clearly distinguishing it from sibling tools like check_scholarship_policy or get_my_grades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly states the tool is for authenticated students and explains the optional year parameter behavior (omitting it returns all available records). It does not explicitly name alternatives or when-not-to-use, but the context is sufficient for the main use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notice_detailA
Read-onlyIdempotent
Inspect

공지 URL 로 본문 전체 텍스트를 반환합니다. get_recent_notices 나 search_notices 결과의 link 값을 그대로 전달하세요.

NameRequiredDescriptionDefault
urlYes공지 URL. get_recent_notices/search_notices 결과의 link 값.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that the tool returns the full body text and expects an unmodified link value, which is useful but not a rich behavioral disclosure beyond what annotations already imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the purpose stated first and the parameter source instruction second. There is no wasted text, and the structure is easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 fully documented parameter and no output schema, the description is complete. It identifies what the tool returns, how to obtain the input, and the fact that the input should be passed unchanged.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the url parameter and its source as the link value from get_recent_notices/search_notices. The description adds only a slight nuance by saying 'pass it as-is' (그대로), which is minor additional guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the full body text of a notice given its URL, using a specific verb and resource. This distinguishes it from siblings like get_recent_notices and search_notices, which list notices rather than fetch detail content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by instructing the agent to pass the link value from get_recent_notices or search_notices results. It implies this tool should be used after those listing tools when full notice content is needed, though it does not explicitly discuss 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.

get_recent_noticesB
Read-onlyIdempotent
Inspect

숭실대 학교 공지사항 최신 목록을 조회합니다. category 를 지정하면 해당 카테고리만 필터링합니다. 카테고리 목록은 list_notice_categories 도구로 확인할 수 있습니다. compact=true 지원.

NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터). 기본값 1.
compactNocompact=true: 제목·URL만 반환. compact=false(기본): 날짜·카테고리 포함.
categoryNo카테고리 (선택): 학사/장학/국제교류/외국인유학생/채용/비교과·행사/교원채용/교직/봉사/기타. 비워두면 전체.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context about category filtering and compact-mode support, but stops short of describing pagination behavior, result limits, or what fields come back — and 'compact=true 지원' is a bare feature flag that the schema has to explain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short Korean sentences with the core purpose front-loaded; no filler or repetition. The compact mention is terse enough to seem cryptic without the schema, which keeps this from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with rich annotations and fully documented parameters, the description is mostly adequate. Gaps: there is no output schema to define the return format and the description does not cover it, nor does it clarify page/pagination semantics or differentiate from get_active_notices/search_notices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the schema already documents page defaults, compact's return differences, and the full category list. The description adds modest value by stating category's filtering role and pointing to list_notice_categories, but nothing beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: '공지사항 최신 목록을 조회합니다' (retrieves the latest notice list), and adds the category-filtering scope. However, it never distinguishes itself from closely related siblings like get_active_notices, get_department_notices, or search_notices, so an agent must infer which notice-listing tool fits the task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides one useful routing pointer — use list_notice_categories to obtain valid category values — but gives no when-to-use versus when-not-to-use guidance relative to the four other notice tools. Usage context is implied ('최신' = latest) rather than stated as a selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_room_available_seatsA
Read-onlyIdempotent
Inspect

숭실대학교 도서관 특정 열람실의 모든 좌석 현황을 실시간으로 조회합니다. 좌석별 상태(available/occupied/away/inactive), 좌석 번호(label), 좌석 유형, 이석 시 잔여 시간(remainingTime, 분)을 반환합니다. roomId 가능한 값: 15(1열람실 B1F), 53(숭실스퀘어ON 2F), 54(오픈열람실 2F), 57(마루열람실 6F), 58(대학원열람실 6F), 59(리클라이너 5F), 60(숭실멀티라운지 5F). externalSeatId를 prepare_reserve_library_seat에서 사용하세요. compact=true이면 좌석 배열을 생략하고, offset/limit(최대 200)으로 페이지를 제한할 수 있습니다. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
limitNo최대 반환 좌석 수(1~200).
offsetNo좌석 상세 배열 시작 위치(0 이상).
roomIdYes열람실 ID. 가능한 값: 15(1열람실 B1F), 53(숭실스퀘어ON), 54(오픈열람실), 57(마루열람실), 58(대학원열람실), 59(리클라이너), 60(숭실멀티라운지).
compactNotrue이면 좌석 상세 배열을 생략합니다.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotentHint/destructiveHint annotations, the description discloses real-time behavior, possible seat statuses, the LIBRARY session/login requirement, pagination via compact/offset/limit, and the downstream use of externalSeatId. The only minor ambiguity is that 'mcp_session_id 필요' could be read as requiring the parameter, while the schema marks it optional; this is better interpreted as requiring a valid session.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and return shape, then moves through room IDs, pagination, and authentication. Each sentence carries operational value, and the dense information is still scannable and well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description correctly supplies the key return fields and status values an agent needs to interpret results. Combined with full parameter documentation in the schema and safety-related annotations, the description is complete enough for an agent to invoke this tool correctly and understand what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds floor-level context for roomId values (e.g., 15 = 1열람실 B1F), clarifies the 200-item limit, and explains how externalSeatId relates to reservation preparation. This goes beyond the schema without replacing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it performs a real-time query of all seat statuses for a specific library reading room and enumerates the returned fields (status, label, seat type, remainingTime). It also gives concrete roomId values, which distinguishes it from broader sibling tools like get_library_available_seats or get_library_seat_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when an agent needs per-seat status for a specific reading room, and it further explains that externalSeatId should be passed to prepare_reserve_library_seat. However, it does not explicitly contrast this tool with siblings such as get_library_seat_status or get_library_available_seats, nor 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.

get_today_mealA
Read-onlyIdempotent
Inspect

오늘 숭실대학교 학생식당의 메뉴를 조회합니다. restaurant 인자를 비워두면 학생식당, 숭실도담식당, FACULTY LOUNGE 등 캠퍼스 내 모든 식당의 코너별 메뉴와 휴무 정보를 함께 반환합니다. restaurant 인자를 지정하면 해당 식당만 조회합니다.

NameRequiredDescriptionDefault
restaurantNo선택사항. 특정 식당만 조회하고 싶을 때 식당 이름을 한국어로 전달합니다. 가능한 값: 학생식당, 숭실도담식당, 스낵코너, 푸드코트, THE KITCHEN, FACULTY LOUNGE. 비워두면 전체 식당의 메뉴를 함께 반환합니다.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for extra disclosure is lower. The description adds useful behavioral context: the all-restaurant mode returns per-corner menus and closed-day information, and the specific-restaurant mode returns only that restaurant. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with two sentences and no filler. The only minor flaw is a slight ambiguity: the first sentence says 'student cafeteria menu,' then immediately broadens the default behavior to all campus restaurants, which could confuse an agent on first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one optional parameter, the description covers the essential behavior, default scope, and included closed-day information. It does not specify whether the single-restaurant result also includes closed-day info or how an invalid restaurant name is handled, but these are small gaps for such a lightweight tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the optional restaurant parameter at 100% coverage, including allowed values and the empty-vs-specified behavior, so the baseline is 3. The tool description repeats much of this and adds only a small increment: that the all-restaurant result includes corner menus and holiday/closed-day info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: it retrieves today's meal menus for Soongsil University cafeterias, and it explains the two scope modes (all restaurants vs. one named restaurant). It does not explicitly differentiate itself from meal-related siblings such as get_meal_by_date or get_meal_weekly, so it falls just short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical guidance on the restaurant parameter: leaving it empty returns all campus restaurants, and specifying it narrows the result to one restaurant. However, it never tells the agent when to choose this tool over the alternative meal tools in the sibling list, so the when-not-to-use guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_academic_policy_sourcesA
Read-onlyIdempotent
Inspect

학사 RAG가 조회하는 공식 출처 목록을 반환합니다. 각 출처의 URL, contentUrl, revision/effectiveDate, live 지원 여부, 검증일을 확인할 수 있습니다.

NameRequiredDescriptionDefault
liveNotrue면 connector가 live corpus 로딩 경로를 사용합니다. 목록만 볼 때는 false/생략 권장.
categoryNo출처 범위: graduation, scholarship, academic 중 하나. 생략하면 전체.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, open-world, non-destructive profile. The description adds useful behavioral context beyond those annotations by specifying what kind of data is returned and by indicating through the live parameter that a live corpus loading path is used when live=true. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the primary purpose and then lists the concrete output fields, keeping the definition compact and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description names the output fields explicitly, which is important because there is no output schema. It is complete enough for a read-only metadata-listing tool with fully documented optional parameters, though it could have noted why one would inspect the source list before using related policy tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented. The description adds no further parameter-level semantics; it only mentions 'live 지원 여부' as an output field, not as an input behavior. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: returning the list of official sources queried by the academic RAG, and enumerates the inspectable fields (URL, contentUrl, revision/effectiveDate, live support, verification date). This clearly distinguishes it from the sibling search_academic_policy_sources, which is about searching/policy content rather than listing source metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as search_academic_policy_sources or get_academic_policy_brief. The only usage-related hint is within the parameter description ('list only' recommends false/omitting live), which concerns parameter selection, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notice_categoriesA
Read-onlyIdempotent
Inspect

숭실대 공지사항 카테고리 목록을 반환합니다. get_recent_notices, search_notices 의 category 파라미터에 사용할 수 있는 값을 확인할 때 유용합니다.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that the returned values are meant for the category parameter of two sibling tools, which is useful but not a deep behavioral disclosure beyond the annotations and purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The first sentence states the core function and the second explains the practical use case, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-parameter list operation with strong annotations, the description is complete: it says what is returned and why an agent would need it. No output schema is present, but a simple category list does not require a detailed return-shape explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the input schema is fully covered, so there is no parameter information for the description to add. This matches the baseline for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it 'returns the list of notice categories' for Soongsil University notices. It also identifies the downstream consumers (get_recent_notices, search_notices), which distinguishes this tool from sibling notice tools that return notices rather than category lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says the tool is useful for checking values usable in the category parameter of get_recent_notices and search_notices, giving clear context for when to call it. It does not explicitly state when not to use it, but there are no obviously competing category-listing siblings, so the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logout_allA
Destructive
Inspect

SSU Campus(숭실대학교 캠퍼스)의 MCP 인증 세션 전체와 연결된 모든 provider를 제거합니다. mcp_session_id를 생략하면 현재 transport에 안전하게 바인딩된 세션을 사용합니다.

NameRequiredDescriptionDefault
mcp_session_idNo완전히 무효화할 선택 MCP session ID. 생략하면 현재 transport-bound 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description complements this by naming exactly what gets destroyed: all connected providers and the whole session. It also discloses the safe fallback to the current transport-bound session when mcp_session_id is omitted, adding context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that states the main destructive action first, then the only optional parameter behavior. Every element earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-optional-parameter destructive action with no output schema, the description covers the core action, scope, and fallback. It does not elaborate on post-logout state or irreversibility, but the destructiveHint annotation plus the explicit 'remove all' scope make the behavior reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline applies. The description restates the optional mcp_session_id fallback already documented in the schema, adding no new semantic information beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('removes') and a precise resource: all providers connected to the entire SSU Campus MCP authentication session. The scope word 'all' differentiates it from the sibling logout_provider without requiring additional inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a broad logout-all use case ('all providers', 'entire session'), but it never explicitly states when to prefer this over logout_provider or when not to use it. The fallback behavior for mcp_session_id is explained, but that is parameter guidance rather than alternative selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logout_providerA
Destructive
Inspect

MCP 세션에서 특정 provider(SAINT, LMS, LIBRARY) 연결을 해제합니다. provider가 필요하며, mcp_session_id를 생략하면 현재 transport에 안전하게 바인딩된 세션을 사용합니다.

NameRequiredDescriptionDefault
providerYes연동 해제할 provider: SAINT, LMS, LIBRARY 중 하나.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, and the description adds useful scope: the operation removes a specific provider's connection from the MCP session, not the entire session or all providers. It also clarifies that omitting mcp_session_id safely binds to the current transport, which is meaningful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler: it front-loads the main action and target, then states the required parameter and the optional session behavior. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter destructive logout operation with full schema coverage and destructive annotations, the description provides sufficient context: target, scope, required parameter, and session fallback. It would be more complete if it explicitly directed agents to logout_all for the all-providers case, but that gap is not severe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description mostly restates what the schema says about provider values and mcp_session_id fallback; it adds no new parameter mechanics or format details beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('연결을 해제합니다', disconnects) with a specific resource: a named provider connection within an MCP session, and enumerates the valid provider values (SAINT, LMS, LIBRARY). This clearly differentiates it from the sibling logout_all, which applies to all providers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying a provider is required and explaining the mcp_session_id fallback behavior, so an agent can infer 'use this to disconnect one specific provider.' However, it never explicitly names logout_all as the alternative for logging out of all providers, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_cancel_library_seatAInspect

숭실대학교 중앙도서관 현재 예약된 좌석을 반납합니다. 현재 예약 정보를 자동으로 조회하므로 예약 번호를 따로 입력하지 않아도 됩니다. 반납은 이 도구만으로 실행되지 않으며, confirm_action을 호출해야 최종 실행됩니다. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond the annotations: the current reservation is auto-fetched, no reservation number is needed, the action is two-phase and requires confirm_action, and a LIBRARY-logged-in session is needed. This meaningfully clarifies the non-readOnly, non-idempotent prepare flow. It does not describe failure/error behavior, but it is reasonably transparent for a prepare tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each with distinct value: the core action, the automatic reservation lookup, and the confirm_action/auth requirement. The description is front-loaded and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core workflow and auth precondition, but there is no output schema and the prepare-to-confirm handoff is left implicit. An agent is not told what this tool returns or how that result should be passed to confirm_action. It also does not state what happens if there is no current reservation to cancel.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the sole parameter at 100%, so the baseline is 3. However, the description says 'mcp_session_id 필요(LIBRARY 로그인)' while the schema explicitly marks mcp_session_id as optional with a transport-bound session fallback. This is misleading: an agent may treat an optional parameter as required based on the prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('반납합니다' - return/cancel) and a specific resource ('숭실대학교 중앙도서관 현재 예약된 좌석'). It also clarifies that the current reservation is looked up automatically, which distinguishes this cancellation path from sibling reserve/swap/waitlist tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context: use when the user wants to return or cancel their currently reserved library seat. It also explicitly states that this tool alone does not execute the cancellation and that confirm_action must be called, plus notes the LIBRARY login requirement. However, it does not explicitly name alternative tools 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.

prepare_lms_material_exportAInspect

사용자가 선택한 특정 과목의 LMS 주차학습 자료들(PDF, PPT 등)의 내보내기를 검증하고 대기열 등록을 준비합니다. 특정 과목 다운로드 요청의 기본 흐름입니다. 호출 전에 get_my_lms_courses로 과목+파일 목록(과목별 파일 수·용량·content_id 포함)을 사용자에게 보여주고 어떤 과목을 받을지 선택하게 하세요. 선택된 과목의 content_id들은 get_my_lms_courses 응답에 이미 들어있으니 그대로 content_ids 파라미터로 전달하면 됩니다(get_my_lms_materials 재호출 불필요). 한도 초과 또는 미지원 파일은 자동 제외되고 안내됩니다. mcp_session_id 필요(LMS 로그인).

NameRequiredDescriptionDefault
term_idNo조회할 학기 ID (선택).
content_idsYes내보내기할 LMS 자료의 content_id 목록.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses that over-limit or unsupported files are automatically excluded and announced, that LMS login is required via mcp_session_id, and that the tool only prepares queue registration rather than performing the export itself. It does not describe side effects or return shape, but the annotations already provide idempotency/read-only/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and every sentence earns its place: purpose, usage precondition, parameter sourcing, exclusion behavior, and authentication requirement are all covered. There is no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough to invoke the tool correctly, including what to pass and where the values come from. However, there is no output schema and the description does not explain what the tool returns or how to proceed to the likely next step, confirm_lms_material_export, which leaves the full workflow slightly incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful provenance for content_ids by saying they come directly from get_my_lms_courses and that get_my_lms_materials need not be called again. The statement 'mcp_session_id 필요' is slightly inconsistent with the schema's optional bound-session fallback, but the parameter is otherwise well covered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (validates and prepares queue registration) for a specific resource (LMS weekly materials of a user-selected course). It also frames itself as the basic flow for a specific-course download, which distinguishes it from export_all_lms_materials and confirm_lms_material_export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear call sequence: show get_my_lms_courses results to the user, let them choose a course, then pass that response's content_ids. It explicitly tells the agent not to re-call get_my_lms_materials. It does not explicitly name sibling alternatives like export_all_lms_materials or confirm_lms_material_export, so the exclusion guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_reserve_library_seatAInspect

SSU Campus(숭실대학교 캠퍼스)에서 중앙도서관 좌석 예약을 준비합니다. 예약은 이 도구만으로 실행되지 않으며, 사용자가 confirm_action을 호출해야 최종 실행됩니다. mcp_session_id 필요(LIBRARY 로그인). seat_id는 recommend_library_seats 응답의 externalSeatId 값(숫자 문자열, 예: '3179')을 사용하세요. 추천 목록 없이 직접 예약하려면 oasis.ssu.ac.kr에서 좌석을 클릭해 URL의 숫자를 확인하세요.

NameRequiredDescriptionDefault
seat_idYes예약할 좌석 ID (숫자). get_library_seat_status 또는 recommend_library_seats에서 확인.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly=false, destructive=false), the description reveals the non-final nature of the prepare step, the need for a LIBRARY-login session, and the expected seat_id source. This is useful behavioral context; it doesn't state side effects like seat-hold expiry, but doesn't contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each carrying distinct information: purpose, confirm_action requirement, seat_id/mcp_session_id mapping, and the direct-reservation alternative. It is front-loaded and compact, though slightly denser than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers prerequisites and workflow, but because there is no output schema it does not say what the tool returns or how confirm_action picks up the prepared reservation. An agent may not know whether it must pass a prepared action ID or simply call confirm_action with the same session. That missing link prevents full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already documents both parameters (100% coverage), so baseline is 3. The description adds value by mapping seat_id to recommend_library_seats' externalSeatId and giving a concrete example, plus an alternative source (URL number). mcp_session_id is described as needed in the description while schema marks it optional with fallback, a mild wording tension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: prepares a central library seat reservation at SSU Campus. It also clarifies that the tool is only a preparation step and does not execute the reservation, distinguishing it from sibling confirm_action and other prepare_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly tells the agent that final execution requires a separate confirm_action call, and instructs where to source seat_id (recommend_library_seats externalSeatId, or the URL number on oasis.ssu.ac.kr when reserving directly). It doesn't explicitly contrast with prepare_swap_library_seat or prepare_cancel_library_seat, so it falls short of full when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_swap_library_seatAInspect

현재 예약된 도서관 좌석을 자동으로 반납하고 새 좌석으로 변경합니다. 현재 예약 정보를 자동으로 조회하므로 charge_id를 따로 입력하지 않아도 됩니다. 변경은 이 도구만으로 실행되지 않으며, confirm_action을 호출해야 최종 실행됩니다. 현재 예약이 없으면 prepare_reserve_library_seat를 사용하세요. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
new_seat_idYes새로 예약할 좌석 ID (숫자). get_library_seat_status 또는 recommend_library_seats에서 확인.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and idempotentHint=false, and the description adds meaningful context beyond these: it automatically fetches current reservation info (so charge_id is unnecessary), and most importantly, the swap does not execute with this tool alone — confirm_action must be called. This two-phase behavior is foundational for the agent to invoke the tool correctly and is not encoded in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short Korean sentences, each earning its place: core action, auto-lookup behavior, confirm_action requirement, alternative routing, and session requirement. The purpose is front-loaded in the first sentence with no redundant filler, though the session note slightly overlaps with the schema's mcp_session_id documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity tool with no output schema, the description covers the essential workflow constraints: the two-phase execution, the alternative tool, and the session/login requirement. However, it omits what the tool returns — an agent needs to know the output shape to pass to confirm_action — and it doesn't clarify whether the current seat return is provisional until confirmation, which is material for a state-changing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both new_seat_id (including where to find it) and mcp_session_id (including fallback behavior), setting the baseline at 3. The description adds only marginal parameter context: the note that charge_id is not needed clarifies the parameter surface, and the 'mcp_session_id 필요(LIBRARY 로그인)' note reinforces the session requirement, but neither adds substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: it automatically returns the current reserved library seat and changes to a new one. It clearly distinguishes itself from siblings, explicitly saying to use prepare_reserve_library_seat when there is no current reservation, which differentiates it from the related prepare_* tools without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-not condition and names the alternative: '현재 예약이 없으면 prepare_reserve_library_seat를 사용하세요.' It also discloses the critical two-phase protocol (must call confirm_action for final execution) and the LIBRARY login requirement. However, it doesn't explicitly state the positive trigger condition (e.g., verify a current reservation exists first) or suggest checking get_my_library_seat to confirm reservation status before use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_library_seatsA
Read-onlyIdempotent
Inspect

SSU Campus(숭실대학교 캠퍼스)의 현재 예약 가능한 도서관 좌석을 사용자 선호도에 따라 순위화합니다. 이 읽기 전용 도구는 실시간 좌석 현황과 library/seat-catalog.json의 정적 좌석 카탈로그를 결합합니다. 불리언 선호도는 true면 선호, false면 회피, null/생략이면 선호 없음을 의미합니다. 대학원생 전용 열람실은 기본적으로 제외되며, 대학원생인 경우에만 include_graduate_only=true를 설정하세요. prepare_reserve_library_seat는 사용자가 추천된 좌석을 선택한 뒤에만 호출하세요. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
edgeNotrue면 가장자리/모서리 좌석 선호, false면 회피.
floorYes조회할 도서관 층 코드. 가능한 값: 2, 5, 6.
limitNo반환할 최대 추천 수. 기본 5, 최대 10.
quietNotrue면 조용한 좌석 선호, false면 회피.
outletNotrue면 콘센트 있는 좌석 선호, false면 회피.
windowNotrue면 창가 좌석 선호, false면 회피.
standingNotrue면 스탠딩 데스크 선호, false면 스탠딩 데스크 회피.
near_entranceNotrue면 입구 근처 좌석 선호, false면 회피.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.
include_graduate_onlyNo대학원 전용 열람실 포함 여부. 기본 false — 학부생은 이용할 수 없음.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description discloses that the tool merges real-time availability with the static library/seat-catalog.json, defines the tri-state boolean preference semantics (true=prefer, false=avoid, null/omitted=no preference), states that graduate-only rooms are excluded by default, and requires a LIBRARY-authenticated session. These are meaningful behavioral traits an agent could not infer from annotations or schema alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and front-loads the core purpose before any secondary guidance. Every sentence earns its place, though it is a single run-on paragraph that could be bulleted, and the read-only claim and mcp_session_id note partially duplicate what annotations and the schema already state.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no output schema, the description thoroughly covers input semantics, the graduate-only default, authentication requirements, and the downstream workflow with prepare_reserve_library_seat. The main gap is the return value: the description never indicates what the ranked recommendation list contains or how a chosen seat should be forwarded to the reservation step, which matters more here because no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the null/omitted meaning for all preference booleans (not in the schema), the default-exclusion rule behind include_graduate_only, and the LIBRARY login requirement tied to mcp_session_id. The added meaning is useful but modest because the schema already documents each parameter individually.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (순위화합니다 / ranks), a specific resource (currently reservable library seats at SSU Campus), and a specific method (based on user preferences), which sets it apart from sibling tools like get_library_available_seats, get_library_seat_status, and get_library_seat_catalog. It also explicitly names prepare_reserve_library_seat as the downstream step, so the tool's role in the reservation workflow is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow guidance: prepare_reserve_library_seat should only be called after the user selects a recommended seat, and include_graduate_only=true should only be used for graduate students since graduate-only reading rooms are excluded by default. It does not explicitly contrast with the status/catalog siblings, so an agent must infer when to prefer this ranking tool over get_library_available_seats or get_library_seat_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_academic_policy_sourcesA
Read-onlyIdempotent
Inspect

숭실대학교 공식 규정관리시스템과 공식 학사 안내 페이지에서 학칙·졸업·장학 근거 문단을 검색합니다. live 요청·시도·성공, 캐시, 원문/seed 출처와 조회 시각을 분리해 반환합니다.

NameRequiredDescriptionDefault
liveNotrue면 공식 원문을 live fetch. false/생략이면 빠른 seed corpus 검색.
limitNo반환할 근거 수. 기본 5, 최대 10.
queryYes검색어. 예: 복수전공 졸업 학점, 백마성적우수장학금 취득학점.
categoryNo검색 범위: graduation, scholarship, academic 중 하나. 생략하면 전체.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description goes beyond this by disclosing that live requests are attempted and reported for success, that cached results may be returned, and that original/seed sources and query timestamps are separated in the response. This materially improves an agent's understanding of runtime behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core purpose, and uses the second sentence to convey response characteristics. Every clause adds useful information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the search source, the kind of content searched, and high-level response structure (live attempt/success, cache, source, timestamp), which is helpful given there is no output schema. It stops short of naming exact output fields or pagination behavior, but the parameter schema and annotations cover much of the remaining context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented with meaningful descriptions. The tool description adds only limited parameter-related context (e.g., the live/cache distinction), but does not need to compensate for missing schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: searching official Soongsil University regulation and academic guide pages for policy basis paragraphs related to academic rules, graduation, and scholarships. It is distinct and informative, though it does not explicitly contrast itself with similar sibling tools such as list_academic_policy_sources or get_academic_policy_brief.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the search scope: this tool is appropriate when policy evidence paragraphs are needed from official academic sources. However, the description never explicitly states when to prefer this tool over alternatives, or when not to use it, so the guidance relies on inference rather than direct instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_campus_facilitiesA
Read-onlyIdempotent
Inspect

숭실대학교 캠퍼스 내 식당, 카페, 편의점, 서점 등의 시설 정보를 검색합니다. 시설 이름, 위치, 운영시간, 전화번호, 별칭 등을 부분 일치로 검색하며, query 가 비어 있으면 전체 시설 목록을 반환합니다.

NameRequiredDescriptionDefault
pageNo0-based 페이지. size와 함께 지정하면 페이지 단위로 반환합니다.
sizeNo페이지 크기(1~50). 생략하면 20.
queryNo검색어 (선택). 시설명, 별칭, 위치 등에 부분 일치. 비워두면 전체 목록. 최대 64자.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Behavior beyond annotations is disclosed: partial matching across facility name, location, operating hours, phone number, and aliases, plus the empty-query full-list behavior. Annotations already cover read-only, idempotent, non-destructive characteristics, so the description adds meaningful behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact Korean sentences with no filler. It front-loads the tool's purpose and then states the important empty-query behavior, making every sentence valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only search tool with no required parameters and no output schema, the description is operationally sufficient: it specifies the facility domain, partial-match behavior, and empty-query fallback. Pagination details are left to the schema, which is acceptable given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all three parameters and their semantics. The description adds a small amount of detail by listing operating hours and phone numbers as searchable fields, but it mostly echoes the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it searches Soongsil University campus facility information such as restaurants, cafes, convenience stores, and bookstores. This clearly distinguishes it from sibling search tools like search_library_book or search_notices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context: use this tool to search campus facility information with partial matching, and when query is empty it returns all facilities. It does not explicitly name alternatives or exclusions, but the facility scope is concrete enough for an agent to route requests correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_library_bookA
Read-onlyIdempotent
Inspect

숭실대학교 중앙도서관 소장 도서를 키워드로 검색합니다. 응답에는 도서별 제목·저자·청구기호·소장 위치·대출 가능 여부가 포함됩니다. 페이지 메타데이터로 totalPages와 hasNext도 제공합니다. 검색어는 제목·저자·출판 정보에 부분 일치합니다. 이 도구는 읽기 전용이며, 도서 대출/예약 액션은 별도 도구로 분리되어 있습니다.

NameRequiredDescriptionDefault
pageNo페이지 (0-based, 기본 0)
sizeNo페이지당 결과 수 (1~20, 기본 10)
queryYes검색어 (제목/저자/출판 키워드, 1~64자)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds partial-match search behavior and response contents (title, author, call number, location, availability) plus pagination metadata. This adds context beyond annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the main purpose, then cover response contents, search matching behavior, and read-only/action separation. No filler words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a search tool: it covers purpose, response contents, pagination metadata, search matching, and read-only status. With annotations covering idempotency and no output schema, the main remaining gap is not explaining page/size defaults in prose, but those are already in the input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents all parameters well. The description adds useful search semantics: partial matching on title/author/publication info, which clarifies how the query parameter behaves. Slightly less than a 5 because some parameter details are already fully in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('숭실대학교 중앙도서관 소장 도서를 키워드로 검색합니다'), lists the returned fields, and distinguishes itself from sibling tools like borrow/reserve actions. It clearly tells the agent what this tool does and what it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly notes that this is read-only and that loan/reservation actions are separate tools, which helps route usage. However, it does not explicitly name sibling alternatives or give when-not-to-use conditions beyond the separation of actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_noticesA
Read-onlyIdempotent
Inspect

숭실대 공지사항을 키워드로 검색합니다. 제목·본문에 키워드가 포함된 공지를 반환합니다. category 를 함께 지정하면 해당 카테고리 내에서만 검색합니다. compact=true 지원.

NameRequiredDescriptionDefault
pageNo페이지 번호 (기본 1).
compactNocompact=true: 제목·URL만 반환. compact=false(기본): 날짜·카테고리 포함.
keywordYes검색 키워드. 최대 64자.
categoryNo카테고리 필터 (선택).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond the schema, such as searching both title and body, restricting to a category when provided, and compact output mode affecting the returned fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no redundant filler. It front-loads the core search behavior before adding filtering and output-format options, 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only keyword search tool with full schema coverage and strong annotations, the description covers the essential behavior, filtering, and output modes. The absence of an output schema is partially mitigated by the compact vs. default return explanation, though response ordering or result limits are not mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 100%, the description adds semantic value: keyword targets title/body, category restricts the search scope, and compact=true changes the response shape. It does not add much for page, but the schema already documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action (search) on a specific resource (Soongsil University notices), noting that notices containing the keyword in title or body are returned. This differentiates it from sibling tools like get_recent_notices and get_active_notices, which are list-oriented rather than keyword-search oriented.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys that this tool is for keyword-based notice search and explains how the category filter narrows results. However, it does not explicitly state when to prefer this tool over siblings such as get_recent_notices, get_active_notices, or get_notice_detail, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_gpaA
Read-onlyIdempotent
Inspect

인증된 학생의 u-SAINT academicRecord를 기반으로 누적 GPA를 시뮬레이션합니다. plannedCredits와 함께 plannedGradePointAverage를 넣어 예상 GPA를 계산하거나, targetGpa를 넣어 필요한 평균 평점을 계산하거나, 둘 다 사용할 수 있습니다. 숭실대학교의 4.5 만점 평점 척도를 사용하며 P/F 학점은 GPA 분모에서 제외합니다. mcp_session_id 필요(SAINT 로그인).

NameRequiredDescriptionDefault
targetGpaNo목표 누적 GPA(0.0~4.5).
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.
plannedCreditsYes추가할 성적 산입 학점(P/F 학점 제외).
plannedGradePointAverageNoplannedCredits의 예상 평균 평점(0.0~4.5).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description adds meaningful behavior: it restricts input to authenticated records, specifies Soongsil University's 4.5 scale, and states P/F credits are excluded from the denominator. It also flags the SAINT login/session requirement. The 'mcp_session_id 필요' phrase is slightly ambiguous against the schema's optional mcp_session_id, but it does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, covering purpose, modes, grading scale, exclusions, and authentication in a few short sentences. The primary action is front-loaded, and every sentence earns its place without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is nearly complete for a read-only, idempotent simulation: it names the source record, all parameter modes, scale, exclusions, and auth context. It stops short of describing the returned shape or the meaning of using both modes simultaneously, which is a small real gap given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value above the schema by explaining how plannedCredits combines with plannedGradePointAverage or targetGpa and by defining credit semantics (P/F excluded). This gives the agent the calculation logic rather than just field ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and object: simulating cumulative GPA from an authenticated student's u-SAINT academicRecord. It also names the two computation modes (plannedGradePointAverage vs targetGpa), which clearly separates this planning tool from read-only grade retrieval siblings like get_my_grades. This goes well beyond the tool name, so an agent knows exactly what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly maps use cases to parameters: plannedGradePointAverage with plannedCredits for expected GPA, targetGpa for required average, and both as a valid combination. This is clear within-tool usage guidance, though it does not invoke any sibling tool or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_authAInspect

SSU Campus(숭실대학교 캠퍼스)의 지정 provider(SAINT, LMS, LIBRARY) 브라우저 로그인 URL을 생성합니다. 인증 도구가 AUTH_REQUIRED를 반환할 때 이 도구를 사용하세요. 절차: 1) 이 도구를 호출해 loginUrl과 mcpSessionId를 받습니다. 2) loginUrl 원문을 사용자에게 그대로 보여주세요. PlayMCP connector 페이지 URL이나 loginUrl과 다른 마크다운 링크로 대체하지 마세요. 3) 사용자가 로그인 완료를 확인할 때까지 기다립니다. 4) mcp_session_id=[mcpSessionId]를 넣어 원래 인증 도구 호출을 다시 시도합니다. mcp_session_id가 전달되지 않으면 새 MCP 세션을 생성합니다.

NameRequiredDescriptionDefault
providerYes인증할 provider. SAINT: 시간표·성적·채플·졸업·장학금. LMS: 과제·퀴즈. LIBRARY: 좌석 추천·예약·내 좌석·대출.
mcp_session_idNo재사용할 기존 MCP session ID. 없으면 새 세션이 생성됨.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and idempotentHint=false, signaling a state-changing, non-idempotent operation. The description adds meaningful context beyond this: calling without mcp_session_id creates a new MCP session, the tool returns loginUrl and mcpSessionId, and the original auth call must be retried with the session ID. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and trigger condition are front-loaded, followed by a numbered 4-step procedure. The length is justified by the interactive nature of the auth flow; every sentence contributes meaning and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly carries the burden of explaining return values — it names loginUrl and mcpSessionId and specifies exactly how each must be used in the full invoke→show→wait→retry loop. Minor gaps like timeout or error behavior don't prevent correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — both provider (with per-provider data examples) and mcp_session_id are documented in the schema. The description adds the critical behavioral role of mcp_session_id in the retry flow, which the schema alone does not convey, justifying a score above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it generates browser login URLs for designated SSU Campus providers (SAINT, LMS, LIBRARY). This clearly differentiates it from siblings like get_auth_status (status check) and logout_provider (session termination), so an agent can distinguish them without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trigger condition is explicit: '인증 도구가 AUTH_REQUIRED를 반환할 때 이 도구를 사용하세요' (use when the auth tool returns AUTH_REQUIRED), followed by a detailed 4-step procedure including a specific prohibition on substituting the loginUrl with other markdown links. It lacks explicitly named alternative tools, but the invocation context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_library_seatAInspect

숭실대학교 중앙도서관 좌석에 대한 백그라운드 대기 intent를 등록합니다. 이 호출 자체가 사용자의 동의이며, 등록 후 조건에 맞는 좌석이 나오면 서버 워커가 이후 confirm_action 호출 없이 자동으로 예약할 수 있습니다. mcp_session_id 필요(LIBRARY 로그인).

NameRequiredDescriptionDefault
floorNo선호 층: 2, 5, 6, 2F, 5F, 6F 중 하나.
room_idsNo선호 Pyxis room ID. JSON 배열 또는 CSV 형식, 예: [57,58] 또는 57,58.
mcp_session_idNo선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다.
target_seat_idNo가용 시 예약할 고정 Pyxis 좌석 ID.
seat_attributesNo필수 속성. JSON 객체/배열 또는 CSV 형식: window,outlet,standing,edge,quiet,nearEntrance.
expires_in_minutesNo대기 만료 시간(분). 기본 120분.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the most important behavioral trait: this call is user consent, and a server worker may automatically reserve a matching seat without any subsequent confirm_action. It also makes the background nature and session/login requirement explicit, which annotations alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences front-load the core purpose and then add the critical consent and auto-reservation caveat. There is no filler, repetition of schema fields, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a background-registration tool with no output schema, the description sufficiently covers invocation semantics: what it does, what side effects occur, and the session requirement. It does not describe the return value or how to check/cancel the wait, but the core calling context is complete given the rich schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds only that mcp_session_id requires a LIBRARY login, which is useful context but slightly conflicts with the schema marking that parameter as optional. No additional meaning is added for the other five parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: registering a background wait intent for library seats, and clearly distinguishes itself from sibling tools by noting that it leads to automatic reservation without a confirm_action call. This is a concrete verb+resource combination that separates it from prepare_reserve_library_seat and reservation flow tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context on when to use this tool: when the user wants to wait for a matching seat and consents to automatic reservation without further confirmation. It also states the prerequisite of a LIBRARY login session. It does not explicitly list alternative tools or exclusion cases, but the contrast with confirm_action provides strong implicit guidance.

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.

  1. 32 tool updates
    • Changedcancel_library_wait2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedcheck_graduation_requirements2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedconfirm_action2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedconfirm_lms_material_export3 fields changed
      • addedInput schema / properties / action_id
        Added value: +{
        +  "description": "확인할 미리보기 action ID. prepare 응답의 actionId를 전달하면 재시도도 멱등 처리됩니다.",
        +  "type": "integer"
        +}
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"LMS가 연동된 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedevaluate_graduation_with_policy2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedexport_all_lms_materials2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LMS)로 LMS를 연동한 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_library_available_seats5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "true이면 열람실별 좌석 ID/번호 배열을 생략합니다.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "열람실별 최대 반환 좌석 수(1~200).",
        +  "type": "integer"
        +}
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "열람실별 이용 가능 좌석 배열 시작 위치(0 이상).",
        +  "type": "integer"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_library_seat_status2 fields changed
      • removedInput schema / properties / mcp_session_id
        Removed value: -{
        -  "description": "start_auth(LIBRARY)로 발급받은 MCP session ID. 없거나 LIBRARY 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환.",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "floor",
        -  "mcp_session_id"
        -]New value: +[
        +  "floor"
        +]
    • Changedget_library_wait_status2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_lms_dashboard2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP 세션 ID (start_auth로 발급받은 값)"New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_assignments2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LMS)로 발급받은 MCP session ID. 없거나 LMS 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_chapel_info2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_grades2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_library_loans2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID. 없거나 LIBRARY 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_library_seat2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_lms_courses2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LMS)로 LMS를 연동한 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_lms_materials2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LMS)로 LMS를 연동한 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id",
        -  "course_ids"
        -]New value: +[
        +  "course_ids"
        +]
    • Changedget_my_lms_terms2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LMS)로 LMS를 연동한 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_schedule2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_my_scholarships2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedget_room_available_seats5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "true이면 좌석 상세 배열을 생략합니다.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "최대 반환 좌석 수(1~200).",
        +  "type": "integer"
        +}
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "좌석 상세 배열 시작 위치(0 이상).",
        +  "type": "integer"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "roomId",
        -  "mcp_session_id"
        -]New value: +[
        +  "roomId"
        +]
    • Changedlogout_all2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"완전히 무효화할 MCP session ID."New value: +"완전히 무효화할 선택 MCP session ID. 생략하면 현재 transport-bound 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedlogout_provider2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "provider",
        -  "mcp_session_id"
        -]New value: +[
        +  "provider"
        +]
    • Changedprepare_cancel_library_seat2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
    • Changedprepare_lms_material_export2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"LMS가 연동된 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id",
        -  "content_ids"
        -]New value: +[
        +  "content_ids"
        +]
    • Changedprepare_reserve_library_seat2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id",
        -  "seat_id"
        -]New value: +[
        +  "seat_id"
        +]
    • Changedprepare_swap_library_seat2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id",
        -  "new_seat_id"
        -]New value: +[
        +  "new_seat_id"
        +]
    • Changedrecommend_library_seats2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "floor",
        -  "mcp_session_id"
        -]New value: +[
        +  "floor"
        +]
    • Changedsearch_campus_facilities2 fields changed
      • addedInput schema / properties / page
        Added value: +{
        +  "description": "0-based 페이지. size와 함께 지정하면 페이지 단위로 반환합니다.",
        +  "type": "integer"
        +}
      • addedInput schema / properties / size
        Added value: +{
        +  "description": "페이지 크기(1~50). 생략하면 20.",
        +  "type": "integer"
        +}
    • Changedsimulate_gpa2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "plannedCredits",
        -  "mcp_session_id"
        -]New value: +[
        +  "plannedCredits"
        +]
    • Changedstart_auth1 field changed
      • changedInput schema / properties / provider / description
        Previous value: -"인증할 provider. SAINT: 시간표·성적·채플·졸업·장학금. LMS: 과제·퀴즈. LIBRARY: 도서관 좌석·대출 현황."New value: +"인증할 provider. SAINT: 시간표·성적·채플·졸업·장학금. LMS: 과제·퀴즈. LIBRARY: 좌석 추천·예약·내 좌석·대출."
    • Changedwait_for_library_seat2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"start_auth(LIBRARY)로 발급받은 MCP session ID."New value: +"선택 MCP session ID. 생략하면 현재 MCP transport에 안전하게 바인딩된 세션을 사용합니다."
      • changedInput schema / required
        Previous value: -[
        -  "mcp_session_id"
        -]New value: +[]
  2. 1 tool update
    • Changedget_library_wait_status1 field changed
      • addedInput schema / properties / intent_id
        Added value: +{
        +  "description": "조회할 특정 intent ID (confirm_action/wait_for_library_seat 응답의 intentId). 생략하면 가장 최근 intent를 반환합니다.",
        +  "type": "integer"
        +}
  3. 32 tool updates
    • Changedcancel_library_wait1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedcheck_graduation_requirements1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedconfirm_action1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedconfirm_lms_material_export1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked."New value: +"LMS가 연동된 MCP session ID."
    • Changedevaluate_graduation_with_policy1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedexport_all_lms_materials1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked via start_auth(LMS)."New value: +"start_auth(LMS)로 LMS를 연동한 MCP session ID."
    • Changedget_auth_status1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth. If absent or invalid, all providers show as not linked."New value: +"start_auth로 발급받은 MCP session ID. 없거나 유효하지 않으면 모든 provider가 미연동으로 표시됨."
    • Changedget_library_available_seats1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedget_library_seat_catalog3 fields changed
      • changedInput schema / properties / floor_code / description
        Previous value: -"Optional floor filter: B1, 2F, 5F, 6F, or numeric 2/5/6."New value: +"층 필터(선택): B1, 2F, 5F, 6F 또는 숫자 2/5/6."
      • changedInput schema / properties / include_layout / description
        Previous value: -"Whether to include compact textLayout lines. Default false."New value: +"compact textLayout 라인 포함 여부. 기본 false."
      • changedInput schema / properties / room_code / description
        Previous value: -"Optional roomCode filter, such as open-reading-2f."New value: +"roomCode 필터(선택), 예: open-reading-2f."
    • Changedget_library_seat_status1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY). If absent or LIBRARY not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID. 없거나 LIBRARY 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedget_library_wait_status1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedget_my_assignments1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LMS). If absent or LMS not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(LMS)로 발급받은 MCP session ID. 없거나 LMS 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedget_my_chapel_info3 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
      • changedInput schema / properties / semester / description
        Previous value: -"Semester: 1학기, 여름학기, 2학기, or 겨울학기."New value: +"학기: 1학기, 여름학기, 2학기, 겨울학기 중 하나."
      • changedInput schema / properties / year / description
        Previous value: -"Academic year, such as 2026."New value: +"조회할 학년도(예: 2026)."
    • Changedget_my_grades1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedget_my_library_loans1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY). If absent or LIBRARY not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID. 없거나 LIBRARY 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
    • Changedget_my_library_seat1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedget_my_lms_courses1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked via start_auth(LMS)."New value: +"start_auth(LMS)로 LMS를 연동한 MCP session ID."
    • Changedget_my_lms_materials1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked via start_auth(LMS)."New value: +"start_auth(LMS)로 LMS를 연동한 MCP session ID."
    • Changedget_my_lms_terms1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked via start_auth(LMS)."New value: +"start_auth(LMS)로 LMS를 연동한 MCP session ID."
    • Changedget_my_schedule3 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
      • changedInput schema / properties / term / description
        Previous value: -"Academic term: 1=spring, 2=summer, 3=fall, 4=winter. Must be provided together with year."New value: +"학기: 1=봄, 2=여름, 3=가을, 4=겨울. year와 함께 지정해야 함."
      • changedInput schema / properties / year / description
        Previous value: -"Academic year, such as 2026. Must be provided together with term."New value: +"조회할 학년도(예: 2026). term과 함께 지정해야 함."
    • Changedget_my_scholarships2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
      • changedInput schema / properties / year / description
        Previous value: -"Academic year, such as 2026."New value: +"조회할 학년도(예: 2026)."
    • Changedget_room_available_seats1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedlogout_all1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID to fully invalidate."New value: +"완전히 무효화할 MCP session ID."
    • Changedlogout_provider2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth."New value: +"start_auth로 발급받은 MCP session ID."
      • changedInput schema / properties / provider / description
        Previous value: -"Provider to unlink: SAINT, LMS, or LIBRARY."New value: +"연동 해제할 provider: SAINT, LMS, LIBRARY 중 하나."
    • Changedprepare_cancel_library_seat1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedprepare_lms_material_export1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID with LMS linked."New value: +"LMS가 연동된 MCP session ID."
    • Changedprepare_reserve_library_seat1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedprepare_swap_library_seat1 field changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
    • Changedrecommend_library_seats10 fields changed
      • changedInput schema / properties / edge / description
        Previous value: -"Prefer an edge/corner seat when true, avoid one when false."New value: +"true면 가장자리/모서리 좌석 선호, false면 회피."
      • changedInput schema / properties / floor / description
        Previous value: -"Library floor code. Allowed values: 2, 5, 6."New value: +"조회할 도서관 층 코드. 가능한 값: 2, 5, 6."
      • changedInput schema / properties / include_graduate_only / description
        Previous value: -"Include graduate-only reading rooms. Default false — undergraduate users cannot use them."New value: +"대학원 전용 열람실 포함 여부. 기본 false — 학부생은 이용할 수 없음."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum recommendations to return. Default 5, max 10."New value: +"반환할 최대 추천 수. 기본 5, 최대 10."
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
      • changedInput schema / properties / near_entrance / description
        Previous value: -"Prefer a seat near the entrance when true, avoid one when false."New value: +"true면 입구 근처 좌석 선호, false면 회피."
      • changedInput schema / properties / outlet / description
        Previous value: -"Prefer a seat with an outlet when true, avoid one when false."New value: +"true면 콘센트 있는 좌석 선호, false면 회피."
      • changedInput schema / properties / quiet / description
        Previous value: -"Prefer a quieter seat when true, avoid one when false."New value: +"true면 조용한 좌석 선호, false면 회피."
      • changedInput schema / properties / standing / description
        Previous value: -"Prefer a standing desk when true, avoid standing desks when false."New value: +"true면 스탠딩 데스크 선호, false면 스탠딩 데스크 회피."
      • changedInput schema / properties / window / description
        Previous value: -"Prefer a window seat when true, avoid one when false."New value: +"true면 창가 좌석 선호, false면 회피."
    • Changedsimulate_gpa4 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(SAINT). If absent or SAINT not linked, returns AUTH_REQUIRED with a loginUrl."New value: +"start_auth(SAINT)로 발급받은 MCP session ID. 없거나 SAINT 미연동이면 loginUrl과 함께 AUTH_REQUIRED를 반환."
      • changedInput schema / properties / plannedCredits / description
        Previous value: -"GPA-bearing credits to add, excluding P/F credits."New value: +"추가할 성적 산입 학점(P/F 학점 제외)."
      • changedInput schema / properties / plannedGradePointAverage / description
        Previous value: -"Expected average grade point for plannedCredits, 0.0 to 4.5."New value: +"plannedCredits의 예상 평균 평점(0.0~4.5)."
      • changedInput schema / properties / targetGpa / description
        Previous value: -"Target cumulative GPA, 0.0 to 4.5."New value: +"목표 누적 GPA(0.0~4.5)."
    • Changedstart_auth2 fields changed
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"Existing MCP session ID to reuse. If absent, a new session is created."New value: +"재사용할 기존 MCP session ID. 없으면 새 세션이 생성됨."
      • changedInput schema / properties / provider / description
        Previous value: -"Provider to authenticate. SAINT: 시간표·성적·채플·졸업·장학금. LMS: 과제·퀴즈. LIBRARY: 도서관 좌석·대출 현황."New value: +"인증할 provider. SAINT: 시간표·성적·채플·졸업·장학금. LMS: 과제·퀴즈. LIBRARY: 도서관 좌석·대출 현황."
    • Changedwait_for_library_seat6 fields changed
      • changedInput schema / properties / expires_in_minutes / description
        Previous value: -"Wait expiry in minutes. Defaults to 120 minutes."New value: +"대기 만료 시간(분). 기본 120분."
      • changedInput schema / properties / floor / description
        Previous value: -"Preferred floor: 2, 5, 6, 2F, 5F, or 6F."New value: +"선호 층: 2, 5, 6, 2F, 5F, 6F 중 하나."
      • changedInput schema / properties / mcp_session_id / description
        Previous value: -"MCP session ID issued by start_auth(LIBRARY)."New value: +"start_auth(LIBRARY)로 발급받은 MCP session ID."
      • changedInput schema / properties / room_ids / description
        Previous value: -"Preferred Pyxis room IDs as JSON array or CSV, e.g. [57,58] or 57,58."New value: +"선호 Pyxis room ID. JSON 배열 또는 CSV 형식, 예: [57,58] 또는 57,58."
      • changedInput schema / properties / seat_attributes / description
        Previous value: -"Required attributes as JSON object/array or CSV: window,outlet,standing,edge,quiet,nearEntrance."New value: +"필수 속성. JSON 객체/배열 또는 CSV 형식: window,outlet,standing,edge,quiet,nearEntrance."
      • changedInput schema / properties / target_seat_id / description
        Previous value: -"Fixed Pyxis seat ID to reserve when available."New value: +"가용 시 예약할 고정 Pyxis 좌석 ID."
  4. 1 tool update
    • Changedget_library_seat_catalog1 field changed
      • removedInput schema / properties / debug
        Removed value: -{
        -  "description": "Include internal captureNotes (data-collection TODOs). Default false.",
        -  "type": "boolean"
        -}
  5. 1 tool update
    • Changedconfirm_action1 field changed
      • addedInput schema / properties / action_id
        Added value: +{
        +  "description": "확정할 액션 ID (prepare 응답의 actionId). 생략하면 현재 대기 중인 단일 액션을 확정합니다.",
        +  "type": "integer"
        +}
  6. 6 tool updates
    • Addedconfirm_lms_material_export
    • Addedexport_all_lms_materials
    • Addedget_lms_dashboard
    • Addedget_my_lms_courses
    • Addedget_my_lms_materials
    • Addedprepare_lms_material_export
  7. 2 tool updates
    • Removedget_lecture_transcript
    • Removedget_my_lecture_list
  8. 3 tool updates
    • Changedget_my_assignments1 field changed
      • addedInput schema / properties / term_id
        Added value: +{
        +  "description": "조회할 학기 ID (get_my_lms_terms에서 반환된 id). null이면 LMS 기본 학기 사용.",
        +  "type": "integer"
        +}
    • Changedget_my_lecture_list1 field changed
      • addedInput schema / properties / term_id
        Added value: +{
        +  "description": "조회할 학기 ID (get_my_lms_terms에서 반환된 id). null이면 LMS 기본 학기 사용.",
        +  "type": "integer"
        +}
    • Addedget_my_lms_terms
  9. 2 tool updates
    • Addedget_lecture_transcript
    • Addedget_my_lecture_list
  10. 4 tool updates
    • Changedget_library_seat_status1 field changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "compact=true: 전체/가용/예약 수치만 반환 (층 요약). compact=false(기본): 구역별 상세 포함.",
        +  "type": "boolean"
        +}
    • Changedget_my_assignments1 field changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "compact=true: 과제명·마감일만 반환. compact=false(기본): 상세 정보 포함.",
        +  "type": "boolean"
        +}
    • Changedget_recent_notices1 field changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "compact=true: 제목·URL만 반환. compact=false(기본): 날짜·카테고리 포함.",
        +  "type": "boolean"
        +}
    • Changedsearch_notices1 field changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "description": "compact=true: 제목·URL만 반환. compact=false(기본): 날짜·카테고리 포함.",
        +  "type": "boolean"
        +}
  11. 3 tool updates
    • Addedcancel_library_wait
    • Addedget_library_wait_status
    • Addedwait_for_library_seat
  12. 2 tool updates
    • Changedget_library_seat_catalog1 field changed
      • addedInput schema / properties / debug
        Added value: +{
        +  "description": "Include internal captureNotes (data-collection TODOs). Default false.",
        +  "type": "boolean"
        +}
    • Changedrecommend_library_seats1 field changed
      • addedInput schema / properties / include_graduate_only
        Added value: +{
        +  "description": "Include graduate-only reading rooms. Default false — undergraduate users cannot use them.",
        +  "type": "boolean"
        +}
  13. 16 tool updates
    • Addedcheck_scholarship_policy
    • Addedclassify_academic_question
    • Addedconfirm_action
    • Addedevaluate_graduation_with_policy
    • Addedfind_academic_calendar_events
    • Addedget_academic_policy_brief
    • Addedget_library_available_seats
    • Addedget_library_seat_catalog
    • Addedget_my_library_seat
    • Addedget_room_available_seats
    • Addedlist_academic_policy_sources
    • Addedprepare_cancel_library_seat
    • Addedprepare_reserve_library_seat
    • Addedprepare_swap_library_seat
    • Addedrecommend_library_seats
    • Addedsearch_academic_policy_sources
  14. 2 tool updates
    • Addedget_academic_calendar
    • Addedget_meal_weekly
  15. 2 tool updates
    • Changedget_my_schedule2 fields changed
      • addedInput schema / properties / term
        Added value: +{
        +  "description": "Academic term: 1=spring, 2=summer, 3=fall, 4=winter. Must be provided together with year.",
        +  "type": "integer"
        +}
      • addedInput schema / properties / year
        Added value: +{
        +  "description": "Academic year, such as 2026. Must be provided together with term.",
        +  "type": "integer"
        +}
    • Addedsimulate_gpa

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources