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-Server

Ein Server, der themenbasierte Master Content Plans (MCPs) generiert. Der Server aggregiert Ressourcen aus dem Web und organisiert sie in strukturierten Lernpfaden.

Merkmale

  • Erstellen Sie Lernpfade für beliebige Themen (nicht nur Technologiethemen)
  • Finden Sie relevante Ressourcen mithilfe der Websuche und des Scrapings
  • Organisieren Sie Ressourcen in einer logischen Reihenfolge mit anpassbarer Knotenanzahl
  • Unterstützung mehrerer Sprachen mit Schwerpunkt auf Portugiesisch
  • Leistungsoptimierungen für die kostenlose Stufe von Render
  • Caching-System für schnellere Antworten
  • Gibt eine standardisierte JSON-Struktur zur Verwendung durch Clientanwendungen zurück
  • NEU : TF-IDF-basierte Ressourcenrelevanzfilterung, um sicherzustellen, dass die Ressourcen zum angeforderten Thema passen
  • NEU : Strategische Quizverteilung über Lernbäume für ausgewogene Lernerlebnisse
  • NEU : YouTube-Integration zum Einbinden relevanter Videos in Lernpfade
  • NEU : Kategoriensystem zur Generierung spezifischerer Inhalte für verschiedene Thementypen
  • NEU : Asynchrones Aufgabensystem mit Echtzeit-Fortschrittsfeedback zur Verbesserung der Benutzererfahrung und Vermeidung von Timeouts
  • NEU : Verbessertes Caching-System für verbesserte Leistung und schnellere Reaktionszeiten
  • NEU : Optimierte Web-Scraping-Techniken für eine bessere Ressourcennutzung
  • NEU : Adaptives Scraping-System, das automatisch die effizienteste Methode für jede Website auswählt
  • NEU : Puppeteer-Instanzpool für effiziente Browser-Wiederverwendung und reduzierten Speicherverbrauch

Technologie-Stack

  • Python 3.9+
  • FastAPI
  • Pyppeteer für JavaScript-lastiges Web Scraping
  • Pyppeteer-Stealth zur Vermeidung der Erkennung beim Web Scraping
  • Puppeteer-Instanzpool für effiziente Browser-Wiederverwendung
  • DuckDuckGo Such-API
  • BeautifulSoup für HTML-Parsing
  • scikit-learn für TF-IDF-basierte Ressourcenrelevanzfilterung
  • yt-dlp für die YouTube-Videosuche und Metadatenextraktion
  • Redis (optional) für verteiltes Caching
  • msgpack für effiziente Datenserialisierung
  • Cachetools für erweitertes In-Memory-Caching

Installation

  1. Klonen Sie das Repository:
    git clone https://github.com/yourusername/mcp_server.git cd mcp_server
  2. Erstellen Sie eine virtuelle Umgebung:
    python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. Installieren Sie Python-Abhängigkeiten:
    pip install -r requirements.txt
  4. Installieren Sie Node.js-Abhängigkeiten (für das optimierte Scraping-System):
    npm install
  5. Installieren Sie Chrome/Chromium für Pyppeteer (falls noch nicht installiert)

Verwendung

Lokal ausführen

  1. Starten Sie den Server mit der bereitgestellten Batchdatei (Windows):
    run_local.bat
    Oder manuell mit uvicorn:
    uvicorn main:app --reload --host 0.0.0.0 --port 8000
  2. Greifen Sie auf die API unter http://localhost:8000 zu
  3. Generieren Sie ein MCP, indem Sie eine GET-Anfrage an Folgendes senden:
    GET /generate_mcp?topic=your_topic
  4. Überprüfen Sie die API-Dokumentation unter http://localhost:8000/docs

Produktions-URL

Der Produktionsserver ist verfügbar unter:

https://reunemacacada.onrender.com

Alle in dieser README-Datei dokumentierten Endpunkte sind sowohl unter den lokalen als auch unter den Produktions-URLs verfügbar.

Testen des Caching-Systems

  1. Stellen Sie eine erste Anfrage, um ein MCP zu generieren (dadurch wird der Cache gefüllt):
    GET /generate_mcp?topic=python&num_nodes=15&language=pt
  2. Machen Sie eine zweite Anfrage mit den gleichen Parametern (diese sollte den Cache verwenden):
    GET /generate_mcp?topic=python&num_nodes=15&language=pt
    Die zweite Anfrage sollte deutlich schneller sein, da das Ergebnis aus dem Cache abgerufen wird.

Dokumentation

Eine ausführliche Dokumentation ist im Ordner docs verfügbar:

