Skip to main content
Glama

schoolbridge

Verbinde Canvas (und andere Schulplattformen) mit KI-Agenten.

schoolbridge beobachtet das LMS deiner Schule und macht es für einen KI-Agenten nutzbar. Wenn ein": "Lehrer eine Aufgabe stellt, eine Note hochlädt, ein Abgabedatum ändert oder eine Ankündigung macht, erfährt dein Agent davon – und kann dich informieren, deine Woche bewerten oder einen Lernplan für die nächste Prüfung erstellen.

Es spricht drei Dialekte, sodass es mit fast jeder Agentenkonfiguration funktioniert:

Schnittstelle

Für

Beispiel

MCP-Server

Claude Code, Claude Desktop, Claude Cowork, jeden MCP-Client

schoolbridge mcp

Agenten-Fertigkeit (SKILL.md)

Hermes, OpenClaw, jede Agent-Skills-Laufzeitumgebung

schoolbridge install-skill hermes

JSON-CLI

Shell-gesteuerte Agenten, Cron-Jobs, Skripte

schoolbridge upcoming --json

Ereignisbeobachter

Push-basierte Automatisierungen

schoolbridge watch --exec 'my-agent brief'

Canvas ist der integrierte Anbieter. Die Anbieterschnittstelle ist klein und dokumentiert, sodass Google Classroom, Schoology, Moodle und andere hinzugefügt werden können – siehe docs/PROVIDERS.md.

schoolbridge ist schreibgeschützt: Es schreibt niemals etwas zurück in dein LMS.


Schnellstart

npm install -g schoolbridge     # or run everything below with: npx schoolbridge …

Sofort ausprobieren (ohne Anmeldedaten)

Jeder Befehl akzeptiert --provider mock, der realistische Beispieldaten liefert:

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

Verbinde dein echtes Canvas-Konto

  1. Melde dich in einem Browser bei Canvas an → Konto → Einstellungen → scrolle zu Genehmigte Integrationen+ Neues Zugriffstoken. Kopiere das Token sofort.

  2. Führe aus:

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

init überprüft die Verbindung und speichert dann die Konfiguration in ~/.schoolbridge/config.json (erstellt mit Berechtigungen 0600 – es enthält dein Token). Du kannst die Datei auch ganz überspringen und die Umgebungsvariablen CANVAS_BASE_URL und CANVAS_ACCESS_TOKEN verwenden.

Dann:

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

Verwendung mit Claude (MCP)

Claude Code

claude mcp add schoolbridge -- npx -y schoolbridge mcp

Claude Desktop / Claude Cowork

Füge zu deiner MCP-Konfiguration hinzu (z. B. 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"
      }
    }
  }
}

(Wenn du schoolbridge init ausgeführt hast, ist der env-Block optional – der Server liest die gespeicherte Konfiguration.)

Dann frage einfach:

"Was gibt es Neues in der Schule?" · "Bewerte alles, was ich diese Woche abgeben muss, und plane meine Tage." · "Erstelle mir einen Lernplan für den Biologietest."

MCP-Werkzeuge

Werkzeug

Rückgabe

list_courses

Aktive Kurse mit aktueller Note/Punktzahl

list_upcoming_work

In den nächsten N Tagen fällige Arbeiten (Standard 7) + kürzlich überfällige Arbeiten, jeweils mit einem Prioritätshinweis von 0–100

get_assignment_details

Eine Aufgabe mit ihrer vollständigen Anleitung als Klartext

list_announcements

Ankündigungen von Lehrern aus den letzten N Tagen

get_grades

Kursnoten + alles, was in den letzten zwei Wochen benotet wurde

check_new_events

Alles, was sich seit der letzten Prüfung geändert hat (siehe Ereignisse)

MCP-Eingabeaufforderungen

Eingabeaufforderung

Funktion

whats_new

Auf Änderungen prüfen und den Schüler informieren

plan_my_week

Die Arbeit der Woche bewerten und einen Tagesplan erstellen

study_plan

Einen täglichen Lernplan für eine Prüfung erstellen (Argumente: course, optional assignment)


Verwendung mit Hermes

schoolbridge enthält eine portable Agent Skills SKILL.md, die Hermes den gesamten Workflow beibringt – Einrichtung, Bewertung, Lernpläne und Ereignisüberwachung. Installiere sie auf eine dieser Arten:

npm install -g schoolbridge
schoolbridge install-skill hermes      # writes ~/.hermes/skills/schoolbridge/SKILL.md

oder direkt aus diesem Repository mit Hermes' eigenem Installationsprogramm:

hermes skills install https://raw.githubusercontent.com/Shoberman2/schoolbridge/main/skill/SKILL.md

