local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides access to Canvas Learning Management System API, allowing users to list and manage courses, access assignments and submissions, view announcements, retrieve course syllabi and modules, manage users and enrollments, and generate course summaries
캔버스 MCP 서버
이 저장소에는 Canvas 학습 관리 시스템 API와 상호 작용하기 위한 메시지 제어 프로토콜(MCP) 서버 구현이 포함되어 있습니다. 이 서버는 Claude Desktop 및 기타 MCP 클라이언트와 함께 작동하도록 설계되었습니다.
개요
Canvas MCP 서버는 Canvas LMS API에 대한 로컬 인터페이스를 제공하여 다음을 수행할 수 있습니다.
- 과정 나열 및 관리
- 과제 및 제출물에 접근
- 공지사항 보기
- 과정 강의요목 및 모듈 검색
- 사용자 및 등록 관리
- 과정 요약 생성
필수 조건
- 파이썬 3.x
- 가상 환경(venv)
- 캔버스 API 토큰
- 캔버스 API URL(예: https://canvas.illinois.edu/api/v1 )
설치
- 이 저장소를 복제하세요:
지엑스피1
- 가상 환경을 만들고 활성화하세요.
- 종속성 설치:
구성
1. 환경 파일 생성
다음 변수를 사용하여 루트 디렉토리에 .env
파일을 만듭니다.
값을 다음으로 바꾸세요:
- Canvas API 토큰( Canvas API 토큰을 얻는 방법 )
- 귀하 대학의 Canvas API URL
2. 시작 스크립트 구성
start_canvas_server.sh
스크립트는 이미 다음과 같이 구성되었습니다.
.env
파일에서 환경 변수 로드- 가상 환경 활성화
- 캐시된 서버 구현을 실행합니다.
시작 스크립트를 실행 가능하게 만듭니다.
3. Claude 데스크톱 구성
- 아직 Claude Desktop을 설치하지 않았다면 설치하세요.
- Claude Desktop 구성 파일을 생성하거나 편집합니다.
- Canvas MCP 서버 구성을 추가합니다.
/Users/YOUR_USERNAME/path/to/canvas-mcp
이 저장소를 복제한 절대 경로로 바꾸세요.
- 새로운 구성을 로드하려면 Claude Desktop을 다시 시작하세요.
사용 가능한 도구
서버는 Canvas LMS 상호 작용을 위해 다음과 같은 도구를 제공합니다.
코스 관리
list_courses
: 인증된 사용자의 모든 코스를 나열합니다.get_course_details
: 특정 과정에 대한 자세한 정보를 가져옵니다.summarize_course
: 코스에 대한 포괄적인 요약을 생성합니다.
과제
list_assignments
: 과목의 모든 과제를 나열합니다.get_assignment_details
: 특정 과제에 대한 자세한 정보를 가져옵니다.get_assignment_description
: 과제에 대한 전체 설명을 가져옵니다.
제출물
list_submissions
: 특정 과제에 대한 모든 제출물을 나열합니다.
사용자
list_users
: 코스에 등록된 모든 사용자를 나열합니다.
자원
list_announcements
: 코스에 대한 모든 공지사항을 나열합니다.get_course_syllabus
: 과목의 강의 계획서를 받으세요get_course_modules
: 코스의 모든 모듈을 가져옵니다.
Claude Desktop과 함께 사용
이 MCP 서버는 Claude Desktop과 원활하게 작동하도록 설계되었습니다.
- Claude Desktop은 필요할 때 자동으로 서버를 시작합니다.
- Claude Desktop 인터페이스(망치 아이콘 🔨)에서 Canvas API 도구를 볼 수 있습니다.
- Claude에게 "내 과정 보기" 또는 "내 생물학 과정의 교과 과정 가져오기"와 같은 Canvas 작업을 수행하도록 요청할 수 있습니다.
수동 테스트를 위해 서버를 직접 시작할 수 있습니다.
기술적 세부 사항
서버 구현
서버는 다음을 사용합니다.
fastmcp
: MCP 서버 구축을 위한 Python 라이브러리httpx
: Canvas API에 대한 비동기 HTTP 요청용- 코스 조회 성능 향상을 위한 캐싱 메커니즘
주요 구현 파일은 canvas_server_cached.py
이며 다음을 제공합니다.
- 효율적인 과정 정보 캐싱
- Canvas API 요청에 대한 페이지 매김 처리
- 오류 처리 및 보고
- 코스 ID와 코스 코드 모두 지원
종속성
서버에는 다음과 같은 Python 패키지가 필요합니다.
httpx
: HTTP 요청용fastmcp
: MCP 서버 구현용requests
: 일부 HTTP 작업의 경우- 인코딩 및 네트워킹을 위한 기타 표준 라이브러리
문제 해결
문제가 발생하는 경우:
- 서버가 시작되지 않습니다
.env
파일이 존재하고 유효한 자격 증명이 포함되어 있는지 확인하세요.start_canvas_server.sh
에서 가상 환경 경로를 확인하세요.- 모든 종속성이 설치되었는지 확인하세요
- 인증 오류
- Canvas API 토큰이 유효하고 만료되지 않았는지 확인하세요.
- Canvas에서 필요한 권한이 있는지 확인하세요
- 연결 문제
- Canvas API URL이 올바른지 확인하세요.
- 인터넷 연결을 확인하세요
- 귀하의 기관이 API 액세스를 제한하지 않았는지 확인하세요.
- 디버깅
- Claude Desktop 콘솔에서 서버 로그를 확인하세요.
- 오류 출력을 보려면 서버를 수동으로 실행해보세요.
보안 고려 사항
- Canvas API 토큰은 Canvas 계정에 대한 액세스 권한을 부여합니다.
.env
파일을 버전 제어에 커밋하지 마십시오.- 가능하다면 권한이 제한된 토큰을 사용하는 것을 고려하세요.
- 서버는 사용자의 컴퓨터에서 로컬로 실행되며 사용자의 자격 증명을 외부에 노출하지 않습니다.
기여하다
여러분의 참여를 환영합니다! 자유롭게 참여해 주세요:
- 버그나 기능 요청에 대한 문제를 제출하세요
- 개선 사항을 포함한 풀 리퀘스트 생성
- 사용 사례와 피드백을 공유하세요
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
Vishal Sachdev 가 생성함
This server cannot be installed
Claude Desktop을 통해 Canvas Learning Management System API와 상호 작용할 수 있는 로컬 서버로, 이를 통해 사용자는 과정을 관리하고, 과제에 접근하고, 공지사항을 보고, 과정 자료를 검색할 수 있습니다.
- Overview
- Prerequisites
- Installation
- Configuration
- Available Tools
- Usage with Claude Desktop
- Technical Details
- Troubleshooting
- Security Considerations
- Contributing
- License