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
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
- 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
│ └── test/ # Test scripts
└── docs/ # Documentation
Security
- Credentials are stored locally in
.envonly - 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
- GUnet for the Open eClass platform
- This project is an independent interface, not affiliated with GUnet
Recommend MCP Servers 💡
mcp-gsuite
MCP Server to interact with Google Gsuite prodcuts
bear
A Model Context Protocol (MCP) server that allows AI assistants like Claude to read notes from the [Bear](https://bear.app/) note-taking app. This implementation connects directly to the Bear SQLite database in a read-only mode, ensuring your notes remain safe and unmodified.
Scrapeless MCP Server
Scrapeless Mcp Server
FileScopeMCP
Analyzes your codebase identifying important files based on dependency relationships. Generates diagrams and importance scores per file, helping AI assistants understand the codebase. Automatically parses popular programming languages such as Python, C, C++, Rust, Zig, Lua.
nerve-hq/nerve-mcp-server
Implements an MCP server to integrate with the Nerve API, enabling AI to access and process customer feedback and other data from Nerve.
gemini-vision-art-studio
An MCP server utilizing Google's Gemini AI to provide advanced image generation (3D cartoons) and transformation capabilities.