项目简介

本项目是一个智能教学辅助系统,旨在利用大模型和智能代理技术提升教学效率和学习体验。系统集成了多个基于MCP协议的服务器,为AI Agent提供丰富的上下文信息和工具调用能力,同时包含一个功能完整的后端和前端应用,支持用户管理、题库管理、课堂作业、在线签到等多种教育场景。

主要功能点

  • 智能对话辅导: 通过AI助手解答学术问题,提供解释和引导。
  • 个性化学习: 根据用户情况推荐学习内容和进度。
  • 实时反馈: 对练习和作业提供即时反馈。
  • 多媒体资源: 支持集成多种类型的学习资料。
  • 文档生成: 可将对话或报告导出为PDF文件。
  • 网页检索: 通过内置浏览器服务获取在线信息。
  • 题库与刷题: 管理、生成、导入题目,支持学生练习和错题整理。
  • 作业管理: 教师布置作业,学生提交,教师批改。
  • 课堂签到: 支持生成签到码,学生扫码或输入签到码完成签到。
  • 学生管理: 教师可管理班级和学生档案。

安装步骤

本项目包含后端 (Django)、MCP 服务器 (Python scripts) 和前端 (Vue)。请确保已安装Python 3.13+ 和 Node.js 18+。推荐使用 'uv' 作为Python包管理器。

  1. 克隆仓库:

    git clone https://github.com/Kierinter/MCPTeachingAidSystem.git
    cd MCPTeachingAidSystem
  2. 后端设置:

    • 进入后端目录: 'cd ai_tutor_backend'
    • 创建并激活虚拟环境 (使用 'uv'):
      uv venv .venv
      source .venv/bin/activate  # Linux/macOS
      .venv\Scripts\activate     # Windows
    • 安装Python依赖:
      uv pip install -e .
    • 应用数据库迁移:
      python ../apply_migrations.py
      (这会创建所需的数据库表)
  3. MCP 服务器设置:

    • 进入MCP目录: 'cd ../mcp'
    • 配置环境变量: 复制 '.env.example' 为 '.env' 并填写 DeepSeek API 密钥和基础 URL。
  4. 前端设置:

    • 返回项目根目录: 'cd ..'
    • 安装Node.js依赖:
      npm install

服务器配置 (供MCP客户端使用)

本项目包含多个MCP服务器实现,这些服务器以独立的进程运行并通过标准输入/输出 (Stdio) 与主要的Agent Orchestrator (位于 'mcp/main.py') 通信。如果您需要将这些MCP服务器集成到其他MCP客户端应用中,您可以配置您的客户端启动这些服务器进程并连接到它们的Stdio流。

以下是本项目中包含的MCP服务器及其启动命令配置示例:

  • 服务器名称: 'filesystem'

    • 功能: 提供文件系统的读写和列表能力,用于管理教案、学习材料等。
    • 连接方式: Stdio
    • 启动命令:
      • 'command': 'python'
      • 'args': '["/path/to/MCPTeachingAidSystem/mcp/mcp_servers/filesystem-server.py"]' (请替换为实际的文件路径)
      • 'env': '{ "PYTHONPATH": "/path/to/MCPTeachingAidSystem" }' (请替换为实际的项目根目录路径)
  • 服务器名称: 'pdf'

    • 功能: 将Markdown或HTML内容转换为PDF文件,通常用于导出对话或报告。依赖系统安装的'pandoc'或'wkhtmltopdf'。
    • 连接方式: Stdio
    • 启动命令:
      • 'command': 'python'
      • 'args': '["/path/to/MCPTeachingAidSystem/mcp/mcp_servers/pdf_server.py"]' (请替换为实际的文件路径)
      • 'env': '{ "PYTHONPATH": "/path/to/MCPTeachingAidSystem" }' (请替换为实际的项目根目录路径)
  • 服务器名称: 'local_web'

    • 功能: 启动一个本地HTTP服务器并打开浏览器访问指定的本地或系统页面,支持创建临时HTML文件。
    • 连接方式: Stdio
    • 启动命令:
      • 'command': 'python'
      • 'args': '["/path/to/MCPTeachingAidSystem/mcp/mcp_servers/local_web_server.py"]' (请替换为实际的文件路径)
      • 'env': '{ "PYTHONPATH": "/path/to/MCPTeachingAidSystem" }' (请替换为实际的项目根目录路径)
  • 服务器名称: 'browser'

    • 功能: 通过Puppeteer控制浏览器进行网页浏览和信息抓取。需要Node.js环境。
    • 连接方式: Stdio
    • 启动命令:
      • 'command': 'npx'
      • 'args': '["-y", "@modelcontextprotocol/server-puppeteer"]'
      • 'env': '{ "PUPPETEER_LAUNCH_OPTIONS": "{}" }' (或其他Puppeteer启动选项的JSON字符串)

请注意,这些配置描述了如何 启动 这些MCP服务器进程。MCP客户端框架(如本项目中的'agents.mcp.MCPServerStdio')负责执行这些命令,并通过该进程的标准输入输出流发送和接收MCP JSON-RPC消息。

基本使用方法

需要同时运行后端服务、MCP服务器和前端开发服务器。

  1. 启动后端服务:

    • 激活Python虚拟环境 (如果尚未激活): 'source ai_tutor_backend/.venv/bin/activate'
    • 运行脚本: 'python run_server.py'
    • 默认运行在 'http://127.0.0.1:8080'
  2. 启动MCP服务器 Orchestrator:

    • 激活Python虚拟环境 (如果尚未激活): 'source ai_tutor_backend/.venv/bin/activate'
    • 进入mcp目录: 'cd mcp'
    • 运行主脚本: 'python main.py'
    • 这个脚本会根据需要自动启动和管理各个子MCP服务器进程。默认运行在 'http://0.0.0.0:5000'。
  3. 启动前端开发服务器:

    • 返回项目根目录: 'cd ..'
    • 运行命令: 'npm run dev'
    • 默认运行在 'http://localhost:4000'

系统启动后,通过浏览器访问前端地址 ('http://localhost:4000') 进行注册/登录,然后即可使用AI教辅、题库、签到等功能。AI对话功能会通过MCP服务器 Orchestrator (main.py) 与DeepSeek模型交互,并调用相应的MCP服务器提供的工具。

信息

分类

生产力应用