🎬 MCP Trakt: Das Tor Ihrer KI zu Unterhaltungsdaten
Ein Model Context Protocol (MCP)-Server, der eine Brücke zwischen KI-Sprachmodellen und der Trakt.tv-API schlägt und LLMs Zugriff auf Unterhaltungsdaten in Echtzeit und den persönlichen Trakt-Anzeigeverlauf ermöglicht.
🖥️ Ein KI-Experiment
Abgesehen von diesem Absatz wurde alles hier, einschließlich des Codes, von KI generiert. Ich wollte mehr über MCP erfahren und habe viel mit Cursor experimentiert. Daher erschien es mir naheliegend, diese zusammenzuführen. Das Ergebnis war dieses Projekt. Alle zukünftigen Änderungen werden ebenfalls von KI durchgeführt.
Related MCP server: FastAPI MCP Server
🤖 Was ist MCP?
Model Context Protocol (MCP) ist eine offene Spezifikation, die es Large Language Models (LLMs) wie Claude ermöglicht, mit externen Systemen und Datenquellen zu interagieren.
MCP schafft eine standardisierte Möglichkeit für KI-Modelle, um:
Zugriff auf Echtzeitdaten auch nach dem Schulungsende
Stellen Sie über dedizierte Server eine Verbindung zu externen APIs und Webdiensten her
Führen Sie spezialisierte Tools und Funktionen sicher aus
Lesen von und Schreiben in externe Ressourcen
Verarbeiten Sie komplexe Daten, die in reinen Textformaten nur schwer zu handhaben wären
Im Kern funktioniert MCP durch die Definition von:
Ressourcen : Strukturierte Datenquellen, aus denen eine KI lesen oder in die sie schreiben kann (wie
trakt://shows/trending)Tools : Funktionen, die die KI aufrufen kann, um bestimmte Aktionen auszuführen (wie z. B.
fetch_trending_shows)Sitzungen : Sichere Verbindungen zwischen den AI- und MCP-Servern
MCP-Server wie dieser fungieren als Brücken zwischen KI-Modellen und der Außenwelt und ermöglichen die Erweiterung um neue Funktionen, ohne dass eine erneute Schulung erforderlich ist.
📺 Was ist Trakt?
Trakt.tv ist eine Plattform, die automatisch verfolgt, welche Fernsehsendungen und Filme Sie ansehen. Der Dienst bietet:
Umfassende Verfolgung der Sehgewohnheiten über mehrere Streaming-Dienste hinweg
Soziale Funktionen zum Teilen und Besprechen Ihrer aktuellen Sehgewohnheiten mit Freunden
Personalisierte Empfehlungen basierend auf Ihrem Anzeigeverlauf
Umfangreiche APIs, die Entwickler zum Erstellen von Anwendungen verwenden können
Trakt hat sich zum Standard für Entertainment-Tracking entwickelt mit:
Über 14 Millionen Nutzer verfolgen ihre Sehgewohnheiten
Daten zu Millionen von Filmen und Fernsehsendungen, einschließlich detaillierter Metadaten
Integration mit gängigen Mediaplayern und Streaming-Diensten
Dieser MCP-Server nutzt das umfangreiche API-Ökosystem von Trakt, um Unterhaltungsdaten in Echtzeit direkt in Ihre Gespräche mit KI-Assistenten wie Claude zu bringen.
🚀 Die Cursor-Entwicklungserfahrung
Das gesamte Projekt wurde mit Cursor entwickelt, einem Code-Editor für das KI-Zeitalter. Claude 3.7 Sonnet generierte den gesamten Code. Dieser Ansatz demonstriert:
Wie KI-gestützte Entwicklung den Aufbau spezialisierter MCP-Server drastisch beschleunigen kann
Die Fähigkeiten moderner KI beim Schreiben funktionalen, gut strukturierten Codes
Ein kollaborativer Workflow zwischen menschlicher Absicht und KI-Implementierung
✨ Funktionen
🌎 Öffentliche Traktdaten
Greifen Sie auf trendige und beliebte Shows und Filme zu
Entdecken Sie die beliebtesten, am häufigsten gespielten und angesehenen Inhalte
Erhalten Sie Echtzeitdaten von der globalen Community von Trakt
Formatierte Antworten mit Titeln, Jahren und Popularitätsmetriken
Detaillierte Bewertungen für Shows und Filme anzeigen, einschließlich Durchschnittsbewertungen und Verteilung
👤 Persönliche Traktdaten
Sehen Sie sich Ihre angesehenen Sendungen an : Erhalten Sie eine vollständige Liste der Sendungen, die Sie persönlich angesehen haben
Sehen Sie sich die genauen Daten Ihrer zuletzt angesehenen Serien an
Verfolgen Sie, wie oft Sie jede Sendung gesehen haben
Checken Sie bei Sendungen ein, die Sie gerade sehen, um sie als gesehen zu markieren
Nach Show-ID (präziser) oder Show-Titel (bequemer)
Teilen Sie Check-ins mit Twitter, Mastodon oder Tumblr
Fügen Sie Ihren Check-ins benutzerdefinierte Nachrichten hinzu
Sehen Sie in einem für Menschen lesbaren Format, wann Sie die Folge gesehen haben
Suchen Sie nach Shows, um deren Details und IDs zu finden
Sichere Authentifizierung mit Trakt durch Gerätecodefluss
Persönliche Daten werden direkt von Ihrem Trakt-Konto abgerufen
💬 Kommentare und Bewertungen
Kommentare zu Shows und Filmen anzeigen : Lesen Sie, was andere über Ihre Lieblingsinhalte sagen
Kommentare zu bestimmten Staffeln und Episoden ansehen : Erhalten Sie Einblicke in bestimmte Teile einer Show
Einzelne Kommentare und die dazugehörigen Antworten ansehen : Beteiligen Sie sich an den Diskussionen der Community
Spoilerschutz : Kommentare mit Spoilern werden standardmäßig ausgeblendet
Spoiler-Sichtbarkeit umschalten : Wählen Sie, ob Spoiler angezeigt oder ausgeblendet werden sollen
Bewertungen anzeigen : Längere, ausführlichere Kommentare werden als Bewertungen gekennzeichnet
Bewertungsverteilung anzeigen : Sehen Sie, wie viele Benutzer jede Bewertung von 1-10 abgegeben haben
🔄 Allgemeine Funktionen
Stellt Trakt-API-Daten über MCP-Ressourcen bereit
Bietet Tools zum Abrufen von Unterhaltungsinformationen in Echtzeit
Ermöglicht KI-Modellen, personalisierte Unterhaltungsempfehlungen anzubieten
Einfacher Authentifizierungs- und Abmeldevorgang
📺 Aktuell angesagte Shows
Ab April 2025 können Sie auf Trendsendungen zugreifen wie:
„Der weiße Lotus“ (2021) – 7.870 Zuschauer
"Daredevil: Born Again" (2025) – 6.738 Zuschauer
"Severance" (2022) – 4.507 Zuschauer
🎥 Aktuell angesagte Filme
Die derzeit angesagtesten Filme:
"Black Bag" (2025) – 1.491 Zuschauer
"A Working Man" (2025) – 1.226 Zuschauer
"Mickey 17" (2025) – 764 Zuschauer
🔌 Verfügbare Ressourcen
Ressourcen anzeigen
Ressource | Beschreibung | Beispieldaten |
| Meistgesehene Sendungen der letzten 24 Stunden | Showtitel, Jahr, Zuschauerzahl |
| Beliebteste Sendungen basierend auf Bewertungen | Showtitel, Jahr, Popularitätsbewertung |
| Beliebteste Sendungen | Titel, Jahr und Anzahl der Favoriten anzeigen |
| Meistgespielte Shows | Showtitel, Jahr, Wiedergabeanzahl |
| Meistgesehene Sendungen nach einzelnen Benutzern | Showtitel, Jahr, Zuschauerzahl |
Filmressourcen
Ressource | Beschreibung | Beispieldaten |
| Meistgesehene Filme der letzten 24 Stunden | Filmtitel, Jahr, Zuschauerzahl |
| Beliebteste Filme basierend auf Bewertungen | Filmtitel, Jahr, Filmmusik |
| Beliebteste Filme | Filmtitel, Jahr, Favoritenanzahl |
| Meistgespielte Filme | Filmtitel, Jahr, Anzahl der Abspielungen |
| Meistgesehene Filme von einzelnen Benutzern | Filmtitel, Jahr, Zuschauerzahl |
Benutzerressourcen
Ressource | Beschreibung | Beispieldaten |
| Aktueller Authentifizierungsstatus | Authentifizierungsstatus, Token-Ablauf |
| Vom authentifizierten Benutzer angesehene Sendungen | Sendungstitel, Jahr, Datum der letzten Wiedergabe, Anzahl der Wiedergaben |
| Vom authentifizierten Benutzer angesehene Filme | Filmtitel, Jahr, Datum der letzten Wiedergabe, Anzahl der Wiedergaben |
Kommentarressourcen
Ressource | Beschreibung | Beispieldaten |
| Kommentare zu einem bestimmten Film | Kommentartext, Autor, Datum, Likes |
| Kommentare zu einer bestimmten Sendung | Kommentartext, Autor, Datum, Likes |
| Kommentare zu einer bestimmten Saison | Kommentartext, Autor, Datum, Likes |
| Kommentare zu einer bestimmten Episode | Kommentartext, Autor, Datum, Likes |
| Ein spezifischer Kommentar | Kommentartext, Autor, Datum, Likes |
| Antworten auf einen bestimmten Kommentar | Antworttext, Autor, Datum |
Bewertungsressourcen
Ressource | Beschreibung | Beispieldaten |
| Bewertungen für eine bestimmte Show | Durchschnittsbewertung, Stimmenzahl, Verteilung |
| Bewertungen für einen bestimmten Film | Durchschnittsbewertung, Stimmenzahl, Verteilung |
🛠️ Verfügbare Tools
Werkzeuge anzeigen
# Get trending shows with optional limit parameter
fetch_trending_shows(limit=10)
# Get popular shows with optional limit parameter
fetch_popular_shows(limit=10)
# Get favorited shows with optional limit and period parameters
fetch_favorited_shows(limit=10, period="weekly")
# Get most played shows with optional limit and period parameters
fetch_played_shows(limit=10, period="weekly")
# Get most watched shows with optional limit and period parameters
fetch_watched_shows(limit=10, period="weekly")
# Search for shows by title to get show IDs and details
search_shows(query="Breaking Bad", limit=5)
# Search for movies by title to get movie IDs and details
search_movies(query="The Godfather", limit=5)Filmwerkzeuge
# Get trending movies with optional limit parameter
fetch_trending_movies(limit=10)
# Get popular movies with optional limit parameter
fetch_popular_movies(limit=10)
# Get favorited movies with optional limit and period parameters
fetch_favorited_movies(limit=10, period="weekly")
# Get most played movies with optional limit and period parameters
fetch_played_movies(limit=10, period="weekly")
# Get most watched movies with optional limit and period parameters
fetch_watched_movies(limit=10, period="weekly")Authentifizierungs- und Benutzertools
# Start the device authorization flow with Trakt
start_device_auth()
# Check the status of an ongoing authentication
check_auth_status()
# Clear authentication (logout)
clear_auth()
# Fetch shows watched by the authenticated user
fetch_user_watched_shows(limit=0) # 0 for all shows
# Fetch movies watched by the authenticated user
fetch_user_watched_movies(limit=0) # 0 for all moviesCheck-in-Tools
# Method 1: Check in using show ID (recommended when precision is important)
# First use search_shows to find the correct show ID
search_shows(query="Breaking Bad", limit=5)
# Then use the ID for check-in
checkin_to_show(
season=1,
episode=3,
show_id="1388",
message="Loving this show!"
)
# Method 2: Check in using show title (more convenient)
checkin_to_show(
season=1,
episode=1,
show_title="Breaking Bad",
show_year=2008, # Optional but helps with accuracy
message="I'm the one who knocks!",
share_twitter=True,
share_mastodon=False,
share_tumblr=False
)Kommentartools
# Get comments for a movie (sorted by newest by default)
fetch_movie_comments(movie_id="123", limit=10, show_spoilers=False)
# Get comments for a show sorted by most likes
fetch_show_comments(show_id="456", limit=10, show_spoilers=False, sort="likes")
# Get comments for a specific season sorted by highest rating
fetch_season_comments(show_id="456", season=1, limit=10, show_spoilers=False, sort="highest")
# Get comments for a specific episode sorted by most replies
fetch_episode_comments(show_id="456", season=1, episode=3, limit=10, show_spoilers=False, sort="replies")
# Get a specific comment
fetch_comment(comment_id="789", show_spoilers=False)
# Get a comment with its replies sorted by oldest first
fetch_comment_replies(comment_id="789", limit=10, show_spoilers=False, sort="oldest")Bewertungstools
# Get ratings for a show
fetch_show_ratings(show_id="game-of-thrones")
# Get ratings for a movie
fetch_movie_ratings(movie_id="tron-legacy-2010")🔐 Authentifizierung
Der Server verwendet den Geräteauthentifizierungsablauf von Trakt:
Wenn Sie benutzerspezifische Daten anfordern, leitet der Server bei Bedarf automatisch die Authentifizierung ein
Sie erhalten einen Code und eine URL, die Sie in Ihrem Browser aufrufen können.
Nachdem Sie den Code auf der Trakt-Website eingegeben und die App autorisiert haben, informieren Sie Claude, dass Sie die Autorisierung abgeschlossen haben
Claude prüft den Authentifizierungsstatus und ruft dann Ihre persönlichen Daten ab
Ihr Authentifizierungstoken wird für zukünftige Anfragen sicher gespeichert
Sie können sich jederzeit mit dem Tool clear_auth abmelden.
🚀 Einrichtung
Dieses Repository klonen
git clone https://github.com/yourusername/mcp-trakt.git cd mcp-traktAbhängigkeiten installieren
pip install -r requirements.txtEinrichten Ihrer Umgebung
cp .env.example .envBearbeiten Sie dann
.env, um Ihre Trakt-API-Anmeldeinformationen hinzuzufügen:TRAKT_CLIENT_ID=your_client_id TRAKT_CLIENT_SECRET=your_client_secretAusführen des Servers
python server.py
🧪 Entwicklung & Tests
Testen mit MCP Inspector
mcp dev server.pyInstallation in Claude Desktop
mcp install server.pyAusführen von Tests
# Install test dependencies
pip install -r requirements-dev.txt
# Run all tests
pytest
# Run with verbose output
pytest -v -s📝 Mit Claude verwenden
Nach der Installation können Sie Claude Fragen stellen wie:
„Welche Shows sind gerade im Trend?“
„Können Sie diese Woche ein paar beliebte Filme empfehlen?“
„Welche Sendungen werden im Monat am meisten gesehen?“
„Zeig mir die Sendungen, die ich gesehen habe“ (erfordert Authentifizierung)
„Welche Sendung habe ich zuletzt gesehen?“ (erfordert Authentifizierung)
„Zeig mir die Filme, die ich gesehen habe“ (erfordert Authentifizierung)
„Welchen Film habe ich zuletzt gesehen?“ (erfordert Authentifizierung)
„Suchen Sie nach Sendungen wie ‚Breaking Bad‘“
„Checken Sie mich bei Staffel 2, Folge 5 von Breaking Bad ein“ (verwendet Titel)
„Melde mich bei Staffel 1, Folge 3 der Sendung mit der ID 1388 an und teile sie auf Twitter“ (verwendet die ID)
„Zeige mir Kommentare zu Breaking Bad“
„Was sagen die Leute über den Film Der Pate?“
„Zeig mir Kommentare zur 1. Staffel von Stranger Things“
„Kommentare zu Staffel 2, Folge 5 von Game of Thrones erhalten“
„Zeigen Sie mir Kommentar Nr. 12345 mit seinen Antworten“
„Zeige mir Kommentare zu Breaking Bad, aber mit Spoilern“
„Suchen Sie nach Filmen wie ‚Der Pate‘“
„Zeig mir die beliebtesten Kommentare zu Breaking Bad“ (verwendet sort="likes")
„Holen Sie sich die am höchsten bewerteten Kommentare zum Film Der Pate“ (verwendet sort="highest")
„Zeig mir die Kommentare mit den meisten Antworten für Staffel 1 von Stranger Things“ (verwendet sort="replies")
„Wie ist die Altersfreigabe für Game of Thrones?“
„Zeigen Sie mir die Bewertungsverteilung für Der Pate“
„Wie hoch ist die Bewertung von Breaking Bad?“
Claude wird diesen MCP-Server verwenden, um Ihnen Echtzeitdaten von Trakt bereitzustellen.
👤 Zugriff auf personenbezogene Daten
Mit der Authentifizierung können Sie auf Folgendes zugreifen:
Ihr kompletter Verlauf angesehener Sendungen und Filme
Datum der letzten Sichtung für jede Sendung und jeden Film
Anzahl der Male, die Sie jede Sendung und jeden Film gesehen haben
Checken Sie die Sendungen ein, die Sie gerade sehen, und verfolgen Sie Ihren Fortschritt
Persönliche Anzeigestatistiken
Teilen Sie Ihre Sehaktivitäten auf Social-Media-Plattformen
Alle Daten werden in Echtzeit direkt von Ihrem Trakt-Konto abgerufen.
🔮 Zukünftige Entwicklung
Erweiterte Benutzerauthentifizierung für den Zugriff auf mehr persönliche Daten
Hinzufügen von Kalenderereignissen für kommende Episoden
Unterstützung von Scrobbling (Verfolgen, was Sie gerade ansehen)
Implementieren von Empfehlungen basierend auf dem Wiedergabeverlauf
Unterstützung für weitere Social-Media-Plattformen zum Teilen hinzufügen