# MSAAQ MCP

> MSAAQ connects your AI agent directly to an entire Learning Management System (LMS). It lets you manage courses, create student accounts, track progress, and check performance stats—all without leaving your chat window. You can run admin tasks like listing all users or checking a certificate's validity using specific tools.

## Overview
- **Category:** ecommerce
- **Price:** Free
- **Tags:** online-courses, student-enrollment, course-analytics, lms-platform, digital-products

## Description

MSAAQ connects your AI agent directly to the guts of a Learning Management System (LMS). You run admin tasks and manage student records straight from your chat window—no dashboard clicking required. It treats the whole platform like an API you can talk to.

**System Health Check:** Before you do anything else, you can use `check_api_connectivity` to test the connection to the MSAAQ platform. This confirms the API status and makes sure you're good to go.

**User Management (Admin):** You've got tools for handling student profiles. Use `list_registered_users_admin` when you need a full rundown of every user account on the system. Need to add someone new? Run `create_new_student_account`, providing just their name and email, and the profile gets set up immediately. If you're checking who's logged in right now, use `get_logged_in_user_profile` to pull those specific details.

**Course Administration (Admin View):** When you need a bird's-eye view of what courses exist, two tools help out. Run `list_all_courses_admin` for a complete list of every course available in the admin panel. If you just want to see which classes students can actually pick up, use `list_available_learning_courses`. To dig into a single class's structure or details, call `get_learning_course_details`, and it'll fetch all the metadata about that specific course. For performance deep dives, `get_course_performance_stats` retrieves detailed metrics—you just need to provide the course ID or class name.

**Student Enrollment & Tracking:** You can assign users to learning paths instantly with `enroll_student_in_course`; you only have to give it an existing user and a specified course. To see what courses the currently logged-in student is taking, run `get_my_active_enrollments`. If you're building out your roster, remember that `list_all_courses_admin` gives you every class ID you could ever want.

**Verification & Credentials:** You can check a certificate's legitimacy before accepting it. Use `verify_issued_certificate`, giving it the unique ID (UUID) of the certificate; this tells you if it's actually real. Students can also run `list_student_certificates` to see every record associated with their own profile. This whole setup lets your agent manage everything from account creation and enrollment assignment to checking performance analytics and confirming credentials, all without leaving the chat.

## Tools

### check_api_connectivity
Tests the connection to the MSAAQ platform to confirm API status.

### create_new_student_account
Creates a new user profile and account using the student's name and email.

### enroll_student_in_course
Adds an existing user to a specified course.

### get_course_performance_stats
Retrieves detailed metrics and analytics for any given course ID or class.

### get_my_active_enrollments
Lists all courses that the current, logged-in student is actively enrolled in.

### get_logged_in_user_profile
Displays the profile details of the user currently logged into the system.

### get_learning_course_details
Fetches specific metadata, structure, and information about a single learning course.

### list_all_courses_admin
Pulls a full list of every course available within the administrative panel (Admin).

### list_registered_users_admin
Generates a comprehensive list of every student and user account registered on the platform (Admin).

### list_student_certificates
Retrieves all certificate records associated with the current, logged-in user.

### list_available_learning_courses
Displays courses that are visible and selectable for students to enroll in.

### verify_issued_certificate
Confirms if a specific course completion certificate is authentic using its unique ID (UUID).

## Prompt Examples

**Prompt:** 
```
List all active courses in my MSAAQ admin panel.
```

**Response:** 
```
I've found 5 active courses. Notable ones include 'Intro to AI' (ID: crs_123) and 'Advanced RAG' (ID: crs_456). Would you like stats on any of these?
```

**Prompt:** 
```
Enroll student 'John Doe' (ID: usr_789) into the 'Advanced RAG' course.
```

**Response:** 
```
Done! I've successfully enrolled John Doe into the Advanced RAG course (crs_456).
```

**Prompt:** 
```
Show me my course completion certificates.
```

**Response:** 
```
I've retrieved 2 certificates. You've completed 'Basic Python' and 'Data Science 101'. You can download or verify them here.
```

## Capabilities

### Manage user accounts
Create or invite new student profiles using the `create_new_student_account` tool.

### Track course performance metrics
Pull detailed analytics for any specific class using `get_course_performance_stats`.

### Enroll students into courses
Assign a user to a learning path instantly with the `enroll_student_in_course` tool.

### View all system data (Admin)
List every course and student record using tools like `list_all_courses_admin` or `list_registered_users_admin`.

