NeuroDev MCP Server

Um poderoso servidor Model Context Protocol (MCP) que potencializa seu fluxo de trabalho de desenvolvimento Python com revisão de código baseada em IA, geração inteligente de testes e execução abrangente de testes.

Documentação

🧠 NeuroDev MCP Server

Análise Inteligente de Código, Geração e Execução de Testes

Python 3.8+ MCP License: MIT Tests

Um poderoso servidor Model Context Protocol (MCP) que potencializa seu fluxo de trabalho de desenvolvimento Python com revisão de código assistida por IA, geração inteligente de testes e execução abrangente de testes.

Recursos • Instalação • Início Rápido • Ferramentas • Exemplos


✨ Recursos

🔍 Revisão de Código

  • 6 Analisadores Poderosos
    • pylint - Qualidade de código e PEP8
    • flake8 - Aplicação de estilo
    • mypy - Verificação de tipos
    • bandit - Varredura de segurança
    • radon - Métricas de complexidade
    • AST - Inspeções personalizadas
  • Detecção de problemas em tempo real
  • Varredura de vulnerabilidades de segurança
  • Pontuações de complexidade e manutenibilidade

🧪 Geração de Testes

  • Análise Inteligente de AST
    • Geração automática de testes pytest
    • Cobertura do caminho feliz
    • Tratamento de casos extremos
    • Testes de exceções
    • Testes de validação de tipos
  • Suporte a funções e classes
  • Ciente de type hints

▶️ Execução de Testes

  • Testes Abrangentes
    • Ambiente isolado
    • Relatório de cobertura
    • Análise linha por linha
    • Proteção contra timeout
  • Resultados detalhados de aprovação/reprovação
  • Métricas de desempenho

🎨 Formatação de Código

  • Autoformatação
    • black - Estilo opinativo
    • autopep8 - Conformidade com PEP8
  • Comprimento de linha configurável
  • Estilo de código consistente
  • Formatação com um comando

📦 Instalação

Instalação Rápida

