Canvas LMS MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "CANVAS_BASE_URL=${CANVAS_BASE_URL}" -e "CANVAS_TOKEN=${CANVAS_TOKEN}" canvas-mcp -- docker compose up -d
Required:CANVAS_BASE_URLCANVAS_TOKEN+ 3 optional
README.md

Connects Claude Desktop to Canvas LMS to monitor academic activities.

Canvas MCP Server

MCP Server que conecta Claude Desktop con Canvas LMS, permitiendo monitorear tareas, entregas, anuncios y pendientes académicos directamente desde Claude.

Tools disponibles

Tool Descripción
courses Materias activas del semestre
assignments(course_id) Tareas con fecha límite
announcements(course_id) Anuncios de profesores
upcoming Todo lo que vence pronto (vista unificada)
todo Pendientes sin entregar

Requisitos

  • Python 3.12+
  • Token de API de Canvas LMS
  • Docker y Docker Compose (opcional, para deploy)

Instalación local

# Clonar el repositorio
git clone https://github.com/tu-usuario/canvas-mcp.git
cd canvas-mcp

# Crear entorno virtual e instalar dependencias
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Configurar variables de entorno
cp .env.example .env
# Editar .env con tu token de Canvas y configuración

Configuración

Edita el archivo .env con tus datos:

CANVAS_BASE_URL=https://tu-instancia-canvas.edu
CANVAS_TOKEN=tu_token_de_canvas
MCP_HOST=127.0.0.1
MCP_PORT=8000
MCP_SECRET=tu_secreto_para_autenticar

Obtener el token de Canvas

  1. Inicia sesión en tu Canvas LMS
  2. Ve a CuentaConfiguración
  3. En la sección Tokens de acceso aprobados, clic en + Nuevo token de acceso
  4. Copia el token generado y pégalo en CANVAS_TOKEN

Uso

Ejecutar localmente

source .venv/bin/activate
python main.py

El server arranca en http://localhost:8000/sse.

Ejecutar con Docker

docker compose up -d

Para ver los logs:

docker compose logs -f

Para detener:

docker compose down

Conectar con Claude Desktop

Agrega esto a tu claude_desktop_config.json:

Local:

{
  "mcpServers": {
    "canvas": {
      "type": "sse",
      "url": "http://localhost:8000/sse"
    }
  }
}

Remoto (con tunnel o VPS):

{
  "mcpServers": {
    "canvas": {
      "type": "sse",
      "url": "https://tu-dominio.com/sse",
      "headers": {
        "Authorization": "Bearer TU_MCP_SECRET"
      }
    }
  }
}

La ubicación del archivo de configuración:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Deploy en VPS

# En el servidor
git clone https://github.com/tu-usuario/canvas-mcp.git
cd canvas-mcp
cp .env.example .env
# Editar .env con los valores reales
docker compose up -d

Stack

  • Python + FastMCP + httpx + python-dotenv
  • Transporte: SSE (Server-Sent Events)
  • Canvas API: REST v1 con Bearer Token

Licencia

MIT

Tools (5)

coursesLists active courses for the current semester.
assignmentsRetrieves tasks with deadlines for a specific course.
announcementsRetrieves announcements from professors for a specific course.
upcomingProvides a unified view of all items due soon.
todoLists pending tasks that have not been submitted yet.

Environment Variables

CANVAS_BASE_URLrequiredThe URL of your Canvas LMS instance
CANVAS_TOKENrequiredYour Canvas LMS API access token
MCP_HOSTHost address for the MCP server
MCP_PORTPort for the MCP server
MCP_SECRETSecret key for authentication

Configuration

claude_desktop_config.json
{"mcpServers": {"canvas": {"type": "sse", "url": "http://localhost:8000/sse"}}}

Try it

What are my upcoming assignments due this week?
Check if there are any new announcements in my Calculus course.
List all my pending tasks that I haven't submitted yet.
Show me a summary of all my active courses for this semester.

Frequently Asked Questions

What are the key features of Canvas LMS?

Monitor academic assignments and deadlines. Retrieve professor announcements per course. Unified view of upcoming academic tasks. Track pending submissions. Support for local and Docker-based deployment.

What can I use Canvas LMS for?

Students tracking multiple course deadlines in one place. Quickly checking for new professor announcements without logging into the web portal. Managing pending assignments to prioritize study time. Integrating academic workflow directly into the Claude AI assistant.

How do I install Canvas LMS?

Install Canvas LMS by running: git clone https://github.com/The-greenpanter/canvas-mcp.git && cd canvas-mcp && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

What MCP clients work with Canvas LMS?

Canvas LMS works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Canvas LMS docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare