Skip to main content
Glama
prabhattripathi9351

leetcode-github-assistant

🤖 LeetCode GitHub MCP Assistant

Verwandeln Sie Ihr persönliches LeetCode-Lösungs-Repository in ein abfragbares KI-Tool – direkt in Claude Desktop.

GitHub Repo → Metadata Index → MCP Server → Claude Desktop (natürliche Sprachabfragen)

Python 3.x | MCP SDK | GitHub REST API | LeetCode GraphQL API | MIT License


🧠 Was ist das?

Dieses Projekt verbindet ein persönliches GitHub-Repository mit gelösten LeetCode-Problemen direkt mit Claude Desktop über das Model Context Protocol (MCP). Anstatt manuell in GitHub zu stöbern, um „alle Array-Probleme, die ich gelöst habe" zu finden oder nach einer bestimmten Lösungsdatei zu suchen, können Sie Claude Desktop einfach in natürlicher Sprache fragen – und es antwortet mit Live-Daten, die direkt aus Ihrem Repository abgerufen werden.

Entwickelt als persönliches Produktivitätstool, um DSA/LeetCode-Übungen durch Konversation durchsuchbar und überprüfbar zu machen, anstatt manuell in Dateien zu wühlen.

Es zeigt:

  • Jedes gelöste Problem, getaggt nach Thema (array, dynamic-programming, graph, usw.)

  • Die Schwierigkeit jedes Problems (easy/medium/hard), direkt von LeetCode abgerufen

  • Den vollständigen Lösungscode, live von GitHub auf Anfrage abgerufen


Related MCP server: LeetCode MCP Server

✨ Funktionen

Fähigkeit

Beschreibung

🔍 Themenbasierte Suche

Fragen Sie nach einem beliebigen Thema (z. B. „array", „dynamic-programming") und erhalten Sie jedes passende gelöste Problem mit seiner Schwierigkeit

📄 Live-Codeabruf

Rufen Sie den vollständigen Lösungscode für jedes Problem nach Name oder Slug direkt von GitHub ab

🏷️ Automatisches Tagging

Schwierigkeits- und Themen-Tags werden automatisch von LeetCode's eigener GraphQL-API abgerufen – kein manuelles Tagging erforderlich

⚡ Schnelle parallele Indizierung

Verwendet Multithreading, um Metadaten für jedes Problem gleichzeitig abzurufen, anstatt einzeln

🔌 Native Claude Desktop-Integration

Läuft als lokaler MCP-Server – kein Wechseln von Browser-Tabs, kein Kopieren und Einfügen von Links


🏗️ Architektur & Pipeline

┌─────────────────────────┐
│   GitHub Repo            │   → your solved LeetCode .py/.cpp/.java files
│   Daily_leet_code         │
└────────────┬─────────────┘
             │  GitHub REST API (recursive file listing)
             ▼
┌─────────────────────────┐
│  build_index_github.py   │   → extracts slug from filename
│      (Indexer)            │   → queries LeetCode GraphQL for
└────────────┬─────────────┘     difficulty + topic tags (parallel)
             │  writes
             ▼
┌─────────────────────────┐
│      index.json           │   → local structured metadata store
└────────────┬─────────────┘
             │  loaded at startup
             ▼
┌─────────────────────────┐
│    mcp_server.py          │   → exposes 2 tools over stdio:
│   (MCP Server)             │     search_by_topic, get_solution_code
└────────────┬─────────────┘
             │  MCP / JSON-RPC over stdio
             ▼
┌─────────────────────────┐
│     Claude Desktop        │   → "array topic ke problems batao"
│   (spawns server locally) │   → "0877-stone-game ka code dikhao"
└─────────────────────────┘

Architecture Diagram

MCP Explained

🛠️ Technologie-Stack

Kategorie

Technologie

Sprache

Python 3.x

MCP-Server

mcp SDK (mcp.server.Server, stdio transport)

Datenquelle

GitHub REST API, LeetCode GraphQL API

Parallelität

concurrent.futures.ThreadPoolExecutor

HTTP-Client

requests

Client

Claude Desktop (lokale MCP-Server-Konfiguration)


📁 Projektstruktur

Leetcode_mcp_server/
├── build_index_github.py   # Indexer: scans GitHub repo, builds index.json
├── mcp_server.py            # MCP server: exposes search_by_topic & get_solution_code
├── index.json                # Auto-generated metadata index (gitignored)
├── requirements.txt          # Python dependencies
└── .gitignore

🔌 Tool-Referenz (MCP-Tools)

Tool

Eingabe

Beschreibung

search_by_topic

topic: string (z. B. "array")

Gibt alle gelösten Probleme mit diesem Thema zurück, mit Schwierigkeit

get_solution_code

problem_name: string (z. B. "0877-stone-game.py" oder "stone-game")

Ruft den vollständigen Lösungscode live von GitHub ab und gibt ihn zurück


🚀 Erste Schritte

Voraussetzungen

  • Python 3.10+

  • Ein GitHub-Repository mit Ihren eigenen gelösten LeetCode-Problemen (öffentlich, oder fügen Sie ein Token für private Repositories hinzu)

  • Claude Desktop installiert

1. Klonen und Abhängigkeiten installieren

git clone https://github.com/<your-username>/<this-repo>.git
cd <this-repo>
pip install -r requirements.txt

2. Repository-Namen konfigurieren

Öffnen Sie build_index_github.py und setzen Sie:

GITHUB_REPO = "your-username/your-leetcode-repo"

3. Index erstellen

python build_index_github.py

Dies erstellt index.json mit der Schwierigkeit und den Themen-Tags jedes Problems.

4. Mit Claude Desktop verbinden

Öffnen Sie Claude Desktop → Einstellungen → Entwickler → Konfiguration bearbeiten und fügen Sie hinzu:

{
  "mcpServers": {
    "leetcode-github-assistant": {
      "command": "python",
      "args": ["/absolute/path/to/mcp_server.py"]
    }
  }
}

💡 Unter Windows verwenden Sie doppelte Backslashes im Pfad (z. B. "D:\\Leetcode_mcp_server\\mcp_server.py") und verwenden Sie den vollständigen Pfad von python.exe, wenn python nicht in Ihrem System-PATH ist.

5. Claude Desktop neu starten

Beenden Sie es vollständig (End Task im Task-Manager, nicht nur das Fenster schließen) und öffnen Sie es erneut. Überprüfen Sie Einstellungen → Entwickler – der Server sollte den Status running anzeigen.

6. Fragen Sie einfach

"array topic ke problems batao"
"show me the code for two-sum"

🗺️ Roadmap-Ideen

  • Hinzufügen eines Tools zur Filterung nach Schwierigkeit (z. B. „zeig mir alle schweren Probleme")

  • Hinzufügen eines Tools zur „Zufallsproblem-Vorschlag" für die Übung

  • Automatische Synchronisierung des Index, wenn neue Commits in das Repository gepusht werden (Webhook oder geplanter Neuaufbau)

  • Unterstützung privater Repositories über GitHub-Personal-Access-Token

  • Hinzufügen von Wiederholungs-/Cache-Logik für LeetCode-GraphQL-Aufrufe, um die Indizierungszeit zu reduzieren


🤝 Mitwirken

Dies ist ein persönliches Lernprojekt, aber Issues und Vorschläge sind willkommen – zögern Sie nicht, einen PR oder ein Issue zu eröffnen.


Entwickelt, um persönliche LeetCode-Übungen in Gesprächsform zu bringen – anstatt in GitHub-Ordnern zu wühlen, einfach fragen.

Related MCP Connectors

Related MCP Servers