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
Related MCP server: Google Classroom MCP Server
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.pyInstalació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-extrasAlternativamente, 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_passwordTodas 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.pyO como módulo:
python -m src.eclass_mcp_server.serverCursor
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
commanden “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:
Abra Claude Desktop
Vaya a Configuración > Servidor
Agregue un nuevo servidor con los siguientes detalles:
Nombre: eClass MCP
Comando: Ruta a su script run_server.py
Haga clic en Agregar servidor
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_coursesEjemplo 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
.envcon 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.