Skip to main content
Glama

Сервер MCP LeetCode

Версия НПМ Лицензия GitHub значок кузнеца Китайский док Звезды

Сервер LeetCode MCP — это сервер протокола контекста модели (MCP) , который обеспечивает бесшовную интеграцию с API LeetCode, позволяя реализовать расширенную автоматизацию и интеллектуальное взаимодействие с задачами программирования LeetCode, конкурсами, решениями и пользовательскими данными.

Функции

  • 🌐 Поддержка нескольких сайтов : поддержка платформ leetcode.com (глобальная) и leetcode.cn (китайская)

  • 📊 Извлечение данных о проблемах : получение подробных описаний проблем, ограничений, примеров, официальных редакционных статей и решений, предоставленных пользователями.

  • 👤 Доступ к данным пользователей : получение профилей пользователей, истории отправки заявок и результатов конкурсов.

  • 🔒 Доступ к закрытым данным : создание и запрос пользовательских заметок, отслеживание хода решения проблем и анализ сведений об отправке (анализ AC/WA)

  • 🔍 Расширенные возможности поиска : фильтрация задач по тегам, уровням сложности, категориям и ключевым словам.

  • 📅 Доступ к ежедневным задачам : легкий доступ к ежедневным задачам

Related MCP server: mcp-server-code-assist

Предпосылки

  1. Среда выполнения Node.js

  2. (Необязательно) Файл cookie сеанса LeetCode для аутентифицированного доступа к API

Установка

Установка через Smithery

Чтобы автоматически установить leetcode-mcp-server для Claude Desktop через Smithery :

npx -y @smithery/cli install @jinzcdev/leetcode-mcp-server --client claude

Ручная установка

# Install from npm npm install @jinzcdev/leetcode-mcp-server -g # Or run with Global site configuration npx -y @jinzcdev/leetcode-mcp-server --site global # Run with authentication (for accessing private data) npx -y @jinzcdev/leetcode-mcp-server --site global --session <YOUR_LEETCODE_SESSION_COOKIE>

Кроме того, вы можете клонировать репозиторий и запустить его локально:

# Clone the repository git clone https://github.com/jinzcdev/leetcode-mcp-server.git # Navigate to the project directory cd leetcode-mcp-server # Build the project npm install && npm run build # Run the server node build/index.js --site global

Использование

Интеграция кода Visual Studio

Добавьте следующую конфигурацию JSON в файл настроек пользователя (JSON). Чтобы получить к нему доступ, нажмите Ctrl/Cmd + Shift + P и выполните поиск Preferences: Open User Settings (JSON) .

Вариант 1: использование переменных среды

{ "mcp": { "servers": { "leetcode": { "type": "stdio", "command": "npx", "args": ["-y", "@jinzcdev/leetcode-mcp-server"], "env": { "LEETCODE_SITE": "global", "LEETCODE_SESSION": "<YOUR_LEETCODE_SESSION_COOKIE>" } } } } }

Вариант 2: использование аргументов командной строки

{ "mcp": { "servers": { "leetcode": { "type": "stdio", "command": "npx", "args": [ "-y", "@jinzcdev/leetcode-mcp-server", "--site", "global", "--session", "<YOUR_LEETCODE_SESSION_COOKIE>" ] } } } }

Для сайта LeetCode China измените параметр --site на cn .

[!КОНЧИК]

Сервер поддерживает следующие переменные среды:

  • LEETCODE_SITE : конечная точка API LeetCode («глобальная» или «cn»)

  • LEETCODE_SESSION : сеансовый cookie LeetCode для аутентифицированного доступа к API

Примечание о приоритете : Аргументы командной строки имеют приоритет над переменными среды, если указаны оба. Например:

  • Если установлено LEETCODE_SITE=cn , но вы запускаете leetcode-mcp-server --site global , сервер будет использовать global .

  • Если LEETCODE_SESSION существует, но вы указали --session "new_cookie" , будет использовано значение сеанса командной строки.

Доступные инструменты

Проблемы

Инструмент

Глобальный

КН

Требуется аутентификация

Описание

получить_ежедневный_вызов

Возвращает сегодняшнюю задачу LeetCode Daily Challenge

получить_проблему

Извлекает сведения о конкретной проблеме LeetCode

поиск_проблем

Поиск проблем LeetCode с несколькими критериями фильтрации

Пользователи

Инструмент

Глобальный

КН

Требуется аутентификация

Описание

получить_профиль_пользователя

Извлекает информацию профиля пользователя LeetCode

получить_рейтинг_пользователя_конкурса

