Skip to main content
Glama

캔버스 MCP 서버

이 저장소에는 Canvas 학습 관리 시스템 API와 상호 작용하기 위한 메시지 제어 프로토콜(MCP) 서버 구현이 포함되어 있습니다. 이 서버는 Claude Desktop 및 기타 MCP 클라이언트와 함께 작동하도록 설계되었습니다.

개요

Canvas MCP 서버는 Canvas LMS API에 대한 로컬 인터페이스를 제공하여 다음을 수행할 수 있습니다.

  • 과정 나열 및 관리

  • 과제 및 제출물에 접근

  • 공지사항 보기

  • 과정 강의요목 및 모듈 검색

  • 사용자 및 등록 관리

  • 과정 요약 생성

Related MCP server: Canvas MCP Server V2.0

필수 조건

설치

  1. 이 저장소를 복제하세요:

지엑스피1

  1. 가상 환경을 만들고 활성화하세요.

python -m venv canvas-mcp source canvas-mcp/bin/activate # On Unix/macOS
  1. 종속성 설치:

pip install -r requirements.txt

구성

1. 환경 파일 생성

다음 변수를 사용하여 루트 디렉토리에 .env 파일을 만듭니다.

CANVAS_API_TOKEN=your_canvas_api_token_here CANVAS_API_URL=https://canvas.youruniversity.edu/api/v1

값을 다음으로 바꾸세요:

2. 시작 스크립트 구성

start_canvas_server.sh 스크립트는 이미 다음과 같이 구성되었습니다.

  • .env 파일에서 환경 변수 로드

  • 가상 환경 활성화

  • 캐시된 서버 구현을 실행합니다.

시작 스크립트를 실행 가능하게 만듭니다.

chmod +x start_canvas_server.sh

3. Claude 데스크톱 구성

  1. 아직 Claude Desktop을 설치하지 않았다면 설치하세요.

  2. Claude Desktop 구성 파일을 생성하거나 편집합니다.

vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Canvas MCP 서버 구성을 추가합니다.

{ "mcpServers": [ { "name": "canvas-api", "command": "/Users/YOUR_USERNAME/path/to/canvas-mcp/start_canvas_server.sh" } ] }

/Users/YOUR_USERNAME/path/to/canvas-mcp 이 저장소를 복제한 절대 경로로 바꾸세요.

  1. 새로운 구성을 로드하려면 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과 원활하게 작동하도록 설계되었습니다.

  1. Claude Desktop은 필요할 때 자동으로 서버를 시작합니다.

  2. Claude Desktop 인터페이스(망치 아이콘 🔨)에서 Canvas API 도구를 볼 수 있습니다.

  3. Claude에게 "내 과정 보기" 또는 "내 생물학 과정의 교과 과정 가져오기"와 같은 Canvas 작업을 수행하도록 요청할 수 있습니다.

수동 테스트를 위해 서버를 직접 시작할 수 있습니다.

./start_canvas_server.sh

기술적 세부 사항

서버 구현

서버는 다음을 사용합니다.

  • fastmcp : MCP 서버 구축을 위한 Python 라이브러리

  • httpx : Canvas API에 대한 비동기 HTTP 요청용

  • 코스 조회 성능 향상을 위한 캐싱 메커니즘

주요 구현 파일은 canvas_server_cached.py 이며 다음을 제공합니다.

  • 효율적인 과정 정보 캐싱

  • Canvas API 요청에 대한 페이지 매김 처리

  • 오류 처리 및 보고

  • 코스 ID와 코스 코드 모두 지원

종속성

서버에는 다음과 같은 Python 패키지가 필요합니다.

  • httpx : HTTP 요청용

  • fastmcp : MCP 서버 구현용

  • requests : 일부 HTTP 작업의 경우

  • 인코딩 및 네트워킹을 위한 기타 표준 라이브러리

문제 해결

문제가 발생하는 경우:

  1. 서버가 시작되지 않습니다

    • .env 파일이 존재하고 유효한 자격 증명이 포함되어 있는지 확인하세요.

    • start_canvas_server.sh 에서 가상 환경 경로를 확인하세요.

    • 모든 종속성이 설치되었는지 확인하세요

  2. 인증 오류

    • Canvas API 토큰이 유효하고 만료되지 않았는지 확인하세요.

    • Canvas에서 필요한 권한이 있는지 확인하세요

  3. 연결 문제

    • Canvas API URL이 올바른지 확인하세요.

    • 인터넷 연결을 확인하세요

    • 귀하의 기관이 API 액세스를 제한하지 않았는지 확인하세요.

  4. 디버깅

    • Claude Desktop 콘솔에서 서버 로그를 확인하세요.

    • 오류 출력을 보려면 서버를 수동으로 실행해보세요.

보안 고려 사항

  • Canvas API 토큰은 Canvas 계정에 대한 액세스 권한을 부여합니다.

  • .env 파일을 버전 제어에 커밋하지 마십시오.

  • 가능하다면 권한이 제한된 토큰을 사용하는 것을 고려하세요.

  • 서버는 사용자의 컴퓨터에서 로컬로 실행되며 사용자의 자격 증명을 외부에 노출하지 않습니다.

기여하다

여러분의 참여를 환영합니다! 자유롭게 참여해 주세요:

  • 버그나 기능 요청에 대한 문제를 제출하세요

  • 개선 사항을 포함한 풀 리퀘스트 생성

  • 사용 사례와 피드백을 공유하세요

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.


Vishal Sachdev 가 생성함

Latest Blog Posts

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/vishalsachdev/canvas-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server