Skip to main content

An MCP server for the Open eClass platform by GUnet

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 db5d1239cae4b02902462b79a1ccdfd3eac74b19ea06097beca2fdc78fe84ca6
MD5 46837bf905dc91559d62db9bde29152e
BLAKE2b-256 29432c3197fcfb736147145349205760bc5d5eeea7f972456a16ec0811931f42

See more details on using hashes here.

File details

Details for the file iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_sdi2200262_eclass_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f04de0aa72e331721e836c57bf38c5b12404c1aa42d58731f0120d4140d73084
MD5 f9159a76c3757b70f8865c6472c396e6
BLAKE2b-256 c17b37c79490245c20cdac4808c965ad9104ea8c691f360d1f249c7a8a66f76e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page