Servidor MCP de LeetCode
El servidor MCP de LeetCode es un servidor de protocolo de contexto de modelo (MCP) que proporciona una integración perfecta con las API de LeetCode, lo que permite una automatización avanzada y una interacción inteligente con los problemas de programación, concursos, soluciones y datos de usuario de LeetCode.
Características
- 🌐 Soporte para múltiples sitios : compatible con las plataformas leetcode.com (Global) y leetcode.cn (China)
- Recuperación de datos de problemas : obtenga descripciones detalladas de problemas, restricciones, ejemplos, editoriales oficiales y soluciones enviadas por los usuarios.
- 👤 Acceso a datos de usuario : recupera perfiles de usuario, historial de envíos y rendimiento del concurso
- 🔒 Acceso a datos privados : cree y consulte notas de usuario, realice un seguimiento del progreso de la resolución de problemas y analice los detalles de los envíos (análisis AC/WA)
- 🔍 Capacidades de búsqueda avanzada : filtre problemas por etiquetas, niveles de dificultad, categorías y palabras clave
- 📅 Acceso a desafíos diarios : accede fácilmente a los problemas de desafíos diarios
Prerrequisitos
- Entorno de ejecución de Node.js
- (Opcional) Cookie de sesión de LeetCode para acceso a API autenticado
Instalación
Instalación mediante herrería
Para instalar leetcode-mcp-server para Claude Desktop automáticamente a través de Smithery :
Instalación manual
Alternativamente, puede clonar el repositorio y ejecutarlo localmente:
Uso
Integración de Visual Studio Code
Agregue la siguiente configuración JSON a su archivo de configuración de usuario (JSON). Para acceder a ella, presione Ctrl/Cmd + Shift + P
y busque Preferences: Open User Settings (JSON)
.
Opción 1: Uso de variables de entorno
Opción 2: Uso de argumentos de la línea de comandos
Para el sitio LeetCode China, modifique el parámetro --site
a cn
.
[!CONSEJO]
El servidor admite las siguientes variables de entorno:
LEETCODE_SITE
: Punto final de la API de LeetCode ('global' o 'cn')LEETCODE_SESSION
: cookie de sesión de LeetCode para acceso a API autenticadoNota de prioridad : Los argumentos de la línea de comandos prevalecen sobre las variables de entorno cuando se especifican ambas. Por ejemplo:
- Si se configura
LEETCODE_SITE=cn
pero ejecutaleetcode-mcp-server --site global
, el servidor utilizaráglobal
.- Si
LEETCODE_SESSION
existe pero usted proporciona--session "new_cookie"
, se utilizará el valor de la sesión de la línea de comandos.
Herramientas disponibles
Problemas
Herramienta | Global | CN | Se requiere autorización | Descripción |
---|---|---|---|---|
obtener_desafío_diario | ✅ | ✅ | ❌ | Recupera el problema del Desafío diario de LeetCode de hoy |
obtener_problema | ✅ | ✅ | ❌ | Recupera detalles de un problema específico de LeetCode |
problemas de búsqueda | ✅ | ✅ | ❌ | Busca problemas de LeetCode con múltiples criterios de filtro |
Usuarios
Herramienta | Global | CN | Se requiere autorización | Descripción |
---|---|---|---|---|
obtener_perfil_de_usuario | ✅ | ✅ | ❌ | Recupera información de perfil de un usuario de LeetCode |
obtener_clasificación_del_concurso_de_usuarios | ✅ | ✅ | ❌ | Obtiene estadísticas de clasificación del concurso para un usuario |
obtener_envíos_ac_recientes | ✅ | ✅ | ❌ | Recupera los envíos aceptados recientes de un usuario |
obtener_envíos_recientes | ✅ | ❌ | ❌ | Recupera el historial de envíos recientes de un usuario. |
obtener_estado_del_usuario | ✅ | ✅ | ✅ | Recupera el estado actual del usuario actual |
obtener_informe_de_envío_de_problemas | ✅ | ✅ | ✅ | Proporciona un análisis detallado del envío para un problema específico. |
obtener_progreso_del_problema | ✅ | ✅ | ✅ | Recupera el progreso de resolución de problemas del usuario actual. |
obtener_todos_los_envíos | ✅ | ✅ | ✅ | Recupera el historial de envíos del usuario actual |
Notas
Herramienta | Global | CN | Se requiere autorización | Descripción |
---|---|---|---|---|
notas de búsqueda | ❌ | ✅ | ✅ | Busca notas de usuario con opciones de filtrado |
obtener_nota | ❌ | ✅ | ✅ | Recupera notas para un problema específico por ID de pregunta |
crear_nota | ❌ | ✅ | ✅ | Crea una nueva nota para un problema específico. |
nota de actualización | ❌ | ✅ | ✅ | Actualiza una nota existente con contenido nuevo |
Soluciones
Herramienta | Global | CN | Se requiere autorización | Descripción |
---|---|---|---|---|
lista_soluciones_de_problemas | ✅ | ✅ | ❌ | Recupera una lista de soluciones comunitarias para un problema específico |
obtener_solución_del_problema | ✅ | ✅ | ❌ | Recupera el contenido completo de una solución específica |
Parámetros de la herramienta
Problemas
- get_daily_challenge : recupera el problema del desafío diario LeetCode de hoy con detalles completos
- No se requieren parámetros
- get_problem : recupera detalles sobre un problema específico de LeetCode
titleSlug
: El slug/identificador de la URL del problema (cadena, obligatoria)
- search_problems : busca problemas de LeetCode según múltiples criterios de filtro
category
: filtro de categoría de problema (cadena, opcional, predeterminado: "all-code-essentials")tags
: Lista de etiquetas de temas para filtrar problemas por (cadena[], opcional)difficulty
: Filtro de nivel de dificultad del problema (enumeración: "FÁCIL", "MEDIO", "DIFÍCIL", opcional)searchKeywords
: Palabras clave para buscar en títulos y descripciones de problemas (cadena, opcional)limit
: Número máximo de problemas a devolver (número, opcional, predeterminado: 10)offset
: Número de problemas a omitir (número, opcional)
Usuarios
- get_user_profile : recupera información de perfil sobre un usuario de LeetCode
username
: nombre de usuario de LeetCode (cadena, obligatorio)
- get_user_contest_ranking : recupera la información de clasificación del concurso de un usuario.
username
: nombre de usuario de LeetCode (cadena, obligatorio)attended
: si se deben incluir solo los concursos en los que el usuario ha participado (booleano, opcional, predeterminado: verdadero)
- get_recent_submissions : recupera los envíos recientes de un usuario en LeetCode Global
username
: nombre de usuario de LeetCode (cadena, obligatorio)limit
: Número máximo de envíos a devolver (número, opcional, predeterminado: 10)
- get_recent_ac_submissions : recupera los envíos aceptados recientes de un usuario
username
: nombre de usuario de LeetCode (cadena, obligatorio)limit
: Número máximo de envíos a devolver (número, opcional, predeterminado: 10)
- get_user_status - Recupera el estado del usuario actual
- No se requieren parámetros
- get_problem_submission_report : recupera información detallada sobre un envío específico
id
: El ID de envío numérico (número, obligatorio)
- get_problem_progress : recupera el progreso de resolución de problemas del usuario actual
offset
: Número de preguntas a omitir (número, opcional, predeterminado: 0)limit
: Número máximo de preguntas a devolver (número, opcional, predeterminado: 100)questionStatus
: Filtrar por estado de la pregunta (enumeración: "INTENTADO", "RESUELTO", opcional)difficulty
: Filtrar por niveles de dificultad (cadena[], opcional)
- get_all_submissions - Recupera la lista paginada de los envíos del usuario
limit
: Número máximo de envíos a devolver (número, predeterminado: 20)offset
: Número de envíos a omitir (número, predeterminado: 0)questionSlug
: Identificador de problema opcional (cadena, opcional)lang
: Filtro de lenguaje de programación (cadena, opcional, solo CN)status
: Filtro de estado de envío (enumeración: "AC", "WA", opcional, solo CN)lastKey
: Token de paginación para recuperar la página siguiente (cadena, opcional, solo CN)
Notas
- search_notes : busca notas de usuario en LeetCode China
keyword
: término de búsqueda para filtrar notas (cadena, opcional)limit
: Número máximo de notas a devolver (número, opcional, predeterminado: 10)skip
: Número de notas a omitir (número, opcional, predeterminado: 0)orderBy
: Orden de clasificación para las notas devueltas (enumeración: "ASCENDENTE", "DESCENDENTE", opcional, predeterminado: "DESCENDENTE")
- get_note - Recupera notas de usuario para un problema específico de LeetCode
questionId
: El ID de la pregunta del problema LeetCode (cadena, obligatoria)limit
: Número máximo de notas a devolver (número, opcional, predeterminado: 10)skip
: Número de notas a omitir (número, opcional, predeterminado: 0)
- create_note : crea una nueva nota para un problema específico de LeetCode
questionId
: El ID de la pregunta del problema LeetCode (cadena, obligatoria)content
: El contenido de la nota, admite el formato Markdown (cadena, obligatorio)summary
: Un resumen breve o título opcional para la nota (cadena, opcional)
- update_note - Actualiza una nota existente con nuevo contenido o resumen
noteId
: El ID de la nota a actualizar (cadena, obligatoria)content
: El nuevo contenido para la nota, admite el formato Markdown (cadena, obligatorio)summary
: Un nuevo resumen breve o título opcional para la nota (cadena, opcional)
Soluciones
- list_problem_solutions : recupera una lista de soluciones de la comunidad para un problema específico
questionSlug
: El slug/identificador de la URL del problema (cadena, obligatoria)limit
: Número máximo de soluciones a devolver (número, opcional, predeterminado: 10)skip
: Número de soluciones a omitir (número, opcional)userInput
: término de búsqueda para filtrar soluciones (cadena, opcional)tagSlugs
: Matriz de identificadores de etiquetas para filtrar soluciones (cadena[], opcional, predeterminado: [])orderBy
: Criterios de ordenación para las soluciones devueltas- Global: enumeración: "HOT", "MÁS_RECENT", "MÁS_VOTOS", opcional, valor predeterminado: "HOT"
- CN: enumeración: "PREDETERMINADO", "MÁS VOTADOS A FAVOR", "DESDE EL MÁS NUEVO AL MÁS ANTIGUO", "DE EL MÁS ANTIGUO AL MÁS NUEVO", opcional, valor predeterminado: "PREDETERMINADO"
- get_problem_solution : recupera el contenido completo de una solución específica
topicId
: ID de tema único de la solución (cadena, obligatoria, solo global)slug
: slug/identificador único de la solución (cadena, obligatorio, solo CN)
Recursos disponibles
Nombre del recurso | Global | CN | Se requiere autorización | Descripción |
---|---|---|---|---|
categorías de problemas | ✅ | ✅ | ❌ | Una lista de todas las categorías de clasificación de problemas |
etiquetas de problemas | ✅ | ✅ | ❌ | Una colección detallada de etiquetas algorítmicas y de estructura de datos |
lenguaje problemático | ✅ | ✅ | ❌ | Una lista completa de todos los lenguajes de programación compatibles |
detalle del problema | ✅ | ✅ | ❌ | Proporciona detalles sobre un problema específico. |
problema-solución | ✅ | ✅ | ❌ | Proporciona el contenido completo de una solución específica. |
URI de recursos
- categorías de problemas : una lista de todas las categorías de clasificación de problemas
- URI:
categories://problems/all
- URI:
- problem-tags : una colección detallada de etiquetas algorítmicas y de estructura de datos
- URI:
tags://problems/all
- URI:
- problem-langs : una lista completa de todos los lenguajes de programación compatibles con LeetCode
- URI:
langs://problems/all
- URI:
- problem-detail : proporciona detalles sobre un problema específico de LeetCode
- URI:
problem://{titleSlug}
- Parámetros:
titleSlug
: Identificador del problema tal como aparece en la URL de LeetCode
- URI:
- Problema-solución : Proporciona el contenido completo de una solución específica.
- URI global:
solution://{topicId}
- Parámetros:
topicId
: ID de tema único de la solución
- Parámetros:
- URI de CN:
solution://{slug}
- Parámetros:
slug
: slug/identificador único de la solución
- Parámetros:
- URI global:
Autenticación
El acceso a datos específicos del usuario requiere la autenticación de sesión de LeetCode:
- Inicie sesión en LeetCode (sitio global o de China )
- Extraer la cookie
LEETCODE_SESSION
de las herramientas para desarrolladores del navegador - Configurar el servidor con el indicador
--session
o la variable de entornoLEETCODE_SESSION
Formato de respuesta
Todas las herramientas devuelven respuestas en formato JSON con la siguiente estructura:
JSON_DATA_STRING
contiene los datos solicitados o un mensaje de error para solicitudes fallidas.
Licencia
Este proyecto está licenciado bajo la licencia MIT.
You must be authenticated.
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.
Un servidor de protocolo de contexto de modelo que proporciona integración con las API de LeetCode, lo que permite la interacción automatizada con problemas de programación, concursos, soluciones y datos de usuarios en las plataformas leetcode.com y 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 -95PythonMIT 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