LeetCode MCP Server
Der LeetCode MCP-Server ist ein Model Context Protocol (MCP) -Server, der eine nahtlose Integration mit LeetCode-APIs bietet und erweiterte Automatisierung und intelligente Interaktion mit den Programmierproblemen, Wettbewerben, Lösungen und Benutzerdaten von LeetCode ermöglicht.
Merkmale
🌐 Multi-Site-Support : Unterstützt sowohl die Plattformen leetcode.com (Global) als auch leetcode.cn (China)
📊 Problemdatenabruf : Erhalten Sie detaillierte Problembeschreibungen, Einschränkungen, Beispiele, offizielle Leitartikel und von Benutzern übermittelte Lösungen
👤 Zugriff auf Benutzerdaten : Abrufen von Benutzerprofilen, Übermittlungsverlauf und Wettbewerbsleistung
🔒 Privater Datenzugriff : Erstellen und Abfragen von Benutzernotizen, Verfolgen des Problemlösungsfortschritts und Analysieren von Übermittlungsdetails (AC/WA-Analyse)
🔍 Erweiterte Suchfunktionen : Filtern Sie Probleme nach Tags, Schwierigkeitsgraden, Kategorien und Schlüsselwörtern
📅 Zugriff auf tägliche Herausforderungen : Greifen Sie einfach auf tägliche Herausforderungsprobleme zu
Related MCP server: mcp-server-code-assist
Voraussetzungen
Node.js-Laufzeitumgebung
(Optional) LeetCode-Sitzungscookie für authentifizierten API-Zugriff
Installation
Installation über Smithery
So installieren Sie den Leetcode-MCP-Server für Claude Desktop automatisch über Smithery :
Manuelle Installation
Alternativ können Sie das Repository klonen und lokal ausführen:
Verwendung
Visual Studio Code-Integration
Fügen Sie die folgende JSON-Konfiguration zu Ihrer Benutzereinstellungsdatei (JSON) hinzu. Greifen Sie darauf zu, indem Sie Ctrl/Cmd + Shift + P drücken und nach Preferences: Open User Settings (JSON) suchen.
Option 1: Verwenden von Umgebungsvariablen
Option 2: Verwenden von Befehlszeilenargumenten
Ändern Sie für die LeetCode China-Site den Parameter --site in cn .
[!TIPP]
Der Server unterstützt die folgenden Umgebungsvariablen:
LEETCODE_SITE: LeetCode API-Endpunkt ('global' oder 'cn')
LEETCODE_SESSION: LeetCode-Sitzungscookie für authentifizierten API-ZugriffPrioritätshinweis : Befehlszeilenargumente haben Vorrang vor Umgebungsvariablen, wenn beide angegeben sind. Beispiel:
Wenn
LEETCODE_SITE=cnfestgelegt ist, Sie aberleetcode-mcp-server --site globalausführen, verwendet der Serverglobal.Wenn
LEETCODE_SESSIONvorhanden ist, Sie aber--session "new_cookie"angeben, wird der Sitzungswert der Befehlszeile verwendet.
Verfügbare Tools
Probleme
Werkzeug | Allgemein | CN | Authentifizierung erforderlich | Beschreibung |
Holen Sie sich die tägliche Herausforderung | ✅ | ✅ | ❌ | Ruft das heutige LeetCode Daily Challenge-Problem ab |
Problem lösen | ✅ | ✅ | ❌ | Ruft Details zu einem bestimmten LeetCode-Problem ab |
Suchprobleme | ✅ | ✅ | ❌ | Sucht nach LeetCode-Problemen mit mehreren Filterkriterien |
Benutzer
Werkzeug | Allgemein | CN | Authentifizierung erforderlich | Beschreibung |
Benutzerprofil abrufen | ✅ | ✅ | ❌ | Ruft Profilinformationen für einen LeetCode-Benutzer ab |
get_user_contest_ranking | ✅ | ✅ | ❌ | Ruft Wettbewerbsrankingstatistiken für einen Benutzer ab |
Aktuelle AC-Einreichungen abrufen | ✅ | ✅ | ❌ | Ruft die zuletzt akzeptierten Einsendungen eines Benutzers ab |
Aktuelle Einsendungen abrufen | ✅ | ❌ | ❌ | Ruft den Verlauf der letzten Übermittlungen eines Benutzers ab |
get_user_status | ✅ | ✅ | ✅ | Ruft den aktuellen Status des aktuellen Benutzers ab |
Problemübermittlungsbericht abrufen | ✅ | ✅ | ✅ | Bietet eine detaillierte Übermittlungsanalyse für ein bestimmtes Problem |
Problemfortschritt abrufen | ✅ | ✅ | ✅ | Ruft den Problemlösungsfortschritt des aktuellen Benutzers ab |
Alle Einsendungen abrufen | ✅ | ✅ | ✅ | Ruft den Übermittlungsverlauf des aktuellen Benutzers ab |
Hinweise
Werkzeug | Allgemein | CN | Authentifizierung erforderlich | Beschreibung |
Suchnotizen | ❌ | ✅ | ✅ | Sucht nach Benutzernotizen mit Filteroptionen |
get_note | ❌ | ✅ | ✅ | Ruft Notizen zu einem bestimmten Problem anhand der Fragen-ID ab |
Notiz erstellen | ❌ | ✅ | ✅ | Erstellt eine neue Notiz für ein bestimmtes Problem |
Update-Hinweis | ❌ | ✅ | ✅ | Aktualisiert eine vorhandene Notiz mit neuem Inhalt |
Lösungen
Werkzeug | Allgemein | CN | Authentifizierung erforderlich | Beschreibung |
Problemlösungsliste | ✅ | ✅ | ❌ | Ruft eine Liste von Community-Lösungen für ein bestimmtes Problem ab |
Problemlösung erhalten | ✅ | ✅ | ❌ | Ruft den kompletten Inhalt einer bestimmten Lösung ab |
Werkzeugparameter
Probleme
get_daily_challenge - Ruft das heutige LeetCode Daily Challenge-Problem mit allen Details ab
Keine Parameter erforderlich
get_problem – Ruft Details zu einem bestimmten LeetCode-Problem ab
titleSlug: Der URL-Slug/Bezeichner des Problems (Zeichenfolge, erforderlich)
search_problems – Sucht nach LeetCode-Problemen basierend auf mehreren Filterkriterien
category: Problemkategoriefilter (Zeichenfolge, optional, Standard: „all-code-essentials“)tags: Liste der Themen-Tags zum Filtern von Problemen (string[], optional)difficulty: Filter für den Schwierigkeitsgrad des Problems (Aufzählung: „EINFACH“, „MITTEL“, „SCHWER“, optional)searchKeywords: Schlüsselwörter für die Suche in Problemtiteln und -beschreibungen (Zeichenfolge, optional)limit: Maximale Anzahl der zurückzugebenden Probleme (Zahl, optional, Standard: 10)offset: Anzahl der zu überspringenden Probleme (Zahl, optional)
Benutzer
get_user_profile – Ruft Profilinformationen über einen LeetCode-Benutzer ab
username: LeetCode-Benutzername (Zeichenfolge, erforderlich)
get_user_contest_ranking - Ruft die Wettbewerbsranglisteninformationen eines Benutzers ab
username: LeetCode-Benutzername (Zeichenfolge, erforderlich)attended: Ob nur die Wettbewerbe einbezogen werden sollen, an denen der Benutzer teilgenommen hat (Boolesch, optional, Standard: true)
get_recent_submissions – Ruft die letzten Einsendungen eines Benutzers auf LeetCode Global ab
username: LeetCode-Benutzername (Zeichenfolge, erforderlich)limit: Maximale Anzahl der zurückzugebenden Einsendungen (Zahl, optional, Standard: 10)
get_recent_ac_submissions - Ruft die zuletzt akzeptierten Einsendungen eines Benutzers ab
username: LeetCode-Benutzername (Zeichenfolge, erforderlich)limit: Maximale Anzahl der zurückzugebenden Einsendungen (Zahl, optional, Standard: 10)
get_user_status - Ruft den Status des aktuellen Benutzers ab
Keine Parameter erforderlich
get_problem_submission_report – Ruft detaillierte Informationen zu einer bestimmten Übermittlung ab
id: Die numerische Übermittlungs-ID (Nummer, erforderlich)
get_problem_progress - Ruft den Problemlösungsfortschritt des aktuellen Benutzers ab
offset: Anzahl der zu überspringenden Fragen (Zahl, optional, Standard: 0)limit: Maximale Anzahl der zurückzugebenden Fragen (Anzahl, optional, Standard: 100)questionStatus: Filtern nach Fragenstatus (Aufzählung: „VERSUCHT“, „GELÖST“, optional)difficulty: Filtern nach Schwierigkeitsgraden (string[], optional)
get_all_submissions – Ruft eine paginierte Liste der Benutzereinreichungen ab
limit: Maximale Anzahl der zurückzugebenden Einsendungen (Zahl, Standard: 20)offset: Anzahl der zu überspringenden Übermittlungen (Zahl, Standard: 0)questionSlug: Optionale Problemkennung (Zeichenfolge, optional)lang: Programmiersprachenfilter (Zeichenfolge, optional, nur CN)status: Filter für den Übermittlungsstatus (Aufzählung: „AC“, „WA“, optional, nur CN)lastKey: Paginierungstoken zum Abrufen der nächsten Seite (Zeichenfolge, optional, nur CN)
Hinweise
search_notes – Sucht nach Benutzernotizen zu LeetCode China
keyword: Suchbegriff zum Filtern von Notizen (Zeichenfolge, optional)limit: Maximale Anzahl der zurückzugebenden Notizen (Zahl, optional, Standard: 10)skip: Anzahl der zu überspringenden Noten (Anzahl, optional, Standard: 0)orderBy: Sortierreihenfolge für zurückgegebene Notizen (Aufzählung: „ASCENDING“, „DESCENDING“, optional, Standard: „DESCENDING“)
get_note – Ruft Benutzernotizen für ein bestimmtes LeetCode-Problem ab
questionId: Die Frage-ID des LeetCode-Problems (Zeichenfolge, erforderlich)limit: Maximale Anzahl der zurückzugebenden Notizen (Zahl, optional, Standard: 10)skip: Anzahl der zu überspringenden Noten (Anzahl, optional, Standard: 0)
create_note – Erstellt eine neue Notiz für ein bestimmtes LeetCode-Problem
questionId: Die Frage-ID des LeetCode-Problems (Zeichenfolge, erforderlich)content: Der Inhalt der Notiz, unterstützt das Markdown-Format (Zeichenfolge, erforderlich)summary: Eine optionale kurze Zusammenfassung oder ein Titel für die Notiz (Zeichenfolge, optional)
update_note – Aktualisiert eine vorhandene Notiz mit neuem Inhalt oder einer Zusammenfassung
noteId: Die ID der zu aktualisierenden Notiz (Zeichenfolge, erforderlich)content: Der neue Inhalt für die Notiz, unterstützt Markdown-Format (Zeichenfolge, erforderlich)summary: Eine optionale neue kurze Zusammenfassung oder ein Titel für die Notiz (Zeichenfolge, optional)
Lösungen
list_problem_solutions - Ruft eine Liste von Community-Lösungen für ein bestimmtes Problem ab
questionSlug: Der URL-Slug/Bezeichner des Problems (Zeichenfolge, erforderlich)limit: Maximale Anzahl der zurückzugebenden Lösungen (Zahl, optional, Standard: 10)skip: Anzahl der zu überspringenden Lösungen (Zahl, optional)userInput: Suchbegriff zum Filtern von Lösungen (Zeichenfolge, optional)tagSlugs: Array von Tag-Kennungen zum Filtern von Lösungen (string[], optional, Standard: [])orderBy: Sortierkriterien für die zurückgegebenen LösungenGlobal: Aufzählung: „HOT“, „MOST_RECENT“, „MOST_VOTES“, optional, Standard: „HOT“
CN: Aufzählung: "STANDARD", "MOST_UPVOTE", "HOT", "NEWEST_TO_OLDEST", "OLDEST_TO_NEWEST", optional, Standard: "STANDARD"
get_problem_solution - Ruft den vollständigen Inhalt einer bestimmten Lösung ab
topicId: Eindeutige Themen-ID der Lösung (Zeichenfolge, erforderlich, nur global)slug: Eindeutiger Slug/Bezeichner der Lösung (Zeichenfolge, erforderlich, nur CN)
Verfügbare Ressourcen
Ressourcenname | Allgemein | CN | Authentifizierung erforderlich | Beschreibung |
Problemkategorien | ✅ | ✅ | ❌ | Eine Liste aller Problemklassifizierungskategorien |
Problem-Tags | ✅ | ✅ | ❌ | Eine detaillierte Sammlung von algorithmischen und Datenstruktur-Tags |
Problemsprachen | ✅ | ✅ | ❌ | Eine vollständige Liste aller unterstützten Programmiersprachen |
Problemdetail | ✅ | ✅ | ❌ | Bietet Details zu einem bestimmten Problem |
Problemlösung | ✅ | ✅ | ❌ | Bietet den kompletten Inhalt einer spezifischen Lösung |
Ressourcen-URIs
Problemkategorien – Eine Liste aller Problemklassifizierungskategorien
URI:
categories://problems/all
problem-tags - Eine detaillierte Sammlung von algorithmischen und Datenstruktur-Tags
URI:
tags://problems/all
problem-langs - Eine vollständige Liste aller von LeetCode unterstützten Programmiersprachen
URI:
langs://problems/all
Problemdetail – Bietet Details zu einem bestimmten LeetCode-Problem
URI:
problem://{titleSlug}Parameter:
titleSlug: Problemkennung, wie sie in der LeetCode-URL erscheint
Problemlösung - Liefert den vollständigen Inhalt einer spezifischen Lösung
Globale URI:
solution://{topicId}Parameter:
topicId: Eindeutige Themen-ID der Lösung
CN-URI:
solution://{slug}Parameter:
slug: Eindeutiger Slug/Bezeichner der Lösung
Authentifizierung
Für den benutzerspezifischen Datenzugriff ist eine LeetCode-Sitzungsauthentifizierung erforderlich:
Melden Sie sich bei LeetCode an ( globale oder chinesische Site)
Extrahieren Sie
LEETCODE_SESSIONCookie aus den Browser-EntwicklertoolsKonfigurieren Sie den Server mit dem Flag
--sessionoder der UmgebungsvariableLEETCODE_SESSION
Antwortformat
Alle Tools geben Antworten im JSON-Format mit der folgenden Struktur zurück:
Der JSON_DATA_STRING enthält entweder die angeforderten Daten oder eine Fehlermeldung bei fehlgeschlagenen Anfragen.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.