Skip to main content
Glama
avidunixuser

Storage Intelligence MCP

by avidunixuser

Storage Intelligence MCP/A2A Agent

Производственный, доступный только для чтения пилотный проект хранилища Azure с синтетическим состоянием из 2 500 учетных записей в 339 подписках в средах Dev, QA, Perf и Prod, детерминированной аналитикой, частными инструментами Foundry и веб-приложением, защищенным Entra.

Тот же детерминированный агент доступен через REST, официальный MCP-сервер Streamable HTTP и конечные точки A2A v1 JSON-RPC/HTTP+JSON. См. интеграцию MCP и A2A для настройки клиента, аутентификации, обнаружения и примеров запросов.

Активные конечные точки MCP и A2A

Развертывание в Sweden Central использует этот защищенный Entra базовый URL-адрес:

https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io

Протокол

Конечная точка

MCP Streamable HTTP

https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io/mcp/

A2A Agent Card

https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io/.well-known/agent-card.json

A2A JSON-RPC

https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io/a2a

A2A HTTP+JSON

https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io/a2a/rest

Внешние клиенты должны запрашивать токен Microsoft Entra для аудитории api://<WEB_AUTH_CLIENT_ID> веб-приложения и отправлять его как токен-носитель. Используйте /mcp/ в качестве канонического URL-адреса MCP; /mcp перенаправляет на смонтированный путь транспорта.

Related MCP server: azure-compliance-mcp

Возможности продукта

  • Фирменная адаптивная панель мониторинга PepsiCo с закрепленными локально размещаемыми ресурсами React.

  • Постоянный переключатель языка английский/испанский в правом верхнем углу для глобально распределенных команд в Хайдарабаде, Барселоне, Мексике, США и Великобритании. Навигация, формы, статусы, подписи специальных возможностей, динамические счетчики, факторы риска, встроенные вопросы и детерминированные сводки ответов отображаются на выбранном языке без изменения идентификаторов API или имен ресурсов.

  • Ручной ввод пилотных учетных записей по имени учетной записи хранения, идентификатору клиента, группе управления, подписке, среде, дочерней компании/бизнес-единице, региону и уровню доступа.

  • Аутентифицированное управление списками выбора для добавления клиентов, групп управления, подписок, дочерних компаний/бизнес-единиц, а также полный каталог общедоступных регионов Azure для клиентов в каждом селекторе регионов.

  • Массовый ввод данных XLSX/CSV для избежания повторяющегося ручного ввода. Импорт проверяется атомарно, отклоняет дубликаты и обновляет только пилотную инвентаризацию в памяти.

  • Обнаружение только для администраторов, которое выполняет команды Azure CLI только для чтения во всех авторизованных подписках и импортирует клиента, группу управления, дочернюю компанию/бизнес-единицу, среду, учетную запись хранения, регион, уровень, SKU, состояние доступа/сети и теги управления проектами.

  • Небольшие значки Databricks, Fabric Lakehouse, SAP, Azure Data Factory, SFTP и Application Insights на связанных учетных записях хранения. Синтетическое состояние детерминированно рандомизирует эти связи; обнаружение считывает собственные свойства isSftpEnabled/isHnsEnabled, а также псевдонимы тегов ApplicationInsights/AppInsights.

  • Детерминированные исследования емкости, затрат, риска, Databricks, прогноза, аномалий, экономии на уровне, доказательств, уверенности и свежести.

  • Списки концентрации рисков: категории роста, затрат, свежести, операций, Databricks, конфигурации, безопасности и управления со спокойной палитрой низкой насыщенности. Безопасность явно оценивает ключи SAS/общие ключи, общий доступ, отсутствующие частные конечные точки, связи NSG/ASG и отсутствующий доступ субъекта-службы. Управление использует теги проекта, бизнес-единицы, последнего доступа и несуществующие теги. Круговая диаграмма в виде пончика суммирует распределение доминирующего риска, в то время как каждая учетная запись с оценкой не менее 20 остается в ранжированном вертикально прокручиваемом списке. При наведении на сегмент диаграммы отображается описание риска, количество учетных записей и процент; фокус клавиатуры показывает самый большой сегмент.

  • Плитки состояния работоспособности данных: Устаревшие учетные записи, Отсутствует жизненный цикл, Ключ SAS, Общий доступ, Нет частной конечной точки, Нет субъекта-службы, Нет GRS/GZRS, Связано с NSG/ASG и Несуществующие проекты плюс SFTP включен и Данные AppInsights — это кнопки. Выбор одной из них немедленно загружает все соответствующие учетные записи для активной области в отсортированную по риску вертикально прокручиваемую панель непосредственно под плитками на странице Data Health. Обзор остается сосредоточенным на емкости, стоимости, экономии, концентрации рисков и адаптации. Прежняя отдельная панель сведений об устаревших учетных записях удалена, поскольку теперь для устаревших учетных записей используется эта общая детализация.

  • Приоритетные выводы объясняют компонентные оценки роста и операций. Операции — это подоценка регулирования/задержки от 0 до 100; значение справа — это общая взвешенная оценка риска учетной записи из 100.

