Learning-Assistant-MCP

Um servidor MCP que ajuda desenvolvedores a entender o que estão construindo, explicando conceitos, revisando abordagens e guiando-os para melhores soluções.

Documentação

Servidor MCP Learning Assistant 🎓

Um servidor MCP (Model Context Protocol) educacional que ajuda desenvolvedores a aprender, entender código e melhorar suas habilidades de programação por meio de ferramentas com IA.

Recursos 🚀

Este servidor MCP oferece 8 ferramentas de aprendizado poderosas:

  1. explainConcept - Obtenha explicações simples de conceitos de programação com exemplos
  2. reviewCode - Receba feedback construtivo sobre seu código com sugestões de melhoria
  3. suggestBestPractice - Aprenda as melhores práticas da indústria para qualquer tarefa de programação
  4. compareApproaches - Compare diferentes soluções e entenda os tradeoffs
  5. generateLearningPath - Obtenha um roteiro estruturado para aprender qualquer tecnologia
  6. debugHelper - Entenda e corrija erros com ajuda guiada de depuração
  7. explainThisCode - Obtenha explicações detalhadas de como o código funciona
  8. quizMe - Teste seus conhecimentos com perguntas de prática geradas automaticamente

Instalação 📦

Pré-requisitos

  • Node.js 18.0.0 ou superior
  • Cursor IDE ou qualquer cliente compatível com MCP

Configuração

  1. Clone este repositório:
git clone https://github.com/YOUR_USERNAME/learning-assistant-mcp.git
cd learning-assistant-mcp
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build
  1. Configure seu cliente MCP (ex.: Cursor IDE):

Adicione ao seu ~/.cursor/mcp.json:

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

Substitua /absolute/path/to/learning-assistant-mcp pelo caminho real onde você clonou o repositório.

  1. Reinicie o Cursor IDE

Uso 💡

Depois de instalado, você pode usar as ferramentas no Cursor Chat:

Exemplos de Prompts

  • "Explique o que são closures em JavaScript para um iniciante"
  • "Revise este código e sugira melhorias"
  • "Quais são as melhores práticas para tratamento de erros em React?"
  • "Compare REST API vs GraphQL"
  • "Crie um caminho de aprendizado para dominar TypeScript"
  • "Ajude-me a depurar este erro: Cannot read property 'map' of undefined"
  • "Explique o que este padrão regex faz: /^[a-z]+$/i"
  • "Teste-me sobre JavaScript async/await com 5 perguntas"

Desenvolvimento 🛠️

# Run in development mode
npm run dev

# Build TypeScript
npm run build

# Run the built server
npm start

Estrutura do Projeto 📁

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

Referência de Ferramentas 📚

explainConcept

Explica conceitos de programação em termos acessíveis para iniciantes.

Parâmetros:

  • concept (string): O conceito a explicar
  • level (opcional): "beginner" | "intermediate" | "advanced"
  • language (opcional): Contexto da linguagem de programação

reviewCode

Revisa código e fornece feedback construtivo.

Parâmetros:

  • code (string): Código a revisar
  • language (string): Linguagem de programação
  • context (opcional): O que o código deve fazer
  • focusAreas (opcional): Array de áreas de foco

suggestBestPractice

Sugere melhores práticas para tarefas de programação.

Parâmetros:

  • task (string): A tarefa ou área
  • technology (opcional): Framework/biblioteca específico
  • currentApproach (opcional): Sua abordagem atual

compareApproaches

Compara diferentes abordagens de programação.

Parâmetros:

  • problem (string): O problema a resolver
  • approaches (array): Lista de abordagens para comparar
  • criteria (opcional): Critérios de comparação

generateLearningPath

Cria roteiros de aprendizado estruturados.

Parâmetros:

  • topic (string): O que aprender
  • currentLevel: Seu nível atual
  • goalLevel: Proficiência alvo
  • timeCommitment (opcional): Tempo disponível

debugHelper

Ajuda a depurar erros e bugs.

Parâmetros:

  • error (string): Mensagem de erro ou descrição do bug
  • code (opcional): Código relevante
  • language (opcional): Linguagem de programação
  • context (opcional): O que você estava fazendo

explainThisCode

Fornece explicações detalhadas de código.

Parâmetros:

  • code (string): Código a explicar
  • language (string): Linguagem de programação
  • detailLevel (opcional): "overview" | "detailed" | "line-by-line"

quizMe

Gera perguntas de prática.

Parâmetros:

  • topic (string): Tópico para o quiz
  • difficulty (opcional): "easy" | "medium" | "hard"
  • questionCount (opcional): Número de perguntas (1-10)
  • questionType (opcional): Tipo de perguntas

Contribuindo 🤝

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença 📄

Licença MIT - consulte o arquivo LICENSE para detalhes

Autor ✨

Muhammad Yasir Khan

Suporte 💬

Se você tiver dúvidas ou precisar de ajuda, abra uma issue no GitHub.