NeuroDev MCP Server

Un potente servidor del Protocolo de Contexto de Modelo (MCP) que potencia tu flujo de trabajo de desarrollo en Python con revisión de código asistida por IA, generación inteligente de pruebas y ejecución integral de pruebas.

Documentación

🧠 NeuroDev MCP Server

Análisis Inteligente de Código, Generación y Ejecución de Pruebas

Python 3.8+ MCP License: MIT Tests

Un potente servidor de Protocolo de Contexto de Modelo (MCP) que potencia tu flujo de trabajo de desarrollo en Python con revisión de código impulsada por IA, generación inteligente de pruebas y ejecución integral de pruebas.

Características • Instalación • Inicio Rápido • Herramientas • Ejemplos


✨ Características

🔍 Revisión de Código

  • 6 Analizadores Potentes
    • pylint - Calidad de código y PEP8
    • flake8 - Aplicación de estilo
    • mypy - Verificación de tipos
    • bandit - Escaneo de seguridad
    • radon - Métricas de complejidad
    • AST - Inspecciones personalizadas
  • Detección de problemas en tiempo real
  • Escaneo de vulnerabilidades de seguridad
  • Puntuaciones de complejidad y mantenibilidad

🧪 Generación de Pruebas

  • Análisis AST Inteligente
    • Generación automática de pruebas pytest
    • Cobertura de ruta feliz
    • Manejo de casos límite
    • Pruebas de excepciones
    • Pruebas de validación de tipos
  • Soporta funciones y clases
  • Consciente de anotaciones de tipo

▶️ Ejecución de Pruebas

  • Pruebas Integrales
    • Entorno aislado
    • Informe de cobertura
    • Análisis línea por línea
    • Protección por tiempo de espera
  • Resultados detallados de aprobado/fallido
  • Métricas de rendimiento

🎨 Formato de Código

  • Autoformato
    • black - Estilo opinado
    • autopep8 - Cumplimiento de PEP8
  • Longitud de línea configurable
  • Estilo de código consistente
  • Formato con un solo comando

📦 Instalación

Instalación 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

🚀 Inicio Rápido

Paso 1: Configura tu Cliente MCP

🖥️ Claude Desktop

Edita ~/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"]
    }
  }
}

💡 Consejo: Reemplaza /absolute/path/to/neurodev-mcp con tu ruta real

🔧 Cline (VSCode)

Añade a tu configuración de MCP:

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

Ejecuta el servidor directamente:

# Using the module
python -m neurodev_mcp.server

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

Paso 2: Reinicia tu Cliente

Reinicia Claude Desktop o recarga VSCode para cargar el servidor.

Paso 3: ¡Empieza a Usarlo! 🎉

Prueba estos comandos con tu asistente de IA:

  • "Revisa este código Python en busca de problemas"
  • "Genera pruebas unitarias para esta función"
  • "Ejecuta estas pruebas con cobertura"
  • "Formatea este código según los estándares PEP8"

🌐 Opciones de Transporte

NeuroDev MCP soporta múltiples protocolos de transporte para diferentes casos de uso:

STDIO (Predeterminado) - CLI Local

Perfecto para desarrollo local con clientes MCP como Claude Desktop o Cline:

# Default STDIO transport
neurodev-mcp

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

Configuración (Claude Desktop):

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

SSE (Eventos Enviados por el Servidor) - Integración Web

Para integraciones basadas en web y transmisión 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

Puntos de conexión:

  • Transmisión SSE: http://localhost:8000/sse
  • Mensajes: http://localhost:8000/messages (POST)

Ejemplo 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'] }
    }
  })
});

Comparación de Transportes

TransporteCaso de UsoMejor Para
STDIOClientes CLI localesClaude Desktop, Cline, desarrollo local
SSEIntegraciones webAplicaciones de navegador, webhooks, clientes remotos

🛠️ Herramientas Disponibles

1. code_review

🔍 Análisis integral de código con múltiples herramientas de análisis estático

Entrada:

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

