plato mcp
- 부산대학교 학습관리시스템인 PLATO를 이용하기 위한 MCP(model context protocol)입니다.
Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeCan modify data
What it can do
- List Courses: List the courses the logged-in PLATO account is enrolled in.
- Get Course Contents: Get a course's weekly sections, modules, and file links.
- List Assignments: List assignments across one or more courses, with due dates.
What data it sees
Do you need an account
An API key from the service settings is required
- 부산대학교 학습관리시스템인 PLATO를 이용하기 위한 MCP(model context protocol)입니다.
- 웹이나 앱에 있는 채팅을 사용하시기 보단 AGENT (claude code, codex,opencode 등)을 이용하시는 것을 추천드립니다.
- 공지사항,성적, 수강하시는 수업명, 과제가 어떤게 있는지 AI가 알 수 있고 과제를 제출하고 Q&A를 올리는 과정 또한 MCP를 통해 진행 하실 수 있습니다.
- 이 프로젝트는 오픈소스로 공개되어 있으며, 누구나 기여하실 수 있습니다. 버그 제보, 기능 제안, PR 모두 환영합니다.
- Unofficial MCP server for PLATO (plato.pusan.ac.kr), Pusan National University's Moodle-based LMS. Read courses, grades, assignments, calendar, and notices/Q&A; submit assignments and post Q&A questions with mandatory preview-before-send confirmation. I recommend using an agent (claude code, codex, opencode, etc.) rather than using chat on the web or apps.
Server tool list (14)
Raw names from tools/list. Only developers need these.
| list_courses | List the courses the logged-in PLATO account is enrolled in. |
| get_course_contents | Get a course's weekly sections, modules, and file links. |
| list_assignments | List assignments across one or more courses, with due dates. |
| get_assignment_detail | Get one assignment's details and this account's submission status. |
| submit_assignment | Submit plain-text content for an assignment. IRREVERSIBLE once dry_run=False. Call with dry_run=True (default) first, show the preview to the user, and only call again with dry_run=False after they explicitly confirm. File attachments are not supported -- text only. |
| get_grades | Get this account's grade items for a course, if visible. |
| list_calendar_events | List upcoming calendar events within the next `days_ahead` days. |
| get_unread_messages | Get this account's unread PLATO notifications. |
| list_notices | List announcements posted to a course's Notices board. |
| get_notice_detail | Get the full text of one notice/announcement. |
| list_qna | List questions posted to a course's Q&A board. |
| get_qna_detail | Get one Q&A question's text. Does not include replies -- see issue #23. |
| post_qna_question | Post a new question to a course's Q&A board. IRREVERSIBLE and VISIBLE to the instructor once dry_run=False (posted as private/secret by default). Call with dry_run=True (default) first, show the preview to the user, and only call again with dry_run=False after they explicitly confirm. |
| download_course_file | Download a course file (the `fileurl` from get_course_contents). Running locally (stdio, e.g. Claude Code/Desktop): saves the file to `save_path` on this machine and returns the saved path -- `save_path` is required in this case. Running as a remote/hosted server (streamable-http, e.g. reached via a Claude.ai web/mobile Connector): this server's own disk is not reachable by you, so do NOT pass `save_path` -- it will be rejected. Instead the file is fetched here and returned inline as base64 content for you to decode and present, unless it's too large, in which case a direct authenticated download URL is returned instead (that URL embeds a live PLATO access token: do not share it or a chat transcript containing it). Only common course-material extensions are allowed (pdf, office docs, images, zip, txt); local downloads over the configured size limit are rejected. |