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 для расширенного кэширования в памяти
Установка
Клонируйте репозиторий:
git clone https://github.com/yourusername/mcp_server.git cd mcp_serverСоздайте виртуальную среду:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateУстановите зависимости Python:
pip install -r requirements.txtУстановите зависимости Node.js (для оптимизированной системы скрапинга):
npm installУстановите Chrome/Chromium для Pyppeteer (если еще не установлен)
Использование
Работает локально
Запустите сервер с помощью предоставленного пакетного файла (Windows):
run_local.batИли вручную с помощью uvicorn:
uvicorn main:app --reload --host 0.0.0.0 --port 8000Доступ к API по адресу
http://localhost:8000Создайте MCP, отправив запрос GET на:
GET /generate_mcp?topic=your_topicПроверьте документацию API по адресу
http://localhost:8000/docs
URL-адрес производства
Производственный сервер доступен по адресу:
https://reunemacacada.onrender.comВсе конечные точки, описанные в этом файле README, доступны как по локальным, так и по производственным URL-адресам.
Тестирование системы кэширования
Сделайте первый запрос на генерацию MCP (это заполнит кэш):
GET /generate_mcp?topic=python&num_nodes=15&language=ptСделайте второй запрос с теми же параметрами (он должен использовать кэш):
GET /generate_mcp?topic=python&num_nodes=15&language=ptВторой запрос должен быть значительно быстрее, поскольку результат будет извлечен из кэша.
Документация
Подробная документация доступна в папке docs :
Справочник API — Подробная документация API
Справочник конечных точек — полный справочник всех конечных точек
Интеграция Flutter — руководство по интеграции с приложениями Flutter
Система асинхронных задач — документация по системе асинхронных задач
Улучшения производительности — обзор оптимизаций производительности
Система кэширования - Документация по системе кэширования
Оптимизация веб-скрапинга - Подробности об оптимизации веб-скрапинга
Конечные точки 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}- Запустить асинхронную генерацию MCPGET /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