Сервер MCP LeetCode
Сервер LeetCode MCP — это сервер протокола контекста модели (MCP) , который обеспечивает бесшовную интеграцию с API LeetCode, позволяя реализовать расширенную автоматизацию и интеллектуальное взаимодействие с задачами программирования LeetCode, конкурсами, решениями и пользовательскими данными.
Функции
- 🌐 Поддержка нескольких сайтов : поддержка платформ leetcode.com (глобальная) и leetcode.cn (китайская)
- 📊 Извлечение данных о проблемах : получение подробных описаний проблем, ограничений, примеров, официальных редакционных статей и решений, предоставленных пользователями.
- 👤 Доступ к данным пользователей : получение профилей пользователей, истории отправки заявок и результатов конкурсов.
- 🔒 Доступ к закрытым данным : создание и запрос пользовательских заметок, отслеживание хода решения проблем и анализ сведений об отправке (анализ AC/WA)
- 🔍 Расширенные возможности поиска : фильтрация задач по тегам, уровням сложности, категориям и ключевым словам.
- 📅 Доступ к ежедневным задачам : легкий доступ к ежедневным задачам
Предпосылки
- Среда выполнения Node.js
- (Необязательно) Файл cookie сеанса LeetCode для аутентифицированного доступа к API
Установка
Установка через Smithery
Чтобы автоматически установить leetcode-mcp-server для Claude Desktop через Smithery :
Ручная установка
Кроме того, вы можете клонировать репозиторий и запустить его локально:
Использование
Интеграция кода Visual Studio
Добавьте следующую конфигурацию JSON в файл настроек пользователя (JSON). Чтобы получить к нему доступ, нажмите Ctrl/Cmd + Shift + P
и выполните поиск Preferences: Open User Settings (JSON)
.
Вариант 1: использование переменных среды
Вариант 2: использование аргументов командной строки
Для сайта 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
- URI:
- problem-tags - Подробный сборник алгоритмических и структурных тегов данных
- URI:
tags://problems/all
- URI:
- problem-langs — Полный список всех языков программирования, поддерживаемых LeetCode
- URI:
langs://problems/all
- URI:
- problem-detail — предоставляет подробную информацию о конкретной проблеме LeetCode.
- URI:
problem://{titleSlug}
- Параметры:
titleSlug
: Идентификатор проблемы, как он отображается в URL-адресе LeetCode
- URI:
- проблема-решение - Предоставляет полное содержание конкретного решения
- Глобальный URI:
solution://{topicId}
- Параметры:
topicId
: уникальный идентификатор темы решения
- Параметры:
- CN URI:
solution://{slug}
- Параметры:
slug
: Уникальный слаг/идентификатор решения
- Параметры:
- Глобальный URI:
Аутентификация
Для доступа к данным пользователя требуется аутентификация сеанса LeetCode:
- Войдите в LeetCode ( глобальный или китайский сайт)
- Извлечь cookie-файл
LEETCODE_SESSION
из инструментов разработчика браузера - Настройте сервер с помощью флага
--session
или переменной средыLEETCODE_SESSION
Формат ответа
Все инструменты возвращают ответы в формате JSON со следующей структурой:
JSON_DATA_STRING
содержит либо запрошенные данные, либо сообщение об ошибке в случае неудачных запросов.
Лицензия
Данный проект лицензирован по лицензии MIT.
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.
Related MCP Servers
- -securityFlicense-qualityServer 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 -10JavaScript
- AsecurityAlicenseAqualityA 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 -12PythonMIT License
- -securityAlicense-qualityA 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 -105PythonMIT License
- -securityFlicense-qualityA 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 -462Python