Skip to main content
Glama

🥋 miyagi

인내심 많고, 게임화된, 음성 지원 MCP 코딩 튜터. 당신이 명령을 실행합니다. 그것은 훈련시키고, 교정하고, 넘어짐을 잡아주고, 점수를 기록합니다.

CI npm

왁스 온, 왁스 오프. miyagi는 결코 당신을 대신해 작업을 수행하지 않습니다. 다음 명령을 건네주고, 당신의 수준에 맞게 설명하며, 모든 결과를 교훈으로 바꿉니다. 각 실행은 교육 카드로 돌아옵니다: 로드맵에서의 현재 위치, 당신의 경험에 맞춰진 무엇/어떻게/트레이드오프 분석, Mermaid 정신 모델, 사람들을 괴롭히는 함정, 선별된 문서, 그리고 능동 회상 퀴즈. 이 모든 것이 OS의 자체 음성 엔진을 통해 해설됩니다.

설치해도 안전한 이유

이 도구는 당신의 머신에서 셸 명령을 실행하므로, 신뢰하기 전에 읽어보도록 설계되었습니다.

  • 파괴적인 것은 실행되지 않습니다. rm -rf, dd of=/dev/*, 포크 폭탄, curl | sh, 강제 푸시, chmod -R 777은 패턴 매칭되어 호출 모델이 무엇을 주장하든 무조건 드라이런으로 강제됩니다. 이 화면은 부주의한 사용자뿐만 아니라 혼란스러운 AI로부터도 방어합니다. 그래서 전달받은 is_dangerous 플래그를 신뢰하는 대신 판정을 다시 도출합니다.

  • 차단 목록은 백스톱이지 샌드박스가 아닙니다. 실제 경계는 MCP 클라이언트 자체의 승인 프롬프트이며, 명령이 실행되기 전에 당신이 읽는 것입니다. 이 화면은 그 프롬프트가 제대로 처리하지 못하는 좁은 경우, 즉 클릭을 통해 지나가는 사람에게 제안된 명백히 파괴적인 것을 위해 존재합니다.

  • 실패는 충돌 대신 가르칩니다. 0이 아닌 종료 코드는 문제 해결 사다리가 포함된 핫픽스 진단을 반환합니다. 서버는 절대 예외를 던지지 않습니다.

  • 제한적입니다. 60초 타임아웃, 4MB 출력 상한, 네트워크 호출 없음, 텔레메트리 없음, API 키 없음, 계정 없음.

  • 감사하기에 충분히 작습니다. 두 개의 런타임 의존성(MCP SDK와 zod)이 한 소스 파일에 있으며, 한 자리에서 읽을 수 있습니다.

Related MCP server: MCP Walkthrough

설치

MCP 클라이언트를 npx로 지정하면 첫 실행 시 가져옵니다:

npx -y miyagi-mcp

또는 전역으로 설치하면 miyagi 명령이 생깁니다:

npm install -g miyagi-mcp
git clone https://github.com/c00p75/miyagi.git
cd miyagi
npm install
npm run build      # emits dist/miyagi.js
npm test

그런 다음 아래 구성에서 "command": "node", "args": ["<ABS_PATH>/dist/miyagi.js"]를 사용하세요.

MCP 클라이언트 구성

어디서나 동일한 세 줄입니다. 키도, 계정도 없으며, 모든 것이 로컬에서 실행됩니다.

{
  "mcpServers": {
    "miyagi": {
      "command": "npx",
      "args": ["-y", "miyagi-mcp"]
    }
  }
}

그 위치는 다음과 같습니다:

클라이언트

파일

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop (Windows)

%APPDATA%\Claude\claude_desktop_config.json

Cursor

.cursor/mcp.json, 또는 전역 ~/.cursor/mcp.json

AntiGravity / Windsurf

~/.codeium/windsurf/mcp_config.json

Claude Code의 경우, 한 명령으로 끝납니다:

claude mcp add miyagi -- npx -y miyagi-mcp

클라이언트를 다시 시작한 후, 이렇게 시도해 보세요: "내 로드맵을 백엔드 개발자로 설정하고 docker compose config를 가르쳐 줘."

구성 요소

엔진

기능

오디오

비차단 FIFO 큐로, 줄이 서로 말을 끊지 않습니다. 마크다운, URL, 이모지는 말하기 전에 제거되며, OS 엔진은 호출 전에 프로브되어, 바이너리가 없으면 서버를 다운시키는 대신 조용히 넘어갑니다.

로드맵

카테고리, 로드맵, 주제, N/M 단계로 상태를 추적하며, 현재 위치에 따라 다음 명령을 제안합니다.

게임화

명령당 15 XP, 정답 퀴즈당 25 XP에 연속 보너스 배수, 레벨 = floor(XP/100) + 1, 네 가지 타이틀과 연속 배지.

진행 상황

~/.miyagi/profile.json에 저장되어 XP, 연속 기록, 배지, 트랙이 클라이언트 재시작 후에도 유지됩니다.

안전

호출자와 독립적으로 검사되는 9가지 재앙 클래스, 모두 드라이런으로 강제됩니다.

노트

퀴즈 정확도와 전체 세션 로그가 포함된 ROADMAP_PROGRESS.md 내보내기.

음성 엔진

플랫폼

엔진

macOS

say -r <wpm>

Windows

PowerShell System.Speech.Synthesis.SpeechSynthesizer

Linux

spd-say, 실패 시 espeak-ng, espeak, festival 순으로 대체

오디오를 원하는 Linux 사용자: sudo apt install speech-dispatcher.

도구

  • quick_config: 스킬 레벨(주니어/미드/시니어), 카테고리, 트랙, 주제 또는 음성을 한 번에 전환합니다. reset_progress: true를 전달하면 저장된 XP를 초기 상태로 되돌립니다.

  • set_active_roadmap: 카테고리, 로드맵, 주제 및 단계 카운터를 설정합니다.

  • get_next_roadmap_command: 다음 복사-붙여넣기 가능한 명령, advance: true로 한 단계 전진.

  • configure_voice: 오디오 토글, 분당 단어 수 설정, 테스트 문구 말하기.

  • get_user_stats: XP, 레벨, 타이틀, 연속 기록, 배지, 타이틀 사다리.

  • run_teaching_command: 명령을 실행하거나 드라이런하고 교육 카드를 반환합니다.

  • verify_quiz_answer: 퀴즈를 채점하고, 연속 기록과 XP를 업데이트하고, 피드백을 말합니다.

  • export_roadmap_notes: ROADMAP_PROGRESS.md를 작성합니다.

진행 상황이 저장되는 곳

~/.miyagi/profile.json에는 XP, 레벨, 연속 기록, 배지, 스킬 레벨, 음성 설정 및 로드맵 위치가 들어 있습니다. MIYAGI_HOME으로 디렉터리를 재정의할 수 있으며, 이는 테스트가 실제 프로필을 건드리지 않도록 하는 방법이기도 합니다.

이 파일은 손으로 편집할 수 있고 충돌로 잘릴 수 있기 때문에, 다시 읽을 때 신뢰하지 않는 것으로 취급됩니다. 파싱에 실패하는 것은 오류로 올리는 대신 새 프로필로 대체되며, 범위를 벗어난 값은 거부 대신 제한되고, 레벨은 읽는 대신 XP에서 다시 계산되므로, 40 XP에서 레벨 99를 주장하는 파일은 수정됩니다. 쓰기는 임시 파일에 저장된 후 이름이 바뀌므로, 중단된 쓰기는 이전 프로필을 그대로 유지합니다.

개발

npm install
npm run typecheck
npm test           # node:test, no test framework to install
npm run build

CI는 Node 18, 20, 22에서 타입체크, 테스트 및 실제 stdio 핸드셰이크를 실행합니다.

알아두면 좋은 한계

  • 명령은 당신의 권한으로 당신의 디렉터리에서 실행됩니다. 컨테이너도, 제한된 사용자도, syscall 필터도 없습니다. 소유자가 직접 사용하는 로컬 교육 도구에는 적합하며, 신뢰할 수 없는 입력을 받게 된다면 가장 먼저 바꿔야 할 부분입니다.

  • 장기 실행 또는 대화형 명령은 당신의 터미널에서 실행하세요. 60초 제한이 끊을 수 있습니다.

  • XP와 연속 기록이 실제로 사람을 로드맵에 유지하는지는 열린 질문입니다. 진행 파일이 그 답을 가능하게 만듭니다.

라이선스

MIT

Available Tools

8 tools
configure_voiceConfigure VoiceA

Toggle tutor audio on/off and adjust the speech rate in words per minute.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNo
test_phraseNoSpeak this immediately to test the setup.
words_per_minuteNo

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It says the tool toggles audio and adjusts speech rate, but it does not disclose whether settings persist, whether permissions are needed, or what side effects occur. The test_phrase behavior is only in the schema, not the description.

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 efficient sentence with no fluff. The core actions are front-loaded and every word contributes meaning.

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, low-complexity configuration tool with zero required parameters and no output schema, the description is mostly sufficient. But it lacks context about persistence, prerequisites, or the full role of test_phrase, and no output schema means the agent is given no clue about the result of calling 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 only 33%, but the description compensates partially by mapping 'toggle on/off' to enabled and 'speech rate in WPM' to words_per_minute. test_phrase is covered by the schema's own description. The added meaning is useful but modest.

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 ('Toggle'/'adjust') and names the exact resource ('tutor audio' and 'speech rate'). This clearly separates it from siblings like quick_config and run_teaching_command, which are not voice-specific.

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: use this when the user wants to enable/disable tutor audio or change speech rate. However, there is no explicit 'when not to use' statement or mention of alternatives like quick_config, leaving some ambiguity.

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

export_roadmap_notesExport Roadmap NotesA

Write a clean ROADMAP_PROGRESS.md summary of the session: roadmap position, player stats, and every concept and command covered.

ParametersJSON Schema
NameRequiredDescriptionDefault
appendNoAppend instead of overwriting.
output_pathNoFile path (relative paths resolve against the server's cwd).ROADMAP_PROGRESS.md

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does say 'Write', which implies a file mutation, but it does not disclose that the default behavior overwrites an existing ROADMAP_PROGRESS.md, that the file is written to the server's cwd, or any other 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.

Conciseness5/5

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

The description is a single focused sentence with no filler words. It front-loads the primary verb and deliverable, then specifies the content requirements. Every word earns its place.

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 tool is simple with two optional, fully documented parameters and no output schema, so the description covers the core purpose well. However, it omits important behavioral context such as the overwrite-by-default behavior and appropriate invocation timing, leaving mild gaps for an agent deciding when and how to call it.

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 both parameters ('append' and 'output_path') are already documented in the schema. The description does not add parameter-specific meaning beyond 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 states a specific action ('Write'), a specific deliverable ('clean ROADMAP_PROGRESS.md summary'), and the exact content to include ('roadmap position, player stats, and every concept and command covered'). This clearly differentiates it from the sibling tools, none of which are export/summary tools.

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 'summary of the session' implies it should be used after a teaching session to persist progress, but there is no explicit guidance on when to invoke it versus alternatives or whether it should be run at the end of every session. Usage is inferred 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_next_roadmap_commandGet Next Roadmap CommandB

Suggest the next copy-pasteable terminal command for the active roadmap milestone. Optionally advance the step counter.

ParametersJSON Schema
NameRequiredDescriptionDefault
advanceNoAdvance step_index by one before suggesting.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits clearly. It does disclose the optional side effect ('Optionally advance the step counter') and implies the command is not executed directly ('copy-pasteable'). However, it does not elaborate on other state changes, error conditions (e.g., missing active roadmap), or the nature of the return value beyond 'suggest a command'. Basic transparency is present but not thorough.

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 with no wordiness. The primary purpose is front-loaded in the first sentence, and the brief second sentence covers the optional parameter. 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 tool with one optional parameter and no output schema, the description covers the main function and side-effect clearly. It does not mention behavior when no active milestone exists, which is a minor gap, but the description is sufficiently complete for typical use.

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's parameter description ('Advance step_index by one before suggesting.') fully documents the 'advance' parameter. The tool description adds only a synonym ('step counter') without new meaning, so it neither compensates for nor expands upon the schema. Baseline of 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 clearly states a specific verb ('Suggest') and resource ('the next copy-pasteable terminal command for the active roadmap milestone'). It is easy to understand the tool's core purpose, but it does not explicitly distinguish itself from sibling tools like run_teaching_command or verify_quiz_answer, so it lacks overt 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions the context ('for the active roadmap milestone') but does not state exclusions, prerequisites, or how it relates to sibling tools such as run_teaching_command. This leaves the agent to infer usage independently.

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

get_user_statsGet User StatsA

Return the current player profile: XP, level, title, quiz streak, unlocked badges, and roadmap progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
speakNoRead the stats aloud.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of indicating behavior. 'Return the current player profile' clearly signals a read-only retrieval with no apparent side effects. It does not detail voice behavior for speak=true, but that is covered by the schema.

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, information-dense sentence that front-loads the core purpose and then lists return fields. Every word earns its place with no filler or 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?

For a simple one-parameter read-only stats tool, the description is complete: it states what is returned, and the schema fully documents the optional speak parameter. The agent has enough information to select and invoke 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?

Schema description coverage is 100%, and the only parameter 'speak' is fully documented with type, default, and description. The tool description adds no parameter-specific meaning, 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 uses a specific verb and resource: 'Return the current player profile' and enumerates exactly what is included (XP, level, title, quiz streak, unlocked badges, roadmap progress). This clearly differentiates the tool from siblings like verify_quiz_answer or set_active_roadmap.

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: this tool is used when the current player profile or stats are needed. It does not explicitly discuss when not to use it or name alternatives, but the use case is obvious from the description and sibling context.

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

quick_configQuick ConfigC

Instantly switch the target skill level (Junior/Mid/Senior), roadmap category, roadmap track, or topic via simple key-value parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNo
skill_levelNoDepth of explanation used in every teaching card.
roadmap_nameNoe.g. "Backend Developer", "Git and GitHub"
current_topicNo
voice_enabledNo
reset_progressNoWipe saved XP, level, streak and badges back to first-run state.
words_per_minuteNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It says 'switch' but gives no indication of side effects, persistence behavior, or the powerful destructive reset_progress option that wipes XP, level, streak, and badges. The schema mentions reset_progress, but the tool description itself does not warn about the impact.

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

Conciseness3/5

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

The description is short and front-loaded, but it is more under-specified than genuinely concise. Words like 'Instantly' and 'simple' add little information, and a single vague sentence is not enough for a 7-parameter configuration tool with no annotations and no output schema.

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

Completeness2/5

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

For a tool with 7 optional parameters, no annotations, and no output schema, the description is incomplete. It fails to mention the destructive reset behavior, the voice and words_per_minute settings, what happens if multiple parameters are combined, or what response the agent can expect after the call.

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 description coverage is only 43%, so the description should compensate. It maps a few natural-language labels to parameters (skill_level, category, roadmap_name, current_topic), but it omits voice_enabled, words_per_minute, and the critical reset_progress flag. It also adds no detail about valid values for roadmap_name or current_topic beyond naming them.

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 names a specific action ('switch') and identifies several configurable targets: skill level, roadmap category, roadmap track, and topic. This is much more informative than a tautology, but it does not explicitly distinguish quick_config from siblings like set_active_roadmap or configure_voice, 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling tools. It mentions switching several settings but never says 'use this instead of set_active_roadmap or configure_voice when changing multiple config values at once.' The intended usage is implied, but not spelled out.

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

run_teaching_commandRun Teaching CommandA

Execute (or dry-run) a shell command and return a full teaching card: roadmap alignment, level-appropriate What/How/Trade-offs, a Mermaid flowchart, pitfalls, curated docs, and an active-recall quiz. Errors return a Tutor Hotfix Diagnostic instead of throwing.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory for execution.
commandYesThe shell command to teach and optionally run.
conceptNoConcept label for the card, e.g. 'Filesystem navigation'.
dry_runNoExplain without executing.
is_dangerousNoCaller-asserted danger flag. Dangerous commands are forced into dry-run.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that errors return a Tutor Hotfix Diagnostic instead of throwing, and that dry-run is possible. However, it does not mention side effects of executing commands, the behavior of the is_dangerous flag, or any safety caveats, which are important for a command-execution tool.

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 two sentences with no filler. The main action is front-loaded and the output components are listed compactly. It is slightly long due to the enumerative output list, but every listed item adds meaningful context.

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 explains what the tool returns and how errors behave, which is good for a tool with no output schema or annotations. However, it lacks guidance on safety, dry-run usage trade-offs, and how optional parameters like cwd or concept affect behavior, leaving some practical gaps.

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 five parameters. The description adds no extra parameter-level detail beyond mentioning dry-run in prose, so the baseline 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 uses a specific verb-resource pair ('Execute (or dry-run) a shell command') and enumerates the full teaching card contents, making the tool's purpose unmistakable. It is clearly differentiated from siblings like verify_quiz_answer or get_next_roadmap_command, which handle different tasks.

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 clearly implies when to use the tool: whenever a shell command needs to be taught with explanation and practice materials. It does not explicitly name alternatives or state exclusions, so it stops short of a perfect score, but the context is clear enough for an agent to select it.

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

set_active_roadmapSet Active RoadmapC

Configure the active roadmap: category, roadmap name, current topic node, and progress step counters.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes
step_indexNo
total_stepsNo
roadmap_nameYes
current_topicYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of disclosing side effects. It states what is configured but does not mention that this likely changes persistent/global active state, whether prior values are overwritten, or what the result/response of the call is.

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 efficient sentence with the action and resource front-loaded. Every phrase contributes meaning: the resource, the governed fields, and the counter semantics. There is no filler or repetition.

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

Completeness2/5

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

This is a state-setting tool with five parameters, no annotations, and no output schema, so it needs more context to be safely invoked. Missing side effects, usage timing, and clearer parameter relationships leave important gaps for an agent deciding whether and how to call it.

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?

With 0% schema description coverage, the description must compensate, and it partially does by grouping step_index and total_steps as 'progress step counters' and interpreting current_topic as 'current topic node.' However, it does not explain individual parameter meaning, constraints, or how the counters relate to the roadmap state.

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 ('Configure') with a clear resource ('the active roadmap') and lists the key fields involved. This makes the tool's purpose understandable and distinguishes it from retrieval-oriented siblings like get_next_roadmap_command, 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 Guidelines2/5

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

The description gives no guidance on when to choose this tool over alternatives such as quick_config or get_next_roadmap_command. There are no prerequisites, exclusions, or contextual signals explaining the intended workflow placement.

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

verify_quiz_answerVerify Quiz AnswerA

Evaluate the learner's answer to the most recent active-recall quiz. Updates streak, XP and badges, and speaks feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
answerYesThe learner's answer, either a letter (A-D) or the answer text.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the side effects: updating streak, XP, and badges, plus speaking feedback. This gives the agent a clear sense of what will change, though it does not mention reversibility or any prerequisites.

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 one concise, information-dense sentence. It includes the action, target, and side effects without any filler or repetition 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 one-parameter tool with no nested objects and no output schema, the description covers the essential action and effects. It could optionally mention that a quiz must be currently pending, but the phrase 'the most recent active-recall quiz' provides enough contextual framing for correct use.

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 covers the single parameter with 100% description coverage, explaining that 'answer' is either a letter (A-D) or answer text. The tool description adds no additional parameter meaning beyond what the schema provides, 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 uses a specific verb ('Evaluate') and names the precise resource ('the learner's answer to the most recent active-recall quiz'). It also lists the tool's effects (streak, XP, badges, feedback), which clearly distinguishes it from the unrelated sibling 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?

The description clearly implies the tool should be used when a learner provides an answer to the most recent active-recall quiz. It does not explicitly name alternatives or exclusion conditions, but the context is clear and the sibling tools are not overlapping in function.

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. 8 tool updatesv1.0.0
    • First observedconfigure_voice
    • First observedexport_roadmap_notes
    • First observedget_next_roadmap_command
    • First observedget_user_stats
    • First observedquick_config
    • First observedrun_teaching_command
    • First observedset_active_roadmap
    • First observedverify_quiz_answer

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation4/5

Tools are mostly distinct, but quick_config and set_active_roadmap both handle roadmap configuration, which could cause confusion about which to use for what. Other tools like verify_quiz_answer and run_teaching_command have clear, separate purposes.

Naming Consistency4/5

Most tools follow a verb_noun snake_case pattern (verify_quiz_answer, set_active_roadmap, get_user_stats), but 'quick_config' deviates with an adjective prefix and lacks a clear noun, breaking the pattern slightly.

Tool Count5/5

Eight tools is well within the ideal range for a focused tutoring server. Each tool covers a distinct aspect of the tutor workflow—config, teaching, quiz, stats, export—with no redundancy or excessive bloat.

Completeness4/5

The tool set covers core tutor functions: configuration, teaching, assessment, progress tracking, and export. Minor gaps exist, such as no explicit tool to list available topics or manage user preferences beyond voice, but agents can work around these.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers