教育内容生成服务器

一个基于Google Gemini的MCP服务器,用于生成多项选择题、闪卡和教案等教育内容。

  • by Anudeep-CodeSpace
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 anudeep-codespace/educhain_mcp_server

使用说明

基于Educhain的MCP服务器(通过谷歌Gemini)

本项目设计了一个MCP服务器,可以处理各种功能,如:生成MCQ、抽认卡、课程计划等。,

结构

Claude Desktop(Front end) <-> MCP Server <-> LLM (google Gemini)

安装和初始化

推荐Python版本:3.10

软件包管理器: 紫外线 (推荐)或 点

步骤0:克隆此存储库

git clone Anudeep-CodeSpace/educhain_mcp_server.git
cd educhain_mcp_server

第一步:安装uv

pip install uv # universal
brew install uv # mac os only

步骤2:初始化项目

uv init # initialize an already existing project

步骤3:添加所需的包

# They contain all the required sub -packages in them
uv add "educhain" "mcp[cli]"

步骤4:添加您的Google gemini api密钥

# inside .env file
GOOGLE_API_KEY=<Your Google api key without quotes>

步骤5:调试MCP服务器

uv run mcp dev main.py

它产生了一个 令牌化代理服务器 在

http://localhost:6274/?PROXY_API_TOKEN=<proxy token>

粘贴它并在浏览器中导航到链接。 单击“连接”,您可以在该站点中调试您的工具、资源和提示。

步骤6:安装Claude Desktop应用程序

安装 克劳德桌面应用程序 并使用您的帐户登录(可以是新帐户)。

步骤7:将MCP服务器添加到Claude Desktop应用程序

在git repo文件夹中运行

# Adds the MCP Server to Claude Desktop client
uv run mcp install main.py

之后你的 claude_desktop_config json 应该看起来像这样:

{
  "mcpServers": {
    "Educhain - MCP server": {
      "command": "absolute/path/to/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "absolute/path/to/main/main.py"
      ]
    }
  }
}

最后一步:检查日志中是否有任何差异

所有日志位于:

%APPDATA%\\Claude\\logs\\mcp.log # in windows
~/Library/Logs/Claude/mcp.log # in macOS

元数据

获取信息(about://info)资源列出了此服务器提供的所有工具和资源

本项目的主要特征

模块化: 将服务器初始化(server.py)、路由处理(handler.py)和主入口点(main.py)分开,使代码库干净、可扩展且易于维护。

清除架构定义: 在模式目录中使用Pydantic模型。它确保了强大的数据验证、清晰的API合同以及用于请求和响应的自文档代码。

依赖注入: 将mcp服务器实例传递给处理程序函数(handle_resources(mcp))是一种很好的做法。它避免了循环依赖和全局状态问题。

装饰品的使用: @mcp.resource和@mcp.tool装饰器提供了一种干净且声明性的方式来定义服务器的功能。

已知问题

Claude Desktop客户端无法直接访问资源模板(Beta阶段)

例如,Claude Desktop客户端无法访问 发电租赁计划 资源(uri = lessonplan://{topic})不能直接使用,因为它在 测试版 stage不支持动态资源uri!!!

所以 Generate a lesson plan to teach algebra 无法调用 发电租赁计划 工具!

需要外部LLM来生成内容

克劳德是一个强大的llm,不能直接根据我们的工具和资源生成内容!(因此我使用Gemini)

主要贡献者

我自己(Anudeep-CodeSpace),Chatgpt,困惑AI,双子座(免费法学硕士)

备注

Node.js(LTS) 调试需要版本 不建议使用pyenv(那浪费了我很多时间😭)