schoolbridge
schoolbridge
学校のLMS(Canvas等)をAIエージェントと連携させます。
schoolbridgeはあなたの学校のLMSを監視し、AIエージェントが実際に利用できる形に変換します。教師が課題を投稿したり、成績をアップロードしたり、締切を変更したり、お知らせを投稿したりすると、エージェントがその情報を取得し、あなたに報告したり、週間ランキングを作成したり、次のテストに向けた学習計画を立てたりすることができます。
3つの異なるインターフェースを備えているため、ほとんどのエージェント環境で動作します。
インターフェース | 対象 | 使用例 |
MCPサーバー | Claude Code、Claude Desktop、Claude Cowork、その他MCPクライアント |
|
エージェントスキル ( | Hermes、OpenClaw、その他Agent-Skillsランタイム |
|
JSON CLI | シェル駆動型エージェント、cronジョブ、スクリプト |
|
イベントウォッチャー | プッシュ型自動化 |
|
Canvasは標準のプロバイダーです。プロバイダーインターフェースは小さく、文書化されているため、Google Classroom、Schoology、Moodleなども追加可能です — docs/PROVIDERS.md を参照してください。
schoolbridgeは読み取り専用です。LMSに書き戻すことは一切ありません。
クイックスタート
npm install -g schoolbridge # or run everything below with: npx schoolbridge …すぐに試す(認証情報不要)
すべてのコマンドで --provider mock を使用すると、現実的なサンプルデータが提供されます。
schoolbridge upcoming --provider mock 1. [CRITICAL 73] Chapter 12 Reading Quiz
US History · overdue by 20h · 10 pts · missing
2. [HIGH 66] Unit 4 Test: Cellular Energetics
AP Biology · due in 4d 23h · 100 pts · unsubmitted
3. [HIGH 59] Reconstruction DBQ Essay
US History · due in 2d 23h · 100 pts · unsubmitted
...実際のCanvasアカウントと接続する
ブラウザでCanvasにログイン → アカウント → 設定 → 承認済み連携 までスクロール → + 新しいアクセストークン。トークンをすぐにコピーします。
以下を実行:
schoolbridge init --base-url https://yourschool.instructure.com --token <paste-token>init は接続を確認し、設定を ~/.schoolbridge/config.json(0600 パーミッションで作成 — トークンが保存されます)に保存します。ファイルを完全にスキップして、CANVAS_BASE_URL および CANVAS_ACCESS_TOKEN 環境変数を使用することもできます。
その後:
schoolbridge upcoming # ranked work due this week (+ recent overdue work)
schoolbridge grades # course grades + recently graded assignments
schoolbridge announcements # recent teacher announcements
schoolbridge events # what changed since the last checkRelated MCP server: Canvas LMS MCP Server
Claudeで使用する(MCP)
Claude Code
claude mcp add schoolbridge -- npx -y schoolbridge mcpClaude Desktop / Claude Cowork
MCP設定(例:claude_desktop_config.json)に以下を追加:
{
"mcpServers": {
"schoolbridge": {
"command": "npx",
"args": ["-y", "schoolbridge", "mcp"],
"env": {
"CANVAS_BASE_URL": "https://yourschool.instructure.com",
"CANVAS_ACCESS_TOKEN": "your-token"
}
}
}
}(schoolbridge init を実行した場合、env ブロックはオプションです — サーバーは保存された設定を読み取ります。)
あとは、次のように質問するだけです:
「学校で何か新しいことは?」 · 「今週の課題をすべてランク付けして、1日の計画を立てて。」 · 「生物のテストの学習計画を立てて。」
MCPツール
ツール | 戻り値 |
| 現在の成績/スコアを含むアクティブなコース |
| 今後N日以内(デフォルト7日)の課題 + 最近の期限切れ課題。各課題には0~100の |
| 1つの課題とその完全な指示をプレーンテキストで取得 |
| 過去N日間の教師からのお知らせ |
| コースの成績 + 過去2週間に評価されたすべてのもの |
| 前回のチェック以降に変更されたすべてのもの(イベント を参照) |
MCPプロンプト
プロンプト | 機能 |
| 変更をチェックして学生に報告 |
| 今週の課題をランク付けし、日別の計画を提示 |
| テストのための日別学習計画を作成(引数: |
Hermesで使用する
schoolbridgeには、セットアップ、ランキング、学習計画、イベント監視の全ワークフローをHermesに教えるポータブルなAgent Skills SKILL.mdが同梱されています。次のいずれかの方法でインストールします:
npm install -g schoolbridge
schoolbridge install-skill hermes # writes ~/.hermes/skills/schoolbridge/SKILL.mdまたは、このリポジトリからHermesのインストーラを使って直接インストールします:
hermes skills install https://raw.githubusercontent.com/Shoberman2/schoolbridge/main/skill/SKILL.mdHermesは起動時にスキルを自動検出し、会話が学校関連(「宿題は何?」「今週の計画を立てて」「生物のテストの学習計画を立てて」)の場合にアクティブになります。schoolbridge events --json をハートビート/スケジュールに追加すると、教師が課題を投稿したり、成績をアップロードしたり、お知らせを投稿したりしたときに、Hermesが積極的に通知します。
OpenClawで使用する
同じスキルで、OpenClaw向けのフレーバーです。フロントマターには metadata.openclaw ブロックがあり、schoolbridge バイナリをゲートとし、OpenClawのインストーラをnpmパッケージに誘導します:
npm install -g schoolbridge
schoolbridge install-skill openclaw # writes ~/.openclaw/skills/schoolbridge/SKILL.mdワークスペースごとの場合: skill/ を <workspace>/skills/schoolbridge/ にコピーします。プロアクティブな通知のために、HEARTBEAT.md に次のような行を追加します:「schoolbridge events --json を実行し、イベントがあれば報告してください。」
また、他のAgent-Skills互換ランタイムで使用される共有 ~/.agents/skills ディレクトリ用に schoolbridge install-skill agents もあります。
他のエージェントで使用する(シェル/JSON)
すべての読み取りコマンドは --json フラグを受け付け、クリーンで安定したJSONを出力します — エージェントのコンテキストに直接パイプできます:
schoolbridge upcoming --json --days 7
schoolbridge grades --json
schoolbridge announcements --json --days 3
schoolbridge assignment 101 5002 --json # full details incl. instructions変更のポーリング
schoolbridge events はLMSを前回の実行時と比較し、変更されたものだけを出力します。初回実行時はベースラインが保存され、何も出力されません。状態は ~/.schoolbridge/state.<provider>.json に保存されます。
schoolbridge events --json # one JSON event per line; empty output = nothing new
schoolbridge events --reset # start over from a fresh baselineシェルベースのエージェント用のcronハートビート:
*/15 8-22 * * * schoolbridge events --json | your-agent ingest-school-eventsプッシュモード
watch は一定間隔でポーリングし、イベントをJSON Linesとしてstdoutに出力(ログはstderrに出力)、各バッチを転送できます:
schoolbridge watch --interval 15m --exec 'your-agent brief --stdin' # JSON payload on stdin
schoolbridge watch --interval 15m --webhook https://your-agent.example/hooks/schoolWebhook/execのペイロード:
{
"source": "schoolbridge",
"provider": "canvas",
"generatedAt": "2026-08-17T20:15:00.000Z",
"events": [ … ]
}イベント
すべてのイベントは同じ構造を持っているため、エージェントは type でパターンマッチできます:
{
"type": "grade_posted",
"occurredAt": "2026-08-17T20:15:00.000Z",
"courseId": "101",
"courseName": "AP Biology",
"title": "Cell Respiration Lab Report",
"summary": "Grade posted in AP Biology: “Cell Respiration Lab Report” — 47/50 (94%).",
"url": "https://yourschool.instructure.com/courses/101/assignments/5001",
"data": { "assignmentId": "5001", "score": 47, "grade": "47", "pointsPossible": 50 }
}
| 発生時 |
| 教師が課題、小テスト、またはテストを投稿したとき |
| 課題が再スケジュールされたとき |
| 以前未評価だった課題に成績が表示されたとき |
| 既存の成績が修正されたとき |
| 教師がお知らせを投稿したとき |
| コース全体の成績が変動したとき |
summary は常にすぐに話せる文章です。data には構造化された変更前後の値が含まれます。
優先順位ランキング
list_upcoming_work / schoolbridge upcoming は、各項目に priority スコア(0~100)とラベル(critical / high / medium / low)を付与します。以下の要素が考慮されます:
締切の近さ(最も重要な要素)、
ポイント値、
テストらしさ(小テスト、または test/exam/midterm/final に一致する名前)、
未提出/期限切れステータス(ブースト)および すでに提出済み(約0に低下)。
これはあくまでヒントであり、最終判断ではありません。意図された使い方は、AIがこれを開始順序として使用し、判断で上書きすることです(ワークシートの締切が先でも、エッセイを先に始めるなど)。
ライブラリとしての使用
import { CanvasProvider, listUpcoming, checkEvents, StateStore } from "schoolbridge";
const provider = new CanvasProvider({ baseUrl: "https://yourschool.instructure.com", token: process.env.CANVAS_ACCESS_TOKEN! });
const ranked = await listUpcoming(provider, 7);
const { events } = await checkEvents(provider, new StateStore(provider.name));設定リファレンス
すべての設定の解決順序:CLIフラグ → 環境変数 → ~/.schoolbridge/config.json。
設定 | フラグ | 環境変数 |
プロバイダー( |
|
|
Canvas URL |
|
|
Canvasトークン |
|
|
設定/状態ディレクトリ | — |
|
プライバシーと安全性
あなたのトークンとすべての状態はあなたのマシンに留まります。schoolbridgeはあなたの学校のCanvasホスト(および、オプトインした場合、あなた自身のWebhook)とのみ通信します。
すべての操作はLMSに対して読み取り専用です。
Canvasトークンはパスワードのように扱ってください。いつでもCanvas → アカウント → 設定から取り消すことができます。
ロードマップ
プロバイダー:Google Classroom、Schoology、Moodle、PowerSchool
カレンダーエクスポート(ICS)による今後の課題
よりリッチな学習計画のためのCanvasモジュール/ファイルコンテキスト
機関が許可する場合のネイティブプッシュ(Canvasライブイベント)
貢献
特に新しいプロバイダーのPRを歓迎します。CONTRIBUTING.md と docs/PROVIDERS.md を参照してください。mock プロバイダーと npm test を使用すると、学校の認証情報なしで開発できます。
ライセンス
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables AI agents to interact with Canvas LMS and Gradescope, allowing users to query courses, assignments, modules, calendar events, and find relevant resources using natural language.59ISC
- AlicenseBqualityAmaintenanceMCP server for Canvas LMS, providing 115+ tools to read courses, assignments, submissions, rubrics, quizzes; grade, comment, manage course content, and handle Canvas admin workflows from any AI agent.241007235MIT
- AlicenseAqualityBmaintenanceMCP server that connects AI assistants to Instructure Canvas LMS, enabling teachers and administrators to manage courses, assignments, grades, and more through natural language.801841MIT
- AlicenseAqualityDmaintenanceTurns Canvas LMS into a scriptable pipeline and exposes it to AI assistants via MCP for querying courses, grades, assignments, and syncing files using natural language.143MIT
Related MCP Connectors
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
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/Shoberman2/schoolbridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server