A collaborative study planning and execution platform with WebMCP tool integration. Serves a REST API backing task management, flashcards, quizzes, focus sessions, and progress tracking. The frontend registers WebMCP tools on document.modelContext whose execute functions call identical backend endpoints, enabling both human and agent actions through the same code paths.
StudyMesh has 8 tools with basic naming and descriptions, but significant gaps in schema completeness, parameter documentation, and error handling. Tool names follow verb_noun convention (add_study_task, move_task, etc.), which is good. However, most tools lack detailed parameter descriptions, type constraints (enums for priority/status), and output schema documentation. Descriptions are present but generic (avg ~80 chars, below the 194-char baseline). No error handling guidance, no idempotent/destructive hints, and no recovery paths documented. The server is HTTP-based (good for transport), but tool definitions appear inferred from frontend JS rather than explicitly registered with full schemas in the backend.
Add a new study task to the board with title, subject, priority, and due date
Generate a set of flashcards for a given topic
Build a quiz with multiple-choice questions for a given topic
Move a task to a different status (todo, doing, done)
Reschedule one or more tasks to a new due date and optionally change priority
Set a study alarm for a specific time with optional subject and note
Start a timed focus/Pomodoro session for studying
No output schemas documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure (e.g., what fields does track_progress return? Does add_study_task return task_id for chaining?).
Priority and status parameters lack enum constraints. 'priority' accepts 'low|med|high' and 'status' accepts 'todo|doing|done', but these are documented only in descriptions, not as formal enums. LLMs may hallucinate invalid values.
No error handling guidance. Tools return HTTPException on 404 (task/alarm not found) but provide no recovery hints. LLMs receive raw errors with no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get a summary of study progress including completed tasks, XP, streak, and weak areas
Parameter descriptions are minimal (avg 30-50 chars). E.g., 'due' is described as 'Due date label (e.g. This week, Tomorrow, Fri)', examples in descriptions encourage LLMs to reuse them literally. Should use enum or pattern constraint instead.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads (track_progress) from writes (add_study_task, delete operations). Missing idempotent hints on retry-safe operations.