Learning-Assistant-MCP

Un servidor MCP que ayuda a los desarrolladores a comprender lo que están construyendo, explicando conceptos, revisando enfoques y guiándolos hacia mejores soluciones.

Documentación

Learning Assistant MCP Server 🎓

Un servidor MCP (Model Context Protocol) educativo que ayuda a los desarrolladores a aprender, entender código y mejorar sus habilidades de programación mediante herramientas impulsadas por IA.

Características 🚀

Este servidor MCP proporciona 8 potentes herramientas de aprendizaje:

  1. explainConcept - Obtén explicaciones sencillas de conceptos de programación con ejemplos
  2. reviewCode - Recibe comentarios constructivos sobre tu código con sugerencias de mejora
  3. suggestBestPractice - Aprende las mejores prácticas de la industria para cualquier tarea de programación
  4. compareApproaches - Compara diferentes soluciones y comprende las compensaciones
  5. generateLearningPath - Obtén una hoja de ruta estructurada para aprender cualquier tecnología
  6. debugHelper - Entiende y corrige errores con ayuda guiada de depuración
  7. explainThisCode - Obtén explicaciones detalladas de cómo funciona el código
  8. quizMe - Pon a prueba tus conocimientos con preguntas de práctica generadas automáticamente

Instalación 📦

Requisitos previos

  • Node.js 18.0.0 o superior
  • Cursor IDE o cualquier cliente compatible con MCP

Configuración

  1. Clona este repositorio:
git clone https://github.com/YOUR_USERNAME/learning-assistant-mcp.git
cd learning-assistant-mcp
  1. Instala las dependencias:
npm install
  1. Compila el proyecto:
npm run build
  1. Configura tu cliente MCP (por ejemplo, Cursor IDE):

Añade a tu ~/.cursor/mcp.json:

{
  "mcpServers": {
    "learning-assistant": {
      "command": "node",
      "args": [
        "/absolute/path/to/learning-assistant-mcp/dist/index.js"
      ]
    }
  }
}

Reemplaza /absolute/path/to/learning-assistant-mcp con la ruta real donde clonaste el repositorio.

  1. Reinicia Cursor IDE

Uso 💡

Una vez instalado, puedes usar las herramientas en Cursor Chat:

Ejemplos de indicaciones

  • "Explica qué son los closures en JavaScript para un principiante"
  • "Revisa este código y sugiere mejoras"
  • "¿Cuáles son las mejores prácticas para el manejo de errores en React?"
  • "Compara REST API vs GraphQL"
  • "Crea una ruta de aprendizaje para dominar TypeScript"
  • "Ayúdame a depurar este error: Cannot read property 'map' of undefined"
  • "Explica qué hace este patrón regex: /^[a-z]+$/i"
  • "Hazme un cuestionario sobre JavaScript async/await con 5 preguntas"

Desarrollo 🛠️

# Run in development mode
npm run dev

# Build TypeScript
npm run build

# Run the built server
npm start

Estructura del Proyecto 📁

learning-assistant-mcp/
├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

Referencia de Herramientas 📚

explainConcept

Explica conceptos de programación en términos aptos para principiantes.

Parámetros:

  • concept (string): El concepto a explicar
  • level (opcional): "beginner" | "intermediate" | "advanced"
  • language (opcional): Contexto del lenguaje de programación

reviewCode

Revisa código y proporciona comentarios constructivos.

Parámetros:

  • code (string): Código a revisar
  • language (string): Lenguaje de programación
  • context (opcional): Qué debería hacer el código
  • focusAreas (opcional): Array de áreas de enfoque

suggestBestPractice

Sugiere mejores prácticas para tareas de programación.

Parámetros:

  • task (string): La tarea o área
  • technology (opcional): Framework/biblioteca específico
  • currentApproach (opcional): Tu enfoque actual

compareApproaches

Compara diferentes enfoques de programación.

Parámetros:

  • problem (string): El problema a resolver
  • approaches (array): Lista de enfoques a comparar
  • criteria (opcional): Criterios de comparación

generateLearningPath

Crea rutas de aprendizaje estructuradas.

Parámetros:

  • topic (string): Qué aprender
  • currentLevel: Tu nivel actual
  • goalLevel: Nivel de competencia objetivo
  • timeCommitment (opcional): Tiempo disponible

debugHelper

Ayuda a depurar errores y bugs.

Parámetros:

  • error (string): Mensaje de error o descripción del bug
  • code (opcional): Código relevante
  • language (opcional): Lenguaje de programación
  • context (opcional): Qué estabas haciendo

explainThisCode

Proporciona explicaciones detalladas del código.

Parámetros:

  • code (string): Código a explicar
  • language (string): Lenguaje de programación
  • detailLevel (opcional): "overview" | "detailed" | "line-by-line"

quizMe

Genera preguntas de práctica.

Parámetros:

  • topic (string): Tema sobre el que hacer el cuestionario
  • difficulty (opcional): "easy" | "medium" | "hard"
  • questionCount (opcional): Número de preguntas (1-10)
  • questionType (opcional): Tipo de preguntas

Contribuciones 🤝

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.

Licencia 📄

Licencia MIT - consulta el archivo LICENSE para más detalles

Autor ✨

Muhammad Yasir Khan

Soporte 💬

Si tienes preguntas o necesitas ayuda, por favor abre un issue en GitHub.