mcpField
C
ClassDojo Classroom MCP

ClassDojo Classroom MCP

ローカル
github.com/Eason0in科学・教育08 週間前に更新

ClassDojo Classroom MCP について

ClassDojo Classroom MCPは、Excel/XLSXの名簿取り込みやクラスルームスキルの確認・同期を行う、教師向けの非公式なローカル優先サーバーです。ローカルブラウザーセッションを使い、変更のプレビュー、人による承認、適用、読み戻し検証を分けています。

主な機能

  1. 01ワークシートからクラスと生徒の列を検出
  2. 02形式を指定した名簿のプレビューと取り込み
  3. 03クラス名簿の読み取りと検証
  4. 04クラスルームスキルのプレビューと同期
  5. 05書き込みには確認が必要

活用シーン

  1. 01選択したワークシートの名簿をClassDojoへ取り込み
  2. 02生徒の表示名に座席番号を保持
  3. 03複数クラスへのスキルルールのコピーや適用
  4. 04取り込んだ生徒と同期したスキルの照合

MCP 対応

ローカルMCP stdioを通じて、ワークブックの検査、ClassDojoデータの読み取り、名簿やスキル変更のプレビュー・適用・検証を行うツールとプロンプトを提供します。ローカルブラウザーアダプター経由で、サインイン済みの教師セッションに接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"eason0in-classdojo": {
"command": "npx",
"args": [
"-y",
"classdojo-mcp"
],
"env": {
"CLASSDOJO_CDP_URL": "<CLASSDOJO_CDP_URL>"
}
}
}
}
起動コマンドnpx -y classdojo-mcp
設定が必要な環境変数
CLASSDOJO_CDP_URLLoopback Chrome DevTools Protocol URL for the signed-in ClassDojo browser session.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmclassdojo-mcp0.2.0

ツール

12

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

ClassDojo 教室 MCP

CI npm Node.js 20+ MCP stdio MIT License

Excel/XLSX の生徒名簿を調べてインポートしたり、ClassDojo の教室スキルを確認、同期、検証したりする必要がある教師向けの、非公式でローカルファーストな Model Context Protocol(MCP)サーバーです。Claude Desktop、Codex、Cursor、VS Code など、ローカルの stdio サーバーを起動できるあらゆる MCP クライアントで動作します。

重要

このコミュニティプロジェクトは、ClassDojo とは提携、承認、サポート関係にありません。公式の公開 ClassDojo API/MCP がまだ提供されていないため、ローカルのブラウザーアダプターを介して、サインイン済みの ClassDojo 教師用ウェブサイトを使用します。ClassDojo の UI に変更があると、アダプターの更新が必要になる場合があります。

繁體中文文件:docs/README.zh-TW.md

この MCP サーバーが作られた理由

ClassDojo の一括貼り付けでは、先頭の数字が生徒の表示名の一部ではなく、リスト番号として解釈されることがあります。このサーバーでは名簿の変更を確認できるようにし、次の 2 つの明示的な形式をサポートしています。

  • seat_number_dot_name:1.Student A のような名前を一度に 1 つずつ作成し、座席番号を保持します。
  • name_only:座席番号が不要な場合に ClassDojo の高速な一括貼り付けを使用します。元のクラスに重複する名前がある場合は拒否されます。

書き込みにはすべて、有効期間が 15 分の最新のプレビュー ID と confirm: true が必要です。保存後、サーバーはクラスを読み戻し、名前と人数を比較します。

できること