Hermes erkennt die Fertigkeit automatisch beim Start und aktiviert sie, wenn es im Gespräch um die Schule geht („Welche Hausaufgaben habe ich?", „plane meine Woche", „erstelle einen Lernplan für den Biotest"). Füge schoolbridge events --json zu einem Heartbeat/Zeitplan hinzu, und Hermes wird dich proaktiv informieren, wenn ein Lehrer eine Aufgabe stellt, eine Note hochlädt oder eine Ankündigung macht.

Verwendung mit OpenClaw

Gleiche Fertigkeit, OpenClaw-Geschmack – der Vorspann enthält einen metadata.openclaw-Block, der auf das schoolbridge-Binary prüft und OpenClaws Installationsprogramm auf das npm-Paket verweist:

npm install -g schoolbridge
schoolbridge install-skill openclaw    # writes ~/.openclaw/skills/schoolbridge/SKILL.md

Pro Arbeitsbereich stattdessen: Kopiere skill/ in <workspace>/skills/schoolbridge/. Für proaktive Benachrichtigungen füge eine Zeile zu deiner HEARTBEAT.md hinzu, wie z. B.: "Führe schoolbridge events --json aus; wenn es Ereignisse ausgibt, erzähle mir davon."

Es gibt auch schoolbridge install-skill agents für das gemeinsame ~/.agents/skills-Verzeichnis, das von anderen Agent-Skills-kompatiblen Laufzeitumgebungen verwendet wird.

Verwendung mit jedem anderen Agenten (Shell/JSON)

Jeder Lesebefehl akzeptiert --json und gibt sauberes, stabiles JSON aus – leite es direkt in den Kontext deines Agenten:

schoolbridge upcoming --json --days 7
schoolbridge grades --json
schoolbridge announcements --json --days 3
schoolbridge assignment 101 5002 --json     # full details incl. instructions

Auf Änderungen abfragen (Polling)

schoolbridge events vergleicht das LMS mit dem vorherigen Lauf und gibt nur das aus, was sich geändert hat. Der erste Lauf speichert eine Basislinie und gibt nichts aus. Der Status befindet sich in ~/.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

Ein Cron-Heartbeat für einen Shell-basierten Agenten:

*/15 8-22 * * * schoolbridge events --json | your-agent ingest-school-events

Push-Modus

watch fragt in einem Intervall ab, gibt Ereignisse als JSON-Zeilen auf stdout aus (Logs gehen nach stderr) und kann jeden Batch weiterleiten:

schoolbridge watch --interval 15m --exec 'your-agent brief --stdin'   # JSON payload on stdin
schoolbridge watch --interval 15m --webhook https://your-agent.example/hooks/school

Die Webhook/Ausführungs-Nutzlast:

{
  "source": "schoolbridge",
  "provider": "canvas",
  "generatedAt": "2026-08-17T20:15:00.000Z",
  "events": [ … ]
}

Ereignisse

Jedes Ereignis hat die gleiche Form, sodass Agenten auf den type abgleichen können:

{
  "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

Tritt ein, wenn

new_assignment

Ein Lehrer eine Aufgabe, einen Test oder eine Prüfung stellt

due_date_changed

Eine Aufgabe neu terminiert wird

grade_posted

Eine Note für bisher unbenotete Arbeit erscheint

grade_changed

Eine vorhandene Note geändert wird

new_announcement

Ein Lehrer eine Ankündigung macht

course_grade_changed

Deine Gesamtnote in einem Kurs sich ändert

summary ist immer ein satzfertiger Satz; data enthält die strukturierten Vorher-/Nachher-Werte.


Prioritätsbewertung

list_upcoming_work / schoolbridge upcoming fügen jedem Element eine priority-Bewertung (0–100) und ein Label (critical / high / medium / low) hinzu. Sie berücksichtigt:

  • Nähe des Abgabetermins (stärkster Faktor),

  • Punktzahl,

  • Test-Ähnlichkeit (Tests oder Namen, die Test/Klausur/Zwischenprüfung/Abschlussprüfung enthalten),

  • Fehlender/überfälliger Status (Erhöhung) und bereits eingereicht (fällt auf ~0).

Es ist bewusst ein Hinweis, kein Urteil – das beabsichtigte Muster ist, dass die KI ihn als Ausgangsreihenfolge verwendet und mit eigenem Urteil überschreibt (beginne mit dem Aufsatz vor dem Arbeitsblatt, auch wenn das Arbeitsblatt zuerst fällig ist).

Verwendung als Bibliothek

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));

Konfigurationsreferenz

Auflösungsreihenfolge für jede Einstellung: CLI-Flag → Umgebungsvariable → ~/.schoolbridge/config.json.

Einstellung

Flag

Umgebungsvariable

Anbieter (canvas / mock)

--provider

SCHOOLBRIDGE_PROVIDER

Canvas-URL

--base-url

CANVAS_BASE_URL

Canvas-Token

--token

CANVAS_ACCESS_TOKEN (oder CANVAS_TOKEN)

Konfigurations-/Statusverzeichnis

SCHOOLBRIDGE_HOME (Standard ~/.schoolbridge)

Datenschutz & Sicherheit

  • Dein Token und der gesamte Status bleiben auf deinem Rechner; schoolbridge kommuniziert nur mit dem Canvas-Host deiner Schule (und, wenn du zustimmst, mit deinem eigenen Webhook).

  • Alle Vorgänge sind schreibgeschützt gegenüber dem LMS.

  • Behandle dein Canvas-Token wie ein Passwort. Du kannst es jederzeit unter Canvas → Konto → Einstellungen widerrufen.

Fahrplan

  • Anbieter: Google Classroom, Schoology, Moodle, PowerSchool

  • Kalenderexport (ICS) für anstehende Arbeiten

  • Canvas-Module/-Dateikontext für umfangreichere Lernpläne

  • Nativer Push (Canvas Live Events), wo es die Institutionen zulassen

Mitwirken

PRs sind willkommen – insbesondere neue Anbieter. Siehe CONTRIBUTING.md und docs/PROVIDERS.md. Der mock-Anbieter und npm test ermöglichen die Entwicklung ohne jegliche Schul-Anmeldedaten.

Lizenz

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