Azure Resource Graph MCP Server

Consulta y recupera información de recursos de Azure a través de suscripciones usando Azure Resource Graph.

Documentación

Demo

MCP Server Demo

Flujo

Request Flow

Azure Resource Graph MCP Server

Este es un servidor de Model Context Protocol (MCP) que proporciona acceso a consultas de Azure Resource Graph. Permite recuperar información sobre los recursos de Azure en tus suscripciones mediante consultas de Resource Graph.

MseeP.ai Security Assessment Badge

Características

  • Consulta recursos de Azure mediante consultas de Resource Graph
  • La consulta predeterminada devuelve el ID del recurso, nombre, tipo y ubicación
  • Admite consultas personalizadas de Resource Graph
  • Utiliza Azure DefaultAzureCredential para la autenticación

Requisitos previos

  • Node.js instalado
  • Suscripción de Azure
  • Azure CLI instalado e iniciado sesión, u otras credenciales de Azure configuradas

Ejecución del servidor MCP

Puedes ejecutar el servidor MCP usando Cursor IDE o Visual Studio Code.

Opción 1: Integración con Cursor IDE

Para integrar el servidor MCP con Cursor IDE:

  1. Clona este repositorio en tu máquina local (por ejemplo, C:\YOUR_WORKSPACE\azure-resource-graph-mcp-server)
  2. Compila el proyecto:
npm install
npm run build
  1. Abre la Configuración de Cursor (JSON) y agrega la siguiente configuración:
{
  "mcpServers": {
    "azure-resource-graph-mcp-server": {
      "command": "node",
      "args": [
        "C:\\YOUR_WORKSPACE\\azure-resource-graph-mcp-server\\build\\index.js"
      ],
      "env": {
        "SUBSCRIPTION_ID": "xxxxxx-xx-xx-xx-xxxxxx"
      },
    }
  }
}

Nota: Asegúrate de actualizar la ruta para que coincida con la ubicación de tu repositorio local.

  1. Reinicia Cursor IDE para aplicar los cambios

Opción 2: Integración con VS Code

Para integrar el servidor MCP con Visual Studio Code:

  1. Clona este repositorio en tu máquina local
  2. Compila el proyecto:
npm install
npm run build
  1. Abre la Configuración de VS Code (JSON) presionando Ctrl+Shift+P, escribe "Configuración (JSON)" y selecciona "Preferencias: Abrir configuración de usuario (JSON)"
  2. Agrega la siguiente configuración:
{
    "mcp": {
        "servers": {
            "azure-resource-graph": {
                "type": "stdio",
                "command": "node",
                "args": [
                    "C:\\YOUR_WORKSPACE\\azure-resource-graph-mcp-server\\build\\index.js"
                ],
                "env": {
                  "SUBSCRIPTION_ID": "xxxxxx-xx-xx-xx-xxxxxx"
                },
            }
        }
    }
}

Nota: Asegúrate de actualizar la ruta para que coincida con la ubicación de tu repositorio local.

  1. Guarda el archivo settings.json
  2. Reinicia VS Code para aplicar los cambios

El servidor MCP ahora estará disponible para usar dentro de VS Code con integración de cursor.

Uso

El servidor proporciona la siguiente herramienta:

query-resources

Recupera recursos y sus detalles de Azure Resource Graph.

Parámetros:

  • subscriptionId (opcional): ID de suscripción de Azure (por defecto usa el ID configurado)
  • query (opcional): Consulta personalizada de Resource Graph (por defecto "Resources | project id, name, type, location")

Configuración del entorno

  1. Primero, asegúrate de haber iniciado sesión en Azure CLI ejecutando:

    az login
    

    Este paso es crucial para el desarrollo local, ya que DefaultAzureCredential usará automáticamente tus credenciales de Azure CLI.

  2. Configura tus variables de entorno:

    • Copia .env.example a .env
    • Actualiza AZURE_SUBSCRIPTION_ID en .env con tu ID de suscripción real
    • Otras variables (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) son opcionales cuando se usa la autenticación de Azure CLI
  3. Asegúrate de tener credenciales de Azure configuradas correctamente. El servidor usa DefaultAzureCredential que admite:

    • Azure CLI
    • Managed Identity
    • Credenciales de Visual Studio Code
    • Variables de entorno
  4. Si usas variables de entorno, configura:

    • AZURE_SUBSCRIPTION_ID
    • AZURE_TENANT_ID
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET

Manejo de errores

El servidor incluye un manejo robusto de errores para:

  • Fallos de inicialización del cliente de Azure
  • Errores de ejecución de consultas
  • Consultas o parámetros no válidos

Desarrollo

Para trabajar en este proyecto:

  1. Realiza cambios en el directorio src
  2. Compila usando npm run build
  3. Prueba tus cambios ejecutando el servidor

Licencia

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