Ручной и табличный ввод никогда не создает и не изменяет ресурсы Azure Storage.

Веб-нагрузка Container Apps использует один постоянно готовый экземпляр Consumption с 1 виртуальным ЦП и 2 ГиБ памяти. Это обеспечивает согласованность поиска и отмены задач A2A с обработчиком задач в процессе SDK. Входящий трафик направляется на порт 8000, что соответствует Uvicorn и Dockerfile, а проверки готовности позволяют 10 секунд на временную нагрузку. Развертывание частных функций и смоук-тесты Foundry намеренно отделены от запуска веб-приложения, чтобы общедоступный защищенный Entra пользовательский интерфейс не блокировался частной зависимостью. Версия приложения 0.1.0 остается неизменной.

Функциональные представления

  • Расследование агента запускает ограниченные детерминированные инструменты, отображает полную доверительную среду и структурированный результат, объясняет, почему каждая возвращенная учетная запись была помечена, сохраняет согласованность цитирования доказательств со всеми уникальными возвращенными учетными записями, предлагает широкий многократно используемый каталог операционных/финансовых/платформенных вопросов, сохраняет новые аутентифицированные вопросы для будущих сеансов и сохраняет последние восемь расследований в рамках сеанса.

  • Симулятор экономии моделирует внедрение уровней от 1 до 100%, сравнивает базовые показатели 10/25/50%, ранжирует 20 лучших кандидатов и сохраняет оговорки о поиске/хранении.

  • Выводы объединяют риск, устойчивые аномалии роста, свежесть данных и действия по экономии в отсортированный по серьезности почтовый ящик. Всего выводов, Свежесть данных, Аномалия роста, Риск и Действие по экономии — это кликабельные сводные плитки; выбор одной из них немедленно фильтрует прокручиваемую панель результатов ниже. Прежний дублирующийся ряд кнопок фильтра удален.

  • Data Health показывает покрытие свежести, состояние соединителя/источника, жизненный цикл и предполагаемые пробелы уровней, а также прокручиваемый список исправлений устаревших учетных записей. Для администраторов видимый статус Отключено — это кнопка: щелчок по ней включает этот соединитель, меняет статус на Включено и открывает кликабельное действие Запустить. Завершенный запуск пилотного теста меняет статус на Исправен и показывает количество синхронизированных/подходящих элементов и время последнего запуска. Карточки состояния безопасности раскрывают ключи SAS/общие ключи, общий доступ, отсутствующие частные конечные точки, отсутствующий доступ субъекта-службы, репликацию не-GRS/GZRS, ссылки NSG/ASG, несуществующие проекты, отсутствующие теги последнего доступа, конечные точки с поддержкой SFTP и хранилище, связанное с Application Insights.

  • Data Health размещает Синтетический пилот, Обнаружение Azure CLI, Azure Resource Graph, Blob Inventory, Azure Monitor Metrics, Cost Management exports и системные таблицы Databricks сразу после глобальных фильтров/строки сброса.

Обнаружение администратора на уровне клиента

Администраторы видят отдельный пункт Администратор в левой навигации. Его действие Извлечь сведения об учетных записях хранения на уровне клиента использует массивы аргументов Azure CLI (никогда не строку команды оболочки) для перечисления всех включенных подписок, видимых аутентифицированной учетной записи, и запускает az storage account list для каждой подписки. Результаты идемпотентно загружаются в пилотную инвентаризацию и обновляются в частном контейнере Cosmos DB storage-intelligence/storage-accounts.

Настройте среду выполнения с помощью:

