Skip to main content
Glama

schoolbridge

学校のLMS(Canvas等)をAIエージェントと連携させます。

schoolbridgeはあなたの学校のLMSを監視し、AIエージェントが実際に利用できる形に変換します。教師が課題を投稿したり、成績をアップロードしたり、締切を変更したり、お知らせを投稿したりすると、エージェントがその情報を取得し、あなたに報告したり、週間ランキングを作成したり、次のテストに向けた学習計画を立てたりすることができます。

3つの異なるインターフェースを備えているため、ほとんどのエージェント環境で動作します。

インターフェース

対象

使用例

MCPサーバー

Claude Code、Claude Desktop、Claude Cowork、その他MCPクライアント

schoolbridge mcp

エージェントスキル (SKILL.md)

Hermes、OpenClaw、その他Agent-Skillsランタイム

schoolbridge install-skill hermes

JSON CLI

シェル駆動型エージェント、cronジョブ、スクリプト

schoolbridge upcoming --json

イベントウォッチャー

プッシュ型自動化

schoolbridge watch --exec 'my-agent brief'

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アカウントと接続する

  1. ブラウザでCanvasにログイン → アカウント → 設定承認済み連携 までスクロール → + 新しいアクセストークン。トークンをすぐにコピーします。

  2. 以下を実行:

schoolbridge init --base-url https://yourschool.instructure.com --token <paste-token>

init は接続を確認し、設定を ~/.schoolbridge/config.json0600 パーミッションで作成 — トークンが保存されます)に保存します。ファイルを完全にスキップして、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 check

Related MCP server: Canvas LMS MCP Server

Claudeで使用する(MCP)

Claude Code

claude mcp add schoolbridge -- npx -y schoolbridge mcp

Claude 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ツール

ツール

戻り値

list_courses

現在の成績/スコアを含むアクティブなコース

list_upcoming_work

今後N日以内(デフォルト7日)の課題 + 最近の期限切れ課題。各課題には0~100の priority ランキングヒントが付きます

get_assignment_details

1つの課題とその完全な指示をプレーンテキストで取得

list_announcements

過去N日間の教師からのお知らせ

get_grades

コースの成績 + 過去2週間に評価されたすべてのもの

check_new_events

前回のチェック以降に変更されたすべてのもの(イベント を参照)

MCPプロンプト

プロンプト

機能

whats_new

変更をチェックして学生に報告

plan_my_week

今週の課題をランク付けし、日別の計画を提示

study_plan

テストのための日別学習計画を作成(引数:course、オプションで assignment


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.md

Hermesは起動時にスキルを自動検出し、会話が学校関連(「宿題は何?」「今週の計画を立てて」「生物のテストの学習計画を立てて」)の場合にアクティブになります。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/school

Webhook/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 }
}

type

発生時

new_assignment

教師が課題、小テスト、またはテストを投稿したとき

due_date_changed

課題が再スケジュールされたとき

grade_posted

以前未評価だった課題に成績が表示されたとき

grade_changed

既存の成績が修正されたとき

new_announcement

教師がお知らせを投稿したとき

course_grade_changed

コース全体の成績が変動したとき

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 / mock

--provider

SCHOOLBRIDGE_PROVIDER

Canvas URL

--base-url

CANVAS_BASE_URL

Canvasトークン

--token

CANVAS_ACCESS_TOKEN(または CANVAS_TOKEN

設定/状態ディレクトリ

SCHOOLBRIDGE_HOME(デフォルト ~/.schoolbridge

プライバシーと安全性

  • あなたのトークンとすべての状態はあなたのマシンに留まります。schoolbridgeはあなたの学校のCanvasホスト(および、オプトインした場合、あなた自身のWebhook)とのみ通信します。

  • すべての操作はLMSに対して読み取り専用です。

  • Canvasトークンはパスワードのように扱ってください。いつでもCanvas → アカウント → 設定から取り消すことができます。

ロードマップ

  • プロバイダー:Google Classroom、Schoology、Moodle、PowerSchool

  • カレンダーエクスポート(ICS)による今後の課題

  • よりリッチな学習計画のためのCanvasモジュール/ファイルコンテキスト

  • 機関が許可する場合のネイティブプッシュ(Canvasライブイベント)

貢献

特に新しいプロバイダーのPRを歓迎します。CONTRIBUTING.mddocs/PROVIDERS.md を参照してください。mock プロバイダーと npm test を使用すると、学校の認証情報なしで開発できます。

ライセンス

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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