Skip to main content
Glama

eClass MCP 服务器

特征

  • 身份验证:通过 UoA 的 CAS SSO 身份验证系统登录 eClass

  • 课程管理:检索已注册课程列表

  • 会话管理:在工具调用之间维护经过身份验证的会话

  • 状态检查:验证身份验证状态

Related MCP server: Google Classroom MCP Server

项目结构

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

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 请求。

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