c

cabrit0

@cabrit0/mcp_server_reuneMacacada
0 Stars 306 次浏览 cabrit0 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP 服务器

一个基于主题生成主内容计划(MCP)的服务器。该服务器从网络上聚合资源,并将它们组织成结构化的学习路径。

功能

  • 为任何主题(不仅仅是技术主题)生成学习路径
  • 使用网络搜索和抓取找到相关资源
  • 将资源按逻辑顺序组织,节点数量可自定义
  • 支持多种语言,重点支持葡萄牙语
  • 针对 Render 免费层级的性能优化
  • 缓存系统以加快响应速度
  • 返回标准化的 JSON 结构供客户端应用程序使用
  • 新功能:基于 TF-IDF 的资源相关性过滤,确保资源与请求的主题匹配
  • 新功能:在学习树中战略性地分发测验,以实现平衡的学习体验
  • 新功能:YouTube 集成,在学习路径中包含相关视频
  • 新功能:类别系统,为不同类型的主题生成更具体的内容
  • 新功能:带有实时进度反馈的异步任务系统,以改善用户体验并避免超时
  • 新功能:增强的缓存系统,提高性能和响应速度
  • 新功能:优化的网页抓取技术,更好地利用资源
  • 新功能:自适应抓取系统,自动选择每个网站最有效的方法
  • 新功能:Puppeteer 实例池,高效重用浏览器并减少内存使用

技术栈

  • Python 3.9+
  • FastAPI
  • Pyppeteer 用于处理 JavaScript 密集型网页抓取
  • Pyppeteer-stealth 用于在网页抓取过程中避免被检测
  • Puppeteer 实例池,用于高效重用浏览器
  • DuckDuckGo 搜索 API
  • BeautifulSoup 用于 HTML 解析
  • scikit-learn 用于基于 TF-IDF 的资源相关性过滤
  • yt-dlp 用于 YouTube 视频搜索和元数据提取
  • Redis(可选)用于分布式缓存
  • msgpack 用于高效的数据序列化
  • cachetools 用于高级的内存缓存

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/mcp_server.git
    cd mcp_server

  2. 创建虚拟环境:

    python -m venv venv
    source venv/bin/activate # 在 Windows 上: venvScriptsactivate

  3. 安装 Python 依赖项:

    pip install -r requirements.txt

  4. 安装 Node.js 依赖项(针对优化的抓取系统):

    npm install

  5. 安装 Chrome/Chromium 用于 Pyppeteer(如果尚未安装)

使用

本地运行

  1. 使用提供的批处理文件启动服务器(Windows):

    run_local.bat

    或者手动使用 uvicorn 启动:

    uvicorn main:app --reload --host 0.0.0.0 --port 8000

  2. 访问 http://localhost:8000 处的 API

  3. 通过发送 GET 请求来生成 MCP:

    GET /generate_mcp?topic=your_topic

  4. 查看 API 文档 http://localhost:8000/docs

生产环境 URL

生产服务器位于:

https://reunemacacada.onrender.com

本 README 中记录的所有端点在本地和生产环境中都可用。

测试缓存系统

  1. 发送第一个请求以生成 MCP(这将填充缓存):

    GET /generate_mcp?topic=python&num_nodes=15&language=pt

  2. 使用相同的参数发送第二个请求(这应该会使用缓存):

    GET /generate_mcp?topic=python&num_nodes=15&language=pt

    第二个请求应该显著更快,因为结果将从缓存中检索。

文档

详细文档可以在 docs 文件夹中找到:

