A Model Context Protocol (MCP) server for structured, step-by-step learning experiences that manages learning plans divided into multiple steps and guides LLMs through progressive learning
Server has 4 tools with complete input schemas and descriptions in Japanese. Naming follows verb_noun pattern (create_plan_with_steps, start_step, complete_step, get_progress). Descriptions are detailed (200-400 chars) and include usage guidance. However, output schemas are not formally documented in code, responses are inferred from implementation. Parameter descriptions are present but lack explicit constraints (enums, ranges). Error handling is minimal; no recovery guidance or error categorization visible. Tool composition is sound (each does one thing), but missing idempotency guarantees and rate-limit documentation.
ステップを完了にし、次のステップ情報を返す。【いつ使うか】- ユーザーが「わかった」「次へ進みたい」「理解できた」と言ったとき- 現在のステップの解説が終わったとき【LLMへの指示】- plan_id: 対象のプランID- step_id: 完了させるステップのID(start_step のレスポンスに含まれる step_id を使うこと)
プランと全ステップを一括登録する。【いつ使うか】ユーザーが「●●について学習プランを作成して」と言ったとき、最初に1回だけ呼ぶ。プランと全ステップをまとめて登録する。add_step を個別に呼ぶ必要はない。【返却後の処理】このツールの返却値には plan_id, topic, total_steps, steps_summary が含まれます。★重要★ 返却後は、この情報をもとにプランの全体像(トピック・ステップ数・各ステップのタイトル一覧)をユーザーに説明してください。ユーザーが「開始」と言ったら、その後に start_step を呼んでください。【パラメータ】- topic: 学習テーマ(例: "Python基礎", "SQL入門")- steps: 学習ステップのリスト。各ステップに order, title, content を含める。order: ステップの順番(1始まりの整数)、title: ステップのタイトル(例: "変数とデータ型")、content: このステップで教える内容の詳細(LLMが後で解説する元ネタになる)【ステップ設計の指針】- 基礎から応用へ向けて5〜10ステップ程度に分割すること
進捗確認。plan_id省略で全プラン一覧、指定で詳細を返す。【いつ使うか】- 会話が途切れた後に学習を再開するとき- ユーザーが「今どこまで進んだ?」「進捗を教えて」と聞いたとき- どの plan_id を使えばいいか分からなくなったとき- plan_id を省略した場合は全プランの一覧を返す【LLMへの指示】- plan_id を指定すると特定プランの進捗詳細を返す- 省略すると登録済み全プランの概要一覧を返す
指定ステップを開始し、コンテンツと進捗を返す。【いつ使うか】- ユーザーが「学習開始」「次のステップへ」「Step N を教えて」と言ったとき- complete_step の next_action に従って次のステップを開始するとき【LLMへの指示】- plan_id: create_plan_with_steps で返却された plan_id- step_order: 開始するステップの順番(1始まりの整数)- 返却された content をそのまま読み上げるのではなく、ユーザーのレベルに合わせて解説すること
Output schemas not formally documented. Responses inferred from implementation (plans.py returns dict with plan_id, topic, total_steps, steps_summary, next_action). LLMs cannot reliably extract fields without explicit schema documentation.
No error handling or recovery guidance visible. Tools do not validate inputs (e.g., step_order must be 1-based integer, plan_id must exist). No error responses with actionable next steps for LLM.
Parameter constraints not formalized. 'step_order' lacks min/max bounds; 'topic' lacks length limits; 'steps' array lacks size constraints. Descriptions mention '5-10 steps' but no schema enforcement.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No idempotency guarantees documented. Repeated calls to create_plan_with_steps with same topic/steps will generate new plan_ids. Agents retrying on ambiguous failures risk duplicate plans.
Descriptions in Japanese only. While detailed, non-Japanese-speaking developers cannot maintain or debug the server. Tool descriptions should be in English for international accessibility.