eClass MCP Server

by sdi2200262
Verified

Integrations

  • Uses .env files to store sensitive authentication credentials for eClass, maintaining them securely outside of version control

  • Hosts the project repository for version control and distribution of the eClass MCP server code

  • Built with Python, providing a foundation for the MCP server implementation that handles authentication and interactions with eClass

Servidor MCP eClass

Características

  • Autenticación : Inicie sesión en eClass a través del sistema de autenticación CAS SSO de UoA
  • Gestión de cursos : recuperar listas de cursos inscritos
  • Gestión de sesiones : mantener sesiones autenticadas entre llamadas de herramientas
  • Comprobación de estado : verificar el estado de autenticación

Estructura del proyecto

Este proyecto sigue una arquitectura modular para una mejor mantenibilidad:

eclass-mcp-server/ ├── run_server.py # Entry point script for running the server ├── pyproject.toml # Project configuration and dependencies ├── .env # Environment variables (create from example.env) ├── src/ └── eclass_mcp_server/ # Main package ├── __init__.py # Package initialization ├── server.py # Core server implementation and tool handlers ├── authentication.py # Authentication functionality ├── course_management.py # Course-related functionality ├── html_parsing.py # HTML parsing utilities └── test/ # Test scripts for functionality verification ├── __init__.py ├── test_login.py ├── test_courses.py └── run_all_tests.py

Instalación

Instalar el servidor usando UV (recomendado):

# Clone the repository git clone https://github.com/yourusername/eClass-MCP-server.git cd eClass-MCP-server # Install dependencies uv sync --dev --all-extras

Alternativamente, instale con pip:

pip install -e .

Configuración

Cree un archivo .env en el directorio raíz con la siguiente configuración (o copie y cambie el nombre del archivo example.env proporcionado):

ECLASS_URL=https://eclass.uoa.gr ECLASS_USERNAME=your_username ECLASS_PASSWORD=your_password

Todas las credenciales deben proporcionarse en el archivo .env. El servidor no acepta credenciales como parámetros.

Uso

Terminal

Ejecute el servidor utilizando el script de punto de entrada:

python run_server.py

O como módulo:

python -m src.eclass_mcp_server.server

Cursor

Vaya a Configuración -> MCP. Haga clic en Add new MCP server .

  • Seleccione un nombre único pero apropiado para que el Agente sepa para qué sirve el servidor (por ejemplo, "eClass Server")
  • Seleccione la opción command en “Tipo”
  • Agregue esto en la entrada del comando: python /path/to/eclass-mcp-server/run_server.py

Este comando ejecuta el script run_server.py que conecta el cliente MCP con el punto de entrada del servidor principal en server.py .

Escritorio de Claude

Para utilizar con Claude Desktop:

  1. Abra Claude Desktop
  2. Vaya a Configuración > Servidor
  3. Agregue un nuevo servidor con los siguientes detalles:
    • Nombre: eClass MCP
    • Comando: Ruta a su script run_server.py
  4. Haga clic en Agregar servidor
  5. Selecciona el servidor del menú desplegable al chatear con Claude

Herramientas

El servidor proporciona las siguientes herramientas para su uso con clientes MCP:

acceso

Inicie sesión en eClass mediante la autenticación SSO.

{ "random_string": "any_value" }

obtener_cursos

Recuperar una lista de cursos inscritos (requiere iniciar sesión primero).

{ "random_string": "any_value" }

cerrar sesión

Cerrar sesión en eClass.

{ "random_string": "any_value" }

estado de autorización

Verifique el estado de autenticación actual.

{ "random_string": "any_value" }

Pruebas

El proyecto incluye scripts de prueba para verificar la funcionalidad:

# Run all tests python -m src.eclass_mcp_server.test.run_all_tests # Run specific tests python -m src.eclass_mcp_server.test.test_login python -m src.eclass_mcp_server.test.test_courses

Ejemplo de uso del cliente MCP

from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client import asyncio async def run_agent(): server_params = StdioServerParameters( command="python /path/to/eclass-mcp-server/run_server.py", ) async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: # Initialize the session await session.initialize() # Login to eClass login_result = await session.call_tool("login", { "random_string": "dummy" }) print(login_result) # Get courses courses_result = await session.call_tool("get_courses", { "random_string": "dummy" }) print(courses_result) # Logout logout_result = await session.call_tool("logout", { "random_string": "dummy" }) print(logout_result) if __name__ == "__main__": asyncio.run(run_agent())

Integración con agentes de IA

Este servidor MCP está diseñado para usarse con agentes de IA compatibles con el Protocolo de Contexto de Modelo. Esto permite que los sistemas de IA interactúen directamente con eClass, lo que permite capacidades como:

  • Recuperando información del curso
  • Consulta de anuncios de cursos
  • Acceso a los materiales del curso
  • Envío de tareas (función futura)

Consideraciones de seguridad

  • El servidor maneja credenciales de autenticación confidenciales
  • Las credenciales solo se utilizan para la autenticación y no se almacenan de forma persistente.
  • Las cookies de sesión se mantienen en la memoria durante el ciclo de vida del servidor.
  • El servidor valida el estado de la sesión antes de realizar operaciones
  • El archivo .env con credenciales nunca debe enviarse al control de versiones (está incluido en .gitignore)

Licencia

Licencia MIT

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor MCP que permite a los agentes de IA autenticarse e interactuar con las instancias de la plataforma Open eClass, respaldando el sistema de autenticación SSO de la UoA para recuperar información del curso y realizar operaciones básicas de la plataforma.

  1. Features
    1. Project Structure
      1. Installation
        1. Configuration
          1. Usage
            1. Terminal
            2. Cursor
            3. Claude Desktop
          2. Tools
            1. login
            2. get_courses
            3. logout
            4. authstatus
          3. Testing
            1. Example MCP Client Usage
              1. Integration with AI Agents
                1. Security Considerations
                  1. License
                    1. Contributing
                      ID: 577tzz09hi