MCP del núcleo de Kube
Un servicio de procesamiento de comandos de Kubernetes que convierte solicitudes de lenguaje natural en comandos kubectl válidos.
Características
- Conversión de lenguaje natural a comandos de kubectl
- Validación de comandos y comprobaciones de seguridad
- Compatibilidad con operaciones comunes de kubectl
- Integración de AWS Bedrock para el procesamiento de LLM
Prerrequisitos
- Python 3.8+
- Credenciales de AWS configuradas
- kubectl instalado y configurado
- Node.js y npm (para frontend)
Configuración
- Clonar el repositorio:
git clone <repository-url>
cd kube-core-mcp
- Crear y activar un entorno virtual:
python3 -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Instalar dependencias:
pip install -r requirements.txt
- Configurar las credenciales de AWS:
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=your_region
- Inicie el servidor FastAPI:
Documentación de la API
Chequeo de salud
curl http://localhost:3000/health
Servicios
curl http://localhost:3000/api/services
Comandos de lenguaje natural
curl -X POST http://localhost:3000/api/nl \
-H "Content-Type: application/json" \
-d '{"message": "show me the pods in default namespace"}'
Comandos directos
curl -X POST http://localhost:3000/api/command \
-H "Content-Type: application/json" \
-d '{"command": "kubectl get pods -n default"}'
Seguridad
El servicio funciona en dos modos de seguridad:
- ESTRICTO (predeterminado):
- Solo permite patrones de comando predefinidos
- Valida todos los comandos contra patrones permitidos
- Previene operaciones peligrosas
- PERMISIVO:
- Permite patrones de comando más flexibles
- Aún mantiene controles de seguridad básicos.
- Útil para desarrollo y pruebas.
Desarrollo
Ejecución de pruebas
Estilo de código
black src/ tests/
flake8 src/ tests/
Contribuyendo
- Bifurcar el repositorio
- Crear una rama de características
- Realiza tus cambios
- Ejecutar pruebas
- Enviar una solicitud de extracción
Licencia
[Agregar información de licencia]