API 端点

  • GET /health - 健康检查端点
  • GET /generate_mcp?topic={topic}&max_resources={max_resources}&num_nodes={num_nodes}&min_width={min_width}&max_width={max_width}&min_height={min_height}&max_height={max_height}&language={language}&category={category} - 为指定主题同步生成MCP
    • topic (必需): 生成MCP的主题(至少3个字符)
    • max_resources (可选): 要包含的最大资源数量(默认:15,最小值:5,最大值:30)
    • num_nodes (可选): 学习路径中要包含的节点数(默认:15,最小值:10,最大值:30)
    • min_width (可选): 树的第一层节点的最小宽度(默认:3,最小值:2,最大值:10)
    • max_width (可选): 树在任何层级的最大宽度(默认:5,最小值:3,最大值:15)
    • min_height (可选): 树的最小高度(深度)(默认:3,最小值:2,最大值:8)
    • max_height (可选): 树的最大高度(深度)(默认:7,最小值:3,最大值:12)
    • language (可选): 资源的语言(默认:"pt")
    • category (可选): 主题类别(例如:"technology", "finance", "health")。如果未提供,则会自动检测。
  • POST /generate_mcp_async?topic={topic}&max_resources={max_resources}&num_nodes={num_nodes}&min_width={min_width}&max_width={max_width}&min_height={min_height}&max_height={max_height}&language={language}&category={category} - 开始异步生成MCP
  • GET /status/{task_id} - 检查异步任务的状态
  • GET /tasks - 列出所有任务
  • POST /clear_cache?pattern={pattern}&clear_domain_cache={clear_domain_cache} - 根据模式清除缓存
    • pattern (可选): 匹配缓存键的模式(默认:"*" 表示全部)
    • clear_domain_cache (可选): 是否同时清除域方法缓存(默认:false)
  • GET /cache_stats - 获取关于缓存的统计信息,包括域方法缓存的信息

示例

基本用法(葡萄牙语)

GET /generate_mcp?topic=python

自定义节点数量

GET /generate_mcp?topic=machine+learning&num_nodes=20

英语语言

GET /generate_mcp?topic=javascript&language=en

手动指定类别

GET /generate_mcp?topic=python&category=technology

完全自定义

GET /generate_mcp?topic=história+do+brasil&max_resources=20&num_nodes=25&min_width=4&max_width=8&min_height=4&max_height=8&language=pt

控制树结构

GET /generate_mcp?topic=machine+learning&min_width=2&max_width=4&min_height=5&max_height=10

异步生成

POST /generate_mcp_async?topic=inteligência+artificial&category=technology

检查任务状态

GET /status/550e8400-e29b-41d4-a716-446655440000

清除缓存

POST /clear_cache

清除特定缓存

POST /clear_cache?pattern=mcp:*

性能改进

MCP 服务器包括以下几项性能优化:

  • 缓存系统:结果被缓存以提高重复查询的响应时间
  • 异步任务系统:长时间运行的操作通过异步处理
  • 资源过滤:基于TF-IDF的过滤以选择最相关的资源
  • 优化的网页抓取:高效的网页抓取技术以减少资源使用
  • 自适应抓取系统:自动选择每个网站最有效的抓取方法
  • Puppeteer 实例池:重用浏览器实例以减少内存使用和启动时间
  • 域方法缓存:记住每个域最适合的抓取方法- 资源阻塞:在抓取过程中阻止不必要的资源(图片、样式表、字体)

性能提升

  • 对于已经在缓存中的主题,响应时间减少60-80%
  • 对于新主题,响应时间减少30-50%
  • 在网页抓取过程中,内存使用量减少40-60%
  • 同时请求的吞吐量增加3-5倍

部署

服务器可以部署到各种平台:

使用 Docker

docker build -t mcp-server .
docker run -p 8080:8080 mcp-server

部署到 Render、Fly.io 或其他平台

请遵循特定平台的说明来部署 Docker 容器或 Python 应用程序。

许可证

专有软件 - 保留所有权利

本软件是专有的和机密的。未经授权复制、分发、修改、公开展示或公开表演本软件是严格禁止的。本软件仅限于付费订阅模式下使用。

© 2024 ReuneMacacada. 保留所有权利。

最近提交:v1.1.2 - 修复了与 DuckDuckGo 速率限制和 Puppeteer 相关的问题

相关 MCP 服务