Skip to main content
Glama
avidunixuser

Storage Intelligence MCP

by avidunixuser

Storage Intelligence MCP/A2A 에이전트

프로덕션 수준의 읽기 전용 Azure Storage 인텔리전스 파일럿으로, Dev, QA, Perf, Prod에 걸친 339개 구독에 분산된 2,500개 계정으로 구성된 합성 에스테이트(synthetic estate), 결정론적 분석, 프라이빗 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 에이전트 카드

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

외부 클라이언트는 웹 애플리케이션의 api://<WEB_AUTH_CLIENT_ID> 대상 그룹(audience)에 대한 Microsoft Entra 토큰을 요청하고 이를 bearer 토큰으로 전송해야 합니다. 정식 MCP URL로 /mcp/를 사용하세요. /mcp는 마운트된 전송 경로로 리디렉션됩니다.

Related MCP server: azure-compliance-mcp

제품 경험

  • 로컬에서 서비스되는 React 자산이 고정된 PepsiCo 브랜드 반응형 대시보드.

  • 하이데라바드, 바르셀로나, 멕시코, 미국, 영국에 분산된 글로벌 팀을 위한 오른쪽 상단 헤더의 영구 영어/스페인어 언어 전환. 탐색, 양식, 상태, 접근성 레이블, 동적 개수, 위험 요소, 기본 제공 질문, 결정론적 답변 요약은 API 식별자나 리소스 이름을 변경하지 않고 선택한 언어로 렌더링됩니다.

  • 스토리지 계정 이름, 테넌트 ID, 관리 그룹, 구독, 환경, 자회사/사업부, 지역, 액세스 계층별 수동 파일럿 온보딩.

  • 테넌트, 관리 그룹, 구독, 자회사/사업부 추가를 위한 인증된 선택 목록 관리와 모든 지역 선택기의 완전한 고객 대상 Azure 공용 지역 카탈로그.

  • 반복적인 수동 입력을 피하기 위한 대량 XLSX/CSV 온보딩. 가져오기는 원자적으로 검증되고, 중복을 거부하며, 메모리 내 파일럿 인벤토리만 업데이트합니다.

  • 승인된 모든 구독에서 읽기 전용 Azure CLI 명령을 실행하고 테넌트, 관리 그룹, 자회사/사업부, 환경, 스토리지 계정, 지역, 계층, SKU, 액세스/네트워크 상태, 프로젝트 거버넌스 태그를 가져오는 관리자 전용 테넌트 검색.

  • 연결된 스토리지 계정의 소형 Databricks, Fabric Lakehouse, SAP, Azure Data Factory, SFTP, Application Insights 배지. 합성 에스테이트는 이러한 관계를 결정론적으로 무작위화합니다. 검색은 네이티브 isSftpEnabled/isHnsEnabled 속성과 ApplicationInsights/AppInsights 태그 별칭을 읽습니다.

  • 결정론적 용량, 비용, 위험, Databricks, 예측, 이상 징후, 계층 절감, 증거, 신뢰도, 신선도 조사.

  • 위험 집중 목록은 Growth, Cost, Freshness, Operations, Databricks, Configuration, Security, Governance 범주를 차분한 저채도 팔레트로 나열합니다. Security는 SAS/공유 키, 공용 액세스, 누락된 프라이빗 엔드포인트, NSG/ASG 링크, 누락된 서비스 주체 액세스를 명시적으로 점수화합니다. Governance는 프로젝트, 사업부, 마지막 액세스, 폐기(defunct) 태그를 사용합니다. 도넛형 파이 차트는 지배적 위험 분포를 요약하며, 20점 이상을 받은 모든 범위 내 계정은 순위가 매겨진 세로 스크롤 목록에 유지됩니다. 파이 세그먼트에 마우스를 올리면 위험 설명, 계정 수, 백분율이 표시됩니다. 키보드 포커스는 가장 큰 세그먼트를 표시합니다.

  • 실행 가능한 Data Health 상태 타일: Stale accounts, Missing lifecycle, SAS Key, Public Access, No Private Endpoint, No Service Principal, No GRS/GZRS, NSG/ASG linked, Defunct ProjectsSFTP Enabled, AppInsights Data는 버튼입니다. 하나를 선택하면 활성 범위의 모든 일치 계정이 Data Health 페이지의 타일 바로 아래에 있는 위험 정렬 세로 스크롤 패널에 즉시 로드됩니다. Overview는 에스테이트 용량, 비용, 절감, 위험 집중, 온보딩에 집중된 상태를 유지합니다. 기존의 독립형 stale-account 세부 정보 패널은 Stale accounts가 이 공통 드릴다운을 사용하므로 제거되었습니다.

  • Priority findings는 Growth 및 Operations 구성 요소 점수를 설명합니다. Operations는 0–100 스로틀링/지연 시간 하위 점수이며, 오른쪽 값은 100점 만점의 전체 가중 계정 위험 점수입니다.

수동 및 스프레드시트 온보딩은 Azure Storage 리소스를 생성하거나 변경하지 않습니다.

