Eclass Mcp Server

Eclass Mcp Server

🚀 eClass MCP 服务器

eClass MCP 服务器提供了一个独立于官方平台的接口,支持与支持模型上下文协议(MCP)的 AI 代理直接交互,可用于检索 eClass 课程信息等,且确保了凭证处理的安全性。

🚀 快速开始

eClass 是希腊大学网络 (GUnet) 开发和维护的开源学习管理系统,用于希腊学术机构。本项目提供了一个独立于官方平台的接口,并尊重其使用条款和服务条款。

✨ 主要特性

  • AI 集成:支持与支持模型上下文协议(Model Context Protocol, MCP)的 AI 代理(如 Claude 或其他大语言模型(LLMs))直接交互。
  • 课程信息:可以检索课程信息、查看公告、访问材料和提交作业(未来功能)。
  • 安全设计:确保凭证处理的安全性,防止敏感数据泄露。

🔧 技术细节

核心组件

  1. MCP 服务器

    • 在本地运行。
    • 不依赖任何云服务。
    • 通过环境变量存储凭证。
    • 使用随机字符串作为占位符参数。
  2. AI 客户端隔离

    • AI 客户端无法访问真实凭证。
    • 防止凭证被存储或处理在远程服务器。
    • 确保所有操作直接与 eClass 通信。

核心协议

  • 使用环境变量存储配置信息:e_class_host, e_class_username, e_class_password
  • 支持的工具命令:
    • login:初始化会话并获取 CAS 票据。
    • get_courses:返回当前登录用户的所有课程列表。
    • logout:注销当前会话。

安全机制

  • 本地运行:服务器在本地执行,不使用任何云服务。
  • 内存化会话管理:会话 cookie 和状态仅存储在内存中,不会持久化到磁盘。
  • 直接认证:通过大学的 CAS 机制与 eClass 直接通信。

💻 使用示例

基础用法

import asyncio
from eclass_mcp_client import MCPClient, ServerConfig

async def main():
# 配置服务器参数
server_config = ServerConfig(
host="your_e_class_url",
username="your_username",
password="your_password"
)

async with MCPClient(server_config) as client:
try:
# 登录
login_result = await client.call_tool("login", {"random_string": "dummy"})
print(login_result)

# 获取课程列表
courses_result = await client.call_tool("get_courses", {"random_string": "dummy"})
print(courses_result)

# 注销
logout_result = await client.call_tool("logout", {"random_string": "dummy"})
print(logout_result)
except Exception as e:
print(f"Error occurred: {e}")

if __name__ == "__main__":
asyncio.run(main())

📚 详细文档

安全注意事项

凭证保护

  • 环境变量存储:凭证仅存放在本地 .env 文件中。
  • 避免明文传输:所有工具使用随机字符串作为占位符,AI 客户端无法获取真实凭证。
  • 物理机隔离:只在受信任的设备上运行。

推荐实践

  • 不要将 .env 文件提交到版本控制中。
  • 及时清理不再使用的服务器实例。
  • 使用强密码策略保护用户账户。

许可证信息

本项目遵循 GNU 通用公共许可证第 3 版(GPLv3),允许免费使用、修改和分发,但必须在重新分发或派生作品中包含原始版权声明。

通过以上介绍,eClass MCP 服务器为开发者提供了一个安全可靠的方式来集成 AI 代理与学习管理系统之间的交互。

  • 0 关注
  • 0 收藏,29 浏览
  • system 提出于 2025-10-02 01:48

相似服务问题

相关AI产品