{"name":"io.github.Eason0in/classdojo-mcp","slug":"eason0in-classdojo-mcp","title":"ClassDojo Classroom MCP","description":"Unofficial local-first MCP for ClassDojo roster imports and classroom skill synchronization.","url":"https://mcp.market/server/eason0in-classdojo-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":24,"stars":0,"forks":0,"downloads_week":64,"last_push_at":"2026-09-16T12:44:10.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Eason0in/classdojo-mcp","website":null,"version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"classdojo-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Loopback Chrome DevTools Protocol URL for the signed-in ClassDojo browser session.","format":"string","name":"CLASSDOJO_CDP_URL"}]}],"tools":[{"name":"classdojo_apply_roster_import","description":"Sends student names to ClassDojo only after explicit confirmation, then verifies each class by reading it back.","write_action":true,"price_micros":0,"input_schema":null},{"name":"classdojo_apply_skill_sync","description":"Exactly replaces target skills only after explicit confirmation, then reads every class back.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_doctor","description":"Checks the local browser connection, login visibility, and available classes without writing data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_get_roster","description":"Reads a class roster without changing ClassDojo data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_get_skills","description":"Reads positive and needs-work skills, including points and icons, without changing ClassDojo data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_get_ui_state","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_inspect_workbook","description":"Scans every worksheet and reports candidate class, seat-number, and student-name column groups without importing or transmitting student data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_list_classes","description":"Lists the three-digit classes visible in the locally connected ClassDojo teacher session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_preview_roster_import","description":"Reads a local XLSX workbook and reports the student-name changes before anything is sent to ClassDojo.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_preview_skill_sync","description":"Compares a preset, source class, or inline rule list with target classes before any skill is changed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_verify_roster_against_workbook","description":"Reads the current ClassDojo roster and a local XLSX workbook, then reports exact count, missing, and unexpected student-name differences without changing ClassDojo data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"classdojo_verify_skill_sync","description":"Compares current target skills with a preset, source class, or inline rule list without changing data.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T05:08:05.211Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:08:05.153Z","components":{"code":{"score":25,"max":25,"notes":["14 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 4 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"classdojo-mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-09-06T05:47:56.202Z","repositoryUrl":"git+https://github.com/Eason0in/classdojo-mcp.git","weeklyDownloads":64}],"repo":{"found":true,"owner":"Eason0in","repo":"classdojo-mcp","archived":false,"pushedAt":"2026-09-16T12:44:10Z","stars":0,"forks":0,"openIssues":4,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/27876028?v=4","ownerCreatedAt":"2017-04-22T02:24:33Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/27876028?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":64,"license":"MIT","lastPushAt":"2026-09-16T12:44:10.000Z","score":24}}}},"grade_history":[],"reviews":[]}