campus-unr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAMPUS_PASS | Yes | Your campus password | |
| CAMPUS_USER | Yes | Your campus username | |
| CAMPUS_BASE_URL | Yes | Base URL of the campus Moodle instance |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_site_infoA | Get site information and current user details from the campus. Returns: JSON with site name, URL, user id, username, full name, and available web service functions count. |
| list_coursesA | List all courses where the current user is enrolled (cursadas). Returns: JSON array of courses with id, shortname, fullname, category, start/end dates, and the user's roles in each. |
| list_categoriesA | List course categories (períodos lectivos, carreras, áreas). In Moodle, categories organize courses hierarchically by faculty, degree program, year, or academic period. Returns: JSON array of categories with id, name, parent, depth, and course count. |
| get_course_contentsA | Get all sections and activities/resources in a course. Args: course_id: The Moodle course ID. Returns: JSON array of sections, each with a list of modules (activities and resources) including type, name, and URL. |
| list_enrolled_usersA | List users enrolled in a course with their roles. Args: course_id: The Moodle course ID. role: Optional role filter (e.g. 'student', 'editingteacher', 'teacher', 'manager'). Empty = all. Returns: JSON array of users with id, fullname, email, and roles. |
| list_groupsA | List groups (comisiones) in a course. Args: course_id: The Moodle course ID. Returns: JSON array of groups with id, name, and description. |
| list_activitiesA | List all activities in a course, grouped by type (quiz, assign, forum, etc.). Args: course_id: The Moodle course ID. Returns: JSON object mapping activity type -> list of activities. |
| list_assignmentsB | List assignments (trabajos prácticos/entregas) with submission stats. Args: course_id: The Moodle course ID. Returns: JSON array of assignments with submission and grade counts. |
| get_grades_reportA | Get grade report for a course (all users or a specific user). Args: course_id: The Moodle course ID. user_id: Optional user ID to get grades for one student only. 0 or omitted = all enrolled users. Returns: JSON with grade items and grades per user. |
| get_assignment_submissionsA | List submissions for a specific assignment. Args: assignment_id: The assignment instance ID (not course module ID). Returns: JSON array of submissions with status, dates, and content. |
| list_forumsA | List forums in a course with discussion counts. Args: course_id: The Moodle course ID. Returns: JSON array of forums with id, name, cmid, and discussion count. |
| list_forum_discussionsA | List discussions (temas) in a forum, including message content. Args: forum_id: The forum instance ID (use list_forums to get it). Returns: JSON array of discussions with subject, author, message, reply count, and creation/modification dates. |
| list_group_membersA | List groups (comisiones) with their member lists. Args: course_id: The Moodle course ID. Returns: JSON array of groups, each with name, member count, and a list of members (userid, fullname, email, roles). |
| get_course_gradesA | Get all grade items for a course (quizzes, assignments, etc.). Returns grade data for every enrolled student, organized by grade item. Args: course_id: The Moodle course ID. Returns: JSON array of user grade entries with grade items and values. |
| list_quiz_attemptsA | List attempts for a quiz (parcial/examen). Args: quiz_id: The quiz instance ID. user_id: Optional user filter (0 = current user only). Returns: JSON array of attempts with state, score, and timestamps. |
| create_forum_discussionA | Create a new discussion (tema) in a forum. By default runs in dry_run mode (validates permissions only). Set dry_run=False to actually post. Args: forum_id: Forum instance ID (use list_forums to get it). subject: Discussion title. message: Body text (HTML allowed). dry_run: If True (default), validate without posting. Returns: JSON with validated status, and discussionid if posted. |
| reply_forum_postA | Reply to an existing forum post. By default runs in dry_run mode. Set dry_run=False to actually post. Args: post_id: The ID of the post being replied to (parent). subject: Reply subject. message: Reply body text. dry_run: If True (default), validate without posting. Returns: JSON with validated status, and postid if posted. |
| save_assignment_gradeA | Save a grade for a student's assignment (TP). By default runs in dry_run mode. Set dry_run=False to actually save. Args: assignment_id: Assignment instance ID. user_id: Student user ID. grade: Numeric grade (0-10). feedback: Optional feedback comment text. dry_run: If True (default), validate without saving. Returns: JSON with validated status and confirmation. |
| send_message_to_userA | Send an instant message to a user. By default runs in dry_run mode. Set dry_run=False to actually send. Args: user_id: Recipient user ID. message: Message text. dry_run: If True (default), validate without sending. Returns: JSON with validated status and msgid if sent. |
| create_calendar_eventA | Create a calendar event (fecha de examen, entrega, etc.). By default runs in dry_run mode. Set dry_run=False to actually create. Args: name: Event title. course_id: Course ID. timestart: ISO datetime (e.g. "2026-12-15T10:00:00") or unix timestamp. description: Optional event description. eventtype: Event type (course, user, group). Default: course. dry_run: If True (default), validate without creating. Returns: JSON with validated status and eventid if created. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jpmanson/campus-unr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server