Magister CLI

CLI tool voor het ophalen van data uit Magister (Nederlands leerlingvolgsysteem)

Features

📚

Huiswerk

Bekijk huiswerk, filter op vak, en download bijlagen automatisch

📊

Cijfers

Recente cijfers bekijken met gewogen gemiddelde berekening

📅

Rooster

Dagelijks en wekelijks rooster met uitval-indicatoren

🤖

MCP Server

Claude AI integratie via Model Context Protocol

Installatie

# Clone de repository
git clone https://github.com/barnierg76/magister-cli.git
cd magister-cli

# Installeer met uv (aanbevolen)
uv pip install -e .

# Of met pip
pip install -e .

# Installeer Playwright browser
playwright install chromium

Snelstart

# Login bij je school
magister login --school vsvonh

# Bekijk huiswerk voor de komende 7 dagen
magister homework

# Bekijk aankomende toetsen
magister tests --days 14

# Bekijk rooster
magister schedule today

Commando's

Authenticatie

# Login via browser
magister login --school <schoolcode>

# Controleer status
magister status

# Uitloggen
magister logout

Huiswerk

# Huiswerk komende 7 dagen
magister homework

# Huiswerk komende 14 dagen
magister homework --days 14

# Filter op vak
magister homework --subject wiskunde

# Tabel weergave
magister homework --table

# Download bijlagen
magister homework --download
magister homework --download --output ./bijlagen

Toetsen

# Toetsen komende 14 dagen
magister tests

# Langere periode
magister tests --days 30

Cijfers

# Recente cijfers
magister grades recent

# Laatste 20 cijfers
magister grades recent --limit 20

Rooster

# Vandaag
magister schedule today

# Morgen
magister schedule tomorrow

# Specifieke datum
magister schedule date 2024-01-15

Berichten

# Inbox bekijken
magister messages inbox

Bijlagen downloaden

# Download alle bijlagen van huiswerk
magister download

# Filter op vak
magister download --subject engels

# Aangepaste output directory
magister download --output ./studiematerialen

Shell Completion

Magister CLI ondersteunt shell completion voor bash, zsh, en fish.

# Bash
magister --install-completion bash

# Zsh
magister --install-completion zsh

# Fish
magister --install-completion fish

MCP Server (Claude Integratie)

Magister CLI bevat een MCP (Model Context Protocol) server waarmee Claude en andere AI agents direct toegang hebben tot Magister data.

Configuratie in Claude Desktop

Voeg toe aan je Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "magister": {
      "command": "magister-mcp"
    }
  }
}

MCP Tools

Tool Beschrijving
get_student_summary Compleet dagelijks overzicht (huiswerk, cijfers, rooster)
get_homework Huiswerk ophalen met filters
get_upcoming_tests Aankomende toetsen
get_recent_grades Recente cijfers met gemiddelde
get_today_schedule Rooster van vandaag
get_schedule Rooster voor datumbereik
check_auth_status Authenticatie status controleren
download_homework_materials Download huiswerk bijlagen

Voorbeeld Claude prompts

Configuratie

Environment Variables

# School code (optioneel, kan ook via --school flag)
export MAGISTER_SCHOOL=vsvonh

# OAuth timeout in seconden (default: 120)
export MAGISTER_OAUTH_TIMEOUT=180

# Headless browser mode (default: false)
export MAGISTER_HEADLESS=true

Config Bestand

Config bestand: ~/.config/magister-cli/config.yaml

school: vsvonh
headless: false
oauth_timeout: 120

Architectuur

magister-cli/
   src/magister_cli/
      api/              # Magister API client
      auth/             # OAuth authenticatie
      cli/              # CLI commands en formatters
         commands/      # Typer subcommands
         formatters.py  # Rich output formatting
         progress.py    # Progress indicators
      mcp/              # MCP server voor Claude
         server.py      # FastMCP tools
      services/         # Business logic
         core.py        # I/O agnostic domain objects
         async_magister.py  # Async service
         sync_magister.py   # Sync wrapper
      config.py         # Settings
   tests/

Design Principles

Development

# Installeer dev dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Linting
ruff check .
ruff format .

# MCP server testen
mcp dev magister_cli/mcp/server.py

Bijdragen

Pull requests welkom! Zorg ervoor dat tests slagen en code geformateerd is met ruff.

Bekijk op GitHub