Получает статистику рейтинга конкурса для пользователя

получить_последние_ac_отправления

Извлекает последние принятые заявки пользователя.

получить_последние_отправления

Извлекает историю последних отправок пользователя

получить_статус_пользователя

Возвращает текущий статус текущего пользователя.

получить_отчет_о_проблеме_отчете

Предоставляет подробный анализ представленных материалов по конкретной проблеме

получить_проблему_прогресс

Возвращает прогресс решения проблемы текущего пользователя.

получить_все_отправления

Извлекает историю отправок текущего пользователя

Примечания

Инструмент

Глобальный

КН

Требуется аутентификация

Описание

поиск_заметок

Поиск заметок пользователя с возможностью фильтрации

получить_заметку

Извлекает заметки по конкретной проблеме по идентификатору вопроса

создать_заметку

Создает новую заметку для конкретной проблемы

обновление_заметки

Обновляет существующую заметку новым содержанием.

Решения

Инструмент

Глобальный

КН

Требуется аутентификация

Описание

список_решений_проблем

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

получить_решение_проблемы

Извлекает полное содержание определенного решения

Параметры инструмента

Проблемы

  • get_daily_challenge — получает сегодняшнюю задачу LeetCode Daily Challenge с полными подробностями

    • Параметры не требуются

  • get_problem — получает сведения о конкретной проблеме LeetCode

    • titleSlug : URL-адрес/идентификатор проблемы (строка, обязательно)

  • search_problems — Поиск проблем LeetCode на основе нескольких критериев фильтрации

    • category : Фильтр категории проблемы (строка, необязательно, по умолчанию: "all-code-essentials")

    • tags : Список тегов тем для фильтрации проблем (string[], необязательно)

    • difficulty : Фильтр уровня сложности проблемы (перечисление: «ЛЕГКИЙ», «СРЕДНИЙ», «СЛОЖНЫЙ», необязательно)

    • searchKeywords : Ключевые слова для поиска в названиях и описаниях проблем (строка, необязательно)

    • limit : Максимальное количество возвращаемых проблем (число, необязательно, по умолчанию: 10)

    • offset : Количество пропускаемых задач (число, необязательно)

Пользователи

  • get_user_profile — извлекает информацию профиля пользователя LeetCode

    • username : LeetCode имя пользователя (строка, обязательно)

  • get_user_contest_ranking — получает информацию о рейтинге пользователя в конкурсе

    • username : LeetCode имя пользователя (строка, обязательно)

    • attended : следует ли включать только те конкурсы, в которых участвовал пользователь (логическое значение, необязательное, по умолчанию: true)

  • get_recent_submissions — извлекает последние отправленные пользователем материалы на LeetCode Global

    • username : LeetCode имя пользователя (строка, обязательно)

    • limit : Максимальное количество возвращаемых отправлений (число, необязательно, по умолчанию: 10)

  • get_recent_ac_submissions — извлекает последние принятые заявки пользователя

    • username : LeetCode имя пользователя (строка, обязательно)

    • limit : Максимальное количество возвращаемых отправлений (число, необязательно, по умолчанию: 10)

  • get_user_status — получает текущий статус пользователя

    • Параметры не требуются

  • get_problem_submission_report — получает подробную информацию о конкретной отправке

    • id : числовой идентификатор отправки (номер, обязательно)

  • get_problem_progress — Получает прогресс решения проблемы текущего пользователя.

    • offset : Количество вопросов, которые нужно пропустить (число, необязательно, по умолчанию: 0)

    • limit : максимальное количество вопросов для возврата (число, необязательно, по умолчанию: 100)

    • questionStatus : Фильтр по статусу вопроса (перечисление: «ПЫТКА», «РЕШЕНО», необязательно)

    • difficulty : Фильтр по уровням сложности (string[], необязательно)

  • get_all_submissions — извлекает постраничный список отправленных пользователем материалов

    • limit : Максимальное количество возвращаемых отправлений (число, по умолчанию: 20)

    • offset : Количество пропущенных отправлений (число, по умолчанию: 0)

    • questionSlug : Необязательный идентификатор проблемы (строка, необязательно)

    • lang : Фильтр языка программирования (строка, необязательно, только CN)

    • status : Фильтр статуса отправки (перечисление: «AC», «WA», необязательно, только CN)

    • lastKey : токен пагинации для получения следующей страницы (строка, необязательно, только CN)

