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: Google Classroom MCP Server

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

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sdi2200262/eclass-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server