Skip to main content
Glama

get_my_lms_courses

Read-onlyIdempotent

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

Input Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema 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: +[]
  2. Changed1 schema 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."
  3. Added

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources