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:
- explainConcept - Obtén explicaciones sencillas de conceptos de programación con ejemplos
- reviewCode - Recibe comentarios constructivos sobre tu código con sugerencias de mejora
- suggestBestPractice - Aprende las mejores prácticas de la industria para cualquier tarea de programación
- compareApproaches - Compara diferentes soluciones y comprende las compensaciones
- generateLearningPath - Obtén una hoja de ruta estructurada para aprender cualquier tecnología
- debugHelper - Entiende y corrige errores con ayuda guiada de depuración
- explainThisCode - Obtén explicaciones detalladas de cómo funciona el código
- 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
- Clona este repositorio:
git clone https://github.com/YOUR_USERNAME/learning-assistant-mcp.git
cd learning-assistant-mcp
- Instala las dependencias:
npm install
- Compila el proyecto:
npm run build
- 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.
- 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 explicarlevel(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 revisarlanguage(string): Lenguaje de programacióncontext(opcional): Qué debería hacer el códigofocusAreas(opcional): Array de áreas de enfoque
suggestBestPractice
Sugiere mejores prácticas para tareas de programación.
Parámetros:
task(string): La tarea o áreatechnology(opcional): Framework/biblioteca específicocurrentApproach(opcional): Tu enfoque actual
compareApproaches
Compara diferentes enfoques de programación.
Parámetros:
problem(string): El problema a resolverapproaches(array): Lista de enfoques a compararcriteria(opcional): Criterios de comparación
generateLearningPath
Crea rutas de aprendizaje estructuradas.
Parámetros:
topic(string): Qué aprendercurrentLevel: Tu nivel actualgoalLevel: Nivel de competencia objetivotimeCommitment(opcional): Tiempo disponible
debugHelper
Ayuda a depurar errores y bugs.
Parámetros:
error(string): Mensaje de error o descripción del bugcode(opcional): Código relevantelanguage(opcional): Lenguaje de programacióncontext(opcional): Qué estabas haciendo
explainThisCode
Proporciona explicaciones detalladas del código.
Parámetros:
code(string): Código a explicarlanguage(string): Lenguaje de programacióndetailLevel(opcional): "overview" | "detailed" | "line-by-line"
quizMe
Genera preguntas de práctica.
Parámetros:
topic(string): Tema sobre el que hacer el cuestionariodifficulty(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.