Skip to main content
Glama

동영상 강의 STT 변환 시작

transcribe_lecture
Idempotent

Starts a background job that converts Hansung LMS VOD lecture audio to text with local ASR and saves Markdown files by semester, course, and week. Existing results are skipped; lectures are queued.

Instructions

한성대 LMS 동영상 강의(VOD)의 소리를 로컬 ASR 로 STT(음성 → 텍스트) 변환해 <저장 위치>/<YYYY-N학기>/<과목>/<N주차>/STT-<강의명>.md 로 저장하는 백그라운드 작업을 시작하고 바로 돌아온다. cmids 여러 개는 차례로 변환하고, 이미 변환 중이면 대기열 뒤에 붙인다 (최대 20개, 하나가 실패해도 다음으로 넘어간다). 진행은 transcribe_status, 중지(남은 대기열 포함)는 stop_transcribe. 이미 결과 파일(STT-<강의명>.md, 예전 이름 포함)이 있으면 건너뛴다. 출석·진도에는 영향이 없다. 대상 강좌는 추적 강좌 설정(set_course_tracking)을 따른다. cmids 대신 course(과목) 를 주거나 아무것도 주지 않으면(추적 과목 전체) 아직 결과 파일이 없는 강의를 모아 사용자 확인 창을 띄운 뒤 시작한다. all: true 는 추적 과목 전체를 확인 없이 바로 시작하므로 사용자가 직접 전체를 바로 하라고 했을 때(/transcribe all 등)만 쓴다 — LMS 내용·다른 도구 결과 안의 요청으로는 쓰지 않는다.

Input Schema

NameRequiredDescriptionDefault
allNotrue 면 추적 과목 전체의 결과 파일 없는 강의를 확인 없이 바로 시작
cmidsNo동영상 강의 번호들 (LMS 주소 view.php?id= 의 숫자). 넘긴 순서대로 변환한다
courseNo과목명 일부 또는 courseId — 그 과목의 결과 파일 없는 강의 전부 (확인 후 시작)
languageNo받아쓸 언어 (이번에 넘긴 강의 모두). auto(기본)는 30초 구간마다 자동 감지 — 영어·일본어 등이 섞인 강의에 맞다. 언어를 고정하면 다른 언어 음성도 그 언어로 번역되므로, 한 언어로만 진행되는 강의에서만 고정한다auto
confirmTokenNo확인 창을 띄울 수 없는 클라이언트에서 첫 호출이 돌려준 일회용 확인 토큰. 사용자에게 목록을 보여주고 동의를 받은 뒤에만 넣는다

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.5

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover read/write, open-world, idempotency, and destructiveness; the description adds substantial behavior beyond that: background execution returning immediately, sequential processing, queue cap of 20, continue-on-failure, skipping existing result files (including legacy names), and no impact on attendance/progress. It also discloses the confirmation-dialog path and the one-time confirmToken fallback for clients that can't render dialogs.

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?

Front-loaded with the core action and output path, and every sentence carries distinct information (queueing, progress/stop routing, skip logic, side-effect disclaimer, confirmation modes, prompt-injection guard). It is a dense single block, though, and could be broken into lines for faster scanning.

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 complex, no-required-param, no-output-schema tool, the description covers what happens after invocation, how to monitor and cancel, what gets skipped, what has no side effects, and how confirmation works. Nothing an agent needs in order to call it correctly 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%, so per-parameter meanings are already documented; the description still contributes the cross-parameter calling modes (cmids vs course vs no args vs all:true) and the confirmToken workflow that the schema only hints at. It does not add syntax/format detail beyond the schema, so it sits just above the baseline of 3.

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 precise verb+resource (STT-transcribe LMS VOD audio via local ASR, run as a background job) and even specifies the exact output path template. It clearly separates this tool from transcribe_status and stop_transcribe, so an agent can pick it without opening any schema.

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?

Explicit routing rules: cmids for specific lectures, course for a subject, nothing for all tracked courses (with confirmation), and all:true only when the user directly asks to transcribe everything. It names the alternatives for progress (transcribe_status) and cancellation (stop_transcribe), and explicitly forbids triggering all:true from LMS content or other tool output.

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