Skip to main content
Glama
prabhattripathi9351

leetcode-github-assistant

🤖 LeetCode GitHub MCP Assistant

Превратите ваш личный репозиторий решений LeetCode в инструмент ИИ с возможностью запросов — прямо внутри Claude Desktop.

Репозиторий GitHub → Индекс метаданных → MCP-сервер → Claude Desktop (запросы на естественном языке)

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


🧠 Что это?

Этот проект подключает личный репозиторий GitHub с решёнными задачами LeetCode напрямую к Claude Desktop с помощью Model Context Protocol (MCP). Вместо ручного просмотра GitHub в поисках «всех задач по массивам, которые я решил» или поиска конкретного файла с решением, вы можете просто спросить Claude Desktop на обычном языке — и он ответит, используя живые данные, полученные прямо из вашего репозитория.

Создан как личный инструмент продуктивности, чтобы сделать практику DSA/LeetCode доступной для поиска и повторения через разговор, вместо ручного копания в файлах.

Он предоставляет:

  • Каждая решённая задача, помеченная по теме (array, dynamic-programming, graph и т.д.)

  • Сложность каждой задачи (easy/medium/hard), полученная с самого LeetCode

  • Полный код решения, получаемый в реальном времени с GitHub по запросу


Related MCP server: LeetCode MCP Server

✨ Возможности

Возможность

Описание

🔍 Поиск по темам

Запросите любую тему (например, «array», «dynamic-programming») и получите все соответствующие решённые задачи с их сложностью

📄 Получение кода в реальном времени

Получайте полный код решения для любой задачи по имени или слагу, прямо с GitHub

🏷️ Автоматическая разметка

Теги сложности и темы автоматически извлекаются из собственного GraphQL API LeetCode — ручная разметка не нужна

⚡ Быстрая параллельная индексация

Использует многопоточность для одновременного получения метаданных для каждой задачи, а не по одной

🔌 Нативная интеграция с Claude Desktop

Работает как локальный MCP-сервер — без переключения вкладок браузера, без копирования ссылок


🏗️ Архитектура и конвейер

┌─────────────────────────┐
│   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

🛠️ Технологический стек

Категория

Технология

Язык

Python 3.x

MCP-сервер

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

Источник данных

GitHub REST API, LeetCode GraphQL API

Параллельность

concurrent.futures.ThreadPoolExecutor

HTTP-клиент

requests

Клиент

Claude Desktop (локальная конфигурация MCP-сервера)


📁 Структура проекта

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

🔌 Справочник инструментов (MCP-инструменты)

Инструмент

Входные данные

Описание

search_by_topic

topic: string (например, "array")

Возвращает все решённые задачи, помеченные этой темой, с указанием сложности

get_solution_code

problem_name: string (например, "0877-stone-game.py" или "stone-game")

Получает и возвращает полный код решения в реальном времени с GitHub


🚀 Начало работы

Предварительные требования

  • Python 3.10+

  • Репозиторий GitHub с вашими решёнными задачами LeetCode (публичный или добавьте токен для приватных репозиториев)

  • Claude Desktop установлен

1. Клонируйте и установите зависимости

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

2. Настройте имя вашего репозитория

Откройте build_index_github.py и укажите:

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

3. Создайте индекс

python build_index_github.py

Это создаст index.json со сложностью и тегами тем для каждой задачи.

4. Подключите к Claude Desktop

Откройте Claude Desktop → Настройки → Разработчик → Изменить конфигурацию и добавьте:

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

💡 В Windows используйте двойные обратные слэши в пути (например, "D:\\Leetcode_mcp_server\\mcp_server.py"), и используйте полный путь к python.exe, если python отсутствует в системном PATH.

5. Перезапустите Claude Desktop

Полностью завершите работу (End Task в диспетчере задач, а не просто закройте окно) и откройте снова. Проверьте Настройки → Разработчик — сервер должен показывать статус running.

6. Спрашивайте

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

🗺️ Идеи для дорожной карты

  • Добавить инструмент фильтрации по сложности (например, «покажи все сложные задачи»)

  • Добавить инструмент «случайное предложение задачи» для практики

  • Автоматическая синхронизация индекса при каждом новом коммите в репозиторий (вебхук или плановая пересборка)

  • Поддержка приватных репозиториев через персональный токен GitHub

  • Добавить логику повторов/кэширования для вызовов GraphQL LeetCode для сокращения времени индексации


🤝 Вклад

Это личный учебный проект, но вопросы и предложения приветствуются — не стесняйтесь открывать PR или issue.


Создан, чтобы сделать личную практику LeetCode разговорной — вместо того чтобы копаться в папках GitHub, просто спросите.

Related MCP Connectors

Related MCP Servers