Примечания

  • search_notes — Поиск заметок пользователей на LeetCode China

    • keyword : поисковый запрос для фильтрации заметок (строка, необязательно)

    • limit : Максимальное количество возвращаемых заметок (число, необязательно, по умолчанию: 10)

    • skip : Количество пропускаемых заметок (число, необязательно, по умолчанию: 0)

    • orderBy : порядок сортировки возвращаемых заметок (перечисление: "ASCENDING", "DESCENDING", необязательно, по умолчанию: "DESCENDING")

  • get_note — извлекает заметки пользователя для конкретной проблемы LeetCode

    • questionId : Идентификатор вопроса проблемы LeetCode (строка, обязательно)

    • limit : Максимальное количество возвращаемых заметок (число, необязательно, по умолчанию: 10)

    • skip : Количество пропускаемых заметок (число, необязательно, по умолчанию: 0)

  • create_note — создает новую заметку для определенной проблемы LeetCode.

    • questionId : Идентификатор вопроса проблемы LeetCode (строка, обязательно)

    • content : Содержимое заметки, поддерживает формат markdown (строка, обязательно)

    • summary : необязательное краткое резюме или название заметки (строка, необязательно)

  • update_note — обновляет существующую заметку новым содержимым или резюме.

    • noteId : идентификатор заметки для обновления (строка, обязательно)

    • content : Новое содержимое заметки, поддерживает формат markdown (строка, обязательно)

    • summary : необязательное новое краткое резюме или название заметки (строка, необязательно)

Решения

  • list_problem_solutions — извлекает список решений сообщества для определенной проблемы.

    • questionSlug : URL-адрес/идентификатор проблемы (строка, обязательно)

    • limit : Максимальное количество возвращаемых решений (число, необязательно, по умолчанию: 10)

    • skip : Количество решений для пропуска (число, необязательно)

    • userInput : поисковый запрос для фильтрации решений (строка, необязательно)

    • tagSlugs : Массив идентификаторов тегов для фильтрации решений (string[], необязательно, по умолчанию: [])

    • orderBy : Критерии сортировки для возвращенных решений

      • Глобально: enum: "HOT", "MOST_RECENT", "MOST_VOTES", необязательно, по умолчанию: "HOT"

      • CN: enum: "DEFAULT", "MOST_UPVOTE", "HOT", "NEWEST_TO_OLDEST", "OLDEST_TO_NEWEST", необязательно, по умолчанию: "DEFAULT"

  • get_problem_solution — извлекает полное содержание определенного решения

    • topicId : уникальный идентификатор темы решения (строка, обязательно, только глобальный)

    • slug : Уникальный слаг/идентификатор решения (строка, обязательно, только CN)

Доступные ресурсы

Имя ресурса

Глобальный

КН

Требуется аутентификация

Описание

проблемные категории

Список всех категорий классификации проблем

проблемные теги

Подробный набор алгоритмических и структурных тегов данных

проблемные языки

Полный список всех поддерживаемых языков программирования

проблема-деталь

Предоставляет подробную информацию о конкретной проблеме

проблема-решение

Предоставляет полное содержание конкретного решения

URI ресурсов

  • problem-categories - Список всех категорий классификации проблем

    • URI: categories://problems/all

  • problem-tags - Подробный сборник алгоритмических и структурных тегов данных

    • URI: tags://problems/all

  • problem-langs — Полный список всех языков программирования, поддерживаемых LeetCode

    • URI: langs://problems/all

  • problem-detail — предоставляет подробную информацию о конкретной проблеме LeetCode.

    • URI: problem://{titleSlug}

    • Параметры:

      • titleSlug : Идентификатор проблемы, как он отображается в URL-адресе LeetCode

  • проблема-решение - Предоставляет полное содержание конкретного решения

    • Глобальный URI: solution://{topicId}

      • Параметры:

        • topicId : уникальный идентификатор темы решения

    • CN URI: solution://{slug}

      • Параметры:

        • slug : Уникальный слаг/идентификатор решения

Аутентификация

Для доступа к данным пользователя требуется аутентификация сеанса LeetCode:

  1. Войдите в LeetCode ( глобальный или китайский сайт)

  2. Извлечь cookie-файл LEETCODE_SESSION из инструментов разработчика браузера

  3. Настройте сервер с помощью флага --session или переменной среды LEETCODE_SESSION

Формат ответа

Все инструменты возвращают ответы в формате JSON со следующей структурой:

{ "content": [ { "type": "text", "text": "JSON_DATA_STRING" } ] }

JSON_DATA_STRING содержит либо запрошенные данные, либо сообщение об ошибке в случае неудачных запросов.

Лицензия

Данный проект лицензирован по лицензии MIT.

Latest Blog Posts

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/jinzcdev/leetcode-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server