classdojo-mcp
ClassDojo 花名册 MCP
一个非官方的、本地优先的模型上下文协议(MCP)服务器,专为需要检查 Excel/XLSX 学生花名册、预览更改、将学生导入 ClassDojo 并在之后验证已保存花名册的教师而设计。它可与任何能够启动本地 stdio 服务器的 MCP 客户端配合使用,包括 Claude Desktop、Codex、Cursor 和 VS Code。
[!IMPORTANT] 此社区项目与 ClassDojo 无关联,未获其认可,也不受其支持。由于目前尚无官方的 ClassDojo 公共 API/MCP,本项目通过本地浏览器适配器使用已登录的 ClassDojo 教师网站。ClassDojo 界面变更可能需要更新适配器。
繁體中文文件:docs/README.zh-TW.md
为什么需要这个 MCP 服务器
ClassDojo 的批量粘贴流程可能会将开头的数字解释为列表编号,而不是学生显示名称的一部分。此服务器让花名册更改保持可审查,并支持两种明确的格式:
seat_number_dot_name:逐个创建诸如1.Student A的名称,从而保留座位号。name_only:在不需要座位号时使用 ClassDojo 更快的批量粘贴流程;如果源班级包含重复名称,则会被拒绝。
每次写入都需要一个全新的 15 分钟预览 ID 以及 confirm: true。保存后,服务器会重新读取班级并比较名称和人数。
Related MCP server: excel-mcp-server
它能做什么
工具 | 写入数据 | 用途 |
| 否 | 检查本地浏览器连接、登录状态和可见班级。 |
| 否 | 列出教师会话中可见的三位数班级。 |
| 否 | 扫描每个工作表,查找可能的班级、座位号和学生姓名列。 |
| 否 | 读取当前 ClassDojo 班级花名册。 |
| 否 | 检测可能阻止花名册操作的对话框;它从不关闭这些对话框。 |
| 否 | 将工作簿学生与 ClassDojo 进行比较,并创建短期预览 ID。 |
| 是 | 使用 |
| 否 | 比较预期与实际人数、缺失姓名和意外姓名。 |
工作簿检查器不假定固定的工作表名称或列位置。它会扫描整个工作簿,查找常见的中英文班级/座位/姓名表头。预览和验证随后要求明确选择非空的 sheetNames 以及班级映射,防止代理静默合并重复或不相关的工作表。
安全工作流程
运行
classdojo_doctor。运行
classdojo_inspect_workbook并选择预期的工作表和检测到的班级块。使用明确的
studentNameFormat运行classdojo_preview_roster_import。审查班级映射、人数、缺失的座位号和新增项。
仅在人工批准后,使用返回的
previewId和confirm: true调用classdojo_apply_roster_import。运行
classdojo_verify_roster_against_workbook进行独立的读回检查。
预览 | 读回验证 |
所有截图仅包含合成数据。
要求
Node.js 20 或更高版本
Chrome 或其他支持 Chrome DevTools 协议(CDP)的 Chromium 浏览器
您自己登录的 ClassDojo 教师账户
支持本地 stdio 服务器的 MCP 客户端
MCP 服务器从不要求提供 ClassDojo 密码、cookie 或 API 令牌。
启动本地浏览器适配器
使用专用的浏览器配置文件,并在该窗口中登录 ClassDojo。
macOS
open -na "Google Chrome" --args \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.classdojo-mcp-chrome"Linux
google-chrome \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.classdojo-mcp-chrome"Windows PowerShell
& "$env:ProgramFiles\\Google\\Chrome\\Application\\chrome.exe" \`
--remote-debugging-port=9222 \`
--user-data-dir="$env:LOCALAPPDATA\\classdojo-mcp-chrome"将调试端口保留在回环地址上。任何能够访问 CDP 端点的人都可能控制其浏览器会话。
在 MCP 客户端中安装
在每个客户端中使用相同的命令从公共 npm 包安装:
npx -y classdojo-mcp贡献者也可以克隆此仓库,运行 npm ci && npm run build,并将命令替换为 node 加上 dist/cli.js 的绝对路径。
Claude Desktop 和 Cursor
{
"mcpServers": {
"classdojo": {
"command": "npx",
"args": ["-y", "classdojo-mcp"],
"env": {
"CLASSDOJO_CDP_URL": "http://127.0.0.1:9222"
}
}
}
}VS Code
{
"servers": {
"classdojo": {
"type": "stdio",
"command": "npx",
"args": ["-y", "classdojo-mcp"],
"env": {
"CLASSDOJO_CDP_URL": "http://127.0.0.1:9222"
}
}
}
}Codex
将此添加到 ~/.codex/config.toml:
[mcp_servers.classdojo]
command = "npx"
args = ["-y", "classdojo-mcp"]
[mcp_servers.classdojo.env]
CLASSDOJO_CDP_URL = "http://127.0.0.1:9222"客户端界面和配置位置会随时间变化;请参阅客户端当前的文档。传输方式本身是标准 MCP stdio,并非 Codex 特有。
工具输入示例
首先检查工作簿:
{
"workbookPath": "/absolute/path/to/students.xlsx"
}使用合成班级映射创建预览:
{
"workbookPath": "/absolute/path/to/students.xlsx",
"sheetNames": ["Grade 5"],
"studentNameFormat": "seat_number_dot_name",
"includeStudentDetails": false,
"mappings": [
{
"classdojoClassName": "503",
"sourceClassName": "Grade 5 Class 3"
}
]
}仅在审查预览后应用:
{
"previewId": "00000000-0000-4000-8000-000000000000",
"confirm": true
}预览 ID 在 15 分钟后过期,仅存在于正在运行的 MCP 进程中,并且会被第一次应用尝试消耗。这减少了意外重放和重复导入。如果某个班级失败,结果会指出已验证的班级以及生成新预览后可重试的班级。
隐私与安全
工作簿解析和浏览器自动化在教师的计算机上本地运行。
该项目不运行托管的 MCP 服务,也不持久化凭据或学生花名册。
学生姓名仍可能经过所选的 MCP 客户端/AI 提供商。在使用真实学生数据之前,请审查该提供商的保留和隐私条款。
切勿将包含个人数据的真实工作簿、学生截图、浏览器配置文件、cookie 或诊断日志附加到公开问题中。
在 v0.1.0 中,只有花名册导入是可写的。积分、考勤、消息、家庭邀请和其他 ClassDojo 功能有意保持不可用。
请参阅 docs/PRIVACY.md、SECURITY.md 和威胁模型。
故障排除
症状 | 检查 |
浏览器连接失败 | 确认专用的 Chrome 窗口仍在以 |
未登录 | 在专用窗口中手动登录,然后重新运行 |
没有可见班级 | 打开教师班级页面,确认账户具有访问权限。 |
导入被阻止 | 运行 |
座位号消失 | 使用 |
未检测到工作簿列 | 使用可重现表头布局的合成工作簿打开一个问题。 |
验证结果不同 | 停止写入,比较 |
项目状态与路线图
版本 0.1.x 处于实验阶段。Web 界面适配器有意保持隔离,以便未来官方的 ClassDojo API 可以在不改变公共 MCP 工具工作流程的情况下替换它。
计划中的工作:
更多合成工作簿布局和区域设置覆盖
MCP 客户端兼容性矩阵和 Inspector 冒烟测试
如果 ClassDojo 授予 Early Access,则提供官方 API 适配器
仅在隐私和权限审查之后提供可选的只读工具
本项目不会对未记录的 ClassDojo REST 端点进行逆向工程,也不会将其承诺为稳定的公共 API。
开发
npm ci
npm test
npm run build
npm audit --omit=dev
npm pack --dry-runstdio 协议使用 stdout;切勿在服务器中添加 console.log 调用。请使用 stderr 进行诊断。在提交拉取请求之前,请参阅 CONTRIBUTING.md。
社区元数据与发布
MCP Registry 名称:
io.github.Eason0in/classdojo-mcpnpm 包:
classdojo-mcp传输方式:
stdio许可证:MIT
server.json 和 package.json#mcpName 有意与 MCP Registry 所有权格式匹配。发布工作流已为受保护的 GitHub Actions 环境、npm Trusted Publishing、provenance 和 MCP Registry OIDC 做好准备;在维护者明确配置 release 环境和 npm 发布者之前,它不可用。此仓库中不应存在长期有效的 npm 令牌。
许可证
MIT © Eason0in
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI models to search, read, and analyze Excel files from your local file system with support for multiple worksheets, text search, and JSON data conversion.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables manipulation of Excel files including creating, reading, writing data, formatting, charts, pivot tables, and worksheet management via natural language.25MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to read, write, format, and analyze Excel files with 34 tools, including real-time editing on macOS with Microsoft Excel.3417
- AlicenseAqualityCmaintenanceEnables translation of Excel files using Claude AI while preserving formatting, formulas, and data integrity.6382MIT
Related MCP Connectors
Read your team's end-of-day reports and roster from Eodly.
Convert PDF bank statements to checked Excel, CSV or JSON with balance validation.
Real .docx and .xlsx files from structured data, with automatic Hebrew/Arabic RTL.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Eason0in/classdojo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server