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.

How to connect

How to connect plato mcp to Claude

The server address to paste into Claude settings:

https://plato-mcp.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect plato mcp to ChatGPT

The server address to paste into ChatGPT settings:

https://plato-mcp.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect plato mcp to Cursor

The server address to paste into Cursor settings:

https://plato-mcp.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (14)

Raw names from tools/list. Only developers need these.

list_coursesList the courses the logged-in PLATO account is enrolled in.
get_course_contentsGet a course's weekly sections, modules, and file links.
list_assignmentsList assignments across one or more courses, with due dates.
get_assignment_detailGet one assignment's details and this account's submission status.
submit_assignmentSubmit 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_gradesGet this account's grade items for a course, if visible.
list_calendar_eventsList upcoming calendar events within the next `days_ahead` days.
get_unread_messagesGet this account's unread PLATO notifications.
list_noticesList announcements posted to a course's Notices board.
get_notice_detailGet the full text of one notice/announcement.
list_qnaList questions posted to a course's Q&A board.
get_qna_detailGet one Q&A question's text. Does not include replies -- see issue #23.
post_qna_questionPost 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_fileDownload 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.