LeetCode MCP Server
Сервер MCP LeetCode
Сервер LeetCode MCP — это сервер протокола контекста модели (MCP) , который обеспечивает бесшовную интеграцию с API LeetCode, позволяя реализовать расширенную автоматизацию и интеллектуальное взаимодействие с задачами программирования LeetCode, конкурсами, решениями и пользовательскими данными.
Функции
🌐 Поддержка нескольких сайтов : поддержка платформ leetcode.com (глобальная) и leetcode.cn (китайская)
📊 Извлечение данных о проблемах : получение подробных описаний проблем, ограничений, примеров, официальных редакционных статей и решений, предоставленных пользователями.
👤 Доступ к данным пользователей : получение профилей пользователей, истории отправки заявок и результатов конкурсов.
🔒 Доступ к закрытым данным : создание и запрос пользовательских заметок, отслеживание хода решения проблем и анализ сведений об отправке (анализ AC/WA)
🔍 Расширенные возможности поиска : фильтрация задач по тегам, уровням сложности, категориям и ключевым словам.
📅 Доступ к ежедневным задачам : легкий доступ к ежедневным задачам
Related MCP server: Linear MCP Server
Предпосылки
Среда выполнения Node.js
(Необязательно) Файл 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:
Войдите в LeetCode ( глобальный или китайский сайт)
Извлечь cookie-файл
LEETCODE_SESSIONиз инструментов разработчика браузераНастройте сервер с помощью флага
--sessionили переменной средыLEETCODE_SESSION
Формат ответа
Все инструменты возвращают ответы в формате JSON со следующей структурой:
{
"content": [
{
"type": "text",
"text": "JSON_DATA_STRING"
}
]
}JSON_DATA_STRING содержит либо запрошенные данные, либо сообщение об ошибке в случае неудачных запросов.
Лицензия
Данный проект лицензирован по лицензии MIT.
Available Tools
1 toolget_problem_solutionA
Retrieves full content of a community solution article (read-only, no auth). Requires topicId from list_problem_solutions. Returns article text, author, and metadata as JSON. Use list_problem_solutions first to discover solutions and obtain topicId.
| Name | Required | Description | Default |
|---|---|---|---|
| topicId | Yes | Solution topicId from list_problem_solutions response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral traits: read-only, no authentication, and return format (JSON with text, author, metadata).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with purpose and safety, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple retrieval tool with one parameter and no output schema; mentions return fields and prerequisite step. Could specify error cases, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining the topicId's origin from list_problem_solutions, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves full content of a community solution article' with specific verb and resource. It is unambiguous and needs no sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to first use list_problem_solutions to obtain topicId, providing clear prerequisite and sequential usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.4.0- Added
get_problem_solution - Removed
get_user_contest_ranking
9 tool updates
v1.4.0- Removed
get_daily_challenge - Removed
get_problem - Removed
get_problem_solution - Removed
get_recent_ac_submissions - Removed
get_recent_submissions - Changed
get_user_contest_ranking2 fields changed- changed
Input schema / properties / attended / descriptionPrevious value: -"Whether to include only the contests the user has participated in (true) or all contests (false); defaults to true"New value: +"true = only contests the user attended (default); false = include all contests in history" - changed
Input schema / properties / username / descriptionPrevious value: -"LeetCode username to retrieve contest ranking information for"New value: +"LeetCode username whose contest ranking to fetch"
- Removed
get_user_profile - Removed
list_problem_solutions - Removed
search_problems
1 tool update
v1.0.0- Changed
get_daily_challenge1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
9 tool updates
- First observed
get_daily_challenge - First observed
get_problem - First observed
get_problem_solution - First observed
get_recent_ac_submissions - First observed
get_recent_submissions - First observed
get_user_contest_ranking - First observed
get_user_profile - First observed
list_problem_solutions - First observed
search_problems
TDQS
Only one tool exists, so there is no ambiguity with other tools. However, the tool's dependency on a missing listing tool could cause confusion for agents trying to use it.
With a single tool, naming is trivially consistent. The pattern 'get_problem_solution' follows verb_noun convention.
A single tool for a LeetCode server is far too few. Expected operations (list problems, get problem details, submit solutions, etc.) are missing, making the surface extremely limited.
The only tool requires a topicId from a non-existent list_problem_solutions tool, rendering it unusable. The surface is severely incomplete.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceServer 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.15MIT
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables large language models to interact with Linear's issue tracking system, allowing management of issues, projects, teams, and other Linear resources.19241MIT
- AlicenseCqualityFmaintenanceA Model Context Protocol (MCP) server for LeetCode that enables AI assistants to access LeetCode problems, user information, and contest data.72443MIT
- FlicenseNot gradedqualityNot gradedmaintenanceModel Context Protocol server that enables interaction with GitHub repositories, issues, pull requests, and search functionality through natural language.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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