Skip to main content
Glama

eClass MCP Server

An MCP server for interacting with the Open eClass platform, with support for UoA's SSO authentication.

Features

  • SSO Authentication: Log in through UoA's CAS SSO system

  • Course Retrieval: Get list of enrolled courses

  • Session Management: Persistent sessions between tool calls

  • Status Checking: Verify authentication status

Related MCP server: mcpUPB

Quick Start

Prerequisites

  • Python 3.10+

  • uv (recommended) or pip

Installation

git clone https://github.com/sdi2200262/eclass-mcp-server.git
cd eclass-mcp-server
uv sync --dev --all-extras

Configuration

Create a .env file (or copy example.env):

ECLASS_USERNAME=your_username
ECLASS_PASSWORD=your_password

Optional settings:

ECLASS_URL=https://eclass.uoa.gr          # Default
ECLASS_SSO_DOMAIN=sso.uoa.gr              # Default
ECLASS_SSO_PROTOCOL=https                 # Default

Running

# Using the entry point script
python run_server.py

# Or as a module
python -m src.eclass_mcp_server.server

MCP Client Configuration

To use this MCP server with Claude Desktop, VS Code, Cursor, or any MCP-compatible client, configure your client to run:

python3 /absolute/path/to/eclass-mcp-server/run_server.py

Set the following environment variables in your client's MCP configuration:

{
  "env": {
    "ECLASS_USERNAME": "your_username",
    "ECLASS_PASSWORD": "your_password"
  }
}

Optional environment variables:

  • ECLASS_URL - OpenEclass instance URL (default: https://eclass.uoa.gr)

  • ECLASS_SSO_DOMAIN - SSO domain (default: sso.uoa.gr)

  • ECLASS_SSO_PROTOCOL - SSO protocol (default: https)

Refer to your specific client's documentation for how to add MCP servers to your configuration.

Available Tools

Tool

Description

login

Authenticate using credentials from .env

get_courses

Retrieve enrolled courses (requires login)

logout

End the current session

authstatus

Check authentication status

All tools use a dummy random_string parameter (MCP protocol requirement).

Standalone Client

For non-MCP usage, a standalone client is included:

python eclass_client.py

This demonstrates the core functionality without MCP integration. See docs/architecture.md for details.

Documentation

Project Structure

eclass-mcp-server/
├── run_server.py               # Entry point
├── eclass_client.py            # Standalone client (non-MCP)
├── src/eclass_mcp_server/      # Main package
│   ├── server.py               # MCP server and tool handlers
│   ├── authentication.py       # SSO authentication
│   ├── course_management.py    # Course operations
│   └── html_parsing.py         # HTML parsing utilities
└── docs/                       # Documentation

Security

  • Credentials are stored locally in .env only

  • Never passed as tool parameters (preventing AI provider exposure)

  • Sessions maintained in-memory only

  • No cloud services or remote storage

License

GNU GPL v3.0 - This ensures transparency in credential handling.

Acknowledgments

Available Tools

4 tools
authstatusB

Check authentication status with eClass

Inputs: random_string (required).

get_coursesB

Get list of enrolled courses from eClass

Inputs: random_string (required).

loginB

Log in to eClass using username/password from your .env file through UoA's SSO. Configure ECLASS_USERNAME and ECLASS_PASSWORD in your .env file.

Inputs: random_string (required).

logoutB

Log out from eClass

Inputs: random_string (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a distinct purpose with no overlap: authstatus checks authentication state, get_courses retrieves course data, login handles authentication, and logout terminates sessions. The descriptions clearly differentiate these functions, making tool selection straightforward for an agent.

    Naming Consistency4/5

    Three tools follow a consistent verb_noun pattern (get_courses, login, logout), while authstatus uses a compound noun. This minor deviation slightly reduces consistency, but the naming remains readable and intuitive overall.

    Tool Count4/5

    Four tools are reasonable for an eClass server focused on authentication and basic course access. It covers core authentication workflows and data retrieval, though it could be slightly expanded for a more comprehensive eClass integration.

    Completeness3/5

    The tools cover authentication and course listing well, but there are notable gaps for typical eClass functionality such as accessing course content, assignments, grades, or announcements. This limits the server's ability to support full eClass workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers