教育内容生成服务器

一个基于本地大型语言模型的教育内容生成服务器,提供多选题、教案和闪卡生成功能,适用于教育辅助工具。

  • by YOGASairam
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 yogasairam/educhain-mcp-server-final

使用说明

AI实习生分配:EduChain MCP服务器

此存储库包含AI实习生分配的完整实现。该项目是一个MCP(模型上下文协议)服务器,它利用 educhain 图书馆使用本地托管的大型语言模型(LLM)来生成教育内容。此服务器旨在将其功能作为MCP主机(特别是Claude Desktop)的工具和资源公开。

项目概述

这项任务的主要目标是构建一个能够按需提供教育内容的MCP服务器。服务器公开了几个工具和资源,可以由像Claude Desktop这样的主机应用程序访问。所有AI内容生成都是在本地使用 Mistral-7B-Instruct-v0.2-GGUF 模型,确保隐私和离线功能。


特性

服务器提供三种不同的教育功能:

  1. 多项选择题(MCQ)生成器 (generate_mcq_questions_tool)

    • 就任何给定主题生成指定数量的多项选择题。
    • 每个问题通常包括问题文本、四个选项、正确答案和详细解释。
  2. 课程计划生成器 (generate_lesson_plan_resource)

    • 为指定主题创建结构化的课程计划。
    • 输出通常包括标题、学习目标和活动列表。
  3. 闪卡生成器 (generate_flashcards_tool)-(奖励功能)

    • 为给定主题生成一组抽认卡(正面和背面)。

技术实施和架构

这个项目使用官方的模型上下文协议(MCP)Python SDK实现了一个MCP服务器,具体来说 FastMCP,通过以下方式与Claude Desktop通信 stdio (标准输入/输出)传输机制。核心内容生成逻辑由 educhain Python库,与本地 llama-cpp-python 实例运行 Mistral-77B-Instruct-v0.2-GGUF 模型。

关键部件:

  • educhain 图书馆整合: 这 educhain 图书馆 QnAEngine 和 ContentEngine 用于内容生成。本地LLM传递给 educhain 通过 LLMConfig 以确保所有内容生成都利用本地模型。
  • llama-cpp-python 对于本地LLM: 此库为以下对象提供Python绑定 llama.cpp,在本地硬件(CPU,如果配置了GPU,还可以选择GPU)上使用GGUF模型进行高效推理。这 Mistral-7B-Instruct-v0.2-Q4_K_M.gguf 模型用于内容生成。
  • FastMCP 服务器(MCP Python SDK): 这是MCP服务器的核心。它处理与Claude Desktop的通信协议。使用注册工具和资源 @mcp.tool() 和 @mcp.resource() 装饰器,自动生成其模式。
  • STDIO传输: Claude Desktop被配置为生成此服务器,并通过标准输入/输出流与之通信。这使得Claude Desktop能够有效地管理服务器进程并捕获其日志。
  • 结构化输出处理: EduChain的引擎返回Pydantic模型,然后使用 .model_dump() 然后由MCP服务器作为JSON响应发送。这确保了与客户期望的兼容性。

架构流程:

  1. 服务器启动: 当Claude Desktop需要使用工具时,它会自动生成 src/mcp_server.py.
  2. 模型加载: src/services.py 初始化 llama-cpp-python 实例(将GGUF模型加载到内存中一次),然后创建一个 educhain.Educhain 客户端,配置为使用此本地LLM。
  3. 工具/资源发现: Claude Desktop通过STDIO查询生成的服务器,以获取可用工具和资源的定义(由提供 FastMCP 从装饰功能来看 src/mcp_server.py).
  4. 工具/资源执行: 当用户提示Claude Desktop使用工具时(例如,“生成课程计划…”),Claude会将请求发送到生成的服务器。
  5. 内容生成: 相应的装饰功能 src/mcp_server.py 联系相关人员 educhain 发动机功能(qna_engine_instance.generate_questions 或 content_engine_instance.generate_lesson_plan/generate_flashcards).
  6. 答复: 生成的内容(作为字典)由 FastMCP 服务器返回到Claude Desktop,然后Claude Desktop为用户格式化。
  7. 登录中: 所有服务器端打印语句都指向 sys.stderr 由Claude Desktop捕获并写入其内部日志文件(mcp-server-educhain_server.log).

