eClass MCP Server
The eClass MCP Server enables AI agents to interact with Open eClass platforms, specifically tailored for UoA's SSO authentication system.
Capabilities include:
Authentication: Log in to eClass via UoA's CAS SSO system using configured credentials
Course Management: Retrieve a list of enrolled courses on eClass
Session Management: Maintain authenticated sessions for continuous interaction across tool calls
Status Checking: Verify the current authentication status with eClass
Logout: End the eClass session when needed
Security: Handle sensitive credentials securely, maintaining session cookies in memory
Integration: Designed to work with AI agents supporting the Model Context Protocol for accessing course materials and announcements
Uses .env files to store sensitive authentication credentials for eClass, maintaining them securely outside of version control
Hosts the project repository for version control and distribution of the eClass MCP server code
Built with Python, providing a foundation for the MCP server implementation that handles authentication and interactions with eClass
Implements session management to maintain authenticated state between interactions with the eClass platform
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eClass MCP Server show me my enrolled courses for this semester"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: mcpUPB
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-extrasConfiguration
Create a .env file (or copy example.env):
ECLASS_USERNAME=your_username
ECLASS_PASSWORD=your_passwordOptional settings:
ECLASS_URL=https://eclass.uoa.gr # Default
ECLASS_SSO_DOMAIN=sso.uoa.gr # Default
ECLASS_SSO_PROTOCOL=https # DefaultRunning
# Using the entry point script
python run_server.py
# Or as a module
python -m src.eclass_mcp_server.serverMCP 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.pySet 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 |
| Authenticate using credentials from |
| Retrieve enrolled courses (requires login) |
| End the current session |
| 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.pyThis 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/ # DocumentationSecurity
Credentials are stored locally in
.envonlyNever 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
Available Tools
4 toolsauthstatusB
Check authentication status with eClass
Inputs: random_string (required).
get_coursesB
Get list of enrolled courses from eClass
Inputs: random_string (required).
loginB
Log in to eClass using username/password from your .env file through UoA's SSO. Configure ECLASS_USERNAME and ECLASS_PASSWORD in your .env file.
Inputs: random_string (required).
logoutB
Log out from eClass
Inputs: random_string (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a distinct purpose with no overlap: authstatus checks authentication state, get_courses retrieves course data, login handles authentication, and logout terminates sessions. The descriptions clearly differentiate these functions, making tool selection straightforward for an agent.
Three tools follow a consistent verb_noun pattern (get_courses, login, logout), while authstatus uses a compound noun. This minor deviation slightly reduces consistency, but the naming remains readable and intuitive overall.
Four tools are reasonable for an eClass server focused on authentication and basic course access. It covers core authentication workflows and data retrieval, though it could be slightly expanded for a more comprehensive eClass integration.
The tools cover authentication and course listing well, but there are notable gaps for typical eClass functionality such as accessing course content, assignments, grades, or announcements. This limits the server's ability to support full eClass workflows.
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP Server for an Agent Task Marketplace
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.713 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server that turns UPB Virtual (Moodle) into a structured knowledge source, enabling AI assistants to query courses, assignments, deadlines, announcements, and sync materials via REST API.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that connects AI assistants to university D2L Brightspace and Piazza, enabling query of courses, grades, assignments, deadlines, files, and Piazza posts.7MIT
- AlicenseAqualityDmaintenanceMCP server for Moodle that lets AI agents publish and manage pedagogical content — courses, lessons, quizzes, forums — via Moodle Web Services with idempotency.45MIT