Unofficial local-first MCP server for safely managing ClassDojo rosters and classroom skills
ClassDojo MCP has 12 well-named tools with clear descriptions and mostly complete schemas. Naming follows verb_noun convention (list_, get_, preview_, apply_, verify_). Descriptions are substantive (100-200 chars typical). However, several parameter descriptions are generic or missing detail. Output schemas are not explicitly documented, responses are inferred from code. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool composition is sound (preview-then-apply pattern), but some tools lack parameter constraints (enums, ranges). Security is reasonable (no exposed secrets in params), but audit/permission patterns are absent.
Applies roster changes from a workbook to ClassDojo classes after preview confirmation.
Applies skill synchronization changes to ClassDojo classes after preview confirmation.
Diagnoses the connection status to ClassDojo and reports any configuration issues.
Reads a class roster without changing ClassDojo data.
Reads positive and needs-work skills, including points and icons, without changing ClassDojo data.
Reports whether the selected class is ready, adding students, or blocked by a family-invitation, welcome-message, or student-account dialog. It does not dismiss anything.
Output schemas not documented. Tool responses are inferred from code (jsonResult wrapper), but no explicit schema definitions visible for return types. LLMs cannot plan downstream calls without knowing what fields to expect.
Error handling lacks recovery guidance. No visible error messages that tell the LLM what to do next (e.g., 'Class not found. Try classdojo_list_classes() first'). Errors are likely raw exceptions without actionable context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Scans every worksheet and reports candidate class, seat-number, and student-name column groups without importing or transmitting student data.
Lists the three-digit classes visible in the locally connected ClassDojo teacher session.
Reads a local XLSX workbook and reports the student-name changes before anything is sent to ClassDojo.
Previews skill synchronization changes before applying them to ClassDojo classes.
Verifies that ClassDojo rosters match the expected state from a workbook preview.
Verifies that ClassDojo skills match the expected state from a skill sync preview.
Parameter descriptions lack specificity. 'rulesSource' in classdojo_preview_skill_sync is described as 'Source of skill rules: preset, class, or inline' but does not explain what each type requires or when to use each. LLMs must infer from code.
No explicit permission or audit patterns. Tools that modify state (apply_roster_import, apply_skill_sync) do not declare required permissions or log who called them. Compliance and incident response are unclear.
Confirmation pattern present but not enforced at schema level. apply_roster_import and apply_skill_sync require confirm=true, but there is no schema validation preventing confirm=false. LLMs could accidentally pass false and expect the operation to proceed.