video-to-llm
Dein LLM kann keinen 40-stündigen Kurs ansehen. Das Hochladen ist langsam, oft teuer und häufig nicht erlaubt. Selbst die Frames zu extrahieren kostet Millionen Tokens und wirft die Tonspur wieder weg.
video-to-llm verwandelt jedes Video in ein einziges chronologisches Dokument — Sprache, markierte Ruhephasen, Abschnittsüberschriften und optional auch das, was auf dem Bildschirm zu sehen war — alles in der Reihenfolge, in der es passiert ist, jede Zeile mit einem Zeitstempel, der auf den exakten Frame zurückführt, aus dem sie stammt.
Mach es einmal. Stell so viele Fragen, wie du möchtest, an so viele Modelle, wie du möchtest, so lange du den Ordner behältst.
Quickstart
uvx video-to-llm process lecture.mp4 --transcribe-model tinyDas ist der schnelle Weg, um zu sehen, wie es funktioniert: Das tiny-Sprachmodell ist ein 75-MB-Download statt der 1,4 GB des Standardmodells, du erhältst also in etwa einer Minute ein echtes Dokument, anstatt auf einen Download zu warten und danach zu merken, ob dir die Ausgabe gefällt. Wenn es dir gefällt, lass das Flag wieder weg:
uvx video-to-llm process lecture.mp4Noch nicht aus PyPI installierbar. Der Name ist registriert, aber im Index gibt es nichts wirklich Installierbares: Die eine veröffentlichte Version,
1.0.0rc1, wurde ohne dascollections-Modul ausgeliefert und ist zurückgezogen worden. Bis1.0.0erscheint, klone das Repository, führeuv syncaus und danachuv run video-to-llm process lecture.mp4 --transcribe-model tiny.
Du brauchst FFmpeg in deinem PATH — Versionen 4 bis 9, alle passen. Das Sprachmodell wird einmal heruntergeladen, bei der ersten Verwendung, und danach nimmt nichts sonst noch einmal Kontakt zum Netzwerk auf.
video-to-llm doctor # check this machine is readytiny ist zwar schnell, aber auffallend ungenauer; medium ist die Standardeinstellung, weil es das kleinste Modell ist, dessen Transkript man behalten möchte. --transcribe-model akzeptiert außerdem base, small und large-v3.
Related MCP server: video-reader-mcp
Was du bekommst
Das ist die tatsächliche Ausgabe — echte Zeilen aus einer echten 49-minütigen Aufnahme, in der Standardkonfiguration:
00:01:30 [nobody speaking · 11 seconds]
00:01:40 Yep, just so that you know, the first thing you'll do is you'll take everything out of
00:01:48 your chart.
00:01:49 When you're going to analyze the chart.
00:01:54 [nobody speaking · 4 seconds]
00:01:58 I think all of you know what trends are, right?
00:02:01 You're either going up or you're either coming down. Very simple, right?
00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.Das ist das gesamte Artefakt: reiner Text, chronologisch, mit Zeitstempel zur dazugehörigen Quelle, und dein. Gib es an beliebiges ausgehendes Modell. Durchsuche es mit grep. Aufbewahren kannst du es jahrzehntelang.
Jede Zeile überprüfen
Jeder Zeitstempel führt zurück zu dem Bild, das dahinterliegt:
video-to-llm show lecture 00:02:05lecture.mp4 — 00:02:05
in job 'lecture'
00:02:01 You're either going up or you're either coming down. Very simple, right?
> 00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.
Picture: ~/Documents/VideoToLLM/lecture/…/frames/000062_t000124.jpgEine Behauptung, die dein Modell aufstellt, ist nur dann ein Beleg, wenn du sie überprüfen kannst. Und genau das geht damit auf.
Vergleichtabelle
Fair in beide Richtungen — auch da, wo es das falsche Werkzeug ist.
video-to-llm | Clip-Tools ( | Das Video hochladen | |
Videolänge | Stunden. Getestet einer 49-Sekunden/1.488-Frame-Aufnahme und einem 15-Stunden-Kurs | Minuten; standardmäßig 50–150 Frames | Minuten bis zu einer Stunde, kostenpflichtig |
Eine zweite Frage stellen | Kostet nichts und geht sofort — das Dokument wird wiederverwendet | Lädt erneut herunter und verarbeitet neu | Lädt erneut hoch oder hat nochmal Kosten |
Übersteht einen Absturz während der Arbeit | Ja, setzt genau an der nächsten Stufe fort | Nein | Entfällt |
Mehrere Videos, in einem geordneten Dokument | Ja | Nein | Nein |
Verlässt deinen Rechner | Nie, es sei denn, du stimmst pro Auftrag zu | Ist unterschiedlich — | Vollständig |
Gesprochene Sprache | Jede — erkannt oder per | Variiert; | Jede |
Kostenkontrolle | Limitprüfung vor jeder Anfrage | Keine | Bezahlung pro Aufruf |
Eine Behauptung auf einen Frame belegen | Ja | Nein | Nein |
Einrichtungszeit | Minuten: FFmpeg und ein 75-MB-Modell | Sekunden | Sekunden |
Ein einzelner kurzer Clip | Übertrieben — nimm etwas anderes | Ideal | Ideal |
Geprüft gegen die jeweiligen Projektdokumentationen vom 21. August 2026. Sie bewegen sich; wenn eine Zeile hier schon veraltet ist, ist das einen Bug zu melden wert.
Benutzung
Mit den eigentlichen Kommandozeile
video-to-llm process lecture.mp4 # one video
video-to-llm process w1.mp4 w2.mp4 --name "Course" # several, in your order
video-to-llm process talk.mp4 --interval 5 # fewer pictures, faster
video-to-llm process demo.mp4 --describe local # add screen descriptions
video-to-llm process talk.mp4 --format jsonl # also emit structured data
video-to-llm show "Course" 01:12:30 # resolve a citation
video-to-llm export "Course" --format srt # subtitles, no reprocessing
video-to-llm status # what is done, what is running
video-to-llm run-next "Course" # jump the queueVon einem Agenten
video-to-llm mcp # MCP server on stdio; needs the [mcp] extraVier Tools — process_video, list_videos, get_transcript, get_segment. process_video ist geometrisch: Fragt man es nach einem bereits verarbeiteten Video, gibt es das vorhandene Dokument vorhanden, statt die Arbeit erneut durchzuführen. Genau das ist der eigentliche Punkt. Denn einen 40-Stunden-Kurs, eine zu verarbeiten und danach beliebig, ist jede Frage instanten, offline und einfach.
Ein Agent kann über diese Tools keinen kostenpflichtigen Beschreibungsdienst auswählen. Diese Entscheidung gehört in die Einstellungsansicht, wo Kostenschätzung und Ausgabenlimit sichtbar sind.
Es gibt außerdem ein Skill: Es bringt einem Agenten bei, zuerst zu prüfen, was bereits verarbeitet wurde, bevor er etwas kostspitriges tut. Und genau da Mehrwert:
npx skills add navdeep-h-singh/video-to-llm -gDas funktioniert in Codex, Cursor, Copilot, Gemini CLI und allem anderen, das Agent Skills lesen kann. Für Claude Code registriert das Plugin das Skill und den MCP-Server:
/plugin marketplace add navdeep-h-singh/video-to-llm
/plugin install video-to-llm@video-to-llmVom Browser aus
video-to-llm startEine Oberfläche auf 127.0.0.1 mit Live-Fortschritt, einem Frame-Reviewer, Auftragssteuerung und dem Sammlungs-Builder. Das Schließen des Browsers stoppt keinen Auftrag nicht.
Sammlungen
Mehrere bereits verarbeitete Videos, in einer von dir explizit gepflogenen Reihenfolge, zusammen zu einem einzelnen Dokument oder zu nummerierten Teilen, die so bemessen sind, dass sie in ein Kontextfenster passen. Das Erstellen einer Sammlung nutzt vorhandene Ausgabe wieder — es wird nie wieder ein Frame neu extrahiert, nichts neu transkribiert und nichts wieder aus einer Beschreibung densiert.
Die Reihenfolge wird nie der Datei, dem Datum oder dem Inhalt abgeleitet. Zwei Aufnahmen vom selben Morgen haben keinerlei zwingende Sequenz; du also sagst, wie die System ist.
Thema Datenschutz als Mechanismus
Kein Versprechen — eine Menge von Eigenschaften, mit Tests, die bei einer Regression scheitern.
Die Oberfläche bindet
127.0.0.1, in der App-Konstruktion an dieser Assertion fest.Eine Middleware weist bei jedem Schreibst-mal einen fremden
Hostund einen fremden Origin ab.Keine Seite lädt eine Ursprungsressource host eine andere Datei. Kein CDN, kein Webfont, kein Analytics.
Deine Quellvideos werden weder kopiert noch verschoben und nie hochgeladen.
Schlüssel leben im Schulbund des Betriebssystems — macOS Keychain, Windows Credential Bundle, Linux Secret Service. Ein Klartext-Fallback wird nie geschrieben, und ein gespeicherter Schlüssel wird dir nie wieder angezeigt, nicht einmal ein Präfix mit.
Es gibt keine Konten, keine Telemetrie und nichts, bei dem du dich anmelden kannst.
Beschreibungen sind standardmäßig aus. Ein Auftrag, der diese deaktiviert, macht überhaupt keine Netzwerkanfrage.
Das Lokale fällt nie stillschweigend auf die Cloud zurück.
Optional: Beschreibungen, was auf dem Bildschirm passiert
Standardmäßig deaktiviert. Wenn du es aktivierst, entscheidest du dich zwischen deiner eigenen Ollama-Modell — Frames bleiben auf dem Gerät, keine Kosten — und einem externen (Claude, Gemini, OpenAI oder einem OpenAI- oder Anthropic-kampatiblen Endpunkt), der ausschließlich die nummerierten Standbilder erhält, niemals das Video und niemals den Audio. Du siehst, was gesendet wird und was es ungefähr kostet, bevor irgendetwas nach außen geht, und die Arbeit stoppt bei einem von dir austobigen Limit.
Systemvoraussetzungen
Python 3.11, 3.12 oder 3.13
FFmpeg mit
ffprobeimPATHPlatz für das Sprachmodell — 75 MB für
tiny, 1,4 GB für das Standardmodellmedium— plus Platz für Frames: sie eine 2-stündige Video bei 1 Bild alle 2 Sekunden ungefähr 2 GB.
Das GHG ist unter in in allen dreioptional. Die Transkription läuft in jeder Umgebung auf der CPU.
FFmpeg 9 ist absolut okay. Es wurde -vsync entfernt, was jede FFmpeg-Build vor 5 brauchte; die Extraktion liest die Version einmal und fragt nach nach dem Flag, das diese kompilierte Version akzeptiert, und so 4.x bis beides. 4.x bis 9.x alle. video-to-llm doctor druckt die gefundende Version und das Flag, das wird. Development gedadett gegen 8.1.2; der Rest wird durch Tests auf der Argumentliste und die CI-Matrix abgedeckt.
Andere Installationswege
uv tool install video-to-llm # or: pipx install video-to-llm
uv sync # from a clone
docker build -t video-to-llm . # command line only, see the DockerfileBekannte Einschränkungen
Bewusst hier aufgeführt, and instead of lefts, you to discover it.Video → LLM
Dein LLM kann keinen vierzigstündigen Kurs ansehen. Das Hochladen ist langsam, oft teuer und meistens nicht erlaubt. Selbst die Verarbeitung der Frames kostet Millionen von Tokens und verwirft den Ton.
video-to-llm verwandelt jedes Video in ein einziges chronologisches Dokument — Sprache, markierte Ruhephasen, Abschnittsüberschriften und optional also, was auf dem Bildschirm zu sehen war — alle in der Reihenfolge, in denen es passiert ist, jede Zeile mit einem Zeitstempel, der zum exakten Frame zurückführt, aus dem sie stammt.
Mach es einmal. Stelle so viele Fragen, wie du möchtest, an so viele Modelle, wie du möchtest, solange du den Ordner aufhebst.
Quickstart
uvx video-to-llm process lecture.mp4 --transcribe-model tinyDas ist der schnelle Weg, um zu sehen, wie es funktioniert: Das tiny-Sprachmodell ist ein 75 MB-Download statt der 1,4 GB des Standards — du erhältst also in etwa einer Minute ein echtes Dokument, statt auf einen Download zu warten, um herauszufinden, ob dir die Ausgabe gefällt. Wenn du das gefällt, lass das Flag weg:
uvx video-to-llm process lecture.mp4Noch nicht von PyPI installierbar. Der Name ist registriert, aber im Index gibt es nichts, was sich zu installieren lohnt: Die einzige veröffentlichte Version,
1.0.0rc1, wurde ohne dascollections-Modul ausgeliefert und ist zurückgezogen. Bis1.0.0erscheint, klone das Repository, führeuv syncaus und dannuv run video-to-llm process lecture.mp4 --transcribe-model tiny.
Du brauchst FFmpeg in deinem PATH — Version 4 bis 9, alle passen. Das Sprachmodell wird einmal heruntergeladen, bei der ersten Verwendung, und danach nimmt nichts mehr Kontakt zum Netzwerkigen auf.
video-to-llm doctor # check this machine is readytiny ist schnell und deutlich ungenauer; medium ist die Standard-Wahl, weil es das kleinste Modell ist, dessen Transkript es wert ist, aufbewahrt zu werden. --transcribe-model akzeptiert außerdem base, small und large-v3.
Was du bekommst
Das ist die tatsächliche Ausgabe — echte Zeilen aus einer echten Aufnahme von 49-Minuten, in der Standard-Konfiguration:
00:01:30 [nobody speaking · 11 seconds]
00:01:40 Yep, just so that you know, the first thing you'll do is you'll take everything out of
00:01:48 your chart.
00:01:49 When you're going to analyze the chart.
00:01:54 [nobody speaking · 4 seconds]
00:01:58 I think all of you know what trends are, right?
00:02:01 You're either going up or you're either coming down. Very simple, right?
00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.Das ist das gesamte Artefakt: reiner Text, chronologisch, mit Zeitstempel auf die Quelle bezogen, und dein. Gib es jedem Modell. Durchsuche es mit grep. Behalte es ein Jahrzehnt.
Jede Zeile prüfen
Jeder Zeitstempel führt zurück zu dem Bild dahinter:
video-to-llm show lecture 00:02:05lecture.mp4 — 00:02:05
in job 'lecture'
00:02:01 You're either going up or you're either coming down. Very simple, right?
> 00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.
Picture: ~/Documents/VideoToLLM/lecture/…/frames/000062_t000124.jpgEine Behauptung, die dein Modell macht, ist nur dann ein Beleg, wenn du es überprüfen kannst. Genau das funktioniert so.
Vergleich
Ehrlich in beide Richtungen — auch da, wo das falsche Werkzeug ist.
video-to-llm | Clip-Tools ( | Das Video hochladen | |
Videolänge | Stunden. Getestet mit 49 Minuten / 1.488 Frames und einem 15-Stunden-Kurs | Minuten; standardmäßig nur 50–150 Frames | Minuten bis einer Stunde, kostenpflichtig |
Eine zweite Frage fragen | Kostenlos und sofort — nutzt das Dokument erneut | Lädt neu herunter und verarbeitet neu | Lädt neu hoch oder zahlt |
Absturz mitten in der Arbeit überleben | Ja, setzt an der exakten Stelle an | Nein | n/a |
Viele Videos, ein beschreibenes Dokument | Ja | Nein | Nein |
Verlässt deinen Rechner | Nie, außer du erlaubst es pro Job | Varies — | Vollständig |
Gesprochene Sprache | Jede — inerkannt oder mit | Varies; | Jede |
Kostendeckend | Cap vor jeder Anfrage geprüft | Keine none any | Pay per call |
Behauptung auf Frame zurückführenfähig | Ja | Nein | No |
Setupzeit | Minuten: FFmpeg und ein 75-MB-Modell | Sekunden | Sekunden |
Ein kurzer Quick Von Video | Overkill — nimm etwas Breites | Ideal | Ideal |
Geprüft gegen die jeweiligen Projektdokumentationen vom 21. August 2026. Sie ändern sich; wenn eine Zeile hier kritisch ist, ist das ein Bug, den man melden sollte.
Nutzung
Aus der Kommandozeile
video-to-llm process lecture.mp4 # one video
video-to-llm process w1.mp4 w2.mp4 --name "Course" # several, in your order
video-to-llm process talk.mp4 --interval 5 # fewer pictures, faster
video-to-llm process demo.mp4 --describe local # add screen descriptions
video-to-llm process talk.mp4 --format jsonl # also emit structured data
video-to-llm show "Course" 01:12:30 # resolve a citation
video-to-llm export "Course" --format srt # subtitles, no reprocessing
video-to-llm status # what is done, what is running
video-to-llm run-next "Course" # jump the queueAus einem Agenten
video-to-llm mcp # MCP server on stdio; needs the [mcp] extraVier Tools — process_video, list_videos, get_transcript, get_segment. process_video ist idempotent: Fragt man nach einem bereits verarbeiteten Video, gibt es das vorhandene Dokument zurück, instead of wieder zu verarbeiten. Das ist der ganze Punkt. Ein zehn Stunden langer Kurs wird einmal verarbeitet; jede Frage danach ist sofort, offline und kostenfrei.
Ein Agent kann durch diese Werkzeuge keinen kostenpflichtigen Beschreibungsdienst auswählen. Diese Entscheidung sitzt im Einstellungsbildschirm, wo Schätzung und Kostenobergrenze sichtbar sind.
Es gibt aber auch einen Skill, der dem Agenten beibringt, zuerst zu prüfen, was bereits verarbeitet ist, bevor er etwas Teueres macht:
npx skills add navdeep-h-singh/video-to-llm -gDas funktioniert in Codex, Cursor, Copilot, Gemini CLI und allem anderen, das Agent Skills liest. Bei Claude Code registriert das Plugin beides zusammen – das Skill und den MCP-Server:
/plugin marketplace add navdeep-h-singh/video-to-llm
/plugin install video-to-llm@video-to-llmAus dem Browser
video-to-llm startEine Oberfläche auf 127.0.0.1 mit Live-Fortschritt, Frame-Reviewer, Auftragssteuerung und dem Sammlungs-Builder. Das Schließen des Browsers beendet keinen Auftrag.
Sammlungen
Bereits mehrere Videos verarbeitet, in einer explizit gesetzten Reihenfolge, zu einem Dokument oder in nummerierte Teile, die genau auf eine Context fenster-größte. Das Aufbauen einer Sammlung nutzt vorhandene Ausgabe wieder — es werden nie wieder Frames extrahiert, Audio neu transkribiert oder Beschreibungen erneut ausgeführt.
Die Reihenfolge wird nie durch Dateiname, Datum oder Inhalt abgeleitet. Zwei Aufnahmen vom selben Morgen haben keine erzwungene Reihenfolge, also bestimmst du sie.
Privatsphäre als Mechanismus
Nicht ein Versprechen,
Bildschirmbeschreibungen sind Beta, und ihre strukturierten Felder sind auf eine einzelne Domäne zugeschnitten. Sie funktionieren – bei einer 49‑minütigen Chart‑Aufzeichnung las das Modell das richtige Instrument, den richtigen Zeitrahmen und echte Werte vom Bildschirm ab –, aber fünf der acht Felder (
timeframe,currency_pair,indicators_and_states,exact_action,setup_type) beschreiben Trading‑Charts, und das ist eine bewusste Entscheidung und kein Versehen. Bei jeder anderen Art von Video kommen diese fünf FelderUnknownzurück. Das Modell lehnt ab statt zu erfinden, also ist das Ergebnis dürftig, aber nicht falsch;TextField,VisualDescriptionundconfidencegelten weiterhin für alles. Die Genauigkeit ist in beiden Fällen nicht gemessen. Für das Experiment dahinter siehedocs/DESCRIPTION_QUALITY.md.Die Transkriptionsgenauigkeit ist nicht gemessen, und gleicht Whisper schreibt manchmal eine Zeile über der Stille: Ein Transkript, das mit „Danke fürs Zuschauen!“ beginnt, stammt vom Modell, nicht von deinem Video.
Lokale Beschreibungen sind langsam – etwa 31 Sekunden pro Bild auf einem Apple‑Silicon‑Mac, gemessen von 1. Konferen 1.104. Nimm ein gröberes
--intervaloder einen Dienst mit einem Limit.Kein Cloud‑Anbieter wurde gegen einen Live‑Dienst getestet. Fünf Adapter sind gegen die dokumentierten Anfrage‑ und Antwort‑Strukturen verifiziert; die lokale Ollamainstanz ist live gegen 0.32.6 mit
qwen2.5vl:7bverifiziert.Niemand hat das Projekt unter Windows oder Linux eingesetzt, obwohl CI inzwischen dort läuft. Die Entwicklung fand vollständig unter macOS (Apple Silicon) statt. Die vollständige Testsuite läuft auf allen drei Betriebssystemen und allen drei Python‑Versionen druch; das gebaute Wheel wird auf jedem system außerhalb des Checkouts installiert und getestet, und der Container führt die Pipeline auf ohne Netzwerk aus. Das ist eine echte Basis, aber nicht dassel ist: eine grüne Matrix sagt, dass die Pfade, Keyring‑Backends und Symlink‑Fallbacks auf einem sauberen laufen, nicht aber, dass sie auf deiner Maschine mit deinen Dateien funktionieren. Beide Berichte sind das Wertvollste, das dieses Projekt erhalten kann.
Der Container liefert die Kommandozeile, nicht die Oberfläche – die Oberfläche bindet an die Loopback‑Adresse, die innerhalb eines Containers vom Host aus invalid ist.
Keine URLs werden heruntergeladen. Nur lokale Dateien. Lade die selbst zuerst herunter.
Das Ereignisprotokoll wächst unbegrenzt.
Dokumentation
Dokument | Behandelt |
Was das Beschreibungsmodell tatsächlich erzeugt und was nicht | |
Eisen, Ausgaben und Garantien der Pipeline‑Stufen | |
Sammlungen und Kontextpakete | |
Geheimnisschutz und die Localhost‑Grenze | |
Bschreibungen auf diesem Rechner ausführen | |
Nach einem Absturz, einem Ruhezustand oder einem Abbrechen | |
Ausführen, Pausieren, Überblichen | |
Ältere Arbeiten importieren, Ausgaben exportieren | |
Plattorm‑specifische Einrichtung | |
Beim Build getroffene Entscheidungen und warum |
Mitwirken
Bugberichte aus dem echten Einsatz sind im Moment wertvolle, insbesondere unter Windows und Linux. Siehe CONTRIBUTING.md.
Lizenz
MIT. Siehe LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query local video timelines by extracting speech, frame captions, and on-screen text into a SQLite store, exposing search and retrieval tools via MCP.PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityAmaintenanceExtracts ffprobe metadata, subtitles, scenes, and timelines from video files without frame-by-frame LLM vision, providing evidence-first reading for AI agents.472MIT
- AlicenseAqualityBmaintenanceLet AI agents watch videos: local transcripts, speaker labels, scenes, chapters and exact-moment search from any video URL or file. Fully local, no API keys.42AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceLets any LLM agent actually watch videos: a watch_video tool takes a URL or local file and returns scene-aware keyframes fused with a timestamped transcript, processed 100% locally with per-source caching.2,053MIT
Related MCP Connectors
15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/navdeep-h-singh/video-to-llm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server