eClass MCP Server

by sdi2200262
Verified

Integrations

  • 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

eClass MCP 服务器

特征

  • 身份验证:通过 UoA 的 CAS SSO 身份验证系统登录 eClass
  • 课程管理:检索已注册课程列表
  • 会话管理:在工具调用之间维护经过身份验证的会话
  • 状态检查:验证身份验证状态

项目结构

该项目采用模块化架构,以提高可维护性:

eclass-mcp-server/ ├── run_server.py # Entry point script for running the server ├── pyproject.toml # Project configuration and dependencies ├── .env # Environment variables (create from example.env) ├── src/ └── eclass_mcp_server/ # Main package ├── __init__.py # Package initialization ├── server.py # Core server implementation and tool handlers ├── authentication.py # Authentication functionality ├── course_management.py # Course-related functionality ├── html_parsing.py # HTML parsing utilities └── test/ # Test scripts for functionality verification ├── __init__.py ├── test_login.py ├── test_courses.py └── run_all_tests.py

安装

使用 UV 安装服务器(推荐):

# Clone the repository git clone https://github.com/yourusername/eClass-MCP-server.git cd eClass-MCP-server # Install dependencies uv sync --dev --all-extras

或者,使用 pip 安装:

pip install -e .

配置

在根目录中创建一个具有以下配置的.env文件(或复制并重命名提供的example.env文件):

ECLASS_URL=https://eclass.uoa.gr ECLASS_USERNAME=your_username ECLASS_PASSWORD=your_password

所有凭证都必须在 .env 文件中提供。服务器不接受凭证作为参数。

用法

终端

使用入口点脚本运行服务器:

python run_server.py

或者作为模块:

python -m src.eclass_mcp_server.server

光标

前往“设置”->“MCP”。点击Add new MCP server

  • 选择一个唯一但合适的名称,以便代理知道服务器的用途(例如“eClass 服务器”)
  • 选择“类型”上的command选项
  • 在命令输入中添加: python /path/to/eclass-mcp-server/run_server.py

此命令运行run_server.py脚本,该脚本将 MCP 客户端与server.py中的主服务器入口点连接起来。

克劳德桌面

与 Claude Desktop 一起使用:

  1. 打开 Claude 桌面
  2. 转至“设置”>“服务器”
  3. 添加具有以下详细信息的新服务器:
    • 名称:eClass MCP
    • 命令:run_server.py 脚本的路径
  4. 单击“添加服务器”
  5. 与 Claude 聊天时从下拉菜单中选择服务器

工具

该服务器提供以下工具供 MCP 客户端使用:

登录

使用 SSO 身份验证登录 eClass。

{ "random_string": "any_value" }

获取课程

检索已注册课程的列表(需要先登录)。

{ "random_string": "any_value" }

登出

从 eClass 注销。

{ "random_string": "any_value" }

授权状态

检查当前身份验证状态。

{ "random_string": "any_value" }

测试

该项目包括用于验证功能的测试脚本:

# Run all tests python -m src.eclass_mcp_server.test.run_all_tests # Run specific tests python -m src.eclass_mcp_server.test.test_login python -m src.eclass_mcp_server.test.test_courses

MCP 客户端使用示例

from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client import asyncio async def run_agent(): server_params = StdioServerParameters( command="python /path/to/eclass-mcp-server/run_server.py", ) async with stdio_client(server_params) as (read, write): async with ClientSession(read, write) as session: # Initialize the session await session.initialize() # Login to eClass login_result = await session.call_tool("login", { "random_string": "dummy" }) print(login_result) # Get courses courses_result = await session.call_tool("get_courses", { "random_string": "dummy" }) print(courses_result) # Logout logout_result = await session.call_tool("logout", { "random_string": "dummy" }) print(logout_result) if __name__ == "__main__": asyncio.run(run_agent())

与AI代理集成

此 MCP 服务器旨在与支持模型上下文协议 (MCP) 的 AI 代理配合使用。这使得 AI 系统能够直接与 eClass 交互,从而实现以下功能:

  • 检索课程信息
  • 查看课程公告
  • 获取课程材料
  • 提交作业(未来功能)

安全注意事项

  • 服务器处理敏感的身份验证凭据
  • 凭证仅用于身份验证,不会持久存储
  • 会话 cookie 在服务器的生命周期内保存在内存中
  • 服务器在执行操作之前验证会话状态
  • 带有凭证的.env文件永远不应提交到版本控制(它包含在 .gitignore 中)

执照

MIT 许可证

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

MCP 服务器使 AI 代理能够与 Open eClass 平台实例进行身份验证和交互,支持 UoA 的 SSO 身份验证系统检索课程信息和执行基本的平台操作。

  1. Features
    1. Project Structure
      1. Installation
        1. Configuration
          1. Usage
            1. Terminal
            2. Cursor
            3. Claude Desktop
          2. Tools
            1. login
            2. get_courses
            3. logout
            4. authstatus
          3. Testing
            1. Example MCP Client Usage
              1. Integration with AI Agents
                1. Security Considerations
                  1. License
                    1. Contributing
                      ID: 577tzz09hi