AWS成本探索MCP服务

一个用于查询AWS成本、价格和优化建议的MCP服务器,提供成本可视性、预测、异常检测和节省建议。

  • by VillaviH
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 VillaviH/aws-cost-mcp-server

使用说明

AWS Cost Explorer MCP Server

Servidor MCP para consultar costos, pricing y recomendaciones de optimización de AWS.

Características

  • 💰 Consultar costos actuales y históricos
  • 📊 Desglose de costos por servicio
  • 🔮 Forecasts de costos futuros
  • 💡 Recomendaciones de ahorro (Trusted Advisor)
  • 📈 Análisis de tendencias de gasto
  • 🏷️ Costos por tags

Requisitos

  • Python 3.11+
  • Cuenta AWS con permisos de Cost Explorer
  • AWS CLI configurado

Instalación

# Clonar repositorio
git clone https://github.com/tu-empresa/aws-cost-mcp-server.git
cd aws-cost-mcp-server

# Crear entorno virtual
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate

# Instalar dependencias
pip install -r requirements.txt

# Configurar AWS credentials
aws configure

Configuración en Kiro

Agregar al archivo ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "aws-cost-explorer": {
      "command": "python3",
      "args": ["/ruta/completa/aws-cost-mcp-server/server.py"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      },
      "disabled": false,
      "autoApprove": ["get_current_costs", "get_cost_forecast"]
    }
  }
}

Uso

Una vez configurado en Kiro, puedes usar comandos como:

"¿Cuánto he gastado este mes en AWS?"
"Muéstrame los costos por servicio de los últimos 30 días"
"¿Cuál es el forecast de costos para el próximo mes?"
"Dame recomendaciones para reducir costos"

Tools Disponibles

get_current_costs

Obtiene costos del período actual.

Parámetros:

  • period (opcional): "today", "week", "month", "quarter", "year"
  • granularity (opcional): "DAILY", "MONTHLY"

get_costs_by_service

Desglose de costos por servicio AWS.

Parámetros:

  • start_date: Fecha inicio (YYYY-MM-DD)
  • end_date: Fecha fin (YYYY-MM-DD)
  • top_n (opcional): Top N servicios más costosos

get_cost_forecast

Proyección de costos futuros.

Parámetros:

  • months (opcional): Número de meses a proyectar (default: 1)

get_cost_anomalies

Detecta anomalías en el gasto.

Parámetros:

  • days (opcional): Días a analizar (default: 30)

get_savings_recommendations

Recomendaciones de ahorro de AWS.

Parámetros:

  • category (opcional): "compute", "storage", "database", "all"

get_costs_by_tag

Costos agrupados por tags.

Parámetros:

  • tag_key: Nombre del tag (ej: "Environment", "Project")
  • start_date: Fecha inicio
  • end_date: Fecha fin

Permisos AWS Requeridos

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ce:GetCostAndUsage",
        "ce:GetCostForecast",
        "ce:GetDimensionValues",
        "ce:GetTags",
        "ce:GetCostCategories",
        "ce:GetAnomalies",
        "support:DescribeTrustedAdvisorChecks",
        "support:DescribeTrustedAdvisorCheckResult"
      ],
      "Resource": "*"
    }
  ]
}

Ejemplos

Costos del mes actual

# Kiro pregunta: "¿Cuánto llevo gastado este mes?"
# MCP ejecuta: get_current_costs(period="month")

Top 5 servicios más costosos

# Kiro pregunta: "¿Cuáles son mis 5 servicios más caros?"
# MCP ejecuta: get_costs_by_service(top_n=5)

Forecast de 3 meses

# Kiro pregunta: "¿Cuánto gastaré en los próximos 3 meses?"
# MCP ejecuta: get_cost_forecast(months=3)

Troubleshooting

Switching AWS Accounts

When you switch AWS accounts using aws configure, the MCP server will automatically use the new credentials on the next request. The server creates fresh boto3 clients that read current credentials from your environment.

If you experience issues:

  1. Reconnect the MCP server from the Kiro MCP Server view
  2. Or restart Kiro completely (Cmd+Q on macOS)

Error: "Access Denied"

  • Verifica que tu usuario AWS tenga permisos de Cost Explorer
  • Asegúrate de que Cost Explorer esté habilitado en tu cuenta

Error: "Cost Explorer not enabled"

  • Ve a AWS Console → Billing → Cost Explorer
  • Click en "Enable Cost Explorer"

Error: "No data available"

  • Cost Explorer puede tardar 24 horas en tener datos
  • Verifica que tu cuenta tenga actividad

Desarrollo

# Ejecutar en modo desarrollo
python server.py --debug

# Ejecutar tests
pytest tests/

# Linting
pylint server.py

Licencia

MIT License

📊 Nueva Funcionalidad: Informes HTML Interactivos

El servidor ahora puede generar informes HTML profesionales con gráficos interactivos!

Características:

  • ✅ Gráficos interactivos con Chart.js
  • ✅ Diseño responsive y moderno
  • ✅ Exportable a PDF
  • ✅ Listo para presentaciones
  • ✅ 3 tipos de visualizaciones (línea, barras, dona)

Uso:

"Genera un informe HTML de mis costos de AWS de este mes"
"Crea un reporte visual de costos de enero 2026"

🛠️ Herramientas Disponibles

Análisis de Costos:

  1. get_current_costs - Costos del período actual
  2. get_costs_by_service - Desglose por servicio
  3. get_daily_costs - Costos diarios detallados
  4. get_yearly_costs - Análisis anual mes por mes
  5. get_cost_trends - Tendencias de gasto
  6. get_cost_forecast - Proyecciones futuras
  7. get_cost_anomalies - Detección de anomalías

Optimización de EC2:

  1. get_ec2_instances - Lista de instancias con costos
  2. get_ec2_cost_optimization - Análisis y recomendaciones
  3. get_instance_recommendations - Recomendaciones específicas

Reportes:

  1. get_savings_recommendations - Recomendaciones de ahorro
  2. get_ri_coverage - Cobertura de Reserved Instances
  3. get_costs_by_tag - Costos agrupados por tags
  4. generate_cost_report - Informe HTML interactivo (NUEVO!)