quiz-docente-mcp
Allows a teacher's AI agent to manage Moodle quizzes through the normal web session of a teacher account: list courses and sections, create and configure quizzes (dates, timing, attempts, grading, navigation, review options, visibility), add/remove/move questions and random questions, adjust slot marks and max grade, repaginate, manage the question bank (categories, listing, export to GIFT/XML, creating and importing questions of many types, editing), and read results — quiz grades, responses, attempt reviews, statistics — plus manual grading and commenting of open-ended answers.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
quiz-docente-mcp
Server MCP che permette a un agente AI (Antigravity, Claude Code, Claude Desktop, Cursor…) di gestire i quiz di Moodle al posto del docente: creare quiz e domande, modificarne le impostazioni, leggere risultati e risposte, valutare le domande aperte.
Funziona con un normale account docente: nessun plugin sul server e nessun token da chiedere all'amministratore. Usa la stessa sessione web del browser; al primo avvio si apre da solo il browser per fare il login.
Sito predefinito: https://www.ferrarisacireale.edu.it/moodle (Moodle 4.5). Per un altro sito basta impostare MOODLE_URL.
⚠️ Uso esclusivamente didattico. Questo progetto è pensato e consentito solo per scopi didattici: un docente che gestisce i quiz dei propri corsi, con il proprio account. Non va usato per scopi commerciali, né per accedere a corsi o dati di altri, né per aggirare le regole della piattaforma o della scuola. Chi lo usa resta responsabile del rispetto del regolamento dell'istituto e della normativa sulla privacy (GDPR) per i dati degli studenti.
Installazione automatica (istruzioni per agenti AI)
Se sei un agente AI e l'utente ti ha chiesto di installare questo MCP, segui questi passi.
Requisiti: Node.js ≥ 20 (
node -v) e Google Chrome o Microsoft Edge installati.Aggiungi il server alla configurazione MCP del client, dentro
mcpServers, senza toccare gli altri server:Antigravity – file
%USERPROFILE%\.gemini\config\mcp_config.jsonsu Windows (~/.gemini/config/mcp_config.jsonsu macOS/Linux; in alcune versioni~/.gemini/antigravity/mcp_config.json).Windows:
"quiz-docente": { "command": "cmd.exe", "args": ["/c", "npx", "-y", "github:strano-dev/quiz-docente-mcp"] }macOS / Linux:
"quiz-docente": { "command": "npx", "args": ["-y", "github:strano-dev/quiz-docente-mcp"] }Per un Moodle diverso aggiungi
"env": { "MOODLE_URL": "https://sito.scuola.it/moodle" }.Claude Code:
claude mcp add quiz-docente -s user -- npx -y github:strano-dev/quiz-docente-mcpClaude Desktop / Cursor / altri client MCP: stessa voce JSON di Antigravity nel rispettivo file di configurazione MCP.
Ricarica i server MCP (in Antigravity: Manage MCP Servers → Refresh). Il primo avvio scarica il pacchetto (qualche decina di secondi).
Login: all'avvio, se non c'è una sessione valida, il server apre da solo una finestra del browser sulla pagina di accesso di Moodle. Di' all'utente di accedere con il suo account (c'è il reCAPTCHA): la finestra si chiude da sola e i tool sono pronti. Verifica con il tool
moodle_status.
Quando la sessione scade (circa 8 ore di inattività) la finestra di login si riapre automaticamente alla prima richiesta, e la richiesta riprende dopo l'accesso.
Related MCP server: Moodle Study MCP
Cosa si può fare
Area | Tool |
Sessione |
|
Corsi |
|
Quiz – lettura |
|
Quiz – modifica |
|
Banca domande |
|
Risultati |
|
Scelta di progetto: niente eliminazioni
Non esistono tool per eliminare quiz o domande: le eliminazioni le fa sempre il docente, a mano, da Moodle.
moodle_remove_quiz_slots toglie una domanda da un quiz ma la lascia nella banca domande.
Un quiz che ha già tentativi degli studenti non permette di aggiungere o togliere domande (vincolo di Moodle).
Identificativi
courseid: id del corso (course/view.php?id=…)cmid: id del quiz come modulo del corso (mod/quiz/view.php?id=…)slot_id: posizione di una domanda nel quiz, damoodle_get_quizcategory_id,question_id: dai tool della banca domande, che accettanocourseid(banca del corso) oppurecmid(banca propria del quiz)
Configurazione
Variabile | Default | Significato |
|
| URL del sito Moodle |
|
|
|
| – |
|
|
| dove vengono salvati sessione e profilo del browser di login |
| – | percorso di chrome.exe / msedge.exe se non vengono trovati |
|
| attesa massima per l'accesso |
La sessione è salvata in ~/.moodle-mcp/session.json e contiene il cookie di accesso: non condividerla.
Login manuale da terminale: npx -y -p github:strano-dev/quiz-docente-mcp quiz-docente-mcp-login.
Sviluppo
git clone https://github.com/strano-dev/quiz-docente-mcp
cd quiz-docente-mcp
npm install
npm test # test unitari (Vitest)
npm run check # typecheck + test con copertura + build: da eseguire prima di ogni commit
npm run build # compila src/ in dist/ (dist/ è versionata: serve a npx per avviare senza build)
npm run login # login manuale
npm start # avvia il server MCP su stdioRegola: si procede sempre in TDD
Ogni modifica al codice segue il ciclo Test-Driven Development, senza eccezioni:
Red – scrivi prima un test in
test/che descrive il comportamento voluto e verifica che fallisca.Green – scrivi in
src/il codice minimo che lo fa passare.Refactor – migliora il codice tenendo tutti i test verdi.
Regole pratiche:
ogni bug si corregge partendo da un test che lo riproduce;
nessuna nuova funzione o nuovo tool MCP senza i relativi test;
i test unitari non chiamano mai il Moodle reale:
test/helpers/fake-moodle.tssimula il sito intercettandofetch,test/helpers/moodle-html.tsgenera pagine sintetiche con la stessa struttura di Moodle 4.5 (nessun dato reale), Playwright viene sostituito con un mock;prima di ogni commit
npm run checkdeve passare; le soglie minime di copertura (righe 90%, rami 80%) sono configurate invitest.config.tse fanno fallire la suite se non rispettate;dopo aver modificato
src/ricompila (npm run build) e versiona anchedist/.
File di test | Cosa copre |
| cookie, redirect, sessione scaduta, |
| lettura e invio dei form Moodle (checkbox avanzate, select, editor, date, durate, errori) |
| corsi e sezioni |
| struttura del quiz, impostazioni, creazione, slot, domande casuali, voto massimo, pagine |
| categorie, elenco/export, conversione JSON → Moodle XML, import con upload, modifica domande |
| voti, risposte, revisione tentativi, valutazione manuale, statistiche |
| finestra di login (Chrome/Edge), timeout, lock contro finestre multiple |
| elenco tool, modalità sola lettura, errori, login automatico con nuovo tentativo, mappatura argomenti |
| comando di login e variabili d'ambiente |
Come funziona
Moodle non espone ai docenti API per creare quiz e domande, quindi il server usa gli stessi endpoint dell'interfaccia web, ricavati analizzando il traffico del browser:
Funzione | Endpoint Moodle |
corsi, sezioni, quiz di un corso | AJAX |
struttura del quiz |
|
punteggio, rimozione, spostamento delle domande nel quiz |
|
aggiunta domande, voto massimo, ripaginazione | POST |
domande casuali | AJAX |
impostazioni e creazione quiz | form |
categorie |
|
elenco e lettura domande |
|
creazione / import domande | upload |
modifica domanda | form |
voti e risposte | `mod/quiz/report.php?mode=overview |
revisione e valutazione manuale |
|
Testato su Moodle 4.5.11. I report voti/risposte sono stati verificati solo su quiz senza tentativi di studenti (le anteprime del docente non compaiono nei report).
Licenza
MIT (vedi LICENSE). Resta valida l'indicazione d'uso esclusivamente didattico riportata all'inizio.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, edit and publish Educaplay educational games and quizzes from any AI assistant.
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
Create, edit and publish scored quizzes and read results from any MCP client. Free plan included.
Quiz.Video MCP: list, create, AI-generate, and render quiz and flashcard videos.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Moodle LMS via the Moodle REST API, supporting management of courses, users, enrollments, grades, and content.GPL 3.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to read your Moodle courses, list materials, quizzes, and search content to plan exam preparation through natural language.1-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query and manage Moodle LMS data, including assignment deadlines, unread messages, unfinished quizzes, and enrolled courses, using natural language via OpenAI or local LLMs.-
- AlicenseBqualityAmaintenanceEnables an AI assistant to handle teacher tasks in Moodle: view enrolments, submissions, missing work, grade with feedback, and post announcements.22MIT