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
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
|
🧪 Generación de Pruebas
|
▶️ Ejecución de Pruebas
|
🎨 Formato de Código
|
📦 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-mcpcon 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
| Transporte | Caso de Uso | Mejor Para |
|---|---|---|
| STDIO | Clientes CLI locales | Claude Desktop, Cline, desarrollo local |
| SSE | Integraciones web | Aplicaciones 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
| Paquete | Versión | Propósito |
|---|---|---|
mcp | ≥0.9.0 | SDK del Protocolo de Contexto de Modelo |
pylint | ≥3.0.0 | Análisis de calidad de código |
flake8 | ≥7.0.0 | Verificación de estilo |
mypy | ≥1.7.0 | Verificación estática de tipos |
bandit | ≥1.7.5 | Escaneo de seguridad |
radon | ≥6.0.1 | Métricas de complejidad |
black | ≥23.12.0 | Formato de código |
autopep8 | ≥2.0.4 | Formato PEP8 |
pytest | ≥7.4.3 | Marco de pruebas |
pytest-cov | ≥4.1.0 | Informe de cobertura |
pytest-timeout | ≥2.2.0 | Tiempos 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.pypara 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:
- Haz un fork del repositorio
- Crea una rama de características:
git checkout -b feature/amazing-feature - Realiza tus cambios
- Ejecuta las pruebas:
python test_installation.py - Haz commit:
git commit -m 'Add amazing feature' - Haz push:
git push origin feature/amazing-feature - 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
- Construido con el Protocolo de Contexto de Modelo
- Impulsado por pylint, flake8, mypy, bandit, radon
- Pruebas con pytest
- Formato con black
📞 Soporte
- 📖 Documentación: ¡La estás leyendo!
- 🐛 Problemas: Problemas de GitHub
- 💬 Discusiones: Discusiones de GitHub
- 📧 Correo electrónico: team@neurodev.io
¡Listo para potenciar tu desarrollo en Python! 🚀
Hecho con ❤️ por el Equipo de NeuroDev