Storage Intelligence MCP
Agente MCP/A2A de Storage Intelligence
Piloto de inteligencia de Azure Storage de solo lectura, de tipo productivo, con un conjunto sintético de 2500 cuentas distribuidas en 339 suscripciones en los entornos Dev, QA, Perf y Prod, análisis deterministas, herramientas privadas de Foundry y una aplicación web protegida con Entra.
El mismo agente determinista está disponible a través de REST, un servidor MCP Streamable HTTP oficial y los endpoints A2A v1 JSON-RPC/HTTP+JSON. Consulte Integración MCP y A2A para la configuración del cliente, autenticación, descubrimiento y ejemplos de solicitudes.
Endpoints MCP y A2A en vivo
La implementación de Suecia Central usa esta URL base protegida por Entra:
https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io
Protocolo | Endpoint |
MCP Streamable HTTP |
|
Tarjeta de agente A2A |
|
A2A JSON-RPC |
|
A2A HTTP+JSON |
|
Los clientes externos deben solicitar un token de Microsoft Entra para la audiencia api://<WEB_AUTH_CLIENT_ID> de la aplicación web y enviarlo como token de portador. Use /mcp/ como URL MCP canónica; /mcp redirige a la ruta de transporte montada.
Related MCP server: azure-compliance-mcp
Experiencia de producto
Panel receptivo con la marca PepsiCo con activos React anclados y servidos localmente.
Conmutador persistente de idioma inglés/español en el encabezado superior derecho para equipos distribuidos globalmente en Hyderabad, Barcelona, México, EE. UU. y el Reino Unido. La navegación, los formularios, los estados, las etiquetas de accesibilidad, los recuentos dinámicos, los factores de riesgo, las preguntas integradas y los resúmenes de respuestas deterministas se muestran en el idioma seleccionado sin cambiar los identificadores de API ni los nombres de recursos.
Incorporación manual de pilotos por nombre de cuenta de almacenamiento, identificador de inquilino, grupo de administración, suscripción, entorno, subsidiaria/unidad de negocio, región y nivel de acceso.
Gestión autenticada de listas de selección para agregar inquilinos, grupos de administración, suscripciones, subsidiarias/unidades de negocio, además del catálogo completo de regiones públicas de Azure orientado al cliente en cada selector de región.
Incorporación masiva XLSX/CSV para evitar la entrada manual repetitiva. Las importaciones se validan atómicamente, rechazan duplicados y actualizan solo el inventario piloto en memoria.
Descubrimiento de inquilinos solo para administradores que ejecuta comandos de Azure CLI de solo lectura en todas las suscripciones autorizadas e importa inquilino, grupo de administración, subsidiaria/unidad de negocio, entorno, cuenta de almacenamiento, región, nivel, SKU, postura de acceso/red y etiquetas de gobernanza de proyectos.
Pequeñas insignias de Databricks, Fabric Lakehouse, SAP, Azure Data Factory, SFTP y Application Insights en cuentas de almacenamiento vinculadas. El conjunto sintético aleatoriza de forma determinista estas relaciones; el descubrimiento lee las propiedades nativas
isSftpEnabled/isHnsEnabledademás de los alias de etiquetaApplicationInsights/AppInsights.Investigaciones deterministas de capacidad, costo, riesgo, Databricks, pronóstico, anomalías, ahorro de nivel, evidencia, confianza y frescura.
Las listas de concentración de riesgo incluyen las categorías Crecimiento, Costo, Frescura, Operaciones, Databricks, Configuración, Seguridad y Gobernanza con una paleta de baja saturación. Seguridad puntúa explícitamente claves SAS/compartidas, acceso público, puntos de conexión privados faltantes, vínculos NSG/ASG y acceso de entidad de servicio faltante. Gobernanza usa etiquetas de proyecto, unidad de negocio, último acceso y obsoletas. Un gráfico circular de dona resume la distribución de riesgo dominante, mientras que cada cuenta con alcance que puntúa al menos 20 permanece en la lista clasificada y desplazable verticalmente. Al pasar el cursor sobre un segmento del gráfico se muestra la descripción del riesgo, el número de cuentas y el porcentaje; el foco del teclado muestra el segmento más grande.
Mosaicos de postura de salud de datos procesables: Cuentas obsoletas, Falta ciclo de vida, Clave SAS, Acceso público, Sin punto de conexión privado, Sin entidad de servicio, Sin GRS/GZRS, NSG/ASG vinculado y Proyectos obsoletos además de SFTP habilitado y Datos de AppInsights son botones. Seleccionar uno carga inmediatamente cada cuenta coincidente para el ámbito activo en un panel clasificado por riesgo y desplazable verticalmente justo debajo de los mosaicos en la página de Salud de datos. La descripción general permanece centrada en la capacidad del conjunto, el costo, los ahorros, la concentración de riesgo y la incorporación. El panel de detalles de cuentas obsoletas independiente anterior se elimina porque Cuentas obsoletas ahora usa este desglose común.
Los hallazgos prioritarios explican las puntuaciones de los componentes de Crecimiento y Operaciones. Operaciones es la subpuntuación de limitación/latencia de 0 a 100; el valor del lado derecho es la puntuación de riesgo general ponderada de la cuenta sobre 100.
La incorporación manual y por hoja de cálculo nunca crea ni cambia recursos de Azure Storage.
La carga de trabajo web de Container Apps usa una réplica de Consumo siempre lista con 1 vCPU y 2 GiB de memoria. Esto mantiene la búsqueda y cancelación de tareas A2A coherentes con el controlador de tareas local del proceso del SDK. La entrada apunta al puerto 8000, que coincide con Uvicorn y el Dockerfile, y las sondas permiten 10 segundos para carga transitoria. La implementación de funciones privadas y las pruebas de humo de Foundry están deliberadamente desacopladas del inicio web para que la interfaz de usuario pública protegida por Entra no pueda ser bloqueada por una dependencia privada. La versión de la aplicación 0.1.0 permanece sin cambios.
Vistas funcionales
Investigación de agente ejecuta herramientas deterministas con ámbito, muestra el sobre de confianza completo y el resultado estructurado, explica por qué se marcó cada cuenta devuelta, mantiene las citas de evidencia alineadas con todas las cuentas únicas devueltas, ofrece un amplio catálogo reutilizable de preguntas operativas/financieras/de plataforma, guarda nuevas preguntas autenticadas para futuras sesiones y conserva las últimas ocho investigaciones en la sesión.
Simulador de ahorro modela la adopción de niveles del 1 al 100 %, compara líneas base del 10/25/50 %, clasifica los 20 principales candidatos y conserva las advertencias de recuperación/retención.
Hallazgos combina riesgo, anomalías de crecimiento sólidas, frescura de datos y acciones de ahorro en una bandeja de entrada ordenada por gravedad. Hallazgos totales, Frescura de datos, Anomalía de crecimiento, Riesgo y Acción de ahorro son mosaicos de resumen en los que se puede hacer clic; seleccionar uno filtra inmediatamente el panel de resultados desplazable a continuación. Se elimina la fila anterior de botones de filtro duplicados.
Salud de datos muestra cobertura de frescura, estado del conector/fuente, brechas de ciclo de vida y nivel asumido, y una lista de corrección de cuentas obsoletas desplazable. Para los administradores, el estado visible Deshabilitado es un botón: al hacer clic se habilita ese conector, cambia el estado a Habilitado y revela una acción Ejecutar en la que se puede hacer clic. Una ejecución de dispositivo de prueba piloto completada cambia el estado a Saludable y muestra recuentos sincronizados/elegibles y la hora de la última ejecución. Las tarjetas de postura de seguridad exponen claves SAS/compartidas, acceso público, puntos de conexión privados faltantes, acceso de entidad de servicio faltante, replicación no GRS/GZRS, vínculos NSG/ASG, proyectos obsoletos, etiquetas de último acceso faltantes, puntos de conexión habilitados para SFTP y almacenamiento vinculado a Application Insights.
Salud de datos coloca Piloto sintético, Descubrimiento de Azure CLI, Azure Resource Graph, Inventario de blobs, Métricas de Azure Monitor, exportaciones de Cost Management y tablas del sistema de Databricks inmediatamente después de la fila de filtros/restablecimiento globales.
Descubrimiento administrativo en todo el inquilino
Los administradores ven un elemento Admin dedicado en la navegación izquierda. Su acción Extraer detalles de cuentas de almacenamiento en todo el inquilino usa matrices de argumentos de Azure CLI (nunca una cadena de comando de shell) para enumerar cada suscripción habilitada visible para la identidad autenticada y ejecutar az storage account list para cada suscripción. Los resultados se ingieren de forma idempotente en el inventario piloto y se insertan o actualizan en el contenedor privado de Cosmos DB storage-intelligence/storage-accounts.
Configure el tiempo de ejecución con:
Variable | Propósito | Predeterminado |
| Rol de aplicación de Entra requerido por los endpoints de administración |
|
| Lista opcional de identificadores de inquilino separados por comas; vacío significa todos los inquilinos visibles en la caché de la cuenta CLI | vacío |
| Ejecutar |
|
| Programa de descubrimiento inicial de cinco campos |
|
| Ruta de configuración de programa de administración persistida |
|
| Ruta de instantánea de CLI programada |
|
| Ejecutable de Azure CLI |
|
| Persistir los resultados de descubrimiento manuales y programados en Cosmos DB |
|
| Punto de conexión de cuenta de Cosmos DB privada | requerido cuando la persistencia está habilitada |
| Nombre de la base de datos de inventario |
|
| Nombre del contenedor de cuentas de almacenamiento |
|
| Archivo de biblioteca de preguntas local atómico cuando Cosmos está deshabilitado |
|
A la identidad administrada o a la entidad de servicio de automatización se le debe otorgar acceso de solo lectura en cada suscripción/inquilino de destino. Este proyecto deliberadamente no asigna roles Reader en todo el inquilino. El descubrimiento entre inquilinos solo funciona después de que la identidad esté explícitamente autorizada en cada inquilino.
Ejecute el descubrimiento directamente:
.\scripts\run-storage-discovery.ps1Los administradores pueden editar la expresión cron de cinco campos directamente en el panel. El programa se valida con croniter, se persiste atómicamente y lo usa el programador en proceso después del reinicio. La próxima hora de ejecución y ejemplos comunes de cron UTC se muestran en la vista de administración restringida por rol. El aprovisionamiento crea el rol de aplicación de Entra StorageIntelligence.Admin y lo asigna al usuario que implementa. Cada extracción completada informa el número de inserciones o actualizaciones de Cosmos DB. Cosmos usa la identidad administrada de la aplicación web, una asignación integrada de Colaborador de datos con ámbito de base de datos, particionamiento /subscription_id y sin claves de cuenta.
Para un host de automatización externo, instale el cron de respaldo de seis horas suministrado:
crontab config/storage-discovery.cronEl comando programado externo escribe una instantánea JSON atómica. El programador integrado en la aplicación actualiza los mismos datos de la cuenta en Cosmos DB. Ninguna de las dos vías solicita claves de almacenamiento ni modifica recursos del entorno.
Discovery reconoce Databricks, Fabric Lakehouse, SAP, Azure Data Factory y alias de etiquetas de Application Insights, además del estado nativo SFTP/HNS.
También lee Project/ProjectName, BusinessUnit, LastAccessedDate,
ProjectStatus/ProjectDefunct, UsesSASKeys, ServicePrincipalAccess,
NetworkSecurityGroup/NSG y ApplicationSecurityGroup/ASG. Las propiedades de los recursos de Azure proporcionan acceso con clave compartida, acceso público de red/blob, estado del punto de conexión privado y SKU de replicación. Las cuentas vinculadas aparecen en una sección dedicada del panel con insignias compactas accesibles.
El pie de navegación muestra © 2026 PepsiCo. All rights reserved. seguido de las marcas de imagen pequeñas y accesibles de Microsoft, Azure y la imagen proporcionada de Azure AI Foundry. El PNG de Foundry está incluido en src/web/static/assets con un manifiesto SHA-256.
Formato de hoja de cálculo
Cargue un libro de trabajo .xlsx o un archivo .csv UTF-8 con una fila de encabezado y estas columnas:
Columna | Ejemplo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
El importador acepta hasta 10 000 filas o 5 MB por archivo. Los alias de encabezado descriptivos, como storage_account_name, tenant, managementgroup, subscription_name, environment/stage/env, Business unit, azure_region y access_tier, se normalizan automáticamente.
business_unit es un alias de compatibilidad para subsidiary. Cada valor de jerarquía debe existir en el catálogo piloto; las suscripciones sintéticas conocidas se validan con su inquilino, grupo de administración, entorno y subsidiaria. Las regiones pueden usar cualquier código del selector completo de regiones públicas de Azure; los niveles deben usar un nivel de acceso disponible.
El catálogo sintético con versiones contiene exactamente 339 suscripciones. Cada suscripción tiene un UUID determinista, inquilino, grupo de administración, subsidiaria y uno de Dev, QA, Perf o Prod. Los 339 nombres aparecen en el selector global de suscripciones.
Biblioteca de preguntas de investigación
GET /api/questions devuelve el catálogo de preguntas integradas y guardadas.
POST /api/questions acepta una pregunta nueva de 3 a 500 caracteres, normaliza los espacios en blanco, rechaza duplicados sin distinguir mayúsculas y limita la biblioteca compartida a 100 preguntas personalizadas. Azure almacena las preguntas personalizadas como documentos saved-agent-question en el contenedor privado de Cosmos existente bajo la partición __agent_questions__. Localhost usa la ruta JSON atómica anterior. Guardar una pregunta no la ejecuta ni muta un recurso de Azure.
Ejecución local
Se requiere Python 3.13. No se utilizan Node.js ni npm.
python -m venv .venv
.\.venv\Scripts\python -m pip install -e ".[test]"
$env:AUTH_DISABLED = "true"
.\.venv\Scripts\python -m uvicorn web.app:app --host 127.0.0.1 --port 8000Abra http://127.0.0.1:8000. Ejecute las pruebas de aceptación con:
.\.venv\Scripts\python -m pytestLa preferencia de idioma se almacena en localStorage bajo
storage-intelligence-language. El inglés (en) es el predeterminado; el español (es) actualiza el idioma y el título del documento. Las preguntas integradas en español se canonizan de nuevo a su intención determinista en inglés antes del envío a la API, mientras que el backend también reconoce frases comunes de intención en español para preguntas recién creadas.
Arquitectura
src/storage_intelligence: generador sintético, conectores, análisis, enrutador de consultas.src/protocols/service.py: fachada de agente de solo lectura sin dependencia de protocolo.src/protocols/mcp_server.py: herramientas MCP, recurso, prompt, montaje HTTP y punto de entrada stdio.src/protocols/a2a_server.py: tarjeta de agente A2A, rutas JSON-RPC/REST, ejecutor de tareas y artefactos.src/protocols/README.md: referencia de endpoints MCP/A2A adyacente al código, autenticación y artefactos.src/web: FastAPI y UI de React 18.3.1 incluida.src/function_app.py: API privada de OpenAPI y recopilación durable fan-out/fan-in.src/agent: agente de Azure AI Foundry, configuración de OpenAPI y scripts de implementación/invocación.src/agent/tooling: prompts de herramientas, manejadores de herramientas y verificación de resultados.infra/foundry: módulos de plantilla oficiales 19.1 y 19.2 (sin modificar).infra/functions-base: módulos base oficiales de Functions.infra: Bicep de carga de trabajo compuesta y plantilla de implementación de GitHub Actions.
Consulte la especificación del producto, la arquitectura y la integración de protocolos.
Flujo de trabajo de Azure
.\scripts\run-storage-discovery.ps1El plan de implementación crea o reutiliza recursos de Azure. El subcomando create emite el estado de implementación intermedio en ~/.azure/gxp1/... para pasar la comprobación de tenencia a los pasos de confirmación. Requiere un principalType de Application para federación de credenciales y rechaza cuentas de almacenamiento reutilizadas con firewall habilitado o sin SAS. Los nombres de implementaciones se basan en el host de Git local, la rama y la fecha de confirmación. Si falta AZURE_CREDENTIALS, se activa la autenticación de Azure CLI con inicio de sesión interactivo. El generador sintético se puede invocar manualmente con --all y una salida determinista, y --commit incluye las instantáneas en las acciones de implementación.
azd env new storage-intel-pilot
azd env set AZURE_LOCATION swedencentral
azd env set AZURE_SUBSCRIPTION_ID c82406dd-f84c-42df-9586-c6f02abda6df
azd provision --preview --no-prompt
azd provision --no-prompt
azd deploy --no-promptLos scripts de implementación crean o reutilizan registros de aplicaciones sin claves, habilitan la emisión de tokens de ID para la autenticación de Container Apps, implementan el paquete de Functions y de la interfaz web, y luego crean la versión del agente de Foundry. Los conectores de producción permanecen deshabilitados a menos que se configuren sus indicadores explícitos y los roles de seguridad correspondientes.
Advertencias de costos
Foundry Standard privado requiere AI Search Standard de costo fijo y ACR Premium. Cosmos DB, el monitoreo de telemetría, los tokens de modelo, los puntos de conexión privados y Container Apps agregan costos basados en uso. El piloto evita los cargos de consulta de la API del entorno y de Databricks mediante el uso de datos sintéticos.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that exposes core Azure services as read-mostly tools any MCP client can call, including Blob Storage, Key Vault, Service Bus, and Resource Manager.1MIT
- AlicenseAqualityBmaintenanceEnables natural-language queries about Azure resource compliance, including VM compliance, patch status, orphaned RBAC, and infrastructure health, through read-only MCP tools.3MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for exploring on-premises, multi-instance Microsoft SQL Server estates from AI clients, with read-only enforcement and Windows authentication support.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA read-only MCP server for inspecting AWS resources, detecting misconfigurations, and estimating costs across EC2, S3, and IAM, enabling agents to safely query and analyze cloud infrastructure.
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/avidunixuser/Storage-Intelligence-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server