meeting-scribe
Allows processing of Zoom meeting audio with per-participant tracks for high speaker accuracy and speaker learning bootstrapping.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@meeting-scribeTranscribe meeting.m4a with speaker diarization"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
meeting-scribe
회의 녹음 파일 → 화자를 학습하는 전사 → 프로젝트 컨텍스트 기반 회의록 자동 작성을 위한 MCP 서버.
🎙️ 폰 녹음(m4a 등) 어떤 포맷이든 처리 (ffmpeg 내장 — 별도 설치 불필요)
👥 화자분리는 로컬 CPU(sherpa-onnx, ~35MB 모델) — 목소리 데이터가 밖으로 안 나감
🧠 화자 학습: 한 번 "이 사람이 김대리"라고 확정하면 다음 회의부터 자동 인식
📚 프로젝트 용어집·참석자·이전 회의 요약이 쌓이며 전사 정확도와 회의록 품질이 갈수록 향상
🔌 ASR 엔진 교체 가능: Groq(무료) / Gemini(무료) / ReturnZero(한국어 특화) / 로컬 Whisper(완전 오프라인)
💻 Zoom 회의는 참가자별 오디오 트랙으로 받으면 화자 정확도 100% + 화자 학습 부트스트랩
설계 배경과 기술 선택 근거는 DESIGN.md 참고.
설치 (Windows/macOS/Linux)
# uv 권장 (https://docs.astral.sh/uv/)
git clone https://github.com/moon0825/-MCP meeting-scribe && cd meeting-scribe
uv venv && uv pip install -e . # 기본 (클라우드 ASR)
uv pip install -e ".[local]" # 선택: 완전 로컬 whisper (민감 회의용)Claude Code에 등록
claude mcp add meeting-scribe --env GROQ_API_KEY=<키> -- uv --directory <설치경로> run meeting-scribe환경변수 (하나 이상 설정, 없으면 [local] 설치 필요):
변수 | 엔진 | 비고 |
| Groq Whisper large-v3-turbo | 무료 티어, 기본 추천 |
| Gemini 2.5 Flash | 무료 티어. 단어 타임스탬프가 없어 화자 배정 정밀도 낮음 |
| ReturnZero | 한국어 최고 정확도 + 키워드 부스팅. 무료 10시간 |
| 기본 엔진 강제 ( |
Related MCP server: mcp-meeting-analyzer
사용 흐름 (Claude Code에서)
1. "무인공장 프로젝트 만들어줘. 참석자는 김대리, 박과장. 용어는 AMR, MFM 등록"
→ create_project / add_participants / add_glossary
2. "이 녹음 전사해줘: C:\Users\me\Recordings\회의.m4a"
→ submit_transcription → (수 분 뒤) get_transcript
3. "화자2가 김대리야" (본인 동의 확인 후)
→ confirm_speaker → 다음 회의부터 자동 제안
4. "회의록 작성해서 저장해줘"
→ Claude가 프로젝트 컨텍스트로 [?] 구간을 추론·보정하며 회의록 작성 → save_minutes
→ 요약·신규 용어가 축적되어 다음 회의가 더 정확해짐프라이버시 / 법적 주의
화자 보이스프린트(음성 임베딩)는 개인정보보호법상 민감정보(생체인식정보) 입니다.
confirm_speaker는 당사자 동의 확인(consent_confirmed=True) 없이는 등록을 거부하며,purge_speaker로 언제든 완전 삭제할 수 있습니다. 임베딩은 로컬 SQLite에만 저장됩니다.민감한 회의는
asr="local"로 완전 오프라인 처리하세요.NVIDIA GPU 자동 감지: RTX 3050급(VRAM 4GB+)이면
large-v3-turbo가 실시간보다 빠르게 동작, GTX 1050(2GB)은small로 자동 축소. CUDA 런타임이 없으면 CPU int8 폴백 (오디오의 1~3배 시간).system_check툴이 현재 머신의 실행 계획을 알려줍니다.
데이터 위치:
~/.meeting-scribe/(MEETING_SCRIBE_DATA로 변경 가능). 리포에 커밋 금지.
개발
uv pip install -e ".[local]"
python scripts/smoke_test.py # 화자분리→전사→학습→재인식 엔드투엔드 테스트Available Tools
14 toolsadd_glossaryB
프로젝트 용어집에 용어 추가. 각 항목은 '용어' 또는 '용어 :: 설명' 형식. 참석자 이름과 함께 ASR 부스팅 + 회의록 추론의 근거가 된다.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes | ||
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that terms are added to a glossary and that they influence ASR and reasoning. However, it does not mention side effects (e.g., whether duplicates are allowed), error scenarios, or permissions. Since no annotations are provided, the description carries the full burden and falls short of fully transparent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded: first sentence states the action and format, second adds purpose. No extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema and no annotations, the description covers the essential information: what it does, format, and purpose. However, it lacks details on duplicate handling and error cases, which could be important for correct usage. Still, it is close to complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It explains the format for 'terms' items ("term" or "term :: description"), adding meaning beyond the schema. However, the 'project' parameter is not explained, and there is no clarification on how terms are added (e.g., append vs. overwrite). Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add terms to project glossary) and the expected format for each term. It also hints at the purpose (ASR boosting and meeting minutes reasoning). However, it does not distinguish this tool from its siblings, such as add_participants or confirm_speaker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not specify prerequisites, such as requiring an existing project, or conditions where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_participantsB
프로젝트 참석자 등록. 각 항목은 '이름' 또는 '이름 :: 역할' 형식.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | ||
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It only states 'register', but doesn't mention if it's idempotent, whether it overwrites existing participants, requires authentication, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the purpose and key format requirement. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't specify return values, error conditions, or behavior for duplicate entries, which are important for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by explaining the format for the 'names' array ('Name' or 'Name :: Role'). However, it does not describe the 'project' parameter beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('register participants for a project') and specifies the required format for each entry ('Name' or 'Name :: Role'). This distinguishes it from sibling tools like add_glossary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to confirm or remove speakers. The description only explains the input format, not the context of usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_speakerA
화자 확정 + 보이스프린트 학습. 확정하면 전사본이 실명으로 재생성되고, 다음 회의부터 이 사람을 자동 제안한다.
⚠️ 음성 임베딩은 개인정보보호법상 민감정보(생체인식정보)입니다. 본인 동의를 받은 뒤 consent_confirmed=True로 호출하세요. 동의 없으면 익명 라벨(화자1)로 두면 됩니다.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| job_id | Yes | ||
| consent_note | No | ||
| cluster_label | Yes | ||
| consent_confirmed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (transcript regeneration, future auto-suggestion) and data sensitivity (voice embedding as biometric info). No annotations provided, so description carries full burden; the warning about consent is a strong behavioral cue.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs: first states purpose and effects, second adds a critical warning and usage note. No irrelevant details, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, side effects, and consent requirements. Missing explicit return value (e.g., success confirmation) but given sibling tools like get_transcript exist, the context is sufficient for a transactional tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description partially compensates by explaining the role of consent_confirmed and implicitly tying name, job_id, cluster_label to the confirmation action. However, it does not explain consent_note or the exact format of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool confirms a speaker and learns voiceprint, with explicit effects: transcript regenerated with real name and auto-suggestion in future meetings. It distinguishes from siblings like list_speakers or purge_speaker by focusing on confirmation and learning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on consent: call with consent_confirmed=True after obtaining consent, else leave as anonymous. This helps the agent decide usage. However, it does not compare to alternatives like purge_speaker for removal or list_speakers for viewing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectC
프로젝트 등록/수정. description은 ASR 힌트와 회의록 작성 맥락으로 쓰인다.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| minutes_template | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description reveals that the description field is used for ASR hints and meeting minutes context, but lacks information on side effects, authorization, or behavior on duplicate names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. Efficient but could be better structured. The first sentence states purpose, second adds param context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the tool's full behavior, return value, or prerequisites. Missing details for name and minutes_template.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It only explains the description parameter's purpose ('ASR 힌트와 회의록 작성 맥락'). Name and minutes_template remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states '프로젝트 등록/수정' (register/edit project) but tool name is create_project, creating ambiguity about whether it only creates or also updates. The verb and resource are clear but the scope is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Sibling tools exist (list_projects, get_project_context) but description does not differentiate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusC
작업 상태·현재 단계·오류 확인.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It states the tool checks status and errors, implying a read-only operation, but does not explicitly confirm non-destructiveness, permissions, or side effects. The behavioral transparency is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single phrase. It is front-loaded and to the point, but lacks any structuring (e.g., bullet points or sentences). It earns its place by being brief, but could be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description provides basic completeness: it tells what the tool does. However, it does not explain possible status values, error types, or how to obtain a job_id, leaving gaps for an agent unfamiliar with the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'job_id' parameter. With 0% schema description coverage, the description should provide meaning or usage context, but it fails to do so. The parameter name is self-explanatory but the description adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking job status, current stage, and errors. It uses a specific verb ('check') and resource ('job status'). However, it does not differentiate from sibling tools like 'get_project_context' which might also return status information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not mention when to use this tool versus alternatives (e.g., 'get_project_context' or 'get_transcript'), nor does it specify any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_contextA
회의록 작성용 프로젝트 컨텍스트: 설명, 용어집, 참석자, 최근 회의 요약, 회의록 템플릿.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It lists return components (description, glossary, attendees, recent meeting summary, minutes template), which indicates it is a read-only retrieval tool. No contradictions or omissions about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently communicates the tool's purpose and content, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (1 parameter) and no output schema, the description partially covers the tool's behavior by listing output components. However, it lacks parameter description, which is a gap for a complete understanding. It is minimally adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'project' parameter. It only describes the output, leaving the agent to infer that 'project' is likely a project identifier. This is insufficient for correct invocation, especially without schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves project context for minutes writing, listing components like description, glossary, attendees, meeting summary, and template. It distinguishes from siblings like list_projects (just lists names) and add_glossary (single component addition).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for minutes writing preparation, providing clear context (회의록 작성용). However, it does not explicitly state when not to use or alternatives, but the context is sufficient for an agent to select this tool over others based on need for full context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptA
완료된 작업의 전사본. 전문은 transcript_path 파일을 읽을 것 (긴 회의 전문을 통째로 컨텍스트에 넣지 않기 위해 미리보기만 반환). speaker_map의 미확정 화자는 사용자 확인 후 confirm_speaker로 확정할 것.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| preview_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses preview behavior and speaker map issues, but does not cover error handling, authentication, or rate limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundant information. Efficient and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains return type (preview) and related speaker confirmation, but lacks details on preview_chars control, output format, and error responses. Moderate completeness given tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, description must compensate. It implies job_id refers to a completed task and preview_chars controls preview length via 'preview only', but does not explicitly detail parameters. Partially informative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'transcript of completed task' and specifies it's a preview to avoid large text, distinguishing it from other tools like confirm_speaker or list_speakers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises to read the full text from transcript_path file, and to confirm unconfirmed speakers using confirm_speaker, providing clear context. No explicit when-not-to-use or alternatives beyond these.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
등록된 프로젝트 목록과 용어/참석자/회의 수.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the function. It implies a read-only query but fails to disclose any behavioral traits like permissions, pagination, or data freshness. Adequate for a simple list but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the core action and output. No extraneous information; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description covers the essential return value. It might benefit from mentioning ordering or limitations, but it is largely complete for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaning by specifying what the list includes (terms, participants, meeting count), which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists registered projects with additional counts of terms, participants, and meetings. This is a specific verb-resource combination that distinguishes it from sibling tools like create_project or get_project_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of scenarios, exclusions, or context that would help an agent decide between this and related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_speakersA
학습된 화자 목록 (임베딩 수가 많을수록 인식이 안정적).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full burden. It adds the insight that more embeddings correlate with stable recognition, which is useful. However, it does not disclose return format, authorization needs, or whether the tool is purely read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with a parenthetical that adds value. Every word earns its place, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema present), the description is largely complete. It explains the resource and adds a useful quality hint. Sibling tools context helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. The description does not need to add parameter meaning; the absence of parameters is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists learned speakers, which is a specific verb-resource pair. It distinguishes from siblings like add_glossary or create_project, but does not explicitly differentiate from other listing tools like list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. The description only provides a behavioral hint about embeddings, but no when/when-not or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purge_speakerB
화자 보이스프린트 완전 삭제 (동의 철회 대응).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It indicates 'complete deletion', which implies destructive and irreversible behavior. However, it lacks details on required permissions, side effects, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose efficiently. However, its Korean language may reduce conciseness for an English-speaking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and no annotations, the description is too minimal. It omits important details such as expected input format, confirmation of deletion, and warnings about irreversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description does not explain the required 'name' parameter beyond the schema. It does not clarify whether 'name' refers to a speaker's name, ID, or other identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs complete deletion of a speaker's voiceprint in response to consent withdrawal. It distinguishes from sibling tools like confirm_speaker or list_speakers. However, it is in Korean, which may limit understanding for non-Korean agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'responding to withdrawal of consent' implies a specific use case when consent is revoked. However, it does not provide explicit when-not-to-use guidance or mention alternative tools. The context is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_minutesA
작성한 회의록 저장. summary(3~5문장)는 다음 회의의 컨텍스트로 재사용된다. 회의에서 새로 등장한 용어는 new_terms('용어 :: 설명')로 용어집에 누적할 것.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| job_id | Yes | ||
| project | Yes | ||
| summary | Yes | ||
| new_terms | No | ||
| minutes_md | Yes | ||
| meeting_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It reveals that the summary is reused as context for the next meeting and that new_terms accumulate in a glossary. However, it does not disclose whether the save is idempotent, whether it overwrites previous minutes, or other side effects like required authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences in Korean, each serving a distinct purpose: stating the primary action and providing usage context. It is front-loaded with the main verb and avoids any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no annotations, and no output schema, the description is insufficient. It does not explain return values, error scenarios, prerequisites (e.g., job_id source), or the relationship between parameters. The agent would need additional context to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions (0% coverage). The description adds meaning to two parameters: summary (length hint) and new_terms (format hint). The other five parameters (title, job_id, project, minutes_md, meeting_date) remain undescribed, so the description only partially compensates for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves meeting minutes ('작성한 회의록 저장') and specifies that the summary is reused for next meeting context. It also gives guidance on handling new terms via the new_terms parameter. This distinguishes it from sibling tools like add_glossary and add_participants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (saving minutes) and provides explicit guidance on how to structure the summary (3-5 sentences) and handle new terms ('용어 :: 설명'). It implicitly tells the agent to use this tool for finalizing minutes and to populate new_terms, but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_transcriptionA
녹음 파일 전사 작업 등록 (즉시 job_id 반환, 백그라운드 처리).
file_path: 오디오 파일 절대 경로 (m4a/mp3/wav 등)
num_speakers: 화자 수를 알면 지정 (정확도 향상), 0이면 자동
asr: rtzr|groq|gemini|local 강제 지정 (기본: 자동 선택. 민감한 회의는 'local')
| Name | Required | Description | Default |
|---|---|---|---|
| asr | No | ||
| project | No | ||
| language | No | ko | |
| file_path | Yes | ||
| num_speakers | No | ||
| skip_diarization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: immediate job_id return, background processing, and parameter effects (num_speakers improves accuracy, asr engine selection). With no annotations, this adequately informs the agent of the tool's nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 lines) and front-loaded with the primary purpose. Every sentence adds value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return of job_id but lacks full structure. It covers main parameters but omits project, language, skip_diarization. The tool's complexity (6 params) is not fully addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for 3 of 6 parameters (file_path, num_speakers, asr) with format hints and usage context. However, project, language, and skip_diarization are not explained, and schema coverage is 0%, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: registering a transcription task for an audio file, returning a job_id immediately and processing in the background. It distinguishes from siblings like get_job_status and get_transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides parameter usage advice (e.g., when to use 'local' asr) but does not explicitly state when to use this tool versus alternatives like submit_zoom_tracks. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_zoom_tracksA
Zoom '참가자별 개별 오디오 파일' 폴더 전사 (화자분리 불필요 — 파일명이 곧 화자). Zoom 설정 > 레코딩 > '각 참가자의 오디오 파일을 개별 녹음'을 켜고 로컬 녹음하면 Documents/Zoom/<회의>/Audio Record/ 에 참가자별 m4a가 생긴다. 그 폴더 경로를 넘길 것.
| Name | Required | Description | Default |
|---|---|---|---|
| asr | No | ||
| project | No | ||
| dir_path | Yes | ||
| language | No | ko |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only explains what the tool does (transcribe the folder) but does not mention side effects, authorization needs, rate limits, or post-processing behavior. The setup instructions are useful but insufficient for complete transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: the first states the core purpose, and the second provides setup context. It is front-loaded but could be more structured (e.g., separate parameter hints). Still, it efficiently conveys essential information without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is incomplete. It explains the input folder structure but does not cover what the tool returns (e.g., transcribed text), error handling, required permissions, or the role of undocumented parameters. This leaves significant gaps for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters with 0% coverage in the description. The description adds value by explaining that 'dir_path' should point to a Zoom-generated folder path. However, it does not explain 'asr', 'project', or 'language', leaving those parameters undocumented. For a low-coverage schema, the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool transcribes Zoom's 'individual audio files' folder, specifying that speaker separation is unnecessary because filenames indicate speakers. This distinguishes it from generic transcription tools like 'submit_transcription' among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit setup instructions (enabling Zoom recording setting and local storage location) and implies the tool is for the specific folder path. However, it does not explicitly state when not to use this tool or mention alternatives, such as 'submit_transcription' for other cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_checkA
실행 환경 점검: CPU/RAM/GPU, ffmpeg, 화자분리 모델, 사용 가능한 ASR 엔진, 로컬 whisper 실행 계획(GPU 자동 감지).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool auto-detects GPU and checks specific system resources, hinting at behavior beyond a simple check. However, it does not mention side effects, permissions needed, or output behavior, and there are no annotations to supplement. Transparency is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence formatted as a colon-separated list of key items. It is concise, front-loads the purpose, and contains no redundant information. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not indicate what the tool returns (no output schema) or how results are presented. For a check tool, the agent likely needs to know the format (e.g., JSON report) or success/failure indicators. Without this, completeness is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema coverage is 100% but conveys nothing. The description adds essential meaning by explaining the tool's purpose and the aspects of the environment it checks. Baseline is 4 for no parameters, and the description fully compensates for the schema's emptiness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the execution environment, listing specific components (CPU/RAM/GPU, ffmpeg, speaker separation model, ASR engines, Whisper plan). This provides a specific verb-resource pairing and distinguishes it from sibling tools, which are all higher-level project operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only lists what is checked, without mentioning prerequisites, typical usage scenarios, or exclusions (e.g., when to use other diagnostic tools).
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. Dates show when Glama detected each change.
14 tool updates
v0.1.0- First observed
add_glossary - First observed
add_participants - First observed
confirm_speaker - First observed
create_project - First observed
get_job_status - First observed
get_project_context - First observed
get_transcript - First observed
list_projects - First observed
list_speakers - First observed
purge_speaker - First observed
save_minutes - First observed
submit_transcription - First observed
submit_zoom_tracks - First observed
system_check
TDQS
Each tool has a clearly distinct purpose, from adding glossary terms to submitting transcriptions and managing speakers. The two transcription submission tools are differentiated by input type (single file vs. Zoom tracks), and all other tools target unique actions without overlap.
All tools follow a consistent verb_noun pattern in snake_case, such as add_glossary, submit_transcription, and system_check. The naming is predictable and uniform across the entire set.
With 14 tools covering project management, participant/glossary handling, transcription submission, speaker confirmation, context retrieval, minutes saving, and system checks, the count is well-scoped for a meeting transcription service. No tool feels superfluous.
The tool surface covers the main workflow end-to-end: project setup, transcription (two methods), speaker identification, context retrieval, minutes saving, and system checks. Minor gaps exist (e.g., no explicit deletion tool for glossary terms or participants), but these are manageable and do not severely hinder agent operation.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthso.transcribe
Transcribe audio and video into speaker-labelled transcripts, subtitles, clips, and cited Q&A.
Transcribe audio & video to text for AI agents: 100+ languages, speaker labels, webhooks.
Search speech in podcasts, government meetings, and your own audio: speakers, entities, timestamps.
- MyGhostsOAuthapp.myghosts
Send AI bots to attend meetings on your behalf. Get recordings, transcripts, and summaries.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides accurate meeting transcription with speaker diarization and multilingual support, allowing users to submit audio URLs, poll transcription status, get transcripts, and summarize via MCP tools in their IDE.81MIT
- AlicenseNot gradedqualityDmaintenanceEnables efficient analysis of recorded meetings by transcribing audio, extracting only non-people frames (e.g., slides), and associating them with timestamps for compact LLM input.MIT
- AlicenseAqualityDmaintenanceLocal speech-to-text transcription using Microsoft's VibeVoice-ASR model with speaker diarization, enabling audio transcription directly in AI tools like Claude Code, Cursor, and OpenCode.32MIT

jackai-stt-mcpofficial
AlicenseAqualityCmaintenanceTranscribes audio files by referencing them in chat, using OpenAI's speech-to-text models locally without uploading audio, and supports speaker diarization.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/moon0825/-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server