Skip to main content
Glama

MCP-сервер

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

Функции

  • Создавайте пути обучения по любой теме (не только по технологическим темам)

  • Найдите соответствующие ресурсы с помощью веб-поиска и скрапинга

  • Организуйте ресурсы в логическую последовательность с настраиваемым количеством узлов.

  • Поддержка нескольких языков с упором на португальский

  • Оптимизация производительности для бесплатного уровня Render

  • Система кэширования для более быстрых ответов

  • Возвращает стандартизированную структуру JSON для использования клиентскими приложениями.

  • НОВОЕ : Фильтрация по релевантности ресурсов на основе TF-IDF для обеспечения соответствия ресурсов запрошенной теме

  • НОВОЕ : Стратегическое распределение тестов по деревьям обучения для сбалансированного обучения

  • НОВОЕ : интеграция с YouTube для включения соответствующих видео в учебные планы

  • НОВОЕ : Система категорий для создания более специфичного контента для различных типов тем.

  • НОВОЕ : Асинхронная система задач с обратной связью о ходе выполнения в реальном времени для улучшения пользовательского опыта и предотвращения простоев

  • НОВОЕ : Улучшенная система кэширования для повышения производительности и сокращения времени отклика

  • НОВОЕ : Оптимизированные методы веб-скрейпинга для лучшего использования ресурсов

  • НОВОЕ : Адаптивная система парсинга, которая автоматически выбирает наиболее эффективный метод для каждого веб-сайта.

  • НОВОЕ : пул экземпляров Puppeteer для эффективного повторного использования браузера и снижения потребления памяти

Related MCP server: MCP Maker

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

  • Питон 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cabrit0/mcp_server_reuneMacacada'

If you have feedback or need assistance with the MCP directory API, please join our Discord server