\`bash

# Clone the repository
git clone https://github.com/ravikant1918/neurodev-mcp.git
cd neurodev-mcp

# Create virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\\Scripts\\activate

# Install the package
pip install -e .
\`\`\`

### **Verify Installation**

\`\`\`bash
# Run tests (should show 15/15 passing)
python test_installation.py

# Test the server
python -m neurodev_mcp.server
\`\`\`

<details>
<summary><b>📁 Project Structure</b> (click to expand)</summary>

\`\`\`
neurodev-mcp/
├─ neurodev_mcp/              # 📦 Main package
│   ├─ __init__.py            # Package exports
│   ├─ server.py              # MCP server entry point
│   ├─ analyzers/             # 🔍 Code analysis
│   │   ├─ __init__.py
│   │   └─ code_analyzer.py   # Multi-tool static analysis
│   ├─ generators/            # 🧪 Test generation
│   │   ├─ __init__.py
│   │   └─ test_generator.py  # AST-based test creation
│   └─ executors/             # ▶️ Test execution
│       ├─ __init__.py
│       └─ test_executor.py   # Test running & formatting
├─ pyproject.toml             # Project configuration
├─ README.md                  # This file
├─ test_installation.py       # Installation validator
├─ examples.py                # Usage examples
└─ requirements.txt           # Dependencies

🚀 Início Rápido

Passo 1: Configure Seu Cliente MCP

🖥️ Claude Desktop

Edite ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "neurodev-mcp": {
      "command": "/absolute/path/to/neurodev-mcp/.venv/bin/python",
      "args": ["-m", "neurodev_mcp.server"]
    }
  }
}

💡 Dica: Substitua /absolute/path/to/neurodev-mcp pelo seu caminho real

🔧 Cline (VSCode)

Adicione às suas configurações de MCP:

{
  "neurodev-mcp": {
    "command": "python",
    "args": ["-m", "neurodev_mcp.server"]
  }
}
🐍 Uso Autônomo

Execute o servidor diretamente:

# Using the module
python -m neurodev_mcp.server

# Or as a command (if installed)
neurodev-mcp

Passo 2: Reinicie Seu Cliente

Reinicie o Claude Desktop ou recarregue o VSCode para carregar o servidor.

Passo 3: Comece a Usar! 🎉

Experimente estes comandos com seu assistente de IA:

  • "Revise este código Python em busca de problemas"
  • "Gere testes unitários para esta função"
  • "Execute estes testes com cobertura"
  • "Formate este código para os padrões PEP8"

🌐 Opções de Transporte

O NeuroDev MCP suporta múltiplos protocolos de transporte para diferentes casos de uso:

STDIO (Padrão) - CLI Local

Perfeito para desenvolvimento local com clientes MCP como Claude Desktop ou Cline:

# Default STDIO transport
neurodev-mcp

# Or explicitly specify STDIO
neurodev-mcp --transport stdio

Configuração (Claude Desktop):

{
  "mcpServers": {
    "neurodev-mcp": {
      "command": "neurodev-mcp",
      "args": ["--transport", "stdio"]
    }
  }
}

SSE (Server-Sent Events) - Integração Web

Para integrações baseadas na web e streaming HTTP:

# Run with SSE on default port (8000)
neurodev-mcp --transport sse

# Custom host and port
neurodev-mcp --transport sse --host 0.0.0.0 --port 3000

Endpoints:

  • Stream SSE: http://localhost:8000/sse
  • Mensagens: http://localhost:8000/messages (POST)

Exemplo de Cliente Web:

const sse = new EventSource('http://localhost:8000/sse');

sse.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Received:', data);
};

// Send message
fetch('http://localhost:8000/messages', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'code_review',
      arguments: { code: 'def test(): pass', analyzers: ['pylint'] }
    }
  })
});

Comparação de Transportes

TransporteCaso de UsoMelhor Para
STDIOClientes CLI locaisClaude Desktop, Cline, desenvolvimento local
SSEIntegrações webAplicativos de navegador, webhooks, clientes remotos

🛠️ Ferramentas Disponíveis

1. code_review

🔍 Análise abrangente de código com múltiplas ferramentas de análise estática

Entrada:

{
  "code": "def calculate(x):\n    return x * 2",
  "analyzers": ["pylint", "flake8", "mypy", "bandit", "radon", "ast"]
}

Saída:

  • Relatórios detalhados de problemas de cada analisador
  • Vulnerabilidades de segurança
  • Métricas de complexidade
  • Pontuações de qualidade de código
  • Sugestões linha por linha

2. generate_tests

🧪 Geração inteligente de testes pytest usando análise de AST

Entrada:

{
  "code": "def add(a: int, b: int) -> int:\n    return a + b",
  "module_name": "calculator",
  "save": false
}

Saída:

  • Suíte completa de testes pytest
  • Múltiplos casos de teste (caminho feliz, casos extremos, exceções)
  • Testes de validação de tipos
  • Código de teste pronto para execução

3. run_tests

▶️ Execute testes pytest com relatório de cobertura

Entrada:

{
  "test_code": "def test_add():\n    assert add(1, 2) == 3",
  "source_code": "def add(a, b):\n    return a + b",
  "timeout": 30
}

Saída:

  • Status de aprovação/reprovação
  • Percentual de cobertura
  • Detalhes de cobertura de linha
  • Tempo de execução
  • stdout/stderr detalhados

4. format_code

🎨 Formate automaticamente código Python para os padrões PEP8

Entrada:

{
  "code": "def   messy(  x,y  ):\n        return x+y",
  "line_length": 88
}

Saída:

  • Código lindamente formatado
  • Conformidade com PEP8
  • Estilo consistente
  • Detecção de alterações

💡 Exemplos de Uso

Exemplo 1: Fluxo de Trabalho Completo de Revisão de Código

You: "Review this code for issues and security problems"

[paste code]

AI: [Uses code_review tool]
    → Finds 3 style issues
    → Detects 1 security vulnerability
    → Suggests complexity improvements
    
You: "Fix those issues and show me the updated code"

AI: [Provides fixed code with explanations]

Exemplo 2: Geração e Execução de Testes

You: "Generate tests for this function and run them"

def divide(a: float, b: float) -> float:
    if b == 0:
        raise ValueError("Cannot divide by zero")
    return a / b

AI: [Uses generate_tests tool]
    → Creates 5 test cases
    → Includes edge cases (zero, negative numbers)
    → Tests exception handling
    
    [Uses run_tests tool]
    → 5/5 tests passing ✓
    → 100% code coverage
    → All edge cases handled

Exemplo 3: Formatação de Código

You: "Format this messy code"

def   calculate(  x,y,z  ):
        result=x+y+z
        if result>10:
                    return   True
        return False

AI: [Uses format_code tool]
    → Applies black formatting
    → Returns clean, PEP8-compliant code

def calculate(x, y, z):
    result = x + y + z
    if result > 10:
        return True
    return False

📋 Requisitos

PacoteVersãoFinalidade
mcp≥0.9.0SDK do Model Context Protocol
pylint≥3.0.0Análise de qualidade de código
flake8≥7.0.0Verificação de estilo
mypy≥1.7.0Verificação estática de tipos
bandit≥1.7.5Varredura de segurança
radon≥6.0.1Métricas de complexidade
black≥23.12.0Formatação de código
autopep8≥2.0.4Formatação PEP8
pytest≥7.4.3Framework de testes
pytest-cov≥4.1.0Relatório de cobertura
pytest-timeout≥2.2.0Timeouts de teste

Python: 3.8 ou superior


🧪 Desenvolvimento

Executando Testes

# Run installation tests
python test_installation.py

# Run examples
python examples.py

# Run pytest (if you add tests)
pytest

Usando como Biblioteca

from neurodev_mcp import CodeAnalyzer, TestGenerator, TestExecutor
import asyncio

# Analyze code
code = "def hello(): print('world')"
result = asyncio.run(CodeAnalyzer.analyze_ast(code))

# Generate tests
tests = TestGenerator.generate_tests(code, "mymodule")

# Run tests
output = TestExecutor.run_tests(test_code, source_code)

❓ Solução de Problemas

Servidor não aparecendo no cliente MCP?
  • ✅ Verifique se o caminho na configuração é absoluto
  • ✅ Garanta que o caminho do executável Python está correto
  • ✅ Reinicie o Claude Desktop ou o VSCode completamente
  • ✅ Verifique os logs do servidor para erros
Erros de importação ou módulo?
# Reinstall the package
pip install -e .

# Verify installation
python -c "from neurodev_mcp import CodeAnalyzer; print('✓ OK')"

# Run installation tests
python test_installation.py
Testes falhando?
  • ✅ Garanta que Python 3.8+ está instalado
  • ✅ Ative o ambiente virtual: source .venv/bin/activate
  • ✅ Reinstale as dependências: pip install -e .
  • ✅ Execute: python test_installation.py para diagnosticar
Problemas de desempenho?
  • Alguns analisadores (pylint, mypy) podem ser lentos em arquivos grandes
  • Use analisadores específicos: "analyzers": ["flake8", "ast"]
  • Aumente o timeout para suítes de teste grandes
  • Considere armazenar resultados em cache (recurso futuro)

🤝 Contribuindo

Contribuições são bem-vindas! Veja como:

  1. Faça um fork do repositório
  2. Crie um branch de recurso: git checkout -b feature/amazing-feature
  3. Faça suas alterações
  4. Execute os testes: python test_installation.py
  5. Faça o commit: git commit -m 'Add amazing feature'
  6. Faça o push: git push origin feature/amazing-feature
  7. Abra um Pull Request

Melhorias Futuras

  • Analisadores adicionais (pydocstyle, vulture)
  • Cache de resultados para desempenho
  • Suporte a arquivos de configuração
  • Painel web
  • Suporte a múltiplos idiomas
  • Pipeline CI/CD

📄 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.


🙏 Agradecimentos


📞 Suporte


Pronto para potencializar seu desenvolvimento Python! 🚀

Feito com ❤️ pela equipe NeuroDev

⭐ Estrela no GitHub • 🐛 Reportar Bug • ✨ Solicitar Recurso