### Verify credentials
Check the authenticity of a completed certificate by providing its unique ID to `verify_issued_certificate`.

## Use Cases

### The Administrator needs a class roster update.
A department head notices a student's enrollment data is missing from the primary report. They ask their agent to 'Check all users and list who is in Advanced RAG.' The agent runs `list_registered_users_admin` and then filters/uses `get_my_active_enrollments` on specific IDs, providing a clean, actionable roster immediately.

### An Instructor needs to grade student performance.
After the midterm, an instructor wants to see how well the class did overall. They prompt the agent: 'Show me the engagement stats for the Biology 101 course.' The agent executes `get_course_performance_stats`, providing a data snapshot that saves them from building a custom report.

### A student needs to prove their certification.
The student graduates and gets asked for proof. They tell their AI agent, 'Verify my Python certificate.' The agent runs `verify_issued_certificate` using the provided UUID, confirming its validity and keeping the conversation flowing.

### IT needs to onboard a new user.
A new employee starts tomorrow. Instead of logging into three different systems, IT asks the agent: 'Create an account for Jane Smith and enroll her in Intro to AI.' The agent runs `create_new_student_account` followed immediately by `enroll_student_in_course`, completing the setup in one flow.

## Benefits

- **Instant Status Checks:** Stop navigating multiple tabs just to see who's in the class. Use `get_course_performance_stats` to pull key metrics immediately, giving you a real-time view of cohort health.
- **Zero Friction Enrollment:** Don't waste time generating invites or manually updating records. You can use `create_new_student_account` and then run `enroll_student_in_course` in two conversational steps.
- **Full Audit Trail Access:** Need to know who exists? Instead of running separate reports, call `list_all_courses_admin` or `list_registered_users_admin` for a complete, structured list right away.
- **Certificate Trust:** Never second-guess a credential again. Use `verify_issued_certificate` with the UUID to confirm if a completion certificate is legitimate—it's instant verification.
- **Personal Dashboard View:** Students or learners can use `get_my_active_enrollments` and `list_student_certificates` to check their personal progress without needing IT help. It keeps them in the flow.

## How It Works

The bottom line is that your AI client handles all the token management and API calls; you just talk to it naturally.

1. Subscribe to this server and input your MSAAQ Access Token into your AI client's configuration.
2. Your agent reads the available tools (e.g., `list_all_courses_admin`).
3. You give a prompt like, 'What courses are active?' Your agent executes the tool call and sends you the resulting data.

## Frequently Asked Questions

**How do I check if a student passed a course using verify_issued_certificate?**
You run `verify_issued_certificate` and provide the unique UUID of the certificate. The tool confirms its authenticity, telling you immediately if the record is legitimate.

**What's the difference between list_available_learning_courses and list_all_courses_admin?**
`list_available_learning_courses` shows what students can actually access right now. `list_all_courses_admin` pulls every single course record, including drafts or inactive ones—it's the full system inventory.

**Can I get stats for a class without knowing the admin tools?**
You need to specify the target. Use `get_course_performance_stats` and make sure you provide the specific Course ID, even if you're just checking it from a student perspective.

**How does get_my_active_enrollments work for students?**
This tool reads data based on your current profile. You prompt the agent and it returns a list of every course you are currently marked as active in, making it simple to check progress.

**Before I write any code, how do I verify my connection status using `check_api_connectivity`?**
It confirms if your MSAAQ server is up and accepting requests. If it returns a 200 OK status, you're good to go; otherwise, check your access token or network settings first.

**If I need to audit all user accounts on the platform, what does `list_registered_users_admin` provide?**
This tool gives you a comprehensive list of every student and user ID in the system. It lets admins verify accounts that might not be visible through standard profile lookups.

**What should I expect if `enroll_student_in_course` fails for a specific user?**
The function returns an error code and message detailing the failure. Common issues include invalid course IDs or attempting to enroll a non-existent user account.

**When I run `get_course_performance_stats` on a brand new course, what data points will I receive?**
It returns foundational metrics like enrollment count and last activity date. Since the course is new, usage stats (like completion rates) may show zero until users interact with it.

**How do I get an Access Token for MSAAQ?**
Log in to your MSAAQ dashboard and navigate to the API or Developer portal section to generate your unique OAuth2 access token.

**Can the agent enroll students into courses?**
Yes, using the `enroll_student_in_course` tool, the agent can manually register students into specific courses.

**Is it possible to verify certificates?**
Absolutely. The `verify_issued_certificate` tool allows the agent to check the validity of any certificate issued by the platform using its UUID.