ツールデータを書き込む目的
classdojo_doctorいいえローカルのブラウザー接続、ログイン状態、表示可能なクラスを確認します。
classdojo_list_classesいいえ教師のセッションに表示される 3 桁のクラスを一覧表示します。
classdojo_inspect_workbookいいえすべてのシートをスキャンし、クラス、座席番号、生徒名の列と思われるものを検出します。
classdojo_get_rosterいいえ現在の ClassDojo クラス名簿を読み取ります。
classdojo_get_skillsいいえポイントとアイコン付きで、肯定的なスキルと改善が必要なスキルを読み取ります。
classdojo_get_ui_stateいいえ名簿操作を妨げる可能性のあるダイアログを検出します。ダイアログを閉じることはありません。
classdojo_preview_roster_importいいえワークブックの生徒と ClassDojo を比較し、有効期間の短いプレビュー ID を作成します。
classdojo_apply_roster_importはいconfirm: true を指定してプレビューを適用し、保存後に読み戻して検証します。
classdojo_verify_roster_against_workbookいいえ予想人数と実際の人数、欠落している名前、予期しない名前を比較します。
classdojo_preview_skill_syncいいえプリセット、元クラス、またはインラインルールリストを対象クラスと比較し、有効期間の短いプレビュー ID を作成します。
classdojo_apply_skill_syncはいconfirm: true を指定してスキルのプレビューを正確に同期し、すべてのクラスを読み戻します。
classdojo_verify_skill_syncいいえ現在のスキルと選択したルールソースを独立して比較します。

classdojo_configure_skill_rules MCP プロンプトは、組み込みの traditional_chinese_classroom_v1 プリセットを使う手順をクライアントに案内し、変更を希望するかユーザーに確認します。最終的なリスト全体を表示し、プレビュー、承認、適用、検証をそれぞれ別の手順として扱います。

ワークブックの検査では、シート名や列位置が固定されているとは想定しません。一般的な中国語および英語のクラス/座席番号/名前の見出しを探して、ワークブック全体をスキャンします。プレビューと検証では、明示的に選択した空ではない sheetNames とクラスのマッピングが必須です。これにより、エージェントが重複したシートや無関係なシートを暗黙のうちにまとめることを防ぎます。

安全なワークフロー

合成データを使ったワークブックの検査

  1. classdojo_doctor を実行します。
  2. classdojo_inspect_workbook を実行し、対象のシートと検出されたクラスブロックを選択します。
  3. studentNameFormat を明示して classdojo_preview_roster_import を実行します。
  4. クラスの対応付け、人数、座席番号の欠落、追加内容を確認します。
  5. 人による承認後に限り、返された previewId と confirm: true を指定して classdojo_apply_roster_import を呼び出します。
  6. 独立した読み戻し確認のため、classdojo_verify_roster_against_workbook を実行します。
プレビュー読み戻し検証
合成名簿のインポートプレビュー合成名簿の検証結果

すべてのスクリーンショットには合成データのみが含まれています。

安全なクラスルームスキルのワークフロー

組み込みの繁体字中国語プリセットには、9 個の肯定的なスキルと 6 個の要改善スキルが含まれています。これは公開パッケージデータであり、中立的なプリセット ID を使用しています。教師名、アカウント識別子、生徒データは含まれていません。

  1. classdojo_configure_skill_rules プロンプトから始めるか、classdojo_get_skills を呼び出して元のクラスを確認します。
  2. プリセット全体を確認し、必要に応じて項目の追加や削除、ポイントの変更、アイコンの変更を行います。
  3. 元データを 1 つだけ指定して classdojo_preview_skill_sync を呼び出します。元データには、組み込みプリセット、3 桁の元クラス、または完全なインラインスキルリストを指定できます。
  4. 各対象の追加、更新、削除をすべて確認します。
  5. 人による承認後に限り、1 回限りの previewId と confirm: true を指定して classdojo_apply_skill_sync を呼び出します。
  6. 独立した比較のため、classdojo_verify_skill_sync を呼び出します。

スキルの同期では、完全置換が行われます。プレビュー後にクラスが変更された場合、新しい状態を上書きするのではなく、適用は停止します。一致するクラスは変更されず、部分的な失敗が発生した場合は再試行の前に新しいプレビューが必要です。

