教育内容生成服务器

EduChain是一个基于Flask和Google Gemini AI的教育内容生成与检索服务器,支持动态生成课程计划和多项选择题,并提供预定义的MCQ检索功能。

  • by Ashok54942
  • 本地部署
  • 更新于
在 GitHub 查看 ashok54942/mcp-server

使用说明

EduChain:基于人工智能的教育内容服务器(符合MCP标准)

该项目展示了一个由Flask和谷歌Gemini AI构建的人工智能服务器,旨在生成和检索教育内容。它遵循多代理协作协议(MCP)的原则,允许与Claude Desktop等代理主机集成。

项目概述

EduChain提供以下核心功能:

  1. AI驱动的课程计划生成: 为任何给定主题动态创建全面的课程计划。
  2. 人工智能驱动的多项选择题(MCQ)生成: 根据需要为指定主题生成MCQ。
  3. 预定义MCQ检索: 从静态JSON文件中提供一组精心策划的多项选择题,并可选择基于主题的过滤。

该服务器使用Python和Flask构建,LangChain用于AI编排,Pydantic用于数据验证。

任务分解和完成

此存储库涵盖了以下任务的完成:

任务1:建立EduChain环境

  • 说明: 安装必要的库和初始配置,以使用示例主题生成教育内容。
  • 完成: 这 generate_content.py 脚本演示了使用Gemini API的初始设置和内容生成。

任务2:使用EduChain构建MCP服务器

  • 说明: 创建基于Flask的MCP服务器,公开AI驱动的工具(MCQ生成)和资源(课程计划生成、预定义的MCQ检索)。
  • 完成: 这 educhain_mcp_server.py 该文件实现了带有端点的Flask服务器 /generate_lesson_plan, /generate_mcqs,以及 /get_predefined_mcqsThe predefined_mcqs.json 该文件保存静态MCQ数据。

任务3:使用Claude Desktop测试MCP服务器

  • 说明: 配置Claude Desktop以连接到MCP服务器,并通过命令验证内容检索。
  • 完成: 这 claude_desktop_config.json (假设,因为实际配置取决于Claude Desktop的内部结构)概述了如何将服务器的端点注册为外部工具/资源。这 mcp_server_test_results.txt 该文件包含示例命令和预期响应,模拟与MCP主机的交互。

存储库内容

  • educhain_mcp_server.py:充当MCP服务器的主Flask应用程序。
  • generate_content.py:演示基本AI内容生成的初始脚本。
  • generate_python_mcqs.py:一个客户端脚本,用于以编程方式从 educhain_mcp_server.py.
  • predefined_mcqs.json:一个JSON文件,其中包含跨不同主题的20个预先编写的MCQ示例集。
  • .env.example:环境变量的示例文件(重命名为 .env 并填写您的API密钥)。
  • claude_desktop_config.json:一个假设的配置文件,演示了Claude Desktop如何 会 配置为使用此服务器。 注意:实际位置和确切结构可能因您的Claude Desktop安装而异。
  • mcp_server_test_results.txt:详细说明测试命令及其相应的服务器响应以供验证的文档。

设置和运行

先决条件

  • Python 3.8+
  • pip (Python包安装程序)
  • Google Gemini API密钥(从 谷歌人工智能工作室)
  • Claude Desktop(用于任务3测试)

安装

  1. 克隆存储库:
    git clone <YOUR_REPOSITORY_URL>
    cd educhain
    
  2. 创建Python虚拟环境(推荐):
    python -m venv venv
    
  3. 激活虚拟环境:
    • 窗户: .\venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate
  4. 安装依赖关系:
    pip install Flask python-dotenv langchain-google-genai langchain pydantic requests
    
  5. 配置API密钥:
    • 重命名 .env.example 向 .env.
    • 打开 .env 并替换 YOUR_GEMINI_API_KEY 使用实际的Google Gemini API密钥:
      GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
      

运行EduChain MCP服务器

  1. 确保您的虚拟环境已激活。
  2. 运行服务器:
    python educhain_mcp_server.py
    
    保持此终端窗口打开并运行。服务器将可在以下位置访问 http://127.0.0.1:5000/.

测试服务器(不带Claude Desktop)

打开A 新 终端窗口,激活您的虚拟环境,并使用 curl 或提供的Python脚本:

  • 查看主页: 打开 http://127.0.0.1:5000/ 在您的网络浏览器中。
  • 制定课程计划:
    curl -X POST -H "Content-Type: application/json" -d "{\"topic\": \"Introduction to Quantum Physics\"}" [http://127.0.0.1:5000/generate_lesson_plan](http://127.0.0.1:5000/generate_lesson_plan)
    
  • 生成MCQ:
    curl -X POST -H "Content-Type: application/json" -d "{\"topic\": \"Data Structures in Python\", \"num_questions\": 5}" [http://127.0.0.1:5000/generate_mcqs](http://127.0.0.1:5000/generate_mcqs)
    
  • 获取预定义MCQ(全部):
    curl [http://127.0.0.1:5000/get_predefined_mcqs](http://127.0.0.1:5000/get_predefined_mcqs)
    
  • 获取预定义MCQ(按主题筛选):
    curl [http://127.0.0.1:5000/get_predefined_mcqs?subject=Biology](http://127.0.0.1:5000/get_predefined_mcqs?subject=Biology)
    
  • 跑 generate_python_mcqs.py:
    python generate_python_mcqs.py
    
    这将产生 python_programming_basics_mcqs.json.

与Claude Desktop集成

  1. 找到Claude桌面配置:
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 如果文件不存在,则创建该文件。
  2. 添加服务器配置: 从复制内容 claude_desktop_config.json 将此存储库中的文件粘贴到Claude Desktop的配置文件中。
  3. 重新启动克劳德桌面: 确保完全退出Claude Desktop,然后重新启动以加载新配置。
  4. 在Claude Desktop中发出命令:
    • Generate 5 multiple-choice questions on Python loops.
    • Provide a lesson plan for teaching algebra.
    • Get predefined MCQs for Geography.
    • 观察克劳德的反应,并检查服务器终端的日志。