Storage Intelligence MCP
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 |
|
A2A Agent Card |
|
A2A JSON-RPC |
|
A2A HTTP+JSON |
|
Внешние клиенты должны запрашивать токен 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.
Настройте среду выполнения с помощью:
Переменная | Назначение | По умолчанию |
| Роль приложения Entra, требуемая конечными точками администратора |
|
| Необязательные идентификаторы клиентов через запятую; пустое значение означает каждый клиент, видимый в кэше учетных записей CLI | пусто |
| Запустить |
|
| Начальное пятипольное расписание обнаружения |
|
| Сохраненный путь конфигурации расписания администратора |
|
| Путь к файлу моментального снимка CLI по расписанию |
|
| Исполняемый файл Azure CLI |
|
| Сохранять результаты ручного и запланированного обнаружения в Cosmos DB |
|
| Конечная точка частной учетной записи Cosmos DB | требуется, если включено сохранение |
| Имя базы данных инвентаризации |
|
| Имя контейнера учетных записей хранения |
|
| Атомарный локальный файл библиотеки вопросов, когда Cosmos отключен |
|
Управляемому удостоверению или субъекту автоматизации должен быть предоставлен доступ только для чтения в каждой
целевой подписке/клиенте. Этот проект намеренно не назначает роль 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 со строкой заголовка и следующими столбцами:
Столбец | Пример |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Импортер принимает до 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 за счет использования синтетических данных.
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