canvas-mcp
canvas-mcp
Canvas LMS 데이터(강좌, 과제, 공지사항)를 모든 MCP 호환 클라이언트(Claude Desktop, Claude Code 등)에 노출하는 MCP 서버입니다.
이 저장소에는 자격 증명이 포함되어 있지 않습니다. Canvas 토큰이나 이메일 주소가 어디에도 없습니다. 사용자는 로컬
.env파일에 자신의 토큰을 직접 입력해야 하며, 이 파일은 git에서 무시되고 기기 밖으로 나가지 않습니다. 토큰이 저장되는 위치를 참조하세요.
사전 요구 사항
uv (Python 패키지 관리자)
API 토큰이 있는 Canvas LMS 계정
Related MCP server: canvas-mcp
설정
1. Canvas API 토큰 생성
학교의 Canvas 사이트에 로그인합니다(예:
https://canvas.fen.uchile.cl)계정 → 설정 → 승인된 통합으로 이동합니다.
+ 새 액세스 토큰을 클릭하고 이름을 지정한 다음 토큰을 복사합니다.
2. 환경 구성
토큰이 저장되는 위치: 이 프로젝트 폴더의 루트(main.py 바로 옆)에 정확히 .env라는 이름의 파일에 저장됩니다. 이 파일은 .gitignore에 나열되어 있으므로 git이 커밋하거나 푸시하지 않습니다.
템플릿을 복사합니다:
cp .env.example .env그런 다음 .env를 열고 빈 칸을 채웁니다:
# Your Canvas instance URL -- change this to your school's Canvas address
CANVAS_URL=https://canvas.fen.uchile.cl
# Paste the token from step 1 here
CANVAS_API_TOKEN=
# Optional second account (use account="udd" in the tools). Leave blank if unused.
CANVAS_UDD_URL=
CANVAS_UDD_TOKEN=CANVAS_URL과 CANVAS_API_TOKEN만 필수입니다. CANVAS_UDD_* 쌍은 선택적인 두 번째 Canvas 계정용입니다. 계정이 하나뿐이면 둘 다 비워 두세요.
.env를 커밋하지 말고, 토큰을 채팅에 붙여넣지 말고, 공유되는 파일에 넣지 마세요. 토큰은 Canvas 계정에 대한 전체 액세스 권한을 부여합니다. 유출된 경우 Canvas에서 토큰을 삭제(계정 → 설정 → 승인된 통합)하고 새로 생성하세요.
3. 종속성 설치
uv sync4. 서버를 수동으로 실행(선택적 테스트)
uv run python main.py서버는 stdio를 통해 통신하므로 MCP 클라이언트가 연결될 때까지 아무것도 출력하지 않습니다.
Claude Desktop에 연결
Claude Desktop 구성 파일에 다음을 추가합니다:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"canvas": {
"command": "uv",
"args": ["run", "--project", "/absolute/path/to/canvas-mcp", "python", "main.py"]
}
}
}/absolute/path/to/canvas-mcp를 이 폴더의 실제 경로로 바꿉니다. Windows에서도 슬래시 /를 사용하세요.
이 파일에는 토큰이 들어가지 않습니다. 토큰은
.env에서 읽습니다(토큰이 저장되는 위치 참조) --python-dotenv가 자동으로 로드합니다.
Claude Code에 연결
Claude Code 설정에서 MCP 서버를 추가하거나 다음을 실행합니다:
claude mcp add canvas -- uv run --project /absolute/path/to/canvas-mcp python main.py사용 가능한 도구
도구 | 설명 |
| 활성 등록된 모든 강좌 나열 |
| 마감일 기준으로 정렬된 예정 과제 나열 |
| 강좌별 최근 공지사항 나열 |
프로젝트 구조
canvas-mcp/
├── main.py # MCP server
├── .env # Your token lives here (git-ignored, never pushed)
├── .env.example # Template
├── pyproject.toml # Project metadata & dependencies
└── uv.lock # Locked dependency versionsMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Canvas LMS enabling parent observers and students to access courses, assignments, grades, and more. Supports multiple authentication methods including token, OAuth, and a convenient fetchproxy fallback.18165MIT
- AlicenseNot gradedqualityCmaintenanceEnables managing Canvas LMS courses, assignments, grades, modules, and more from MCP-compatible clients like Claude Desktop, Kiro, or Amazon Q Developer.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.339MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for Canvas LMS that exposes a user's courses, upcoming work, and assignments as callable tools.MIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/salvadoracuna/canvas-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server