MCP Server

by cabrit0

Integrations

  • Uses the DuckDuckGo Search API to find relevant resources for generating learning paths

  • Built with FastAPI to provide a robust API framework for generating Master Content Plans

  • Provides integration guidance for Flutter applications to consume the generated MCPs

MCP-сервер

Сервер, который генерирует планы основного контента (MCP) на основе тем. Сервер агрегирует ресурсы из сети и организует их в структурированные пути обучения.

Функции

  • Создавайте пути обучения по любой теме (не только по технологическим темам)
  • Найдите соответствующие ресурсы с помощью веб-поиска и скрапинга
  • Организуйте ресурсы в логическую последовательность с настраиваемым количеством узлов.
  • Поддержка нескольких языков с упором на португальский
  • Оптимизация производительности для бесплатного уровня Render
  • Система кэширования для более быстрых ответов
  • Возвращает стандартизированную структуру JSON для использования клиентскими приложениями.
  • НОВОЕ : Фильтрация по релевантности ресурсов на основе TF-IDF для обеспечения соответствия ресурсов запрошенной теме
  • НОВОЕ : Стратегическое распределение тестов по деревьям обучения для сбалансированного обучения
  • НОВОЕ : интеграция с YouTube для включения соответствующих видео в учебные планы
  • НОВОЕ : Система категорий для создания более специфичного контента для различных типов тем.
  • НОВОЕ : Асинхронная система задач с обратной связью о ходе выполнения в реальном времени для улучшения пользовательского опыта и предотвращения простоев
  • НОВОЕ : Улучшенная система кэширования для повышения производительности и сокращения времени отклика
  • НОВОЕ : Оптимизированные методы веб-скрейпинга для лучшего использования ресурсов
  • НОВОЕ : Адаптивная система парсинга, которая автоматически выбирает наиболее эффективный метод для каждого веб-сайта.
  • НОВОЕ : пул экземпляров Puppeteer для эффективного повторного использования браузера и снижения потребления памяти

Технологический стек

  • Питон 3.9+
  • FastAPI
  • Pyppeteer для веб-скрапинга с использованием JavaScript
  • Pyppeteer-скрытность для избежания обнаружения во время веб-скрапинга
  • Пул экземпляров Puppeteer для эффективного повторного использования браузера
  • API поиска DuckDuckGo
  • 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 # On Windows: venv\Scripts\activate
  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. Доступ к API по адресу http://localhost:8000
  3. Создайте MCP, отправив запрос GET на:
    GET /generate_mcp?topic=your_topic
  4. Проверьте документацию API по адресу http://localhost:8000/docs

URL-адрес производства

Производственный сервер доступен по адресу:

https://reunemacacada.onrender.com

Все конечные точки, описанные в этом файле README, доступны как по локальным, так и по производственным URL-адресам.

Тестирование системы кэширования

  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 (необязательно): Категория для темы (например, «технологии», «финансы», «здравоохранение»). Если не указано, она будет определена автоматически.
  • 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 Server включает в себя несколько оптимизаций производительности:

  • Система кэширования : результаты кэшируются для улучшения времени отклика при повторных запросах.
  • Асинхронная система задач : длительные операции обрабатываются асинхронно.
  • Фильтрация ресурсов : фильтрация на основе TF-IDF для выбора наиболее релевантных ресурсов.
  • Оптимизированный веб-скрапинг : эффективные методы веб-скрапинга для снижения использования ресурсов
  • Адаптивная система парсинга : автоматически выбирает наиболее эффективный метод парсинга для каждого веб-сайта.
  • Пул экземпляров Puppeteer : повторно использует экземпляры браузера для сокращения использования памяти и времени запуска.
  • Кэш методов домена : запоминает, какой метод очистки лучше всего подходит для каждого домена.
  • Блокировка ресурсов : блокирует ненужные ресурсы (изображения, таблицы стилей, шрифты) во время сканирования.

Рост производительности

  • Сокращение времени ответа для тем, уже находящихся в кэше, на 60–80 %
  • Сокращение времени ответа на новые темы на 30–50 %
  • 40-60% сокращение использования памяти при веб-скрапинге
  • Увеличение пропускной способности в 3–5 раз для одновременных запросов

Развертывание

Сервер может быть развернут на различных платформах:

Использование Докера

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

Развертывание на Render, Fly.io или других платформах

Следуйте инструкциям по развертыванию контейнера Docker или приложения Python для конкретной платформы.

Лицензия

Запатентованное программное обеспечение - Все права защищены

Это программное обеспечение является собственностью и конфиденциально. Несанкционированное копирование, распространение, изменение, публичный показ или публичное исполнение этого программного обеспечения строго запрещено. Это программное обеспечение предназначено для использования только в рамках платной модели подписки.

© 2024 РеунеМакакада. Все права защищены.

Последний коммит: v1.1.2 — исправление проблем с ограничением скорости DuckDuckGo и Puppeteer

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер, который генерирует основные планы контента (MCP) путем агрегации веб-ресурсов и организации их в структурированные пути обучения по любой теме.

  1. Функции
    1. Технологический стек
      1. Установка
        1. Использование
          1. Работает локально
          2. URL-адрес производства
          3. Тестирование системы кэширования
        2. Документация
          1. Конечные точки API
            1. Примеры
              1. Базовое использование (португальский)
              2. Пользовательское количество узлов
              3. английский язык
              4. Укажите категорию вручную
              5. Полная настройка
              6. Структура дерева управления
              7. Асинхронная генерация
              8. Проверить статус задачи
              9. Очистить кэш
              10. Очистить определенный кэш
            2. Улучшения производительности
              1. Рост производительности
            3. Развертывание
              1. Использование Докера
              2. Развертывание на Render, Fly.io или других платформах
            4. Лицензия

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                A powerful MCP server for fetching and transforming web content into various formats (HTML, JSON, Markdown, Plain Text) with ease.
                Last updated -
                4
                146
                12
                TypeScript
                MIT License
                • Apple
                • Linux
              • A
                security
                A
                license
                A
                quality
                An MCP server for fetching and transforming web content into various formats.
                Last updated -
                4
                4
                Python
                MIT License
                • Apple
              • A
                security
                F
                license
                A
                quality
                An MCP (Model Context Protocol) server that provides Google search capabilities and webpage content analysis tools. This server enables AI models to perform Google searches and analyze webpage content programmatically.
                Last updated -
                3
                46
                41
                TypeScript
              • -
                security
                F
                license
                -
                quality
                An MCP server that provides tools and resources for managing a coding project's todo list, allowing users to view, add, update, and delete todo items with details like priority, status, and tags.
                Last updated -
                1
                Python

              View all related MCP servers

              ID: q960eyj3xm