🎓🔌 ClasseViva MCP Server (classeviva-mcp)
Connettore MCP per il registro elettronico Spaggiari ClasseViva (Studenti & Famiglie) e Google Classroom.
Incrocia dati presi direttamente dal registro voti, agenda, compiti, argomenti delle lezioni e circolari della bacheca scolastica con qualsiasi agente AI compatibile MCP.
Guida Rapida • Google Classroom (.ics) • Uso da Smartphone • Riepilogo Tool • Sicurezza • Crediti
✅ Funzionalità Chiave 👀
- Gestione credenziali: il programma usa il Keyring del sistema operativo (Gestione Credenziali Windows / Portachiavi macOS / SecretService Linux). Se il Keyring non è disponibile, su Windows usa il fallback cifrato DPAPI; su Linux/macOS senza Keyring rifiuta di salvare in chiaro, salvo esplicito
--allow-insecure-plaintext. La cache di sessione contiene solotoken,identestudent_id. Dettagli in SECURITY.md e PRIVACY.md. - Voti & Target: medie ponderate, materie insufficienti e calcolo matematico del voto necessario al recupero (
calculate_grade_target). - Agenda & Compiti: lettura scadenze, verifiche e interrogazioni (con supporto a Google Classroom tramite feed
.icsiCal o OAuth2). - Lezioni & Argomenti: storico degli argomenti spiegati dai docenti per pianificare il ripasso prima delle verifiche.
- Bacheca & Circolari Intelligenti: download e parsing
.pdf,.docx,.xlsx(con gestione celle unite e colonne verticali per gli orari) e.zipcon regex di filtraggio per classe (risparmio token fino al 90%), fallback Vision per scansioni e stato🆕 NUOVA/📌 GIÀ VISTA(senza mai nascondere le circolari già lette). - Persistenza Locale Anti-Bloat & Cambio Anno Automatico: cache locale dell'orario e del contesto studente (sigle d'istituto, n. registro), rilevamento automatico del passaggio d'anno scolastico (es. da
3Aa4Atramite scheda anagrafica del registro) e tetto massimo automatico sui file salvati.
⚡ Guida Passo-Passo
Punto 1 — Hai già un client AI compatibile MCP o un Agent Harness?
-
SÌ, e voglio che configuri tutto l'AI in automatico (uso già Claude Code, Codex, Opencode, Cursor, Antigravity o simili): Copia e incolla questo prompt nella chat del tuo agent e poi salta direttamente al Punto 3:
Configura il server MCP da questa repository GitHub (https://github.com/NihaoBoo/classeviva-mcp): installalo con `uv tool install git+https://github.com/NihaoBoo/classeviva-mcp@stable` (oppure clona la repo ed esegui `uv sync`), registralo nel mio file di configurazione MCP usando il percorso assoluto dell'eseguibile, e spiegami come lanciare `classeviva-mcp login` nel terminale per salvare le credenziali nel Keyring se disponibile e verificare il backend effettivamente utilizzato.
-
SÌ, ma preferisco configurarlo a mano 👉 Procedi al Punto 2.
-
NO, non ho ancora un client AI 👉 Scarica e installa gratis uno di questi client: Claude Desktop, Opencode, Codex, Google Antigravity oppure Cursor, poi scegli una delle due opzioni qui sopra.
Punto 2 — Hai già uv installato sul PC?
- SÌ 👉 Procedi al Punto 3.
- NO 👉 Apri PowerShell (su Windows) o il Terminale (su Mac/Linux) e incolla questo comando:
- Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows:
Punto 3 — Esegui il login e salva le credenziali (una sola volta)
Non serve scaricare cartelle a mano. Apri il terminale ed esegui direttamente:
uvx --from git+https://github.com/NihaoBoo/classeviva-mcp@stable classeviva-mcp login
(In alternativa, se vuoi installarlo stabilmente sul PC esegui uv tool install git+https://github.com/NihaoBoo/classeviva-mcp@stable e poi classeviva-mcp login; se invece hai clonato la cartella in locale usa uv run classeviva-mcp login).
Il modo più veloce, da PyPI. Se il pacchetto è già pubblicato su PyPI non serve alcun URL GitHub:
uvx classeviva-mcp loginStessa installazione, ma senza dover avere
gitsul PC e senza clonare la repository: è l'opzione più comoda per chi non ha familiarità con la riga di comando.
Dove finisce l'installazione?
uvxnon installa nulla in modo permanente: crea un ambiente temporaneo nella cache diuv(es.%LOCALAPPDATA%\uv\cachesu Windows,~/.cache/uvsu Linux/macOS) e lo riusa ai comandi successivi. Conuv tool installinvece il comandoclasseviva-mcpviene installato stabilmente e aggiunto alPATH.
@stablepunta sempre all'ultima release stabile. Se vuoi bloccare una versione esatta, sostituisci@stablecon@v1.2.0.
⚠️ Computer di scuola o condivisi
classeviva-mcpè pensato per un solo account su un dispositivo personale. Non usarlo su un PC con account condiviso (studente,lab,aula...): chiunque usi quell'account può aprire il Keyring e leggere le credenziali, e due studenti che fannologinsi sovrascrivono a vicenda. Anche con un account personale, un amministratore della macchina può accedere al profilo. Se devi usarlo su un computer non tuo, eseguilogout --purgeprima di uscire: non servono privilegi di admin. Dettagli in SECURITY.md.
Ti chiederà:
- Email o Codice ClasseViva (
S.../G...). - Password (nascosta mentre digiti; salvata nel Keyring se disponibile, altrimenti nel file JSON di fallback descritto nella sezione Sicurezza).
- Classe e Indirizzo (es.
5AeInformatica). - Link
.icsdi Google Classroom (Opzionale: puoi premere Invio per saltarlo e configurarlo dopo conclasseviva-mcp set-classroom-url).
Al termine, il comando login stamperà a schermo il blocco JSON già pronto con i percorsi assoluti del tuo PC (così eviti errori spawn uvx ENOENT su Windows).
Punto 4 — Incolla il JSON nel tuo Client AI e parla con l'Agent
-
Se non l'ha già fatto l'AI al Punto 1, incolla il JSON stampato dal comando
loginin uno di questi due modi:- Nella configurazione MCP del tuo client:
- Claude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.json - Cursor:
~/.cursor/mcp.json - Codex:
~/.codex/config.toml(o configurazione MCP del client) - Antigravity:
mcp_config.jsonnelle impostazioni MCP - Opencode:
~/.config/opencode/opencode.json
- Claude Desktop (Windows):
- Oppure nella chat del tuo agente AI, scrivendo ad esempio: "Configura questo server MCP per me" e incollando il JSON.
Esempio del JSON generato:
{ "mcpServers": { "classeviva": { "command": "C:\\Users\\<TUO_UTENTE>\\.local\\bin\\uvx.exe", "args": [ "--from", "git+https://github.com/NihaoBoo/classeviva-mcp@stable", "classeviva-mcp" ] } } }
Consiglio per chi usa più agent: se non hai voglia di sincronizzare a mano gli stessi JSON su ogni tool, puoi usare CC Switch, un progetto open-source su GitHub che centralizza le configurazioni MCP e la gestione dei vari agent harness.
- Nella configurazione MCP del tuo client:
-
Apri la chat con la tua AI e scrivi (la prima volta):
"Fai
/classeviva:setup: sono della [CLASSE] [PERCORSO_DI_STUDIO]. Controlla se in bacheca c'è l'orario delle lezioni e salva quello della mia classe."
💡 Come modificare classe, orario o preferenze in seguito: ricordati che non serve rilanciare
/classeviva:setupda zero per cambiare un dato: puoi anche dirglielo normalmente in chat (es. "Ho deciso di cambiare percorso di studi / scuola..." oppure "Sono stato promosso") e l'AI aggiornerà da sola il file di contesto locale. Inoltre, a ogni nuovo anno scolastico (get_today_context), il server confronta la classe salvata con quella ufficiale del registro elettronico per avvisare l'AI se sei passato dalla3Aalla4A.
📅 Collegare Google Classroom
Se hai saltato il link Classroom durante il login iniziale o hai corsi nuovi, non incollarlo nella chat dell'AI. Esegui nel terminale il comando adatto a come hai installato il server.
Se usi uvx (senza installazione permanente):
uvx --from git+https://github.com/NihaoBoo/classeviva-mcp@stable classeviva-mcp set-classroom-url
Se lo hai installato stabilmente con uv tool install:
classeviva-mcp set-classroom-url
uvx scarica e riusa un ambiente temporaneo nella cache di uv, quindi non devi sapere dove finiscono i file: il comando funziona allo stesso modo dalla prima esecuzione in poi. Con uv tool install il comando è già nel PATH e non serve anteporre uvx.
Il comando chiede il link con input nascosto e lo salva nel Keyring o nel fallback cifrato, così il segreto non passa dal provider AI. Puoi anche passarlo come argomento, ma è sconsigliato: resterebbe nella cronologia del terminale.
Il link iCal è accettato solo se punta a calendar.google.com o classroom.google.com, usa HTTPS sulla porta 443 e risolve verso un indirizzo pubblico. Redirect verso host diversi, IP privati/loopback/link-local e risposte oltre 5 MB vengono bloccati.
Il link iCal è un segreto equivalente a una password. Non inserirlo in conversazioni condivise o con agent non fidati.
▼ Come reperire il link .ics segreto da Google Calendar
- Apri Google Calendar con il tuo account scolastico.
- In alto a destra clicca sull'icona dell'ingranaggio ⚙️ -> Impostazioni.
- Nella barra laterale sinistra scorri su Impostazioni per i miei calendari e clicca sul nome del tuo corso Classroom.
- Scorri verso il basso fino alla sezione Indirizzo segreto in formato iCal.
- Clicca sull'icona Copia per copiare il link che termina in
.icse passalo aclasseviva-mcp set-classroom-urlnel terminale.
(Nota: il feed .ics riporta tutti i compiti con data di scadenza; i post sullo Stream senza scadenza non fanno parte del calendario).
▼ Alternativa per docenti / scuole aperte: OAuth2 (Clicca per espandere)
Se sei un docente o la tua scuola non blocca le app esterne sull'email istituzionale, puoi impostare la variabile d'ambiente GOOGLE_ACCESS_TOKEN per interrogare le API REST ufficiali classroom.googleapis.com. Evita di inserire il token direttamente nel JSON MCP: i valori env in quel file sono normalmente memorizzati in chiaro.
(Negli istituti superiori la maggior parte degli admin blocca le richieste OAuth degli studenti, per cui il metodo .ics sopra è la scelta raccomandata).
📱 Uso da Smartphone (App o Bot Telegram/Discord)
Ci sono due modi per usare classeviva-mcp fuori casa dal telefono:
Modo 1 — Tramite l'App del tuo Agent o VPS (Senza creare bot)
Se usi un ambiente che espone i tuoi server MCP in cloud o rete privata (es. sessioni remote di Antigravity, Claude, Opencode o una tua istanza LibreChat / Open-WebUI raggiungibile via Tailscale).
Modo 2 — Tramite un Bot su Telegram o Discord (solo DM privati)
classeviva-mcp fornisce tool di consultazione del registro e di gestione del contesto locale; per usarlo in una DM privata Telegram o Discord puoi collegarlo a un agente che fa da ponte con la chat (ad esempio Hermes Agent, OpenClaw o automazioni n8n):
- Dove tenerlo acceso: sul tuo PC quando è acceso, su un vecchio telefono Android con Termux, oppure gratis 24/7 su una piccola VPS (Oracle Cloud Free Tier).
- Quale modello AI usare (anche a costo zero): se non hai un abbonamento AI a pagamento, crea una chiave gratuita su OpenRouter e usa i modelli
:free(come Gemini Flash o Llama/DeepSeek free) configurandoli su Hermes Agent, Opencode o tramite CC Switch. - Se il bot è solo per te (Chat privata / DM): configura nel tuo bot il filtro sul tuo
OWNER_USER_IDdi Telegram o Discord, così il bot risponde esclusivamente a te. - Non aggiungere il bot a gruppi Telegram o server Discord condivisi. Il server non dispone di autenticazione o autorizzazioni per singolo chiamante.
CLASSEVIVA_READ_ONLY_MODE=trueminimizza i dati e disabilita i tool personali/di scrittura, ma resta una modalità per singolo account e non isola più utenti. Usalo soltanto in DM privati con un filtroOWNER_USER_IDapplicato dal bot, oppure tramite una rete privata con accesso riservato. Il filtro del bot è una protezione esterna: non sostituisce controlli di accesso implementati nel server MCP.
▼ Permessi Bot Discord pre-calcolati (Clicca per espandere)
- Nella scheda Bot, attiva la spunta Message Content Intent.
- Nella scheda OAuth2 -> URL Generator, seleziona
boteapplications.commands. - Nei permessi spunta Send Messages, Embed Links, Attach Files e Read Message History: il permissions integer generato è
274877975552.
🛠️ Riepilogo Tool MCP e Limiti Anti-Bloat
| Tool | Descrizione | Disabilitato in READ_ONLY_MODE? |
|---|---|---|
get_today_context |
Data/ora (Europe/Rome), profilo minimizzato, contesto, materie/professori e orario. |
No |
update_student_context |
Salva o aggiorna classe (5A), indirizzo, n. registro e note. Il link iCal non si configura da qui. |
🔒 Sì |
save_class_timetable |
Valida e salva in locale l'orario settimanale della classe. | 🔒 Sì |
get_homework |
Compiti e consegne dei prossimi N giorni (ClasseViva + Classroom). | 🔒 Sì |
get_agenda |
Verifiche, interrogazioni, compiti e note tra due date. | 🔒 Sì |
get_lessons |
Argomenti spiegati dai prof a lezione per preparare verifiche e recuperi. | 🔒 Sì |
list_notices |
Elenca tutte le circolari in bacheca senza nascondere quelle vecchie, marcandole come 🆕 NUOVA o 📌 GIÀ VISTA. |
No |
read_notice_pdf |
Estrae testo da .pdf/.docx/.xlsx/.zip filtrando per classe, o renderizza PNG se scansionato. Non segna come letta senza consenso esplicito; in read-only non salva file. |
No |
get_grades |
Voti, medie ponderate per materia ed elenco insufficienze (< 6.0). |
🔒 Sì |
calculate_grade_target |
Calcola quale voto serve nella prossima verifica per arrivare alla media obiettivo. | 🔒 Sì |
get_absences |
Assenze, ritardi e uscite anticipate. | 🔒 Sì |
get_snapshot |
Tutto in una chiamata: profilo, contesto, materie, voti, assenze, compiti e agenda. Le 5 richieste di rete partono in parallelo. | 🔒 Sì |
CLASSEVIVA_READ_ONLY_MODE=true (alias retrocompatibile: CLASSEVIVA_PUBLIC_MODE=true) non registra i tool personali e di scrittura e fa fallire le funzioni corrispondenti con PermissionError. Non è una modalità multiutente: il server non autentica i chiamanti.
📚 Risorse MCP (dati in sola lettura)
Le risorse sono la controparte in sola lettura dei tool: il client le scarica indirizzate da URI, può memorizzarle in cache e riusarle senza ripetere la chiamata. Utile quando il dataset è grande e stabile.
| URI | Contenuto |
|---|---|
classeviva://profile |
Data/ora, profilo, contesto, materie, orario |
classeviva://subjects |
Materie e professori |
classeviva://notices |
Elenco circolari (senza segnarle come lette) |
classeviva://grades |
Voti e medie (personal) |
classeviva://absences |
Assenze e ritardi (personal) |
classeviva://homework/{days} |
Compiti dei prossimi N giorni (personal) |
classeviva://agenda/{start}/{end} |
Agenda scolastica (personal) |
classeviva://lessons/{start}/{end} |
Lezioni e argomenti (personal) |
Le risorse marcate (personal) seguono la stessa regola dei tool: non vengono registrate in READ_ONLY_MODE.
Limiti di Archiviazione Automatici (Zero crescita infinita su disco)
Per evitare che la cache locale (%LOCALAPPDATA%\classeviva-mcp su Windows o ~/.local/share/classeviva-mcp su Linux/Mac) cresca all'infinito nel tempo:
- Storico circolari viste (
seen_notice_ids): coda FIFO limitata agli ultimi 200 ID (< 4 KB). Le circolari già viste non vengono mai nascoste dalla lista ma solo etichettate con📌 GIÀ VISTA, così se te ne dimentichi una resta sempre visibile. - Cartella allegati (
attachments/): rotazione automatica che mantiene su disco solo gli ultimi 30 file PDF/PNG scaricati, rimuovendo in automatico quelli più vecchi. - Note contesto studente (
custom_notes): limite massimo di 1.500 caratteri.
🌐 Come funziona il trasporto (stdio vs HTTP)
Il server MCP può parlare con il tuo client in due modi. Capire la differenza è importante per capire chi può vedere i tuoi dati.
stdio — il default, e il più sicuro
Il tuo client MCP avvia il server come processo figlio e comunica con lui attraverso due canali locali (input/output del processo). Come una telefonata con il cellulare accanto sul tavolo.
Claude / Cursor / Opencode
| (pipe stdin/stdout, nessuna porta di rete)
v
classeviva-mcp serve
- ✅ Nessuna porta aperta: nessuno sulla rete può raggiungere il server.
- ✅ Il server vive e muore con il client: chiudi il client, il server sparisce.
- ✅ Le credenziali restano nel Keyring dell'utente che ha avviato il processo.
- ❌ Il server è disponibile solo su quel computer: per usarlo dal telefono serve un ponte (come nel modo smartphone).
Questo è il modo usato da tutte le istruzioni di installazione qui sopra.
streamable-http — opzionale, per VPS e bot
Il server si mette in ascolto su una porta TCP e il client lo raggiunge via HTTP.
Client MCP remoto
| HTTP + header "Authorization: Bearer <token>"
v
classeviva-mcp serve --transport streamable-http --port 8765
- ✅ Raggiungibile da altri dispositivi: telefono, VPS, bot, n8n.
- ✅ Sempre protetto da un bearer token: senza l'header
Authorizationil server risponde401 Unauthorizede non esegue nulla. - ⚠️ Il traffico HTTP non è cifrato: se lo usi fuori dal localhost, il token viaggia in chiaro. Usa solo una rete privata fidata o un tunnel (Tailscale, SSH).
- ⚠️ Chi ha il token può leggere tutto il tuo registro: è single-tenant, non multi-utente.
# Loopback (solo questo PC), token generato e salvato automaticamente
classeviva-mcp serve --transport streamable-http
# Con token esplicito
classeviva-mcp serve --transport streamable-http --token-file ~/.classeviva-token
# Su una VPS, con avviso che il traffico è in chiaro
classeviva-mcp serve --transport streamable-http --host 0.0.0.0 --port 8765
Il token si risolve in quest'ordine: --token-file → variabile CLASSEVIVA_MCP_TOKEN → token generato e salvato (cifrato con DPAPI su Windows, 0600 su Linux/macOS) in mcp_token.json nella cartella dati. Con --print-token lo stampi a schermo.
Sicurezza e privacy
Importante: questa sezione descrive il comportamento della v1.2.0; non rappresenta una certificazione di sicurezza. Non esporre il server a gruppi, utenti non fidati o Internet. Dettagli completi in SECURITY.md e PRIVACY.md.
CLASSEVIVA_READ_ONLY_MODE(aliasCLASSEVIVA_PUBLIC_MODE) minimizza i dati e disabilita le scritture. In questa modalità i tool personali e di scrittura (get_grades,get_absences,get_homework,get_agenda,get_lessons,calculate_grade_target,update_student_context,save_class_timetable) non vengono registrati e le funzioni sollevanoPermissionError.get_today_contextrestituisce un profilo senza nome, cognome e identificativi, e un contesto senza numero di registro, note o ID delle circolari viste. Resta comunque una modalità per singolo account, non un sistema multiutente: il server non autentica i chiamanti.- Il feed Classroom è protetto contro SSRF. Sono ammessi solo host
calendar.google.comeclassroom.google.com, schema HTTPS, porta 443 e risoluzione verso IP pubblici. I redirect vengono seguiti manualmente e rivalidati (massimo 3), la risposta è limitata a 5 MB etrust_env=Falseevita proxy ambientali. Il link si configura solo via CLI (classeviva-mcp set-classroom-url) e non viene mai restituito dai tool. - I segreti restano nel Keyring o in un fallback cifrato. Su Windows il fallback usa DPAPI; su Linux/macOS senza Keyring il salvataggio fallisce in modo esplicito, salvo
--allow-insecure-plaintext. I file sono scritti in modo atomico con permessi0600dove supportati.session_cache.jsoncontiene solotoken,identestudent_id. L'URL iCal viene migrato automaticamente fuori dastudent_context.json. - Logout esplicito.
classeviva-mcp logoutrimuove credenziali e sessione ma conserva orario e note;classeviva-mcp logout --purgeelimina anchestudent_context.jsone la cache degli allegati. Nessuno dei due richiede privilegi di amministratore. Cancellare a mano solo le voci del Keyring non basta:session_cache.jsoncontiene il token di sessione e resta fino alogout.logoutnon revoca il token lato Spaggiari: in caso di sospetto cambia la password da un altro dispositivo. - La lettura di una circolare può modificarne lo stato sul registro. Spaggiari restituisce testo e allegati completi solo dopo l'endpoint
noticeboard/read, che segna la circolare come letta.read_notice_pdfesponeallow_mark_as_readcon defaultFalse: su una circolare nuova restituisce solo i metadati e non modifica lo stato remoto. Passaallow_mark_as_read=Truesolo dopo aver avvisato lo studente; i promptsetupenotices_briefchiedono conferma. Se non è possibile verificare se la circolare è già stata letta, il tool fallisce chiuso: nessuna ricevuta di lettura, nessun download. Il tool restituiscenotice_marked_as_read/notice_was_unread/notice_read_state_known. InREAD_ONLY_MODEil valore è forzato aFalseesave_pdfè ignorato.list_noticesnon chiama mai l'endpoint di lettura. - Output diagnostici minimizzati.
loginedoctornon stampano nome, cognome o identificativo completo;--verbosemostra solo scuola/classe.doctormostra la cartella dati e indica se la sessione è in cache. - Le credenziali vengono verificate prima di essere salvate.
loginnon lascia mai nel Keyring una password non verificata: se la password è sbagliata, nel Keyring non resta nulla. - Limiti sulle risorse in ingresso. Download in streaming: allegati fino a 20 MB ciascuno e 40 MB complessivi per circolare, feed iCal fino a 5 MB. Con
attachment_indexviene scaricato solo l'allegato richiesto. PDF fino a 50 pagine, XML DOCX fino a 10 MB, XLSX fino a 500 righe × 50 colonne × 20 fogli, ZIP fino a 15 file / 25 MB decompressi con profondità massima 1. I redirect degli allegati sono ammessi solo verso*.spaggiari.eue il download verso il CDN avviene senza header di autenticazione. - Veloce nei workflow avanzati. La connessione HTTP è riutilizzata tra le chiamate (niente handshake TLS per ogni richiesta) e gli endpoint di sola lettura hanno una cache di 60 secondi: un brief + piano di recupero + voti non interrogano Spaggiari tre volte per gli stessi dati. La cache viene svuotata dopo ogni modifica di stato.
🧹 Pulizia su computer condivisi
Prima di lasciare un PC che non è tuo:
# Se usi uvx (senza installazione permanente)
uvx --from git+https://github.com/NihaoBoo/classeviva-mcp@stable classeviva-mcp logout --purge
# Se lo hai installato con uv tool install
classeviva-mcp logout --purge
Se hai impostato variabili d'ambiente (CLASSEVIVA_USER, CLASSEVIVA_PASSWORD, GOOGLE_ACCESS_TOKEN, CLASSROOM_ICAL_URL), rimuovile anche dalla shell o dalla configurazione del client: logout non le tocca.
Prima di un uso condiviso servono comunque autorizzazioni per chiamante e isolamento multiutente: la modalità read-only non sostituisce questi controlli.
Possibili migliorie future e integrazioni
- Sincronizzazione multi-MCP consigliata: guide rapide per combinare
classeviva-mcpconnotion-mcp,obsidian-mcpogoogle-calendar-mcp(es. creare automaticamente piani di studio su Notion/Obsidian partendo dalle lezioni di ClasseViva). - Statistiche di fine periodo / scrutinio: confronto storico tra primo e secondo quadrimestre.
- OAuth2 completo per Classroom: al posto della variabile d'ambiente, un flusso di autorizzazione con refresh automatico del token.
🔥 Crediti e Riconoscimenti
Questo progetto è stato reso possibile anche grazie al lavoro della community open-source italiana che ha documentato e mantenuto i wrapper per le API REST di Spaggiari ClasseViva:
- michelangelomo/Classeviva-Official-Endpoints — Documentazione degli endpoint REST ufficiali di ClasseViva.
- Lioydiano/Classeviva — Python API wrapper per ClasseViva.
- MarcoBuster/ClasseVivaAPI & ALCC01/ClassevivaAPI — Moduli e parser API per
web.spaggiari.eu. - 47PADO47/Classeviva.js & riccardocalligaro/registro_elettronico — Client e librerie della community.
Disclaimer (MIT License)
Progetto open-source indipendente, non affiliato a Gruppo Spaggiari Parma S.p.A. né a Google LLC. Il software è fornito "AS IS" senza alcuna garanzia (vedi LICENSE e NOTICE.md). L'utente è l'unico responsabile del rispetto dei Termini di Servizio della propria scuola e dei provider AI scelti.
Metadata
Release files for classeviva-mcp 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| classeviva_mcp-1.2.0.tar.gz | 240.8 kB | Without provenance | Details for classeviva_mcp-1.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| classeviva_mcp-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for classeviva_mcp-1.2.0-py3-none-any.whl |
Total release size: 296.0 kB
Release files / classeviva_mcp-1.2.0.tar.gz
| Download URL | classeviva_mcp-1.2.0.tar.gz |
|---|---|
| Size | 240.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
051b3ab81d9bd4a5ae210b8c45465fb64819f8bb141922844cb3908743735140
|
|
BLAKE2b-256 checksum How to use checksums |
95079ddeb6a3c306a2fdd71ba729c1883eea21de1458ec8a0777aeb59405e8dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / classeviva_mcp-1.2.0-py3-none-any.whl
| Download URL | classeviva_mcp-1.2.0-py3-none-any.whl |
|---|---|
| Size | 55.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e1a43e8bf5926b75fe201478ebe5d1f91c996d556562470979c8b912713f0fc1
|
|
BLAKE2b-256 checksum How to use checksums |
054b852aa305035bca49954289f9f1a905d802b0f9cba36596cfb33cf6c66f3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for classeviva-mcp 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.