Переменная

Назначение

По умолчанию

ADMIN_ROLE

Роль приложения Entra, требуемая конечными точками администратора

StorageIntelligence.Admin

DISCOVERY_TENANT_IDS

Необязательные идентификаторы клиентов через запятую; пустое значение означает каждый клиент, видимый в кэше учетных записей CLI

пусто

DISCOVERY_USE_MANAGED_IDENTITY

Запустить az login --identity с AZURE_CLIENT_ID

true

DISCOVERY_CRON

Начальное пятипольное расписание обнаружения

0 */6 * * *

DISCOVERY_SCHEDULE_PATH

Сохраненный путь конфигурации расписания администратора

data/discovery-schedule.json

DISCOVERY_OUTPUT_PATH

Путь к файлу моментального снимка CLI по расписанию

data/discovered-storage-accounts.json

AZURE_CLI_PATH

Исполняемый файл Azure CLI

az

COSMOS_INVENTORY_ENABLED

Сохранять результаты ручного и запланированного обнаружения в Cosmos DB

false локально; true в Azure

COSMOS_ENDPOINT

Конечная точка частной учетной записи Cosmos DB

требуется, если включено сохранение

COSMOS_DATABASE

Имя базы данных инвентаризации

storage-intelligence

COSMOS_CONTAINER

Имя контейнера учетных записей хранения

storage-accounts

SAVED_QUESTIONS_PATH

Атомарный локальный файл библиотеки вопросов, когда Cosmos отключен

data/saved-agent-questions.json

Управляемому удостоверению или субъекту автоматизации должен быть предоставлен доступ только для чтения в каждой целевой подписке/клиенте. Этот проект намеренно не назначает роль Reader на уровне клиента. Обнаружение в нескольких клиентах работает только после явной авторизации удостоверения в каждом клиенте.

Запустите обнаружение напрямую:

.\scripts\run-storage-discovery.ps1

Администраторы могут редактировать пятипольное выражение cron непосредственно на панели мониторинга. Расписание проверяется с помощью croniter, атомарно сохраняется и используется встроенным планировщиком после перезапуска. Следующее время выполнения и распространенные примеры UTC cron показаны в представлении администратора, ограниченном ролью. Подготовка создает роль приложения Entra StorageIntelligence.Admin и назначает ее развертывающему пользователю. Каждый завершенный запуск сообщает количество обновлений Cosmos DB. Cosmos использует управляемое удостоверение веб-приложения, встроенное назначение участника данных уровня базы данных, секционирование /subscription_id и не использует ключи учетной записи.

Для внешнего узла автоматизации установите предоставленный шестичасовой запасной cron:

crontab config/storage-discovery.cron

Внешняя запланированная команда записывает атомарный JSON-снимок. Встроенный планировщик приложения выполняет upsert тех же сведений об учетных записях в Cosmos DB. Ни один из путей не запрашивает ключи хранилища и не изменяет ресурсы инфраструктуры.

Модуль обнаружения распознает теги-алиасы Databricks, Fabric Lakehouse, SAP, Azure Data Factory и Application Insights, а также нативное состояние SFTP/HNS. Он также читает Project/ProjectName, BusinessUnit, LastAccessedDate, ProjectStatus/ProjectDefunct, UsesSASKeys, ServicePrincipalAccess, NetworkSecurityGroup/NSG и ApplicationSecurityGroup/ASG. Свойства ресурсов Azure предоставляют сведения о доступе через общий ключ, публичном доступе к сети и blob-объектам, состоянии частной конечной точки и SKU репликации. Связанные учетные записи отображаются в отдельном разделе панели мониторинга с компактными доступными значками.

В нижнем навигационном колонтитуле отображается © 2026 PepsiCo. All rights reserved., после которого следуют небольшие доступные графические знаки Microsoft, Azure и предоставленный графический знак Azure AI Foundry. PNG-файл Foundry добавлен в репозиторий по пути src/web/static/assets вместе с манифестом SHA-256.

Формат электронной таблицы

Загрузите книгу .xlsx или файл .csv в кодировке UTF-8 со строкой заголовка и следующими столбцами:

Столбец

Пример

name

stfinancearchive01

tenant_id

11111111-1111-4111-8111-111111111111

management_group

mg-americas-platform

subscription

platform-prod

environment

Prod

subsidiary