Salida:

  • Informes detallados de problemas de cada analizador
  • Vulnerabilidades de seguridad
  • Métricas de complejidad
  • Puntuaciones de calidad de código
  • Sugerencias línea por línea

2. generate_tests

🧪 Generación inteligente de pruebas pytest mediante análisis AST

Entrada:

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

Salida:

  • Suite completa de pruebas pytest
  • Múltiples casos de prueba (ruta feliz, casos límite, excepciones)
  • Pruebas de validación de tipos
  • Código de prueba listo para ejecutar

3. run_tests

▶️ Ejecuta pruebas pytest con informe 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
}

Salida:

  • Estado de aprobado/fallido
  • Porcentaje de cobertura
  • Detalles de cobertura de líneas
  • Tiempo de ejecución
  • stdout/stderr detallados

4. format_code

🎨 Autoformatea código Python según estándares PEP8

Entrada:

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

Salida:

  • Código formateado de manera hermosa
  • Cumplimiento de PEP8
  • Estilo consistente
  • Detección de cambios

💡 Ejemplos de Uso

Ejemplo 1: Flujo de Trabajo Completo de Revisión 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]

Ejemplo 2: Generación y Ejecución de Pruebas

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

Ejemplo 3: Formato 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

PaqueteVersiónPropósito
mcp≥0.9.0SDK del Protocolo de Contexto de Modelo
pylint≥3.0.0Análisis de calidad de código
flake8≥7.0.0Verificación de estilo
mypy≥1.7.0Verificación estática de tipos
bandit≥1.7.5Escaneo de seguridad
radon≥6.0.1Métricas de complejidad
black≥23.12.0Formato de código
autopep8≥2.0.4Formato PEP8
pytest≥7.4.3Marco de pruebas
pytest-cov≥4.1.0Informe de cobertura
pytest-timeout≥2.2.0Tiempos de espera de pruebas

Python: 3.8 o superior


🧪 Desarrollo

Ejecutar Pruebas

# Run installation tests
python test_installation.py

# Run examples
python examples.py

# Run pytest (if you add tests)
pytest

Uso 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)

❓ Solución de Problemas

¿El servidor no aparece en el cliente MCP?
  • ✅ Verifica que la ruta en la configuración sea absoluta
  • ✅ Asegúrate de que la ruta del ejecutable de Python sea correcta
  • ✅ Reinicia Claude Desktop o VSCode completamente
  • ✅ Revisa los registros del servidor para ver errores
¿Errores de importación o módulos?
# Reinstall the package
pip install -e .

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

# Run installation tests
python test_installation.py
¿Las pruebas fallan?
  • ✅ Asegúrate de tener Python 3.8+ instalado
  • ✅ Activa el entorno virtual: source .venv/bin/activate
  • ✅ Reinstala las dependencias: pip install -e .
  • ✅ Ejecuta: python test_installation.py para diagnosticar
¿Problemas de rendimiento?
  • Algunos analizadores (pylint, mypy) pueden ser lentos en archivos grandes
  • Usa analizadores específicos: "analyzers": ["flake8", "ast"]
  • Aumenta el tiempo de espera para suites de pruebas grandes
  • Considera el almacenamiento en caché de resultados (función futura)

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Así es como:

  1. Haz un fork del repositorio
  2. Crea una rama de características: git checkout -b feature/amazing-feature
  3. Realiza tus cambios
  4. Ejecuta las pruebas: python test_installation.py
  5. Haz commit: git commit -m 'Add amazing feature'
  6. Haz push: git push origin feature/amazing-feature
  7. Abre una Solicitud de Extracción (Pull Request)

Mejoras Futuras

  • Analizadores adicionales (pydocstyle, vulture)
  • Almacenamiento en caché de resultados para rendimiento
  • Soporte de archivos de configuración
  • Panel de control web
  • Soporte multilingüe
  • Pipeline de CI/CD

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.


🙏 Agradecimientos


📞 Soporte


¡Listo para potenciar tu desarrollo en Python! 🚀

Hecho con ❤️ por el Equipo de NeuroDev

⭐ Star en GitHub • 🐛 Reportar Error • ✨ Solicitar Función