Canvas MCP Server

by vishalsachdev
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides access to Canvas Learning Management System API, allowing users to list and manage courses, access assignments and submissions, view announcements, retrieve course syllabi and modules, manage users and enrollments, and generate course summaries

Servidor Canvas MCP

Este repositorio contiene una implementación de servidor del Protocolo de Control de Mensajes (MCP) para interactuar con la API del Sistema de Gestión de Aprendizaje Canvas. El servidor está diseñado para funcionar con Claude Desktop y, potencialmente, con otros clientes MCP.

Descripción general

El servidor Canvas MCP proporciona una interfaz local para la API de Canvas LMS, lo que le permite:

  • Listar y administrar cursos
  • Acceder a tareas y entregas
  • Ver anuncios
  • Recuperar programas de estudio y módulos del curso
  • Administrar usuarios e inscripciones
  • Generar resúmenes de cursos

Prerrequisitos

Instalación

  1. Clonar este repositorio:
git clone https://github.com/vishalsachdev/canvas-mcp.git cd canvas-mcp
  1. Crear y activar un entorno virtual:
python -m venv canvas-mcp source canvas-mcp/bin/activate # On Unix/macOS
  1. Instalar dependencias:
pip install -r requirements.txt

Configuración

1. Crear archivo de entorno

Cree un archivo .env en el directorio raíz con las siguientes variables:

CANVAS_API_TOKEN=your_canvas_api_token_here CANVAS_API_URL=https://canvas.youruniversity.edu/api/v1

Reemplace los valores con:

2. Configurar el script de inicio

El script start_canvas_server.sh ya está configurado para:

  • Cargar variables de entorno desde el archivo .env
  • Activar el entorno virtual
  • Ejecute la implementación del servidor en caché

Hacer que el script de inicio sea ejecutable:

chmod +x start_canvas_server.sh

3. Configuración del escritorio de Claude

  1. Instale Claude Desktop si aún no lo ha hecho.
  2. Cree o edite el archivo de configuración de Claude Desktop:
vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Agregue la configuración del servidor Canvas MCP:
{ "mcpServers": [ { "name": "canvas-api", "command": "/Users/YOUR_USERNAME/path/to/canvas-mcp/start_canvas_server.sh" } ] }

Reemplace /Users/YOUR_USERNAME/path/to/canvas-mcp con la ruta absoluta a donde clonó este repositorio.

  1. Reinicie Claude Desktop para cargar la nueva configuración.

Herramientas disponibles

El servidor proporciona las siguientes herramientas para la interacción con Canvas LMS:

Gestión de cursos

  • list_courses : enumera todos los cursos para el usuario autenticado
  • get_course_details : Obtenga información detallada sobre un curso específico
  • summarize_course : Generar un resumen completo de un curso

Tareas

  • list_assignments : enumera todas las tareas de un curso
  • get_assignment_details : Obtenga información detallada sobre una tarea específica
  • get_assignment_description : Obtener la descripción completa de una tarea

Envíos

  • list_submissions : enumera todos los envíos para una tarea específica

Usuarios

  • list_users : Lista todos los usuarios inscritos en un curso

Recursos

  • list_announcements : Lista todos los anuncios de un curso
  • get_course_syllabus : Obtener el programa de estudios de un curso
  • get_course_modules : Obtener todos los módulos de un curso

Uso con Claude Desktop

Este servidor MCP está diseñado para funcionar sin problemas con Claude Desktop:

  1. Claude Desktop iniciará automáticamente el servidor cuando sea necesario
  2. Verás las herramientas de la API de Canvas en la interfaz de Claude Desktop (ícono de martillo 🔨)
  3. Puedes pedirle a Claude que realice operaciones en Canvas como "Muéstrame mis cursos" u "Obtener el programa de estudios de mi curso de Biología".

Para realizar pruebas manuales, puede iniciar el servidor directamente:

./start_canvas_server.sh

Detalles técnicos

Implementación del servidor

El servidor utiliza:

  • fastmcp : una biblioteca de Python para crear servidores MCP
  • httpx : para solicitudes HTTP asincrónicas a la API de Canvas
  • Mecanismos de almacenamiento en caché para mejorar el rendimiento en las búsquedas de cursos

El archivo de implementación principal es canvas_server_cached.py , que proporciona:

  • Almacenamiento en caché eficiente de la información del curso
  • Manejo de paginación para solicitudes de API de Canvas
  • Manejo y reporte de errores
  • Compatibilidad con identificadores y códigos de cursos

Dependencias

El servidor requiere los siguientes paquetes de Python:

  • httpx : Para solicitudes HTTP
  • fastmcp : Para la implementación del servidor MCP
  • requests : Para algunas operaciones HTTP
  • Otras bibliotecas estándar para codificación y redes

Solución de problemas

Si encuentra problemas:

  1. El servidor no se inicia
    • Verifique que su archivo .env exista y contenga credenciales válidas
    • Verifique la ruta del entorno virtual en start_canvas_server.sh
    • Asegúrese de que todas las dependencias estén instaladas
  2. Errores de autenticación
    • Verifique que su token de API de Canvas sea válido y no esté vencido
    • Comprueba que tienes los permisos necesarios en Canvas
  3. Problemas de conexión
    • Asegúrese de que la URL de su API de Canvas sea correcta
    • Comprueba tu conexión a Internet
    • Verifique que su institución no haya restringido el acceso a la API
  4. Depuración
    • Verifique los registros del servidor en la consola de Claude Desktop
    • Intente ejecutar el servidor manualmente para ver el resultado del error

Consideraciones de seguridad

  • Su token de API de Canvas le otorga acceso a su cuenta de Canvas
  • Nunca envíe su archivo .env al control de versiones
  • Considere usar un token con permisos limitados si es posible
  • El servidor se ejecuta localmente en su máquina y no expone sus credenciales externamente.

Contribuyendo

¡Agradecemos sus contribuciones! Siéntase libre de:

  • Enviar problemas sobre errores o solicitudes de funciones
  • Crear solicitudes de extracción con mejoras
  • Comparta sus casos de uso y comentarios

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.


Creado por Vishal Sachdev

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor local que permite la interacción con la API del sistema de gestión de aprendizaje Canvas a través de Claude Desktop, lo que permite a los usuarios administrar cursos, acceder a tareas, ver anuncios y recuperar materiales del curso.

  1. Overview
    1. Prerequisites
      1. Installation
        1. Configuration
          1. 1. Create Environment File
          2. 2. Configure Start Script
          3. 3. Claude Desktop Configuration
        2. Available Tools
          1. Course Management
          2. Assignments
          3. Submissions
          4. Users
          5. Resources
        3. Usage with Claude Desktop
          1. Technical Details
            1. Server Implementation
            2. Dependencies
          2. Troubleshooting
            1. Security Considerations
              1. Contributing
                1. License
                  ID: 2l5xnixkva