Container Apps 웹 워크로드는 1 vCPU와 2 GiB 메모리를 갖춘 항상 준비된 Consumption 복제본 하나를 사용합니다. 이는 A2A 작업 조회 및 취소가 SDK의 프로세스 로컬 작업 핸들러와 일관되게 유지되도록 합니다. 인그레스는 Uvicorn 및 Dockerfile과 일치하는 포트 8000을 대상으로 하며, 프로브는 일시적 부하에 10초를 허용합니다. 프라이빗 Function 배포와 Foundry 스모크 테스트는 웹 시작과 의도적으로 분리되어 공용 Entra 보호 UI가 프라이빗 종속성에 의해 차단되지 않습니다. 애플리케이션 버전 0.1.0은 변경되지 않습니다.

기능 보기

  • Agent Investigation은 범위가 지정된 결정론적 도구를 실행하고, 전체 신뢰 범위와 구조화된 결과를 표시하며, 반환된 모든 계정이 플래그된 이유를 설명하고, 증거 인용을 모든 고유 반환 계정과 정렬하며, 광범위한 재사용 가능한 운영/재무/플랫폼 질문 카탈로그를 제공하고, 새 인증 질문을 향후 세션을 위해 저장하며, 세션 내에서 최근 8개 조사를 유지합니다.

  • Savings Simulator는 1-100% 계층 채택을 모델링하고, 10/25/50% 기준선을 비교하며, 상위 20개 후보를 순위화하고, 검색/보존 주의 사항을 유지합니다.

  • Findings는 위험, 견고한 성장 이상 징후, 데이터 신선도, 절감 조치를 심각도 정렬 받은 편지함으로 결합합니다. Total Findings, Data Freshness, Growth Anomaly, Risk, Savings Action은 클릭 가능한 요약 타일이며, 하나를 선택하면 아래의 스크롤 가능한 결과 패널이 즉시 필터링됩니다. 기존의 중복 필터 버튼 행은 제거되었습니다.

  • Data Health는 신선도 적용 범위, 커넥터/소스 상태, 수명 주기 및 가정된 계층 격차, 스크롤 가능한 stale-account 수정 목록을 표시합니다. 관리자의 경우 표시되는 Disabled 상태는 버튼입니다. 클릭하면 해당 커넥터가 활성화되고 상태가 Enabled로 변경되며 클릭 가능한 Run 작업이 표시됩니다. 완료된 파일럿 픽스처 실행은 상태를 Healthy로 변경하고 동기화/적격 개수와 마지막 실행 시간을 표시합니다. 보안 상태 카드는 SAS/공유 키, 공용 액세스, 누락된 프라이빗 엔드포인트, 누락된 서비스 주체 액세스, 비-GRS/GZRS 복제, NSG/ASG 링크, 폐기 프로젝트, 누락된 마지막 액세스 태그, SFTP 활성화 엔드포인트, Application Insights 연결 스토리지를 노출합니다.

  • Data Health는 Synthetic pilot, Azure CLI discovery, Azure Resource Graph, Blob Inventory, Azure Monitor Metrics, Cost Management exports, Databricks system tables를 전역 필터/재설정 행 바로 뒤에 배치합니다.

테넌트 전체 관리자 검색

관리자는 왼쪽 탐색에 전용 Admin 항목을 볼 수 있습니다. Pull Tenant Wide Storage Account Details 작업은 Azure CLI 인수 배열(셸 명령 문자열이 아님)을 사용하여 인증된 ID에 표시되는 모든 활성화된 구독을 열거하고 각 구독에 대해 az storage account list를 실행합니다. 결과는 파일럿 인벤토리에 멱등적으로 수집되고 프라이빗 Cosmos DB storage-intelligence/storage-accounts 컨테이너에 업서트됩니다.

런타임을 다음과 같이 구성하세요:

변수

용도

기본값

ADMIN_ROLE

관리자 엔드포인트에 필요한 Entra 앱 역할

StorageIntelligence.Admin

DISCOVERY_TENANT_IDS

선택적 쉼표로 구분된 테넌트 ID. 비어 있으면 CLI 계정 캐시에 표시되는 모든 테넌트

empty

DISCOVERY_USE_MANAGED_IDENTITY

AZURE_CLIENT_IDaz login --identity 실행

true

DISCOVERY_CRON

초기 5필드 검색 일정

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, Azure에서 true

COSMOS_ENDPOINT

프라이빗 Cosmos DB 계정 엔드포인트

지속성이 활성화된 경우 필수

COSMOS_DATABASE

인벤토리 데이터베이스 이름

storage-intelligence

COSMOS_CONTAINER

스토리지 계정 컨테이너 이름

storage-accounts

SAVED_QUESTIONS_PATH

Cosmos가 비활성화된 경우 원자적 localhost 질문 라이브러리 파일

data/saved-agent-questions.json

관리 ID 또는 자동화 주체는 모든 대상 구독/테넌트에서 읽기 전용 액세스 권한을 부여받아야 합니다. 이 프로젝트는 의도적으로 테넌트 전체 Reader 역할을 할당하지 않습니다. 교차 테넌트 검색은 ID가 각 테넌트에서 명시적으로 권한이 부여된 후에만 작동합니다.

