
帆布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
相关推荐
Flock是一个基于工作流程的低音平台,可快速构建聊天机器人,抹布和协调多代理团队,由Langgraph,Langchain,Langchain,Fastapi和Nextjs提供支持。(羊群工作流工作流的低代码平台,rag rag rag 用于快速构建聊天机器人、 rag temant Agent fastem temantfaster和muti-agent agagent应用
😎简单易用、🧩丰富生态 -大模型原生即时通信机器人平台| 适配QQ / 微信(企业微信、个人微信) /飞书 /钉钉 / discord / telegram / slack等平台| 支持chatgpt,deepseek,dify,claude,基于LLM的即时消息机器人平台,支持Discord,Telegram,微信,Lark,Dingtalk,QQ,Slack