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
- Python 3.x
- Entorno virtual (venv)
- Token de API de Canvas
- URL de la API de Canvas (p. ej., https://canvas.illinois.edu/api/v1 )
Instalación
- Clonar este repositorio:
- Crear y activar un entorno virtual:
- Instalar dependencias:
Configuración
1. Crear archivo de entorno
Cree un archivo .env
en el directorio raíz con las siguientes variables:
Reemplace los valores con:
- Tu token de API de Canvas ( Cómo obtener tu token de API de Canvas )
- URL de la API de Canvas de tu universidad
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:
3. Configuración del escritorio de Claude
- Instale Claude Desktop si aún no lo ha hecho.
- Cree o edite el archivo de configuración de Claude Desktop:
- Agregue la configuración del servidor Canvas MCP:
Reemplace /Users/YOUR_USERNAME/path/to/canvas-mcp
con la ruta absoluta a donde clonó este repositorio.
- 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 autenticadoget_course_details
: Obtenga información detallada sobre un curso específicosummarize_course
: Generar un resumen completo de un curso
Tareas
list_assignments
: enumera todas las tareas de un cursoget_assignment_details
: Obtenga información detallada sobre una tarea específicaget_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 cursoget_course_syllabus
: Obtener el programa de estudios de un cursoget_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:
- Claude Desktop iniciará automáticamente el servidor cuando sea necesario
- Verás las herramientas de la API de Canvas en la interfaz de Claude Desktop (ícono de martillo 🔨)
- 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:
Detalles técnicos
Implementación del servidor
El servidor utiliza:
fastmcp
: una biblioteca de Python para crear servidores MCPhttpx
: 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 HTTPfastmcp
: Para la implementación del servidor MCPrequests
: Para algunas operaciones HTTP- Otras bibliotecas estándar para codificación y redes
Solución de problemas
Si encuentra problemas:
- 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
- Verifique que su archivo
- 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
- 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
- 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
This server cannot be installed
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.
- Overview
- Prerequisites
- Installation
- Configuration
- Available Tools
- Usage with Claude Desktop
- Technical Details
- Troubleshooting
- Security Considerations
- Contributing
- License