项目简介
本项目是一个智能教学辅助系统,旨在利用大模型和智能代理技术提升教学效率和学习体验。系统集成了多个基于MCP协议的服务器,为AI Agent提供丰富的上下文信息和工具调用能力,同时包含一个功能完整的后端和前端应用,支持用户管理、题库管理、课堂作业、在线签到等多种教育场景。
主要功能点
- 智能对话辅导: 通过AI助手解答学术问题,提供解释和引导。
- 个性化学习: 根据用户情况推荐学习内容和进度。
- 实时反馈: 对练习和作业提供即时反馈。
- 多媒体资源: 支持集成多种类型的学习资料。
- 文档生成: 可将对话或报告导出为PDF文件。
- 网页检索: 通过内置浏览器服务获取在线信息。
- 题库与刷题: 管理、生成、导入题目,支持学生练习和错题整理。
- 作业管理: 教师布置作业,学生提交,教师批改。
- 课堂签到: 支持生成签到码,学生扫码或输入签到码完成签到。
- 学生管理: 教师可管理班级和学生档案。
安装步骤
本项目包含后端 (Django)、MCP 服务器 (Python scripts) 和前端 (Vue)。请确保已安装Python 3.13+ 和 Node.js 18+。推荐使用 'uv' 作为Python包管理器。
-
克隆仓库:
git clone https://github.com/Kierinter/MCPTeachingAidSystem.git cd MCPTeachingAidSystem -
后端设置:
- 进入后端目录: '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
-
MCP 服务器设置:
- 进入MCP目录: 'cd ../mcp'
- 配置环境变量: 复制 '.env.example' 为 '.env' 并填写 DeepSeek API 密钥和基础 URL。
-
前端设置:
- 返回项目根目录: '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服务器和前端开发服务器。
-
启动后端服务:
- 激活Python虚拟环境 (如果尚未激活): 'source ai_tutor_backend/.venv/bin/activate'
- 运行脚本: 'python run_server.py'
- 默认运行在 'http://127.0.0.1:8080'
-
启动MCP服务器 Orchestrator:
- 激活Python虚拟环境 (如果尚未激活): 'source ai_tutor_backend/.venv/bin/activate'
- 进入mcp目录: 'cd mcp'
- 运行主脚本: 'python main.py'
- 这个脚本会根据需要自动启动和管理各个子MCP服务器进程。默认运行在 'http://0.0.0.0:5000'。
-
启动前端开发服务器:
- 返回项目根目录: 'cd ..'
- 运行命令: 'npm run dev'
- 默认运行在 'http://localhost:4000'
系统启动后,通过浏览器访问前端地址 ('http://localhost:4000') 进行注册/登录,然后即可使用AI教辅、题库、签到等功能。AI对话功能会通过MCP服务器 Orchestrator (main.py) 与DeepSeek模型交互,并调用相应的MCP服务器提供的工具。
信息
分类
生产力应用