81trust / 100

PLATO MCP

by plato-mcp.onrender.com in Search & web

MCP serverPassing, checked 8 h ago

PLATO (Pusan National University LMS) MCP server via Moodle Web Service API + ubboard scraping

https://plato-mcp.onrender.com/mcp
Tools
67
open to any client
Uptime
100%
last 30 days
Response time
309 ms
614 ms slowest 5%
Last check
Passed
8 h ago, next any minute now

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "plato-mcp": {
      "type": "http",
      "url": "https://plato-mcp.onrender.com/mcp"
    }
  }
}

67 tools

  • 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 text and/or file attachments 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 (same parameters) after they explicitly confirm. Provide…

  • remove_submission

    Withdraw/clear this account's own submission for an assignment. IRREVERSIBLE and DESTRUCTIVE once dry_run=False -- this discards already-submitted work (files/text), not a draft. KNOWN ISSUE: live testing found dry_run=False currently fails with…

  • get_grades

    Get this account's grade items for a course, if visible.

  • get_grades_access_info

    Check what grade-related permissions this account has in a course -- e.g. whether it can see its own grades vs. (as a teacher/TA) everyone's grades. Most student accounts will see canviewallgrades=False.

  • list_calendar_events

    List upcoming calendar events within the next `days_ahead` days.

  • get_calendar_access_info

    Check this account's calendar-management permissions -- a student account can typically manage its own personal entries only, not course/group entries.

  • create_calendar_event

    Create a personal calendar entry. IRREVERSIBLE once dry_run=False. Only personal ("user") events are supported -- course/group events are not something a student account can create. Call with dry_run=True (default) first, show the preview to the user…

  • delete_calendar_event

    Delete a personal calendar entry this account owns. 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.

  • get_unread_messages

    Get this account's unread PLATO notifications.

  • get_unread_notification_count

    Get a count of this account's unread notifications (a cheaper check than get_unread_messages when you don't need the content). Note: PLATO has person-to-person messaging disabled site-wide, so this counts notifications only, not conversation messages.

  • 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…

  • 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…

  • get_course_completion_status

    Get this account's overall course-completion status, if the course has course-level completion criteria configured. Most courses on this platform don't (available=False, with a message explaining why) -- try get_activity_completion_status for per-activity…

  • get_activity_completion_status

    Get this account's completion status for every activity/module in a course -- richer than get_course_contents's per-module `completed` flag (includes tracking rules, e.g. 'must view' vs 'must spend N minutes'). For `vod` (video lecture) modules…

  • get_upcoming_action_events

    Get Moodle's own "what needs action soon" feed -- assignments due, video lectures with a watch deadline, etc. -- sorted by urgency, from now onward. Unlike combining list_assignments + get_calendar_events, this is Moodle's own cross-activity prioritized…

  • get_courses_by_timeline

    List enrolled courses filtered by Moodle's own timeline classification (in-progress/future/past), based on course start/end dates. Unlike list_courses (which returns everything unfiltered), this answers "what am I actually taking right now" directly.

  • get_grades_overview

    Get this account's overall grade for every enrolled course in one call. For the individual grade *items* within one course (e.g. each assignment's score), use get_grades instead -- this tool only returns one summary grade per course.

  • list_quizzes

    List quizzes across one or more courses.

  • get_quiz_attempts

    Get this account's past attempts at one quiz.

  • get_quiz_best_grade

    Get this account's best grade on one quiz, if any attempt has been graded.

  • get_quiz_access_information

    Check whether this account can currently attempt a quiz, and why not if blocked (e.g. time window, password, previous attempts exhausted). UNVERIFIED against a real quiz -- call this before start_quiz_attempt and sanity-check the result.

  • get_quiz_required_qtypes

    List the question types used in a quiz (e.g. 'multichoice', 'truefalse', 'essay') -- useful to know what kind of answers to expect before starting an attempt.

  • get_quiz_feedback_for_grade

    Get the grade-boundary feedback text configured for a quiz at a given grade (e.g. 'You passed!' / 'Please review chapter 3').

  • get_quiz_combined_review_options

    Check which review details (marks, feedback, right answers) this account is allowed to see for a quiz's attempts.

  • start_quiz_attempt

    Start a new attempt at a quiz. IRREVERSIBLE once dry_run=False -- consumes one of the quiz's limited attempts. UNVERIFIED against a real quiz -- call get_quiz_access_information first and check canattempt/preventaccessreasons. Call with…

  • get_quiz_attempt_data

    Get the questions for one page of an in-progress quiz attempt. Each question's `html` is Moodle's own rendered question form -- parse it for the actual answer-field names before calling save_quiz_attempt_responses/process_quiz_attempt. UNVERIFIED…

  • get_quiz_attempt_summary

    Get a summary of all questions in an attempt (answered/ unanswered), across all pages. UNVERIFIED against a real quiz.

  • get_quiz_attempt_review

    Get the grade and per-question review for a finished quiz attempt. UNVERIFIED against a real quiz.

  • save_quiz_attempt_responses

    Save in-progress answers WITHOUT finishing the attempt -- can still be changed later. UNVERIFIED against a real quiz. Call with dry_run=True (default) first, show the preview to the user, and only call again with dry_run=False after they explicitly…

  • process_quiz_attempt

    Submit answers for a quiz attempt. IRREVERSIBLE once dry_run=False AND finish_attempt=True -- that is the final, graded submission and cannot be undone. UNVERIFIED against a real quiz. Call with dry_run=True (default) first, show the preview to…

  • list_forums

    List standard Moodle forums across one or more courses. NOT the same as PLATO's notice/Q&A board (use list_notices/list_qna for that) -- this covers the separate, less-commonly-used mod_forum module.

  • get_forum_discussions

    List discussion threads in one standard Moodle forum.

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
8 h agoPassed200358 ms
23 h agoPassed200293 ms
38 h agoPassed200272 ms
2 days agoPassed200337 ms
3 days agoPassed200453 ms
Show 9 older checks
3 days agoPassed200281 ms
4 days agoPassed200252 ms
4 days agoPassed200614 ms
5 days agoPassed200440 ms
5 days agoPassed200514 ms
6 days agoPassed200257 ms
7 days agoPassed200387 ms
7 days agoPassed200260 ms
8 days agoPassed200309 ms