Skip to main content
Glama

schoolbridge

Подключайте Canvas (и другие школьные платформы) к AI-агентам.

schoolbridge следит за школьной LMS и превращает её в то, что AI-агент может реально использовать. Когда учитель публикует задание, выставляет оценку, меняет срок сдачи или делает объявление, ваш агент узнаёт об этом — и может сообщить вам, ранжировать вашу неделю или составить план подготовки к следующему тесту.

Он говорит на трёх диалектах, поэтому работает почти с любой настройкой агента:

Интерфейс

Для

Пример

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

Наблюдатель событий

Автоматизации push-типа

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 в браузере → Account → Settings → прокрутите до Approved Integrations → + New Access Token. Скопируйте токен сразу.

  2. Выполните:

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 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 необязателен — сервер читает сохранённую конфигурацию.)

Затем просто спросите:

"Что нового в школе?" · "Отсортируй всё, что мне нужно сдать на этой неделе, и распланируй мои дни." · "Составь мне план подготовки к контрольной по биологии."

MCP-инструменты

Инструмент

Возвращает

list_courses

Активные курсы с текущей оценкой/баллом

list_upcoming_work

Работы, которые нужно сдать в ближайшие N дней (по умолчанию 7) + недавние просроченные работы, каждая с подсказкой приоритета priority от 0 до 100

get_assignment_details

Одно задание с полными инструкциями в виде обычного текста

list_announcements

Объявления учителей за последние N дней

get_grades

Оценки по курсам + всё оценённое за последние две недели

check_new_events

Всё, что изменилось с момента последней проверки (см. События)

MCP-подсказки

Подсказка

Делает

whats_new

Проверить изменения и сообщить студенту

plan_my_week

Отсортировать работу на неделю и составить пошаговый план

study_plan

Составить пошаговый план подготовки к тесту (аргументы: course, опционально assignment)


Использование с Hermes

schoolbridge поставляется с портативным SKILL.md для Agent Skills, который обучает Hermes всему рабочему процессу — настройке, ранжированию, планам подготовки и мониторингу событий. Установите любым способом:

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 в heartbeat/расписание, и Hermes будет проактивно сообщать вам, когда учитель публикует задание, выставляет оценку или делает объявление.

Использование с OpenClaw

Тот же навык, но в варианте OpenClaw — в frontmatter есть блок 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; если он выведет события, расскажи мне о них."

Также есть schoolbridge install-skill agents для общей директории ~/.agents/skills, используемой другими средами, совместимыми с Agent-Skills.

Использование с любым другим агентом (оболочка/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

Heartbeat cron для агента на основе оболочки:

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

Push-режим

watch опрашивает с интервалом, выводит события в stdout в формате JSON lines (логи идут в 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

Полезная нагрузка вебхука/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).

Это намеренно подсказка, а не вердикт — предполагается, что ИИ будет использовать это как начальный порядок и переопределять его по своему усмотрению (начать с эссе раньше рабочего листа, даже если рабочий лист нужно сдать раньше).

Использование в качестве библиотеки

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

URL Canvas

--base-url

CANVAS_BASE_URL

Токен Canvas

--token

CANVAS_ACCESS_TOKEN (или CANVAS_TOKEN)

Директория конфигурации/состояния

—

SCHOOLBRIDGE_HOME (по умолчанию ~/.schoolbridge)

Конфиденциальность и безопасность

  • Ваш токен и все состояние остаются на вашем компьютере; schoolbridge общается только с хостом Canvas вашей школы (и, если вы согласитесь, с вашим собственным вебхуком).

  • Все операции только для чтения по отношению к LMS.

  • Относитесь к своему токену Canvas как к паролю. Вы можете отозвать его в любое время в Canvas → Account → Settings.

План развития

  • Провайдеры: Google Classroom, Schoology, Moodle, PowerSchool

  • Экспорт календаря (ICS) предстоящих работ

  • Контекст модулей/файлов Canvas для более детальных планов подготовки

  • Нативный push (события Canvas в реальном времени) там, где это разрешено учреждением

Участие в разработке

PR приветствуются — особенно новые провайдеры. См. CONTRIBUTING.md и docs/PROVIDERS.md. Провайдер mock и npm test позволяют вам разрабатывать без каких-либо школьных учётных данных.

Лицензия

MIT

Related MCP Connectors

Related MCP Servers