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
  • Effortlessly run LLM backends, APIs, frontends, and services with one command.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的LLM资料总结(Agent框架、辅助编程、数据处理、模型训练、模型推理、o1 模型、MCP、小语言模型、视觉语言模型) | Summary of the world's best LLM resources.

  • 1Panel-dev
  • 🔥 1Panel provides an intuitive web interface and MCP Server to manage websites, files, containers, databases, and LLMs on a Linux server.

  • rulego
  • ⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go.

  • Azure
  • This repository is for development of the Azure MCP Server, bringing the power of Azure to your agents.

  • Onelevenvy
  • Flock is a workflow-based low-code platform for rapidly building chatbots, RAG, and coordinating multi-agent teams, powered by LangGraph, Langchain, FastAPI, and NextJS.(Flock 是一个基于workflow工作流的低代码平台,用于快速构建聊天机器人、RAG、Agent和Muti-Agent应用,采用 LangGraph、Langchain、FastAPI 和 NextJS 构建。)

  • caio-moliveira
  • This project was created to demonstrate how we can connect with different Model Context Protocols (MCPs).

    Reviews

    5 (0)