PepsiCo Beverages North America

region

eastus2

tier

Cool

Импортер принимает до 10 000 строк или 5 МБ на файл. Понятные псевдонимы заголовков, такие как storage_account_name, tenant, managementgroup, subscription_name, environment/stage/env, Business unit, azure_region и access_tier, нормализуются автоматически.

business_unit — это псевдоним совместимости для subsidiary. Каждое значение иерархии должно существовать в пилотном каталоге; известные синтетические подписки проверяются на соответствие их клиенту, группе управления, среде и дочерней компании. Регионы могут использовать любой код из полного селектора публичных регионов Azure; для уровней необходимо использовать доступный уровень доступа.

Версионированный синтетический каталог содержит ровно 339 подписок. Каждая подписка имеет детерминированный UUID, клиента, группу управления, дочернюю компанию и одно из значений Dev, QA, Perf или Prod. Все 339 названий отображаются в глобальном селекторе подписок.

Библиотека вопросов для исследования

GET /api/questions возвращает каталог встроенных и сохраненных вопросов. POST /api/questions принимает новый вопрос длиной от 3 до 500 символов, нормализует пробелы, отклоняет дубликаты независимо от регистра и ограничивает общую библиотеку 100 пользовательскими вопросами. Azure хранит пользовательские вопросы как документы saved-agent-question в существующем частном контейнере Cosmos в разделе __agent_questions__. Localhost использует указанный выше путь атомарного JSON. Сохранение вопроса не выполняет его и не изменяет ресурсы Azure.

Локальный запуск

Требуется Python 3.13. Node.js и 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 8000

Откройте http://127.0.0.1:8000. Запустите приемочные тесты с помощью:

.\.venv\Scripts\python -m pytest

Языковая настройка хранится в браузерном localStorage под ключом storage-intelligence-language. По умолчанию используется английский (en); испанский (es) обновляет язык и заголовок документа. Встроенные испанские вопросы перед отправкой в API приводятся обратно к своему английскому детерминированному интенту, а серверная часть также распознает распространенные испанские фразы-интенты для вновь создаваемых вопросов.

Архитектура

  • src/storage_intelligence: синтетический генератор, коннекторы, аналитика, маршрутизатор запросов.

  • src/protocols/service.py: протокол-нейтральный фасад агента только для чтения.

  • src/protocols/mcp_server.py: инструменты MCP, ресурс, промпт, HTTP-подключение и точка входа stdio.

  • src/protocols/a2a_server.py: A2A Agent Card, маршруты JSON-RPC/REST, исполнитель задач и артефакты.

  • src/protocols/README.md: примыкающий к коду справочник по конечным точкам MCP/A2A, аутентификации и использованию.

  • src/web: FastAPI и встроенный браузерный интерфейс React 18.3.1.

  • src/function_app.py: приватные инструменты OpenAPI и устойчивый сбор данных по схеме fan-out/fan-in.

  • src/agent: инструкции Foundry, контракт OpenAPI, скрипты развертывания/вызова и оценочные тесты.

  • infra/foundry: официальный базовый шаблон 19 и неизмененные вспомогательные модули.

  • infra/functions-base: сохраненные официальные базовые модули Flex Consumption.

  • infra: скомпонованные параметры рабочей нагрузки Bicep и AZD.

См. спецификацию продукта, архитектуру и интеграцию протоколов.

Рабочий процесс Azure

Утвержденный файл .azure/deployment-plan.md является источником истины. Для развертывания используется:

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-prompt

Скрипты развертывания создают или повторно используют регистрации приложений Entra без секретов, включают выпуск ID-токенов для Easy Auth в Container Apps, развертывают веб-образ и пакет Functions, а затем создают версию prompt-агента Foundry. Easy Auth принимает в качестве аудиторий токена как идентификатор клиента приложения, так и его URI идентификатора api://. Производственные коннекторы остаются отключенными, если не настроены их явные флаги и роли с минимальными привилегиями.

Предостережения о затратах

Приватный Foundry Standard требует фиксированных затрат на AI Search Standard и Premium ACR. Cosmos DB, прием данных мониторинга, токены моделей, частные конечные точки и Container Apps добавляют затраты, зависящие от использования. Пилотный проект позволяет избежать расходов на API инфраструктуры и запросы Databricks за счет использования синтетических данных.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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
  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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.

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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