trackmcp
Back to directory
sdi2200262

eclass-mcp-server

View on GitHub

A Model Context Protocol (MCP) server for the Open eClass platform.

6 stars PythonAI & Machine Learning Updated Aug 22, 2025

Documentation

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

Quick Start

Prerequisites

  • Python 3.10+
  • uv (recommended) or pip

Installation

bash
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`):

bash
ECLASS_USERNAME=your_username
ECLASS_PASSWORD=your_password

Optional settings:

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

Running

bash
# 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:

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.

Available Tools

ToolDescription
`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:

bash
python eclass_client.py

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

Documentation

Project Structure

code
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

Frequently asked questions

What is eclass-mcp-server?

eclass-mcp-server is A Model Context Protocol (MCP) server for the Open eClass platform.

How do I install eclass-mcp-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is eclass-mcp-server open source?

Yes — it is hosted on GitHub at https://github.com/sdi2200262/eclass-mcp-server and has 6 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP