plato mcp
- 부산대학교 학습관리시스템인 PLATO를 이용하기 위한 MCP(model context protocol)입니다.
Что умеет
- 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.
Какие данные видит
Нужен ли аккаунт
Нужен API-ключ из настроек сервиса
- 부산대학교 학습관리시스템인 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.
Как подключить
Как подключить plato mcp к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://plato-mcp.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить plato mcp к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://plato-mcp.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить plato mcp к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://plato-mcp.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (14)
Технические названия из tools/list. Нужны только разработчикам.
| 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. |