🌐 Cisco MCP Agent App
AI-Powered Infrastructure Management with Predictive Capabilities
    ](https://www.docker.com/)
📋 Descripción
Cisco MCP Agent App es un agente conversacional inteligente basado en LangGraph que permite gestionar infraestructura Cisco (Intersight y ACI) mediante lenguaje natural, con capacidades avanzadas de predicción, control humano, y observabilidad completa para producción.
✨ Características Principales
- 🤖 Agente Conversacional: Gestiona tu infraestructura usando lenguaje natural
- 🔮 Predicción Proactiva: Forecasting de CPU, memoria y health scores (2-10 horas)
- 🔍 Detección de Anomalías: Identificación automática de comportamientos inusuales
- 🛠️ 13 Herramientas MCP: Integración completa con Cisco Intersight y ACI
- 🚦 Human-in-the-Loop (HITL): Aprobación humana obligatoria antes de operaciones de escritura
- 📊 Análisis de SLO: Alertas predictivas de violaciones antes de que ocurran
- 💾 Persistencia: Tracking histórico de predicciones en SQLite
- 📚 RAG Integration: Consulta documentación técnica contextual
- 📈 Prometheus + Grafana: Métricas en tiempo real y dashboard pre-construido
- 🔴 Splunk HEC: Streaming de eventos JSON a Splunk Enterprise
🏗️ Arquitectura
┌─────────────────────────────────────────────────────────────┐
│ FRONTEND (React + TypeScript) - Port 3001 │
│ • Chat Interface con Cisco Branding │
│ • Real-time updates y Markdown rendering │
└────────────────────────┬────────────────────────────────────┘
│ HTTP POST /custom/ask
▼
┌─────────────────────────────────────────────────────────────┐
│ BACKEND (FastAPI) - Port 8000 │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ LangGraph ReAct Agent (GPT-4o-mini) │ │
│ │ • 13 MCP Tools │ │
│ │ • Conditional routing │ │
│ │ • Memory persistence │ │
│ └────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ MCP Server (Model Context Protocol) │ │
│ │ • Intersight Tools (5): Servers, Policies, Alarms │ │
│ │ • ACI Tools (5): Tenants, Contracts, EPGs, Health │ │
│ │ • Forecasting (2): predict, detect_anomaly │ │
│ │ • Documentation (1): RAG queries │ │
│ └────────────────────────────────────────────────────────┘ │
└────────────────────────┬────────────────────────────────────┘
│ HTTP
▼
┌─────────────────────────────────────────────────────────────┐
│ CTS MODEL SERVICE (Python 3.11) - Port 8004 │
│ • Forecasting & Anomaly Detection │
│ • Statistical time series analysis │
│ • Quantile regression for uncertainty │
└─────────────────────────────────────────────────────────────┘🚀 Inicio Rápido
Prerequisitos
- Docker & Docker Compose
- Node.js 18+ (para desarrollo del frontend)
- Credenciales de Cisco Intersight
- Credenciales de Cisco ACI (APIC)
- OpenAI API Key
Configuración
- Clonar el repositorio
git clone https://github.com/Jorayala/Cisco-MCP-Agent-App.git
cd Cisco-MCP-Agent-App- Configurar variables de entorno
Crea un archivo .env en la raíz del proyecto:
# LLM Configuration
OPENAI_API_KEY=your_openai_key_here
# LangSmith (Observability)
LANGCHAIN_API_KEY=your_langsmith_key_here
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT=Cisco_MCP_Agent_App
# Cisco Intersight
INTERSIGHT_API_KEY=your_intersight_api_key
INTERSIGHT_SECRET_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"
INTERSIGHT_BASE_URL=https://intersight.com/api/v1
# Cisco ACI (APIC)
APIC_USERNAME=your_aci_username
APIC_PASSWORD=your_aci_password
APIC_BASE_URL=https://your-apic-url
# Demo Mode (usar datos sintéticos si no hay telemetría real)
ALLOW_DEMO_MODE=true- Levantar servicios con Docker Compose
docker-compose up -d- Iniciar el frontend
cd frontend
npm install
npm run dev- Acceder a la aplicación
- Frontend: http://localhost:3001
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- CTS Service: http://localhost:8004
💡 Ejemplos de Uso
Consultas de Estado Actual
"¿Cuántos servidores hay en Intersight?"
"Muéstrame las alarmas activas"
"¿Cuál es el health score de ACI?"
"Lista los tenants en ACI"Predicciones
"¿Cuál es la predicción del comportamiento de la CPU para las próximas 2 horas?"
"Predice el uso de memoria para 4 horas"
"¿Bajará el health score de ACI?"Detección de Anomalías
"¿Hay algo raro en el sistema?"
"Detecta anomalías en el CPU de los últimos días"
"¿Hay comportamientos inusuales en la red?"Documentación
"¿Cómo funciona la API de Intersight?"
"Explícame qué es un EPG en ACI"
"¿Qué es un server profile?"🔧 Tecnologías Utilizadas
Backend
- LangChain & LangGraph: Orquestación de agentes ReAct
- FastAPI: Framework web asíncrono
- MCP (Model Context Protocol): Integración estandarizada de herramientas
- SQLAlchemy + SQLite: Persistencia de predicciones
- Cryptography: Autenticación RSA-SHA256/ECDSA para Intersight
- OpenAI GPT-4o-mini: Modelo de lenguaje
Frontend
- React 18: UI framework
- TypeScript: Type safety
- Vite: Build tool
- TailwindCSS: Styling
- React Markdown: Renderizado de respuestas
Infrastructure
- Docker & Docker Compose: Containerización
- Nginx: Reverse proxy (producción)
- Apache Druid: Queries de telemetría en Intersight
📊 Herramientas MCP Disponibles
Cisco Intersight (5 tools)
get_intersight_servers- Lista de servidores físicosget_intersight_policies- Ver server policiesget_intersight_alarms- Alarmas activascreate_intersight_server_profile- Crear profilesget_system_summary- Resumen general
Cisco ACI (5 tools)
get_aci_tenants- Lista tenantsget_aci_contracts- Ver contractsget_aci_epgs- Ver Endpoint Groupsget_aci_health_score- Health score del fabriccreate_tenant- Crear nuevo tenant
Forecasting (2 tools)
forecast_resource_usage- Predice CPU/Memory/Health (2-10h)detect_anomaly_mcp- Detecta comportamientos anómalos
Documentation (1 tool)
ask_rag- Consulta documentación técnica
📚 Documentación Técnica Completa
Para entender en profundidad cómo funciona el sistema:
- Documentación Técnica - Parte 1: Arquitectura, componentes, LangGraph, MCP Tools
- Documentación Técnica - Parte 2: CTS Model, flujo de predicción, persistencia
🔐 Seguridad
- ✅ Autenticación RSA-SHA256/ECDSA-SHA256 para Intersight
- ✅ Credenciales en variables de entorno (nunca en código)
- ✅ CORS configurado para frontend específico
- ✅ HTTPS en producción (configuración Nginx)
- ⚠️ Nota: En producción, usar Docker Secrets o AWS Secrets Manager
🐛 Troubleshooting
Error: "Failed to connect to backend"
- Verificar que el backend esté corriendo:
docker ps - Revisar logs:
docker logs custom-agent-backend
Error: "401 Unauthorized from Intersight"
- Verificar credenciales en
.env - Confirmar que la API Key esté activa en Intersight
Error: "No telemetry data available"
- Habilitar
ALLOW_DEMO_MODE=trueen.env - O configurar telemetry license en Intersight
Frontend no carga
- Verificar puerto 3001:
lsof -i :3001 - Reinstalar dependencias:
cd frontend && rm -rf node_modules && npm install
📈 Roadmap
- [ ] Implementación de CTS Model real (PyTorch)
- [ ] Dashboard de visualización de forecasts
- [ ] Alertas automáticas vía Webex
- [ ] Integración con más productos Cisco (Meraki, SD-WAN)
- [ ] Autenticación de usuarios
- [ ] Multi-tenancy
👥 Autor
Jorge Ayala
- GitHub: @Jorayala
📄 Licencia
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
🙏 Agradecimientos
- Cisco por las APIs de Intersight y ACI
- LangChain y LangGraph community
- OpenAI por GPT-4o-mini
- Model Context Protocol (MCP) team
📞 Contacto
Si tienes preguntas o sugerencias, abre un Issue o contáctame directamente.
¡Contribuciones son bienvenidas! 🎉
