eClass MCP 服务器
特征
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 安装:
配置
在根目录中创建一个具有以下配置的.env文件(或复制并重命名提供的example.env文件):
ECLASS_URL=https://eclass.uoa.gr
ECLASS_USERNAME=your_username
ECLASS_PASSWORD=your_password
所有凭证都必须在 .env 文件中提供。服务器不接受凭证作为参数。
用法
终端
使用入口点脚本运行服务器:
或者作为模块:
python -m src.eclass_mcp_server.server
光标
前往“设置”->“MCP”。点击Add new MCP server :
此命令运行run_server.py脚本,该脚本将 MCP 客户端与server.py中的主服务器入口点连接起来。
克劳德桌面
与 Claude Desktop 一起使用:
打开 Claude 桌面
转至“设置”>“服务器”
添加具有以下详细信息的新服务器:
名称:eClass MCP
命令:run_server.py 脚本的路径
单击“添加服务器”
与 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 交互,从而实现以下功能:
检索课程信息
查看课程公告
获取课程材料
提交作业(未来功能)
安全注意事项
执照
MIT 许可证
贡献
欢迎贡献代码!欢迎提交 Pull 请求。