Skip to main content
Glama

eClass MCP Server

course_management.py3 kB
""" Course Management Module for eClass MCP Server This module handles operations related to retrieving and processing course information from the eClass platform. """ import logging from typing import List, Dict, Optional, Tuple import requests import mcp.types as types from . import html_parsing # Configure logging logger = logging.getLogger('eclass_mcp_server.course_management') def get_courses(session_state) -> Tuple[bool, Optional[str], Optional[List[Dict[str, str]]]]: """ Retrieve a list of enrolled courses from eClass. Args: session_state: The current session state Returns: Tuple of (success, error_message, courses) If successful, error_message will be None and courses will contain the list If unsuccessful, error_message will contain the error and courses will be None """ if not session_state.logged_in: return False, "Not logged in. Please log in first using the login tool.", None # Check if session is still valid if not session_state.is_session_valid(): return False, "Session expired. Please log in again.", None try: response = session_state.session.get(session_state.portfolio_url) response.raise_for_status() # Parse courses from the HTML response courses = html_parsing.extract_courses(response.text, session_state.base_url) # Store courses in session for future use session_state.courses = courses if not courses: return True, "No courses found. You may not be enrolled in any courses.", [] logger.info(f"Successfully retrieved {len(courses)} courses") return True, None, courses except requests.RequestException as e: logger.error(f"Network error getting courses: {str(e)}") return False, f"Network error retrieving courses: {str(e)}", None except Exception as e: logger.error(f"Error getting courses: {str(e)}") return False, f"Error retrieving courses: {str(e)}", None def format_courses_response(success: bool, message: Optional[str], courses: Optional[List[Dict[str, str]]]) -> types.TextContent: """ Format course list response for MCP. Args: success: Whether course retrieval was successful message: Optional message (error message or "no courses" message) courses: List of courses if successful Returns: Formatted MCP TextContent response """ if not success: return types.TextContent( type="text", text=f"Error: {message}", ) if message: # No courses found return types.TextContent( type="text", text=message, ) # Format course list course_list = html_parsing.format_course_list(courses) return types.TextContent( type="text", text=f"Found {len(courses)} courses:\n\n{course_list}", )

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/sdi2200262/eclass-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server