Chispa MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chispa MCPShow me my classrooms and the outline of my newest course"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Chispa MCP
Paquete de npm (servidor MCP por stdio) que conecta asistentes de IA (Claude, ChatGPT y otros clientes MCP) con las aulas de Chispa. Cada docente inicia sesión con su cuenta de Chispa (chispa-mcp login) y el asistente actúa con sus mismos permisos: nunca más.
Herramientas
El asistente puede hacer todo lo que un profesor o administrador hace en las pantallas de gestión de Guías Clave, con los mismos permisos (77 herramientas). Las acciones que borran piden confirm: true y el asistente debe confirmar antes con la persona.
Área | Herramientas | Nivel |
Aulas |
| docente |
Cursos |
| equipo |
| quien creó el curso | |
Temas |
| equipo |
Colecciones |
| tus propias colecciones |
Módulos |
| equipo |
Lecciones |
| equipo |
Material |
| equipo |
Carga masiva |
| equipo |
Exámenes |
| equipo |
Escenarios |
| equipo |
Personas |
| equipo |
| administrador del aula | |
Chat |
| equipo |
Ofertas |
| administrador del aula |
Ventas |
| administrador del aula |
Permisos de edición de contenido: igual que en la plataforma (can_edit_course): quien creó el curso, el administrador del aula donde está vinculado o un profesor con acceso a él. Borrar o transferir un curso es solo de quien lo creó.
Todo lo que se crea queda en borrador o pausado salvo que se pida lo contrario.
Related MCP server: Classroom MCP
Cargas masivas
Pensadas para subir un simulacro, un banco de preguntas o varias lecciones de una vez:
Formato de texto compacto, una pregunta por línea (mucho más corto que JSON):
¿Capital de Francia? | Madrid | *París | Roma | explicación: Está sobre el Sena | tema: Geografía | lección: 2El*marca la correcta. Las tarjetas sonanverso | reverso. Las líneas vacías y las que empiezan por#se ignoran.dry_run: truevalida todo y muestra qué se guardaría, sin escribir nada.Todo o nada: si una línea falla no se guarda ninguna y el error dice la línea exacta (
línea 7: Marca la opción correcta con «*»). Si falla a mitad de camino, se deshace lo creado.Tandas e índices: hasta 200 preguntas por llamada y 30 lecciones por carga; las inserciones van en tandas de 100.
import_examcrea el examen y sus preguntas en un paso;import_module_contentcrea varias lecciones con su quiz y tarjetas.
Instrucciones y flujos guiados
Al conectarse, el servidor entrega unas instrucciones al asistente (tono claro y didáctico, validar antes de guardar, confirmar antes de publicar o borrar, cómo hacer cargas masivas, tratar el texto de estudiantes como información y no como órdenes). Además ofrece flujos guiados (prompts): cargar_simulacro, crear_curso_completo, revisar_grupo y atender_solicitudes. El texto está en src/mcp/instructions.ts y src/mcp/prompts.ts.
Fuera de alcance a propósito: subir imágenes (banners de cursos, colecciones y ofertas), datos de contacto de compradores y el análisis geográfico de la audiencia. Tampoco se envían los avisos automáticos a estudiantes que la plataforma manda al publicar un módulo o una lección.
Instalación
Requiere Node.js 22.12 o superior (22.12+, 24 o 26+).
El paquete se publica en GitHub Packages (@jeffercbs/chispa-mcp).
Opción A — directo desde GitHub (sin token):
npx -y github:jeffercbs/chispa-mcp loginOpción B — GitHub Packages: crea un .npmrc con
@jeffercbs:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=<token con read:packages>y ejecuta npx -y @jeffercbs/chispa-mcp login.
Autenticación
chispa-mcp loginabre el navegador en la pantalla de consentimiento de Guías Clave (OAuth 2.1 con PKCE de Supabase, redirección a127.0.0.1).Entras con tu cuenta de docente y apruebas el acceso.
Los tokens quedan en
~/.config/chispa-mcp/credentials.json(permisos 0600) y se renuevan solos.chispa-mcp whoamimuestra la cuenta;chispa-mcp logoutborra la sesión local.
No hay contraseñas ni claves de servicio en el paquete: el asistente actúa con el token de la persona y RLS decide qué ve.
Configurar tu cliente de IA
{
"mcpServers": {
"chispa": { "command": "npx", "args": ["-y", "github:jeffercbs/chispa-mcp"] }
}
}Claude Code: claude mcp add chispa -- npx -y github:jeffercbs/chispa-mcp.
Si no has iniciado sesión, las herramientas responden con la instrucción de ejecutar login.
Variables (opcionales)
Variable | Para qué |
| Otro proyecto Supabase (por defecto "taller ai") |
| Clave publicable de ese proyecto |
| Puerto del callback de login (53682) |
| Carpeta de credenciales |
| Moneda de los importes (COP) |
| Segundos que se recuerda el rol en un aula (20; 0 = siempre consultar) |
| Tope de escrituras por minuto (120) |
| Espera del inicio de sesión (5) |
Requisitos del proyecto Supabase
Auth → OAuth Server activado, con registro dinámico de clientes.
URL de autorización apuntando a
/oauth/consentde Guías Clave.Redirecciones loopback
http://127.0.0.1:53682/callbackpermitidas.
Publicar una versión
Crea un release en GitHub: el workflow publish.yml compila, prueba y publica en GitHub Packages.
Desarrollo
pnpm install
pnpm build # tsc → dist/
pnpm test # vitest
pnpm check # tsc --noEmit
node dist/cli.js loginVer ARCHITECTURE.md para añadir herramientas y SECURITY.md para el modelo de seguridad.
Available Tools
77 toolsactivate_trial_courseActivar el curso elegidoA
[Administrador del aula] Da acceso completo al curso que eligió una persona que está en prueba. Confirma con la persona antes de hacerlo.
Inputs: user_id (required), classroom_id (required).
add_exam_questionsCargar preguntas en un examenB
[Equipo del aula] Carga preguntas de opción múltiple en un simulacro o examen (hasta 200 por llamada). Envía questions (JSON) o questions_text (una por línea: «enunciado | opción | *correcta | opción | explicación: … | tema: … | lección: 2»). Es todo o nada: si una pregunta falla no se guarda ninguna y se indica la línea. Usa dry_run=true para validar sin guardar. Con replace=true sustituye todas las existentes (confirma antes con la persona).
Inputs: exam_id (required), classroom_id (required), dry_run, replace, +2 more.
add_flashcardsCargar tarjetas de repasoA
[Equipo del aula] Carga tarjetas de repaso en una lección (hasta 200 por llamada). Envía cards (JSON) o cards_text (una por línea: «anverso | reverso»). Todo o nada; dry_run=true valida sin guardar. Quedan visibles en la lección y en el mazo del curso.
Inputs: session_id (required), classroom_id (required), cards, dry_run, +1 more.
add_quiz_questionsCargar preguntas de quizA
[Equipo del aula] Carga preguntas de opción múltiple en el quiz de una lección (hasta 200 por llamada). Envía questions (JSON) o questions_text (una por línea: «enunciado | opción | *correcta | opción | explicación: …»). Todo o nada; dry_run=true valida sin guardar.
Inputs: session_id (required), classroom_id (required), dry_run, questions, +1 more.
add_scenario_criteriaAñadir criterios a la rúbricaB
[Equipo del aula] Añade criterios de autoevaluación a un escenario de un curso que puedes editar.
Inputs: criteria (required), scenario_id (required), classroom_id (required).
classroom_progressAvance del grupoBRead-only
[Equipo del aula · solo lectura] Resume el avance de cada estudiante del aula: lecciones completadas, quizzes aprobados, puntos y días sin actividad. Puede filtrar a quienes llevan inactivos.
Inputs: classroom_id (required), limit, inactive_days.
create_courseCrear cursoA
[Equipo del aula] Crea un curso. Queda en borrador y con visibilidad «aula» salvo que se indique otra cosa. Solo si quien llama administra el aula, el curso queda vinculado a ella (igual que en la plataforma); si no, queda sin vincular. Confirma con la persona antes de publicar o hacerlo público.
Inputs: title (required), classroom_id (required), publish, audience, +6 more.
create_examCrear simulacro o examenA
[Equipo del aula] Crea un simulacro o examen al final de un módulo de un curso que puedes editar. Queda en borrador; añade preguntas con add_exam_questions.
Inputs: title (required), module_id (required), classroom_id (required), repeatable, +6 more.
create_lessonCrear lecciónA
[Equipo del aula] Crea una lección de lectura al final de un módulo de un curso que puedes editar. Queda en borrador salvo que pidas publicarla; confirma con la persona antes de publicar.
Inputs: title (required), content (required), module_id (required), classroom_id (required), +6 more.
create_moduleCrear móduloA
[Equipo del aula] Crea un módulo al final de un curso que puedes editar. Queda en borrador salvo que pidas publicarlo.
Inputs: title (required), course_id (required), classroom_id (required), kind, +5 more.
create_offerCrear ofertaA
[Administrador del aula] Crea una oferta para cursos del aula: porcentaje, monto de descuento, precio fijo, descuento en el segundo curso o paquete. Queda pausada salvo que pidas activarla; confirma con la persona antes de activarla.
Inputs: kind (required), name (required), course_ids (required), classroom_id (required), +7 more.
create_scenarioCrear escenarioA
[Equipo del aula] Crea un caso práctico de respuesta abierta al final de un módulo de un curso que puedes editar. Queda en borrador; añade su rúbrica con add_scenario_criteria.
Inputs: title (required), module_id (required), situation (required), classroom_id (required), +7 more.
decide_access_requestAprobar o rechazar una solicitudB
[Equipo del aula] Aprueba o rechaza una solicitud para entrar al aula. Confirma con la persona antes de hacerlo.
Inputs: decision (required), member_id (required), classroom_id (required).
delete_chatEliminar una conversaciónADestructive
[Equipo del aula · irreversible] Elimina una conversación del aula con todos sus mensajes. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), thread_id (required), classroom_id (required).
delete_collectionBorrar colecciónADestructive
[Cuenta docente · irreversible] Borra una colección tuya. Sus cursos no se borran. Pide confirmación explícita a la persona.
Inputs: confirm (required), collection_id (required).
delete_courseBorrar cursoADestructive
[Equipo del aula · irreversible] Borra definitivamente un curso con todos sus módulos, lecciones y evaluaciones. Solo quien lo creó. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), course_id (required), classroom_id (required).
delete_examBorrar examenADestructive
[Equipo del aula · irreversible] Borra definitivamente un examen con sus preguntas e intentos. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), exam_id (required), classroom_id (required).
delete_exam_questionBorrar pregunta de examenBDestructive
[Equipo del aula · irreversible] Borra una pregunta de un examen.
Inputs: question_id (required), classroom_id (required).
delete_flashcardBorrar tarjetaBDestructive
[Equipo del aula · irreversible] Borra una tarjeta de repaso.
Inputs: card_id (required), classroom_id (required).
delete_gameBorrar juegoBDestructive
[Equipo del aula · irreversible] Borra un juego interactivo de una lección.
Inputs: game_id (required), classroom_id (required).
delete_lessonBorrar lecciónADestructive
[Equipo del aula · irreversible] Borra definitivamente una lección con su quiz, tarjetas y juegos. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), session_id (required), classroom_id (required).
delete_moduleBorrar móduloADestructive
[Equipo del aula · irreversible] Borra definitivamente un módulo con sus lecciones y evaluaciones. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), module_id (required), classroom_id (required).
delete_offerBorrar ofertaADestructive
[Administrador del aula · irreversible] Borra una oferta del aula. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), offer_id (required), classroom_id (required).
delete_quiz_questionBorrar pregunta de quizBDestructive
[Equipo del aula · irreversible] Borra una pregunta del quiz de una lección.
Inputs: question_id (required), classroom_id (required).
delete_scenarioBorrar escenarioADestructive
[Equipo del aula · irreversible] Borra definitivamente un escenario con su rúbrica y respuestas. Irreversible: pide confirmación explícita a la persona.
Inputs: confirm (required), scenario_id (required), classroom_id (required).
delete_scenario_criterionBorrar criterio de la rúbricaADestructive
[Equipo del aula · irreversible] Borra un criterio de la rúbrica de un escenario.
Inputs: classroom_id (required), criterion_id (required).
delete_self_check_questionBorrar pregunta de autoevaluaciónBDestructive
[Equipo del aula · irreversible] Borra una pregunta de autoevaluación de una lección.
Inputs: question_id (required), classroom_id (required).
delete_themeBorrar temaADestructive
[Equipo del aula · irreversible] Borra un tema del curso. Los materiales dejan de estar asociados a él.
Inputs: theme_id (required), classroom_id (required).
get_chat_threadLeer una conversaciónARead-only
[Equipo del aula · solo lectura] Devuelve los mensajes de una conversación del aula, en orden.
Inputs: thread_id (required), classroom_id (required).
get_courseDetalle del cursoARead-only
[Equipo del aula · solo lectura] Devuelve los datos editables de un curso del aula: títulos, descripción, nivel, visibilidad, colección y publicación.
Inputs: course_id (required), classroom_id (required).
get_course_outlineÍndice del cursoBRead-only
[Equipo del aula · solo lectura] Devuelve los módulos y lecciones de un curso del aula, con su estado de publicación.
Inputs: course_id (required), classroom_id (required).
get_examDetalle del examenARead-only
[Equipo del aula · solo lectura] Devuelve la configuración de un simulacro o examen y todas sus preguntas con sus IDs.
Inputs: exam_id (required), classroom_id (required).
get_gameDetalle de un juegoBRead-only
[Equipo del aula · solo lectura] Devuelve el tipo, la consigna y la configuración completa de un juego de una lección.
Inputs: game_id (required), classroom_id (required).
get_lessonDetalle de la lecciónARead-only
[Equipo del aula · solo lectura] Devuelve el contenido completo de una lección (resumen, objetivos, texto, vídeo, formato) y cuántos quizzes, tarjetas y juegos tiene.
Inputs: session_id (required), classroom_id (required).
get_moduleDetalle del móduloBRead-only
[Equipo del aula · solo lectura] Devuelve los datos editables de un módulo y sus evaluaciones (exámenes y escenarios).
Inputs: module_id (required), classroom_id (required).
get_scenarioDetalle del escenarioARead-only
[Equipo del aula · solo lectura] Devuelve un escenario con su respuesta de referencia, mensajes de resultado y rúbrica (criterios con sus IDs).
Inputs: scenario_id (required), classroom_id (required).
get_student_detailAvance de un estudianteARead-only
[Equipo del aula · solo lectura] Muestra el avance lección por lección de un estudiante del aula, agrupado por módulo, con puntajes de quiz e intentos.
Inputs: user_id (required), classroom_id (required).
import_examCrear un examen completo con sus preguntasA
[Equipo del aula] Crea un simulacro o examen y carga todas sus preguntas en una sola llamada (hasta 200). Es todo o nada: si algo falla no queda un examen a medias. Formato de texto: una pregunta por línea «enunciado | opción | *correcta | opción | explicación: … | tema: … | lección: 2». Usa dry_run=true primero para validar sin guardar. Queda en borrador.
Inputs: title (required), module_id (required), classroom_id (required), dry_run, +9 more.
import_module_contentCargar varias lecciones con su quiz y tarjetasA
[Equipo del aula] Crea hasta 30 lecciones al final de un módulo, cada una con su quiz y sus tarjetas, en una sola llamada. Es todo o nada. Usa dry_run=true para validar primero. Quedan en borrador salvo publish=true (confirma con la persona antes de publicar).
Inputs: lessons (required), module_id (required), classroom_id (required), dry_run, +1 more.
list_access_requestsSolicitudes y cursos por activarARead-only
[Administrador del aula · solo lectura] Lista quién pide entrar al aula y quién está en prueba esperando que le actives el curso que eligió.
Inputs: classroom_id (required).
list_collectionsMis coleccionesARead-only
[Cuenta docente · solo lectura] Lista tus colecciones de cursos con los cursos de cada una.
Inputs: no named parameters.
list_coursesCursos del aulaBRead-only
[Equipo del aula · solo lectura] Lista los cursos del aula, si están publicados y si los puedes editar.
Inputs: classroom_id (required).
list_course_themesTemas del cursoBRead-only
[Equipo del aula · solo lectura] Lista los temas de un curso con sus prerrequisitos.
Inputs: course_id (required), classroom_id (required).
list_lesson_itemsMaterial de una lecciónARead-only
[Equipo del aula · solo lectura] Lista con sus IDs el quiz, las preguntas de autoevaluación, las tarjetas y los juegos de una lección, para poder editarlos o borrarlos.
Inputs: session_id (required), classroom_id (required).
list_membersPersonas del aulaARead-only
[Equipo del aula · solo lectura] Lista a las personas del aula con su estado (pendiente, aprobado o rechazado), tipo de acceso, curso elegido y cursos activados. Sin correos ni teléfonos.
Inputs: classroom_id (required), limit, offset, status.
list_my_classroomsMis aulasARead-only
[Cuenta docente · solo lectura] Lista las aulas donde eres administrador o profesor, con tu rol en cada una. Úsala primero para obtener el classroom_id.
Inputs: no named parameters.
list_offersOfertas del aulaARead-only
[Administrador del aula · solo lectura] Lista las ofertas del aula con su tipo, descuento, vigencia, cupos y estado.
Inputs: classroom_id (required).
list_salesRegistro de ventasARead-only
[Administrador del aula · solo lectura] Lista las compras del aula (pagadas, pendientes y fallidas) con referencia, montos, comisión y cursos. No incluye datos de contacto de los compradores.
Inputs: classroom_id (required), limit, status.
list_waiting_chatsChats sin responderARead-only
[Equipo del aula · solo lectura] Lista las conversaciones del aula cuyo último mensaje es del estudiante, con ese mensaje.
Inputs: classroom_id (required).
move_course_to_collectionMover un curso de colecciónA
[Cuenta docente] Mueve un curso tuyo a una colección tuya, o lo saca de su colección si no envías collection_id.
Inputs: course_id (required), collection_id.
remove_memberQuitar a alguien del aulaADestructive
[Equipo del aula · irreversible] Quita la plaza de una persona del aula. Pierde el acceso. Pide confirmación explícita a la persona.
Inputs: confirm (required), member_id (required), classroom_id (required).
reorder_collection_coursesOrdenar los cursos de una colecciónA
[Cuenta docente] Fija el orden de los cursos de una colección tuya. La lista debe incluir todos sus cursos.
Inputs: course_ids (required), collection_id (required).
reorder_lessonsOrdenar leccionesA
[Equipo del aula] Fija el orden de las lecciones de un módulo. La lista debe incluir todas las lecciones del módulo, en el orden deseado.
Inputs: module_id (required), session_ids (required), classroom_id (required).
reorder_modulesOrdenar módulosA
[Equipo del aula] Fija el orden de los módulos de un curso. La lista debe incluir todos los módulos del curso, en el orden deseado.
Inputs: course_id (required), module_ids (required), classroom_id (required).
reply_chatResponder un chatA
[Equipo del aula] Envía una respuesta en una conversación del aula. Muestra el texto a la persona y pide su confirmación antes de enviarlo.
Inputs: body (required), thread_id (required), classroom_id (required).
sales_funnelEmbudo de ventasARead-only
[Administrador del aula · solo lectura] Cuántos carritos se abrieron, cuántos pagos se iniciaron y cuántos se pagaron, más lo abandonado por curso. Sin datos de contacto.
Inputs: classroom_id (required).
sales_summaryResumen de ventasARead-only
[Administrador del aula · solo lectura] Totales de ventas pagadas del aula en un periodo y lo vendido por curso. No incluye datos de contacto de los compradores.
Inputs: classroom_id (required), days.
save_collectionCrear o editar una colecciónA
[Cuenta docente] Crea una colección de cursos o edita una tuya (envía collection_id). Al editar, envía el título actual si no lo cambias.
Inputs: title (required), slug, video_url, description, +1 more.
save_exam_questionCrear o editar una pregunta de examenA
[Equipo del aula] Crea una pregunta de examen o edita una existente (envía question_id). Para muchas preguntas usa add_exam_questions.
Inputs: prompt (required), correct (required), exam_id (required), options (required), +6 more.
save_flashcardCrear o editar una tarjetaA
[Equipo del aula] Crea una tarjeta de repaso o edita una existente (envía card_id). Pasa session_id para una tarjeta de lección, o solo course_id para una del mazo general del curso.
Inputs: back (required), front (required), classroom_id (required), card_id, +4 more.
save_gameCrear o editar un juegoA
[Equipo del aula] Crea un juego interactivo en una lección o edita uno existente (envía game_id). El config depende del tipo: clasificar: {buckets:[{key,label}] (2-6), items:[{text,bucket,why?}] (3-60)}; ordenar: {items:[{text,label?,order}] (3-30)}; emparejar: {pairs:[{left,right}] (3-30)}; memoria: {pairs:[{left,right}] (3-10)}; verdadero_falso: {items:[{text,answer,why?}] (3-60)}; completar: {items:[{text con ___, answer, options?, why?}] (3-40)}; sopa y descifrar: {items:[{text,clue?}] (3-30)}. Queda en borrador salvo que se publique.
Inputs: kind (required), title (required), config (required), session_id (required), +5 more.
save_quiz_questionCrear o editar una pregunta de quizA
[Equipo del aula] Crea una pregunta de quiz en una lección o edita una existente (envía question_id).
Inputs: prompt (required), correct (required), options (required), session_id (required), +5 more.
save_scenario_criterionCrear o editar un criterio de la rúbricaB
[Equipo del aula] Crea un criterio de la rúbrica de un escenario o edita uno existente (envía criterion_id).
Inputs: label (required), scenario_id (required), classroom_id (required), topic, +6 more.
save_self_check_questionCrear o editar una pregunta de autoevaluaciónA
[Equipo del aula] Crea una pregunta de autoevaluación (pregunta y respuesta abiertas) en una lección o edita una existente (envía question_id).
Inputs: answer (required), question (required), session_id (required), classroom_id (required), +2 more.
save_themeCrear o editar un temaA
[Equipo del aula] Crea un tema del curso o edita uno existente (envía theme_id). Si envías prerequisite_ids, reemplaza los prerrequisitos; deben ser temas del mismo curso.
Inputs: title (required), course_id (required), classroom_id (required), position, +3 more.
set_chat_statusMarcar una conversaciónB
[Equipo del aula] Marca una conversación del aula como resuelta o la reabre.
Inputs: status (required), thread_id (required), classroom_id (required).
set_course_grantsFijar los cursos activados de una personaA
[Administrador del aula] Fija exactamente a qué cursos del aula tiene acceso completo una persona con plaza (los que no incluyas se le quitan). Primero consulta list_members para no quitar accesos por error; confirma con la persona.
Inputs: user_id (required), course_ids (required), classroom_id (required).
set_item_themesAsociar temas a un materialA
[Equipo del aula] Fija a qué temas del curso pertenece una lección, pregunta de quiz o de examen, tarjeta, juego o escenario. Reemplaza las asociaciones previas.
Inputs: kind (required), item_id (required), theme_ids (required), classroom_id (required).
set_offer_activeActivar o pausar una ofertaB
[Administrador del aula] Activa o pausa una oferta del aula. Confirma con la persona antes de activarla.
Inputs: active (required), offer_id (required), classroom_id (required).
set_publishedPublicar o pasar a borradorA
[Equipo del aula] Publica o pasa a borrador un curso, módulo o lección que puedes editar. Confirma con la persona antes de publicar.
Inputs: kind (required), item_id (required), published (required), classroom_id (required).
transfer_courseTransferir cursoADestructive
[Equipo del aula · irreversible] Transfiere la propiedad de un curso a otro docente. Solo quien lo creó. Pide confirmación explícita antes de hacerlo.
Inputs: confirm (required), course_id (required), classroom_id (required), new_owner_id (required).
update_courseEditar cursoA
[Equipo del aula] Cambia los datos de un curso que puedes editar. Solo se modifica lo que envíes. Confirma con la persona antes de publicar o cambiar la visibilidad.
Inputs: course_id (required), classroom_id (required), slug, title, +8 more.
update_examEditar examenA
[Equipo del aula] Cambia la configuración de un simulacro o examen. Solo se modifica lo que envíes. Confirma con la persona antes de publicar. Para activar el simulacro el examen necesita al menos 10 preguntas.
Inputs: exam_id (required), classroom_id (required), title, published, +13 more.
update_lessonEditar lecciónA
[Equipo del aula] Cambia los datos de una lección de un curso que puedes editar. Solo se modifica lo que envíes. Confirma con la persona antes de publicar.
Inputs: session_id (required), classroom_id (required), title, format, +7 more.
update_moduleEditar móduloA
[Equipo del aula] Cambia los datos de un módulo de un curso que puedes editar. Solo se modifica lo que envíes. Confirma con la persona antes de publicar.
Inputs: module_id (required), classroom_id (required), kind, title, +6 more.
update_offerEditar ofertaA
[Administrador del aula] Reemplaza los datos de una oferta del aula (nombre, tipo, valor, cursos, vigencia y cupos). Envía todos los campos, no solo lo que cambia; consulta list_offers primero. El estado activo/pausado no cambia: usa set_offer_active.
Inputs: kind (required), name (required), offer_id (required), course_ids (required), +7 more.
update_scenarioEditar escenarioA
[Equipo del aula] Cambia un escenario y su respuesta de referencia. Solo se modifica lo que envíes. Confirma con la persona antes de publicar.
Inputs: scenario_id (required), classroom_id (required), title, question, +10 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 77 tools
Most tools target distinct resource+action pairs, and the descriptions explicitly distinguish bulk vs. single-item variants (add_quiz_questions vs. save_quiz_question, import_exam vs. create_exam + add_exam_questions). However, there is genuine redundancy: import_module_content and import_exam overlap with create_lesson/create_module + add_* flows, save_* upserts overlap with create_/update_ pairs, and publish flags inside create/import tools overlap with set_published. With 77 tools the agent must read carefully to avoid misselection.
All names are snake_case verb_noun, which is readable, but the verb convention is not uniform across domains: some entities use separate create_/update_ pairs (course, module, lesson, exam, scenario, offer) while others use a single save_ upsert (theme, collection, quiz question, flashcard, game, exam question, scenario criterion), plus add_* for bulk content. This mixed convention is semantically meaningful but forces the agent to learn per-domain rules rather than one predictable pattern.
77 tools is far beyond what an agent can comfortably handle in one surface and goes well past the 50+ threshold for extreme mismatch. Many tools are convenience wrappers (import_module_content, import_exam) around combinations of other tools, which inflates the count without adding unique capability. The surface would benefit from consolidation and grouping.
Coverage of the teaching-platform domain is broad: classrooms, courses, modules, lessons, quizzes, flashcards, exams, scenarios, games, themes, collections, offers, sales, members, chats, and progress are all represented with read/create/update/delete where appropriate. Minor gaps remain, such as reordering questions within a quiz/exam or bulk deletion, but the core lifecycle is well covered.
Maintenance
Related MCP Connectors
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
Connect an AI assistant to a Capacities space (objects, daily notes, search).
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Classavo education platform via natural language for course management, assignments, grading, attendance, polling, and discussions, with strict privacy controls for students.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to directly operate Google Classroom, including checking submissions, listing students, and creating assignments and announcements, with self-hosted deployment for data privacy.-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Google Classroom to check submission statuses, list students and assignments, and create coursework, announcements, and topics through natural language.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to operate Google Classroom, letting users list courses and students, check assignment submissions, and create coursework and announcements through natural language.-