要件

  • Node.js 20 以降
  • Chrome、または Chrome DevTools Protocol(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"

クライアントの UI や設定場所は時間とともに変わります。最新の情報はクライアントのドキュメントを参照してください。トランスポート自体は標準の 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 プロセス内でのみ有効で、最初の適用試行で消費されます。これにより、誤った再実行や重複インポートを減らせます。クラスの処理に失敗した場合、結果には検証済みのクラスと、新しいプレビューの生成後に再試行できるクラスが示されます。

複数の対象に対して、組み込みの classroom-skill プリセットをプレビューします。

{
  "rulesSource": {
    "type": "preset",
    "presetId": "traditional_chinese_classroom_v1"
  },
  "targetClassNames": ["502", "503", "504"]
}

{"type":"class","className":"501"} を使うと、実際のソースクラスをコピーできます。プリセットを変更するには、完全な最終リストを {"type":"inline","skills":[...]} で送信します。各ルールには category、name、整数の points が必要で、iconId は任意です。良い評価の点数は 0..5、改善が必要な評価の点数は -5..0 にする必要があり、名前は一意でなければなりません。

プライバシーとセキュリティ

  • ワークブックの解析とブラウザーの自動操作は、教師のコンピューター上でローカルに実行されます。
  • このプロジェクトはホスト型 MCP サービスを実行せず、認証情報や生徒名簿を永続化しません。
  • 生徒の名前は、選択した MCP クライアント/AI プロバイダーを経由する場合があります。実際の生徒データを使う前に、そのプロバイダーのデータ保持とプライバシーに関する規約を確認してください。
  • 個人データを含む実際のワークブック、生徒のスクリーンショット、ブラウザープロファイル、Cookie、診断ログを、公開 issue に添付しないでください。
  • 書き込み可能な操作は、確認済みの名簿インポートと確認済みの classroom-skill 同期に限られます。ポイント付与、出欠、メッセージ送信、家族の招待、その他の ClassDojo 機能は引き続き利用できません。

docs/PRIVACY.md、SECURITY.md、脅威モデルをご覧ください。

トラブルシューティング

症状確認事項
ブラウザーに接続できない--remote-debugging-port=9222 を指定して専用の Chrome ウィンドウが引き続き実行中であることを確認してください。
ログインしていない専用ウィンドウで手動でサインインしてから、classdojo_doctor を再実行してください。
クラスが表示されない教師用クラスページを開き、アカウントにアクセス権があることを確認してください。
インポートがブロックされるclassdojo_get_ui_state を実行し、家族の招待やウェルカムダイアログを手動で閉じてください。
座席番号が消えるstudentNameFormat: "seat_number_dot_name" を使用してください。一括貼り付けは name_only の場合にのみ使用されます。
ワークブックの列が検出されないヘッダーの配置を再現する合成ワークブックを添えて issue を作成してください。
検証結果が一致しない書き込みを停止し、missingStudents と unexpectedStudents を比較してから、新しいプレビューを作成してください。

プロジェクトの状況とロードマップ

バージョン 0.2.x は実験的なものです。Web UI アダプターは意図的に分離されているため、将来、公式の 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-run

stdio プロトコルは stdout を使用します。サーバーに console.log 呼び出しを追加しないでください。診断には stderr を使用してください。pull request を作成する前に CONTRIBUTING.md をご覧ください。

コミュニティメタデータとリリース

  • MCP Registry 名:io.github.Eason0in/classdojo-mcp
  • npm パッケージ:classdojo-mcp
  • トランスポート:stdio
  • ライセンス:MIT

server.json と package.json#mcpName は、MCP Registry の所有者形式に一致するよう意図的に設定されています。リリースワークフローは、保護された GitHub Actions 環境、npm Trusted Publishing、provenance、MCP Registry OIDC 向けに準備されています。ただし、メンテナーが release 環境と npm publisher を明示的に設定するまでは使用できません。このリポジトリに長期間有効な npm トークンを置かないでください。

ライセンス

MIT © Eason0in

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。