API-Endpunkte

  • GET /health – Endpunkt für die Integritätsprüfung
  • 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} – Generiert synchron ein MCP für das angegebene Thema
    • topic (erforderlich): Das Thema, für das ein MCP generiert werden soll (mindestens 3 Zeichen)
    • max_resources (optional): Maximale Anzahl einzuschließender Ressourcen (Standard: 15, min: 5, max: 30)
    • num_nodes (optional): Anzahl der Knoten, die in den Lernpfad aufgenommen werden sollen (Standard: 15, min: 10, max: 30)
    • min_width (optional): Minimale Breite des Baums (Knoten auf der ersten Ebene) (Standard: 3, min: 2, max: 10)
    • max_width (optional): Maximale Breite auf jeder Ebene des Baums (Standard: 5, min: 3, max: 15)
    • min_height (optional): Minimale Höhe des Baums (Tiefe) (Standard: 3, min: 2, max: 8)
    • max_height (optional): Maximale Höhe des Baums (Tiefe) (Standard: 7, min: 3, max: 12)
    • language (optional): Sprache für Ressourcen (Standard: "pt")
    • category (optional): Kategorie für das Thema (z. B. „Technologie“, „Finanzen“, „Gesundheit“). Falls nicht angegeben, wird sie automatisch erkannt.
  • 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} – Asynchrone Generierung eines MCP starten
  • GET /status/{task_id} - Überprüfen Sie den Status einer asynchronen Aufgabe
  • GET /tasks - Alle Aufgaben auflisten
  • POST /clear_cache?pattern={pattern}&clear_domain_cache={clear_domain_cache} – Leert den Cache basierend auf einem Muster
    • pattern (optional): Muster zum Abgleichen der Cache-Schlüssel (Standard: „*“ für alle)
    • clear_domain_cache (optional): Ob auch der Domänenmethodencache gelöscht werden soll (Standard: false)
  • GET /cache_stats - Statistiken zum Cache abrufen, einschließlich Informationen zum Domänenmethoden-Cache

Beispiele

Grundlegende Verwendung (Portugiesisch)

GET /generate_mcp?topic=python

Benutzerdefinierte Anzahl von Knoten

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

Englische Sprache

GET /generate_mcp?topic=javascript&language=en

Kategorie manuell angeben

GET /generate_mcp?topic=python&category=technology

Vollständige Anpassung

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

Kontrollbaumstruktur

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

Asynchrone Generierung

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

Aufgabenstatus überprüfen

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

Cache leeren

POST /clear_cache

Bestimmten Cache leeren

POST /clear_cache?pattern=mcp:*

Leistungsverbesserungen

Der MCP-Server enthält mehrere Leistungsoptimierungen:

  • Caching-System : Ergebnisse werden zwischengespeichert, um die Antwortzeiten bei wiederholten Abfragen zu verbessern
  • Asynchrones Tasksystem : Lang andauernde Vorgänge werden asynchron verarbeitet
  • Ressourcenfilterung : TF-IDF-basierte Filterung zur Auswahl der relevantesten Ressourcen
  • Optimiertes Web Scraping : Effiziente Web Scraping-Techniken zur Reduzierung des Ressourcenverbrauchs
  • Adaptives Scraping-System : Wählt automatisch die effizienteste Scraping-Methode für jede Website
  • Puppeteer Instance Pool : Verwendet Browserinstanzen wieder, um Speichernutzung und Startzeit zu reduzieren
  • Domänenmethoden-Cache : Merkt sich, welche Scraping-Methode für jede Domäne am besten funktioniert
  • Ressourcenblockierung : Blockiert unnötige Ressourcen (Bilder, Stylesheets, Schriftarten) während des Scrapings

Leistungssteigerungen

  • 60–80 % Reduzierung der Antwortzeit für Themen, die sich bereits im Cache befinden
  • 30–50 % kürzere Reaktionszeit bei neuen Themen
  • 40–60 % Reduzierung der Speichernutzung beim Web Scraping
  • 3- bis 5-fache Steigerung des Durchsatzes bei gleichzeitigen Anfragen

Einsatz

Der Server kann auf verschiedenen Plattformen eingesetzt werden:

Verwenden von Docker

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

Bereitstellung auf Render, Fly.io oder anderen Plattformen

Befolgen Sie die plattformspezifischen Anweisungen zum Bereitstellen eines Docker-Containers oder einer Python-Anwendung.

Lizenz

Proprietäre Software – Alle Rechte vorbehalten

Diese Software ist urheberrechtlich geschützt und vertraulich. Unbefugtes Kopieren, Verteilen, Modifizieren, öffentliches Anzeigen oder öffentliches Vorführen dieser Software ist strengstens untersagt. Diese Software ist ausschließlich für die Nutzung im Rahmen eines kostenpflichtigen Abonnements vorgesehen.

© 2024 ReuneMacacada. Alle Rechte vorbehalten.

Letzter Commit: v1.1.2 – Problembehebung mit DuckDuckGo-Rate-Limit und Puppeteer

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