s21-canvas-mcp
Provides integration with Canvas LMS, enabling access to courses, grades, assignments, modules, readings, PDF content, syllabi, discussions, calendar events, announcements, and academic status.
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., "@s21-canvas-mcp What is my academic status for the Marketing 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.
s21-canvas-mcp
Servidor Model Context Protocol (MCP) para integrar asistentes de inteligencia artificial (Claude Desktop, Cursor, Antigravity, Windsurf, VS Code Copilot, Codex CLI) con la plataforma Canvas LMS de la Universidad Siglo 21.
Proporciona capacidades para consultar asignaturas, calificaciones, trabajos prácticos, cronogramas y realizar la extracción en memoria del contenido de lecturas y documentos PDF para análisis, síntesis y asistencia académica mediante modelos de lenguaje.
Instalación
Seleccione la configuración correspondiente a su entorno o cliente de IA. Es necesario contar con un token de acceso personal de Canvas LMS (consulte las instrucciones en Obtención del Token de Canvas).
1. Claude Desktop
Ruta del archivo de configuración:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}2. Antigravity (Gemini)
Archivo: .gemini/settings.json en el workspace (o configuración global en ~/.gemini/settings.json)
{
"mcpServers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}3. Cursor
Archivo: .cursor/mcp.json en el workspace
{
"mcpServers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}4. VS Code Copilot
Archivo: .vscode/settings.json en el workspace
Nota: Visual Studio Code emplea una clave específica (
mcp.serversen lugar demcpServers).
{
"mcp": {
"servers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}
}5. Windsurf
Archivo: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}6. Codex CLI (OpenAI)
Archivo: ~/.codex/config.json
{
"mcpServers": {
"siglo21": {
"command": "npx",
"args": ["-y", "s21-canvas-mcp"],
"env": {
"CANVAS_TOKEN": "tu_token_de_canvas_aqui",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}Related MCP server: canvas-mcp-lite
Obtencion del Token de Canvas
Inicie sesión en Canvas Siglo 21.
Diríjase a Cuenta.
Desplácese hasta la sección Tokens de acceso aprobados y seleccione + Nuevo token de acceso.
Asigne un nombre identificador (por ejemplo,
MCP-Agent) y seleccione Generar token.Copie el token generado y asígnelo al parámetro
CANVAS_TOKENen la configuración correspondiente.
IMPORTANTE: No darle los permisos del token a nadie, ya que permite el acceso a toda tu información académica. En caso de hacerlo revocarlo desde la misma sección.
Herramientas Disponibles
Herramienta | Descripción | Parámetros |
| Simulador interactivo de exámenes con persistencia en SQLite local, temporizador de API, modos examen/práctica y panel institucional Siglo 21. |
|
| Registra preguntas en la base de datos local SQLite para la generación de simulacros por materia y módulo. |
|
| Estadísticas del banco de preguntas y registro histórico de exámenes en SQLite. | - |
| Portal web interactivo con documentación de herramientas, casos de uso y generador de prompts. |
|
| Análisis de calificaciones mínimas requeridas para Promoción Directa (7+) o Regularidad (5+). |
|
| Generación estructurada de preguntas tipo examen con fundamentación conceptual. |
|
| Auditoría de borradores de entregas académicas frente a la rúbrica oficial de evaluación. |
|
| Consolidación de tareas pendientes y entregas con fechas límite. | - |
| Consulta y extracción de texto de lecturas SAM (1.1 a 4.4). |
|
| Extracción de contenido de documentos PDF en memoria sin almacenamiento en disco. |
|
| Búsqueda transversal por términos en material y lecturas descargadas. |
|
| Consulta de asignaturas activas o concluidas, calificaciones y períodos académicos. |
|
| Trabajos prácticos, consignas en formato Markdown y criterios de rúbrica. |
|
| Estructura de módulos SAM, lecturas y actividades organizadas por unidad. |
|
| Explorador de archivos y documentos asociados a la asignatura. |
|
| Foros de discusión académica y consignas de trabajo grupal. |
|
| Programa oficial de la asignatura y datos del cuerpo docente. |
|
| Próximos eventos y fechas límite del calendario institucional. | - |
| Anuncios institucionales y publicaciones de cátedra. |
|
| Datos del perfil de estudiante (nombre, identificador institucional, correo electrónico). | - |
Desarrollo Local
Para compilar y ejecutar el proyecto en un entorno de desarrollo local:
cd s21-canvas-mcp
npm install
npm run buildEjecución directa del servidor compilado:
node dist/index.jsPara registrar el binario en el entorno local:
npm linkConfiguración MCP para el binario enlazado:
{
"mcpServers": {
"siglo21": {
"command": "s21-canvas-mcp",
"env": {
"CANVAS_TOKEN": "...",
"CANVAS_URL": "https://siglo21.instructure.com"
}
}
}
}Compatibilidad de Clientes MCP
Cliente | Transporte | Estado | Observaciones |
Claude Desktop | stdio | Compatible | Soporte completo |
Antigravity (Gemini) | stdio | Compatible | Soporte completo |
Cursor | stdio | Compatible | Soporte completo |
VS Code Copilot | stdio | Compatible | Requiere clave |
Windsurf | stdio | Compatible | Soporte completo |
Codex CLI (OpenAI) | stdio | Compatible | Soporte completo |
Codex Cloud (ChatGPT) | — | No compatible | Entorno aislado sin soporte de transporte MCP |
ChatGPT (Web / Desktop App) | HTTP remoto | Limitado | Requiere despliegue como servicio HTTP accesible públicamente |
Available Tools
21 toolss21_audit_rubricA
Compara el borrador de un Trabajo Práctico contra la rúbrica oficial de Canvas y evalúa el puntaje proyectado por criterio.
Inputs: course_id (required), draft_text (required), assignment_id (required).
s21_check_academic_statusA
Calcula el estado académico (promedio de TPs, notas cargadas y proyección de notas mínimas para Promoción Directa o Regularidad).
Inputs: course_id (required), target_promo_grade, target_regular_grade.
s21_generate_practice_quizA
Genera un simulacro de examen tipo API/parcial con preguntas multiple choice y justificaciones teóricas basado en la lectura oficial de Canvas. DIRECTIVA DE FLUJO: Cuando el usuario solicite preparar, rendir o entrenar para un examen interactivo, genera las preguntas con distractores y explicaciones académicas, guárdalas en SQLite con 's21_save_questions_to_bank' e invoca 's21_open_exam_simulator' con el 'course_id' correspondiente y 'start_exam': true para ofrecer la experiencia de examen interactiva.
Inputs: course_id (required), module_number (required), reading_number (required), question_count.
s21_get_announcementsA
Obtiene los avisos y anuncios publicados por profesores con texto limpio en Markdown.
Inputs: course_ids.
s21_get_assignmentsA
Obtiene los Trabajos Prácticos (TP1 a TP4), fechas de entrega, consignas limpias en Markdown y rúbricas.
Inputs: course_id (required), clean_content.
s21_get_bank_questionsA
Obtiene las preguntas existentes guardadas en el banco local SQLite para una materia. Permite consultar el contenido del banco, verificar preguntas antes de generar nuevas (evitando duplicados), o revisar preguntas específicas con el alumno directamente en el chat.
Inputs: course_id (required), limit, module_number.
s21_get_course_filesA
Lista todos los archivos, lecturas y documentos disponibles en una materia, con soporte de fallback si la pestaña de archivos está bloqueada.
Inputs: course_id (required).
s21_get_discussion_topicsA
Obtiene los foros de debate del curso (incluyendo foros obligatorios para TP2 grupal) y sus consignas.
Inputs: course_id (required).
s21_get_exam_bank_summaryA
Consulta el resumen del banco de preguntas y estadísticas de exámenes guardados en la base de datos SQLite local (materias registradas, cantidad de preguntas por módulo, historial de intentos y promedios).
Inputs: no named parameters.
s21_get_modulesB
Obtiene la estructura de módulos (SAM), lecturas y actividades organizadas por unidad temática.
Inputs: course_id (required), clean_content.
s21_get_my_profileA
Obtiene el perfil del alumno en Siglo 21 Canvas (nombre, id, correo, avatar).
Inputs: no named parameters.
s21_get_pending_tasksA
Obtiene la agenda de entregas, TPs y tareas pendientes de todas las materias activas, ordenadas cronológicamente con días restantes.
Inputs: no named parameters.
s21_get_readingC
Busca y resuelve automáticamente una lectura o actividad específica por Módulo y Número de Lectura, con opción de extraer el texto del PDF directamente.
Inputs: course_id (required), module_number (required), reading_number (required), auto_read_pdf.
s21_get_syllabusA
Obtiene el programa general, syllabus y datos docentes de una materia.
Inputs: course_id (required).
s21_get_upcoming_eventsB
Obtiene las próximas entregas, parciales y eventos agendados en el calendario del alumno.
Inputs: no named parameters.
s21_list_coursesB
Lista las materias del alumno (activas o históricas) con soporte de búsqueda y formato compacto optimizado.
Inputs: search, compact, include_concluded.
s21_open_exam_simulatorB
Abre el portal institucional interactivo posicionado directamente en el Simulador de Exámenes (preparación de parciales tipo API, temporizador, banco de preguntas SQLite y notas). DIRECTIVA DE FLUJO: Soporta 'course_id', 'mode' ('exam' o 'practice') y 'start_exam': true para iniciar inmediatamente el examen al abrir la aplicación sin requerir clics manuales del usuario.
Inputs: mode, port, auto_open, course_id, +1 more.
s21_open_interactive_portalA
Abre el portal interactivo unificado de Universidad Siglo 21 (pantalla de inicio con bienvenida al alumno, métricas, accesos directos y catálogo de herramientas).
Inputs: port, auto_open.
s21_read_pdf_contentA
Descarga en memoria y extrae el texto completo de un PDF de lectura/actividad de Canvas para resumir o estudiar.
Inputs: file_id, max_pages, download_url.
s21_save_questions_to_bankA
Guarda un lote de preguntas de examen en la base de datos SQLite local, categorizadas por materia, módulo, lectura y tema, con distractores y justificación académica. DIRECTIVA DE FLUJO: Tras guardar preguntas en el banco para una materia o cuando el alumno exprese intención de rendir/practicar, invoca 's21_open_exam_simulator' con el 'course_id' correspondiente para abrirle el entorno de examen interactivo.
Inputs: course_id (required), questions (required), course_name (required).
s21_search_readingsA
Realiza una búsqueda transversal de conceptos o palabras clave en todas las lecturas y PDFs descargados del alumno.
Inputs: query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools target a distinct Canvas resource, so an agent can usually select the right one. However, s21_get_pending_tasks and s21_get_upcoming_events both cover upcoming deadlines, and s21_get_reading vs s21_read_pdf_content overlap around PDF extraction.
All tools share the s21_ prefix and use a consistent snake_case verb_noun pattern. Verbs are clear and objects map predictably to resources, making the naming highly consistent across the full set.
With 21 tools, the server is in the heavy range for a single MCP. The exam-simulator and question-bank cluster justifies many of them, but the overall surface feels larger than ideal for a Canvas student assistant.
The read-only student workflow is well covered: courses, assignments, deadlines, readings, discussions, syllabus, announcements, and exam prep. Minor gaps exist around write actions like submitting assignments or posting to discussions, but those appear outside the intended scope.
Maintenance
Related MCP Connectors
Connect AI assistants to Edusign attendance, courses, learners, documents, and API docs via OAuth.
Manage your Canvas coursework with quick access to courses, assignments, and grades. Track upcomin…
Lucky AI study buddy over your own LlamaNotes courses: chat, progress, and AI course generation.
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Canvas LMS through 25 comprehensive tools. Supports course management, assignments, grades, messaging, calendar events, and file access through natural language.1,589 npm14MIT
- FlicenseBqualityBmaintenanceEnables AI assistants to act as teaching assistants for Canvas LMS, allowing them to browse courses, read student submissions (including PDF/DOCX), grade with rubrics, post announcements, manage modules and pages, and more.64-
- AlicenseAqualityBmaintenanceEnables students to ask an AI assistant about their Canvas LMS data, including assignments, grades, missing submissions, discussions, and upcoming items, while keeping access read-only and private.43MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with a student's Canvas LMS account, supporting course viewing, grade checks, assignment submissions, announcements, discussions, calendar events, inbox messages, and more via specialized tools.1-