검색을 직접 실행하세요:

.\scripts\run-storage-discovery.ps1

관리자는 대시보드에서 5필드 cron 표현식을 직접 편집할 수 있습니다. 일정은 croniter로 검증되고, 원자적으로 유지되며, 재시작 후 프로세스 내 스케줄러에서 사용됩니다. 다음 실행 시간과 일반적인 UTC cron 예시는 역할이 제한된 Admin 보기에 표시됩니다. 프로비저닝은 StorageIntelligence.Admin Entra 앱 역할을 생성하고 배포 사용자에게 할당합니다. 각 완료된 풀은 Cosmos DB 업서트 수를 보고합니다. Cosmos는 웹 앱의 관리 ID, 데이터베이스 범위 기본 제공 Data Contributor 할당, /subscription_id 파티셔닝을 사용하며 계정 키는 사용하지 않습니다.

외부 자동화 호스트의 경우 제공된 6시간 대체 cron을 설치하세요:

crontab config/storage-discovery.cron

외부 예약 명령은 원자적 JSON 스냅샷을 작성합니다. 인앱 스케줄러는 동일한 계정 세부 정보를 Cosmos DB에 업서트합니다. 어떤 경로도 스토리지 키를 요청하거나 에스테이트 리소스를 변경하지 않습니다.

검색은 Databricks, Fabric Lakehouse, SAP, Azure Data Factory 및 Application Insights 태그 별칭과 네이티브 SFTP/HNS 상태를 인식합니다. 또한 Project/ProjectName, BusinessUnit, LastAccessedDate, ProjectStatus/ProjectDefunct, UsesSASKeys, ServicePrincipalAccess, NetworkSecurityGroup/NSGApplicationSecurityGroup/ASG를 읽습니다. Azure 리소스 속성은 공유 키 액세스, 공용 네트워크/Blob 액세스, 프라이빗 엔드포인트 상태 및 복제 SKU를 제공합니다. 연결된 계정은 전용 대시보드 섹션에 간결한 접근성 배지와 함께 표시됩니다.

탐색 바닥글에는 © 2026 PepsiCo. All rights reserved. 다음에 작은 접근성 있는 Microsoft, Azure 및 제공된 Azure AI Foundry 이미지 마크가 표시됩니다. Foundry PNG는 SHA-256 매니페스트와 함께 src/web/static/assets 아래에 커밋됩니다.

스프레드시트 형식

헤더 행과 다음 열이 포함된 .xlsx 통합 문서 또는 UTF-8 .csv 파일을 업로드합니다:

예시

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개 행 또는 5MB를 허용합니다. storage_account_name, tenant, managementgroup, subscription_name, environment/stage/env, Business unit, azure_regionaccess_tier와 같은 친숙한 헤더 별칭은 자동으로 정규화됩니다. business_unit은(는) subsidiary의 호환 별칭입니다. 모든 계층 구조 값은 파일럿 카탈로그에 존재해야 합니다. 알려진 합성 구독은 해당 테넌트, 관리 그룹, 환경 및 자회사에 대해 검증됩니다. 지역은 전체 Azure 공용 지역 선택기의 모든 코드를 사용할 수 있으며, 계층은 사용 가능한 액세스 계층을 사용해야 합니다.

버전이 지정된 합성 카탈로그에는 정확히 339개의 구독이 포함되어 있습니다. 각 구독에는 결정적 UUID, 테넌트, 관리 그룹, 자회사 및 Dev, QA, Perf 또는 Prod 중 하나가 있습니다. 339개 이름 모두 전역 구독 선택기에 표시됩니다.

조사 질문 라이브러리

GET /api/questions는 기본 제공 및 저장된 질문 카탈로그를 반환합니다. POST /api/questions는 3~500자 사이의 새 질문을 수락하고, 공백을 정규화하며, 대소문자를 구분하지 않는 중복을 거부하고, 공유 라이브러리를 사용자 지정 질문 100개로 제한합니다. Azure는 사용자 지정 질문을 __agent_questions__ 파티션 아래의 기존 프라이빗 Cosmos 컨테이너에 saved-agent-question 문서로 저장합니다. 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

언어 기본 설정은 브라우저 localStoragestorage-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 에이전트 카드, JSON-RPC/REST 경로, 작업 실행기 및 아티팩트.

  • src/protocols/README.md: 코드 인접 MCP/A2A 엔드포인트, 인증 및 사용법 참조.

  • src/web: FastAPI 및 벤더링된 React 18.3.1 브라우저 UI.

  • 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 애플리케이션 등록을 만들거나 재사용하고, Container Apps Easy Auth에 대한 ID 토큰 발급을 활성화하고, 웹 이미지 및 Functions 패키지를 배포한 다음 Foundry 프롬프트 에이전트 버전을 만듭니다. Easy Auth는 애플리케이션 클라이언트 ID와 해당 api:// 식별자 URI를 모두 토큰 대상으로 허용합니다. 프로덕션 커넥터는 명시적 플래그와 최소 권한 역할이 구성되지 않는 한 비활성화된 상태로 유지됩니다.

비용 주의 사항

Private 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