建筑合理性:

该架构直接满足了任务的要求:

  • 本地LLM集成: 通过以下方式实现 llama-cpp-python 和 educhains LLMConfig.
  • MCP服务器: 使用 FastMCP SDK。
  • 工具和资源暴露: 根据MCP规范定义和公开。
  • 稳健性: 通过遵守预期 stdio 运输和利用结构化 FastMCP 装饰器,集成更稳定,符合Claude Desktop交互的官方指导方针。

设置和使用说明

按照以下步骤在本地启动并运行EduChain MCP服务器。

1.克隆存储库

首先,将此项目存储库克隆到本地计算机:

git clone [https://github.com/YOGASairam/claude_educhain_mcp_server.git](https://github.com/YOGASairam/claude_educhain_mcp_server.git)
cd claude_educhain_mcp_server

2.下载本地LLM

下载 Mistral-7B-Instruct-v0.2-Q4_K_M.gguf 模型文件,大约4.37GB。

  • **下载链接: https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF/blob/main/mistral-7b-instruct-v0.2.Q4_K_M.gguf 下载后,放置此 .gguf 文件进入 models/.gguf/ 克隆项目中的目录。 确保 MODEL_PATH 在……里面 src/config.py correctly 指向此文件

3.安装EduChain库

这 educhain 出于开发目的,需要从源代码安装库。

运行以下命令导航到源文件夹,在可编辑模式下安装它,并返回到项目根目录:

cd educhain-main/educhain-main
pip install -e .
cd ../..

4.安装项目依赖项

安装所有必要的Python包。建议进行全新安装,以避免潜在冲突。

pip uninstall llama-cpp-python -y
pip uninstall pandas -y  # Uninstall pandas to prevent numpy conflicts
pip uninstall numpy -y   # Uninstall numpy to prevent version conflicts
pip cache purge

pip install numpy==1.26.4  # Install a compatible numpy version first
pip install -r requirements.txt --force-reinstall --no-cache-dir

⚠️ 注: 如果 pip install -r requirements.txt 抛出错误 uvicorn[standard],尝试单独安装:

pip install uvicorn

5.配置克劳德桌面

Claude Desktop必须配置为连接到您的MCP服务器。

找到配置文件:

C:\Users\<YourUsername>\AppData\Roaming\Claude\claude_desktop_config.json

您还可以通过以下方式访问它:

  • 克劳德桌面→ 设置→ 开发人员选项卡→ 编辑配置

更新文件内容:

用以下内容替换整个内容(更新 cwd 实际项目文件夹的路径):

{
  "mcpServers": {
    "educhain_server": {
      "command": "python",
      "args": [
        "-m",
        "src.mcp_server"
      ],
      "cwd": "C:\\Users\\SriHari\\OneDrive\\Desktop\\claude_educhain_mcp_server"
    }
  }
}

保存并关闭文件。


6.重新启动克劳德桌面

完全关闭Claude Desktop,然后重新打开。这可确保加载新配置并识别您的MCP服务器。


7.使用Claude Desktop测试服务器

重新启动后,Claude Desktop应根据需要自动启动MCP服务器。

打开一个新聊天室,然后尝试以下命令:

  • Generate 5 multiple-choice questions on Python loops.
  • Provide a lesson plan for teaching algebra.
  • Generate 3 flashcards on Calculus concepts.

✅ 系统可能会提示您允许执行工具——请务必授予权限。


8.访问服务器日志

Claude Desktop通过以下路径从MCP服务器捕获日志:

C:\Users\<YourUsername>\AppData\Local\Temp\Claude\mcp-server-educhain_server.log

此文件包含来自的所有日志 src/mcp_server.py,包括 print() 以及调试消息。