AI实习生分配:EduChain MCP服务器
此存储库包含AI实习生分配的完整实现。该项目是一个MCP(模型上下文协议)服务器,它利用 educhain 图书馆使用本地托管的大型语言模型(LLM)来生成教育内容。此服务器旨在将其功能作为MCP主机(特别是Claude Desktop)的工具和资源公开。
项目概述
这项任务的主要目标是构建一个能够按需提供教育内容的MCP服务器。服务器公开了几个工具和资源,可以由像Claude Desktop这样的主机应用程序访问。所有AI内容生成都是在本地使用 Mistral-7B-Instruct-v0.2-GGUF 模型,确保隐私和离线功能。
______________________________________________________________________
特性
服务器提供三种不同的教育功能:
- 多项选择题(MCQ)生成器 (
generate_mcq_questions_tool)
- 就任何给定主题生成指定数量的多项选择题。 - 每个问题通常包括问题文本、四个选项、正确答案和详细解释。
- 课程计划生成器 (
generate_lesson_plan_resource)
- 为指定主题创建结构化的课程计划。 - 输出通常包括标题、学习目标和活动列表。
- 闪卡生成器 (
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响应发送。这确保了与客户期望的兼容性。
架构流程:
- 服务器启动: 当Claude Desktop需要使用工具时,它会自动生成
src/mcp_server.py. - 模型加载:
src/services.py初始化llama-cpp-python实例(将GGUF模型加载到内存中一次),然后创建一个educhain.Educhain客户端,配置为使用此本地LLM。 - 工具/资源发现: Claude Desktop通过STDIO查询生成的服务器,以获取可用工具和资源的定义(由提供
FastMCP从装饰功能来看src/mcp_server.py). - 工具/资源执行: 当用户提示Claude Desktop使用工具时(例如,“生成课程计划…”),Claude会将请求发送到生成的服务器。
- 内容生成: 相应的装饰功能
src/mcp_server.py联系相关人员educhain发动机功能(qna_engine_instance.generate_questions或content_engine_instance.generate_lesson_plan/generate_flashcards). - 答复: 生成的内容(作为字典)由
FastMCP服务器返回到Claude Desktop,然后Claude Desktop为用户格式化。 - 登录中: 所有服务器端打印语句都指向
sys.stderr由Claude Desktop捕获并写入其内部日志文件(mcp-server-educhain_server.log).
建筑合理性:
该架构直接满足了任务的要求:
- 本地LLM集成: 通过以下方式实现
llama-cpp-python和educhainsLLMConfig. - MCP服务器: 使用
FastMCPSDK。 - 工具和资源暴露: 根据MCP规范定义和公开。
- 稳健性: 通过遵守预期
stdio运输和利用结构化FastMCP装饰器,集成更稳定,符合Claude Desktop交互的官方指导方针。
______________________________________________________________________
设置和使用说明
按照以下步骤在本地启动并运行EduChain MCP服务器。
1.克隆存储库
首先,将此项目存储库克隆到本地计算机:
git clone
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\\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\\AppData\Local\Temp\Claude\mcp-server-educhain_server.log此文件包含来自的所有日志 src/mcp_server.py,包括 print() 以及调试消息。
