MCP server for teacher workflow support including lesson planning, session capture, reflection, and course design
Teaching Suite has 24 well-organized tools with consistent naming (verb_noun pattern) and comprehensive descriptions (avg 180 chars). All tools have input schemas with Zod validation. However, output schemas are not documented in the source, LLMs cannot predict return structures. Parameter descriptions are present but often generic (e.g., 'Workspace root path' repeated 20+ times). Error handling is basic: most tools return {success, error} but lack recovery guidance or actionable error messages. No tool annotations (readOnlyHint/destructiveHint). Composite tools (capture_session, intelligent_save) have good descriptions but lack documented output shapes. File operation tools (file_read, file_write, file_edit) are well-described but missing validation constraints (e.g., max file size, path traversal guards).
Aggregate process log entries by date, lesson, or module. Returns summary statistics and grouped events.
Capture a spontaneous idea with context and Swedish priority (nu/snart/någon_gång). Quick capture without breaking flow - generates structure, tags, and saves to Ideas/ folder.
Parse session content into structured items (ideas, decisions, reflections, questions, observations, actions). Returns parsed data WITHOUT saving to file. Use format_captured_session + intelligent_save to persist, or quick_save_session for complete workflow.
Load and parse context files (lesson plans, reflections, ideas) for use in planning or analysis workflows.
Edit an existing file by applying operations: replace, insert_after, insert_before, append, prepend, delete. Supports workspace validation.
Read file content from the filesystem. Returns content and metadata (size, modified date). Supports workspace validation for security.
Output schemas not documented. LLMs cannot predict return structures for any tool. Tools return {success, error, data?} but data shape is undocumented. Agents cannot plan downstream calls or extract fields reliably.
Generic parameter descriptions repeated across tools. 'Workspace root path' appears 20+ times without explaining what 'workspace' means in context (course root? teacher's home?). LLMs cannot distinguish workspace semantics across tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Search for text across files in a workspace. Returns matching files with line numbers and context. Supports file patterns and exclusions.
Write content to a file. Creates parent directories if needed. Set overwrite: true to replace existing files. Supports workspace validation.
Search workspace for existing project files by content type. Returns paths and metadata (type, date, title, size) without reading file contents. Use after load_methodology to find relevant plans, reflections, ideas, etc. Filters: content_types (required, list), topic (case-insensitive substring match), supports (LO/goal code), framework (e.g. gibbs/kolb), since (ISO date — only files with frontmatter date >= since; undated files pass through), max_results.
Convert captured session items to Obsidian-compatible markdown with YAML frontmatter and Dataview fields. Takes output from capture_session, returns markdown ready for intelligent_save.
Initialize profession-level structure at the workspace root: creates Profession/Manifest/ for the teacher's professional manifesto (which applies across all courses, not per-course). Idempotent — safe to re-run. Run once per workspace (the parent of all course folders), separate from per-course project_init.
Save content with intelligent metadata generation and interactive file placement. Supports analysis, reflections, lesson plans, ideas, decisions, documentation, and more. Returns a suggestion for confirmation unless auto_confirm is true.
Load methodology for a specific process. Always start here before any planning, reflection, or analysis work. Teaching cycle processes: context_gathering — search/retrieval strategy pre_lesson_planning — creating a lesson plan post_lesson_reflection — reflecting after teaching lesson_metadata — YAML spec and tagging pedagogical_foundation — theoretical reference Course design processes: course_intro — overview and stage management course_syllabus — syllabus analysis course_previous — learning from prior iterations course_objectives — writing learning objectives course_modules — organizing modules course_assessment — assessment strategy course_sequences — sequencing lessons Always returns 00_shared_principles.md alongside the requested doc.
Append a single event to the course process log (_system/logs/process_log.yaml). Wraps the existing process-log utility used internally by intelligent_save, exposing it so methodologies (e.g. post_lesson_auto) can log their own events without re-implementing YAML serialisation. Event types: planned, taught, reflected, material_produced, idea_captured, deep_analysis, student_voice_reflection, course_planning_stage, methodology_revised, memo_created, decision_made, todo_created Groups events by date and (optionally) lesson + module. Returns the appended event with auto-generated ISO timestamp, plus the log file path.
Parse raw conversation text (email, meeting transcript) into structured messages [{from, to, date, subject, message}]. Handles Swedish and English headers.
Parse lesson plan YAML into structured metadata and sections. Validates against lesson_metadata schema.
Parse lesson transcript into structured turns [{speaker, role, content, timestamp}]. Handles Swedish and English speaker labels.
Initialize a project: create folder structure (methodology/, Reflections/, Lesson_Plans/, Ideas/, Notes/, Planning/), copy methodology docs, create project_state.json. Run this once at project start.
Scan workspace for all project files and return structured metadata. Used by all processes to discover available resources.
Complete workflow: parse session content, format as markdown, and save to file. Chains capture_session → format_captured_session → intelligent_save. Returns filepath on success, or parsed items with error details on partial failure.
Add a source file to the project sources registry. Sources are tracked for reuse across lessons and courses.
List all sources in the project registry, optionally filtered by role or search term.
Remove a source from the project registry.
Update usage statistics for a source (increment usage count, update last_used timestamp).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without reading descriptions. file_write, file_edit, intelligent_save, capture_idea, log_process_event, source_add, source_remove, source_update_usage should be marked destructiveHint=true.
Error handling lacks recovery guidance. Tools return {success: false, error: string} but do not suggest next steps. E.g., 'File not found' should suggest 'Try file_search() to locate the file' or 'Check workspace path with project_scan()'.
Composite tools (capture_session, format_captured_session, quick_save_session) lack documented output schemas. capture_session returns 'parsed items' but structure is undefined. format_captured_session returns 'markdown' but field names unknown. Agents cannot chain these tools reliably.