
Toile-MCP
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
- Python 3.12+
- UV Package Manager
- Canvas API Key & URL
- Claude Desktop with MCP support (download)
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:
- Clone the repository into your WSL home:
git clone https://github.com/AdityaPrakash-26/Canvas-MCP.git ~/Canvas-MCP
cd ~/Canvas-MCP
- 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
相关推荐
🧑🚀 全世界最好的 LLM 资料总结 (数据处理、模型训练、模型部署、 O1 模型、 MCP 、小语言模型、视觉语言模型) | Résumé des meilleures ressources LLM du monde.
🔥 1Panel fournit une interface Web intuitive et un serveur MCP pour gérer des sites Web, des fichiers, des conteneurs, des bases de données et des LLM sur un serveur Linux.
⛓️RULEGO est un cadre de moteur de règle d'orchestration des composants de nouvelle génération légère, intégrée, intégrée et de nouvelle génération pour GO.
Ce référentiel est pour le développement du serveur MCP Azure, apportant la puissance d'Azure à vos agents.
Flock est une plate-forme à faible code de workflow pour construire rapidement des chatbots, un chiffon et coordonner des équipes multi-agents, alimentée par Langgraph, Langchain, Fastapi et NextJs. (Flock 是一个基于 Workflow 工作流的低代码平台 , 用于快速构建聊天机器人、 Rag 、 Agent 和 和 , 采用 采用 采用 采用 Langgraph 、 Langchain 、 Fastapi 和 ,))
Ce projet a été créé pour démontrer comment nous pouvons nous connecter avec différents protocoles de contexte de modèle (MCP).