Skip to main content
Glama

LeetCode MCP Server

Сервер MCP LeetCode

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

Функции

  • 🌐 Поддержка нескольких сайтов : поддержка платформ leetcode.com (глобальная) и leetcode.cn (китайская)
  • 📊 Извлечение данных о проблемах : получение подробных описаний проблем, ограничений, примеров, официальных редакционных статей и решений, предоставленных пользователями.
  • 👤 Доступ к данным пользователей : получение профилей пользователей, истории отправки заявок и результатов конкурсов.
  • 🔒 Доступ к закрытым данным : создание и запрос пользовательских заметок, отслеживание хода решения проблем и анализ сведений об отправке (анализ AC/WA)
  • 🔍 Расширенные возможности поиска : фильтрация задач по тегам, уровням сложности, категориям и ключевым словам.
  • 📅 Доступ к ежедневным задачам : легкий доступ к ежедневным задачам

Предпосылки

  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.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер Model Context Protocol, обеспечивающий интеграцию с API LeetCode, позволяя автоматизировать взаимодействие с задачами программирования, конкурсами, решениями и пользовательскими данными на платформах leetcode.com и leetcode.cn.

  1. Функции
    1. Предпосылки
      1. Установка
        1. Установка через Smithery
        2. Ручная установка
      2. Использование
        1. Интеграция кода Visual Studio
      3. Доступные инструменты
        1. Проблемы
        2. Пользователи
        3. Примечания
        4. Решения
      4. Параметры инструмента
        1. Проблемы
        2. Пользователи
        3. Примечания
        4. Решения
      5. Доступные ресурсы
        1. URI ресурсов
          1. Аутентификация
            1. Формат ответа
              1. Лицензия

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  Server that enhances the capabilities of the Cline coding agent. It provides intelligent code suggestions, reduces hallucinations, and documents the knowledge base by leveraging your project's documentation and detecting the technologies used in your codebase.
                  Last updated -
                  10
                  JavaScript
                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server that provides tools for code modification and generation via Large Language Models, allowing users to create, modify, rewrite, and delete files using structured XML instructions.
                  Last updated -
                  12
                  Python
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that provides a standardized interface for interacting with Notion's API, enabling users to list databases, create pages, and search across their Notion workspace.
                  Last updated -
                  105
                  Python
                  MIT License
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.
                  Last updated -
                  46
                  2
                  Python
                  • Linux
                  • Apple

                View all related MCP servers

                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