Skip to main content

eClass MCP Server

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

MCP Protocol License: GPL v3 Python: 3.10+

Example Usage

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

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
│   └── test/                   # Test scripts
└── 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

Metadata

Release files for iflow-mcp_sdi2200262-eclass-mcp-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_sdi2200262-eclass-mcp-server 0.1.0
File Size Uploaded
iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz 21.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_sdi2200262-eclass-mcp-server 0.1.0
File Interpreter ABI Platform
iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 47.7 kB

Release files / iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz

Download URL iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
db5d1239cae4b02902462b79a1ccdfd3eac74b19ea06097beca2fdc78fe84ca6
BLAKE2b-256 checksum
How to use checksums
29432c3197fcfb736147145349205760bc5d5eeea7f972456a16ec0811931f42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl

Download URL iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl
Size 26.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f04de0aa72e331721e836c57bf38c5b12404c1aa42d58731f0120d4140d73084
BLAKE2b-256 checksum
How to use checksums
c17b37c79490245c20cdac4808c965ad9104ea8c691f360d1f249c7a8a66f76e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page