eClass (UoA)

by sdi2200262

3 stars
Not rated
GitHub

About

Integrates with Open eClass platform to enable course access and management through UoA's SSO authentication system, providing tools for login, course listing, and session handling

Details

Author
sdi2200262
Repository
sdi2200262/eclass-mcp-server
GitHub stars
3
License
Other
Categories
Design, Developer Tools, AI, Frontend, Infrastructure
Tags
#integration

- 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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name eClass (UoA)
    Command (node, npx, python, etc.) python
    Arguments
    • Argument 1 run_server.py
    Environment
    • ECLASS_URL https://eclass.uoa.gr
    • ECLASS_PASSWORD your_password
    • ECLASS_USERNAME your_username
    • ECLASS_SSO_DOMAIN sso.uoa.gr
    • ECLASS_SSO_PROTOCOL https

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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


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

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

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

json
{
"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.

login

Authenticate using credentials from `.env`.

get_courses

Retrieve enrolled courses (requires login).

logout

End the current session.

authstatus

Check authentication status.

| 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).

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "eclass (uoa)": {
            "env": {
                "ECLASS_URL": "https://eclass.uoa.gr",
                "ECLASS_PASSWORD": "your_password",
                "ECLASS_USERNAME": "your_username",
                "ECLASS_SSO_DOMAIN": "sso.uoa.gr",
                "ECLASS_SSO_PROTOCOL": "https"
            },
            "args": [
                "run_server.py"
            ],
            "command": "python"
        }
    }
}

Linux

{
    "env": {
        "ECLASS_URL": "https://eclass.uoa.gr",
        "ECLASS_PASSWORD": "your_password",
        "ECLASS_USERNAME": "your_username",
        "ECLASS_SSO_DOMAIN": "sso.uoa.gr",
        "ECLASS_SSO_PROTOCOL": "https"
    },
    "args": [
        "run_server.py"
    ],
    "command": "python"
}

Macos

{
    "env": {
        "ECLASS_URL": "https://eclass.uoa.gr",
        "ECLASS_PASSWORD": "your_password",
        "ECLASS_USERNAME": "your_username",
        "ECLASS_SSO_DOMAIN": "sso.uoa.gr",
        "ECLASS_SSO_PROTOCOL": "https"
    },
    "args": [
        "run_server.py"
    ],
    "command": "python"
}

Windows

{
    "env": {
        "ECLASS_URL": "https://eclass.uoa.gr",
        "ECLASS_PASSWORD": "your_password",
        "ECLASS_USERNAME": "your_username",
        "ECLASS_SSO_DOMAIN": "sso.uoa.gr",
        "ECLASS_SSO_PROTOCOL": "https"
    },
    "args": [
        "run_server.py"
    ],
    "command": "python"
}

eClass MCP Server

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

<p align="center">
<a href="https://github.com/modelcontextprotocol/python-sdk">MCP Protocol</a>
<a href="https://www.gnu.org/licenses/gpl-3.0">License: GPL v3</a>
Python: 3.10+
</p>

<p align="center">
Example Usage
</p>

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

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

- Architecture - System design and authentication flow
- Wire Protocol - JSON-RPC message formats
- Tools Reference - Detailed tool 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

- GUnet for the Open eClass platform
- This project is an independent interface, not affiliated with GUnet

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.