Cover image
Try Now
2025-04-14

3 years

Works with Finder

2

Github Watches

0

Github Forks

2

Github Stars

Canvas MCP Server

Overview

The Canvas MCP Server helps AI assistants like Claude access Canvas LMS content (assignments, syllabi, deadlines), allowing students to quickly ask questions like:

  • "What's due this week?"
  • "Send me tomorrow's notes."

This simplifies finding course info by automatically syncing Canvas data to your AI assistant.

Features

  • Canvas Integration: Automatically sync courses, assignments, modules, announcements.
  • Flexible Parsing: Extract syllabus details from PDFs, Word docs, HTML.
  • Term Filtering: Only sync current-term courses.
  • Opt-Out: Easily exclude courses you don't want indexed.

Quick Tech Overview

  • Language: Python 3.12+
  • Database: SQLite (local storage, zero config)
  • Canvas API: canvasapi
  • Document Parsing: pdfplumber (PDF), python-docx (Word), BeautifulSoup4 (HTML)
  • AI Integration: Model Context Protocol (MCP)
  • Package Management: UV (faster pip alternative)

Setup Instructions

Prerequisites


Mac Installation

Install UV if needed:

curl -LsSf https://astral.sh/uv/install.sh | sh

Set up Canvas MCP:

git clone https://github.com/AdityaPrakash-26/Canvas-MCP.git && cd Canvas-MCP
uv venv --seed
source .venv/bin/activate
uv sync
echo "CANVAS_API_KEY=your_canvas_api_key_here" > .env
echo "CANVAS_API_URL=https://canvas.yourschool.edu" >> .env
uv run init_db.py

Configure Claude Desktop (Mac)

Open claude_desktop_config.json (Claude > Settings > Advanced) and add:

"Canvas MCP": {
  "command": "/path/to/uv",
  "args": [
    "run",
    "--directory",
    "/absolute/path/to/Canvas-MCP",
    "canvas-mcp"
  ]
}

Replace /path/to/uv with your UV executable path (which uv) and /absolute/path/to/Canvas-MCP with your cloned repository location.


Windows Installation (WSL)

Please use WSL.

After installing WSL:

  1. Clone the repository into your WSL home:
git clone https://github.com/AdityaPrakash-26/Canvas-MCP.git ~/Canvas-MCP
cd ~/Canvas-MCP
  1. Install UV and dependencies:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --seed
source .venv/bin/activate
uv sync
echo "CANVAS_API_KEY=your_canvas_api_key_here" > .env
echo "CANVAS_API_URL=https://canvas.yourschool.edu" >> .env
uv run python init_db.py

Configure Claude Desktop (Windows/WSL)

Edit Claude Desktop's claude_desktop_config.json with:

"Canvas MCP": {
  "command": "wsl.exe",
  "args": [
    "-d",
    "Ubuntu",
    "--exec",
    "/home/<USER>/.local/bin/uv", # REPLACE, run `which uv` to find ur `uv` install directory
    "run",
    "--directory",
    "/home/<USER>/Canvas-MCP", # REPLACE
    "canvas-mcp"
  ]
}

Replace <USER> with your WSL username. Also, verify your uv absolute path before copy pasting.


Development Commands

  • Run the server in inspector mode so you can look at it:
uv run mcp dev --with . src/canvas_mcp/__main__.py
  • Run tests:
uv run pytest
  • Format/lint code:
uv run ruff format .
uv run ruff check . --fix
  • Static type checking:
uv run mypy src

Troubleshooting Quick Tips

  • Canvas API issues? Verify .env keys/URLs.
  • Database issues? Reset:
rm -f data/canvas_mcp.db && uv run python init_db.py
  • Claude Desktop not recognizing MCP tools? Ensure paths in JSON config are absolute and correct.

Resources

相关推荐

  • av
  • Führen Sie mühelos LLM -Backends, APIs, Frontends und Dienste mit einem Befehl aus.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的 llm 资料总结(数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Zusammenfassung der weltbesten LLM -Ressourcen.

  • 1Panel-dev
  • 🔥 1Panel bietet eine intuitive Weboberfläche und einen MCP -Server, um Websites, Dateien, Container, Datenbanken und LLMs auf einem Linux -Server zu verwalten.

  • rulego
  • ⛓️Rugele ist ein leichter, leistungsstarker, leistungsstarker, eingebetteter Komponenten-Orchestrierungsregel-Motor-Rahmen für GO.

  • Azure
  • Dieses Repository dient zur Entwicklung des Azure MCP -Servers, wodurch Ihre Agenten die Leistung von Azure verleiht.

  • Onelevenvy
  • Flock ist eine Workflow-basierte Low-Code-Plattform, um schnell Chatbots, Lappen und Koordinierung von Multi-Agent-Teams zu erstellen, die von Langgraph, Langchain, Fastapi und NextJs angetrieben werden.

  • caio-moliveira
  • Dieses Projekt wurde erstellt, um zu demonstrieren, wie wir uns mit verschiedenen Modellkontextprotokollen (MCPs) verbinden können.

  • MarcusAdriano
  • Estudando mcp usando eine api do bacen ptax

    Reviews

    5 (0)