Storage Intelligence MCP
Storage Intelligence MCP/A2A-Agent
Produktionsähnlicher, schreibgeschützter Azure-Speicher-Intelligence-Pilot mit einem synthetischen Bestand von 2.500 Konten über 339 Abonnements in Dev, QA, Perf und Prod, deterministischer Analytik, privaten Foundry-Tools und einer durch Entra geschützten Webanwendung.
Derselbe deterministische Agent ist über REST, einen offiziellen MCP-Streamable-HTTP-Server und A2A-v1-JSON-RPC/HTTP+JSON-Endpunkte verfügbar. Siehe MCP- und A2A-Integration für Client-Konfiguration, Authentifizierung, Discovery und Anforderungsbeispiele.
Live-MCP- und A2A-Endpunkte
Die Bereitstellung in Sweden Central verwendet diese durch Entra geschützte Basis-URL:
https://ca-storage-intel-kxlgam3w.wittyforest-55ec85c1.swedencentral.azurecontainerapps.io
Protokoll | Endpunkt |
MCP Streamable HTTP |
|
A2A-Agent-Card |
|
A2A-JSON-RPC |
|
A2A-HTTP+JSON |
|
Externe Clients müssen ein Microsoft-Entra-Token für die api://<WEB_AUTH_CLIENT_ID>-Zielgruppe der Webanwendung anfordern und es als Bearer-Token senden. Verwenden Sie /mcp/ als kanonische MCP-URL; /mcp leitet auf den gemounteten Transportpfad um.
Related MCP server: azure-compliance-mcp
Produkterlebnis
PepsiCo-gebrandetes responsives Dashboard mit gepinnten, lokal bereitgestellten React-Assets.
Persistenter Englisch/Spanisch-Sprachwechsel in der oberen rechten Kopfzeile für global verteilte Teams in Hyderabad, Barcelona, Mexiko, den USA und Großbritannien. Navigation, Formulare, Status, Barrierefreiheitskennzeichnungen, dynamische Zähler, Risikofaktoren, eingebaute Fragen und deterministische Antwortzusammenfassungen werden in der ausgewählten Sprache gerendert, ohne API-Identifikatoren oder Ressourcennamen zu ändern.
Manuelles Pilot-Onboarding nach Speicherkontoname, Mandanten-ID, Verwaltungsgruppe, Abonnement, Umgebung, Tochtergesellschaft/Geschäftsbereich, Region und Zugriffsebene.
Authentifizierte Auswahllistenverwaltung zum Hinzufügen von Mandanten, Verwaltungsgruppen, Abonnements, Tochtergesellschaften/Geschäftsbereichen sowie den vollständigen kundenorientierten Azure-Public-Region-Katalog in jedem Regionsauswahlfeld.
Massen-Onboarding per XLSX/CSV, um wiederholte manuelle Eingaben zu vermeiden. Importe werden atomar validiert, lehnen Duplikate ab und aktualisieren nur den In-Memory-Pilotbestand.
Nur für Administratoren verfügbare Mandanten-Discovery, die schreibgeschützte Azure-CLI-Befehle über alle autorisierten Abonnements ausführt und Mandanten, Verwaltungsgruppen, Tochtergesellschaften/Geschäftsbereiche, Umgebungen, Speicherkonten, Regionen, Ebenen, SKUs, Zugriffs-/Netzwerk-Posture und Projekt-Governance-Tags importiert.
Kleine Databricks-, Fabric-Lakehouse-, SAP-, Azure-Data-Factory-, SFTP- und Application-Insights-Abzeichen auf verknüpften Speicherkonten. Der synthetische Bestand randomisiert diese Beziehungen deterministisch; die Discovery liest native
isSftpEnabled/isHnsEnabled-Eigenschaften sowieApplicationInsights/AppInsights-Tag-Aliasse.Deterministische Kapazitäts-, Kosten-, Risiko-, Databricks-, Prognose-, Anomalie-, Ebeneneinsparungs-, Evidenz-, Konfidenz- und Aktualitätsuntersuchungen.
Risikokonzentrationslisten für die Kategorien Wachstum, Kosten, Aktualität, Betrieb, Databricks, Konfiguration, Sicherheit und Governance mit einer ruhigen, entsättigten Farbpalette. Sicherheit bewertet explizit SAS-/freigegebene Schlüssel, öffentlichen Zugriff, fehlende private Endpunkte, NSG/ASG-Verknüpfungen und fehlenden Dienstprinzipalzugriff. Governance verwendet Projekt-, Geschäftsbereichs-, letzter Zugriff- und nicht mehr verwendete Tags. Ein Donut-Diagramm fasst die Verteilung der dominanten Risiken zusammen, während jedes abgedeckte Konto mit einer Bewertung von mindestens 20 in der sortierten, vertikal scrollbaren Liste bleibt. Beim Überfahren eines Diagrammsegments werden Risikobeschreibung, Kontenanzahl und Prozentsatz angezeigt; Tastaturfokus zeigt das größte Segment.
Aktionsfähige Data-Health-Posture-Kacheln: Veraltete Konten, Fehlender Lebenszyklus, SAS-Schlüssel, Öffentlicher Zugriff, Kein privater Endpunkt, Kein Dienstprinzipal, Kein GRS/GZRS, NSG/ASG verknüpft und Nicht mehr verwendete Projekte sowie SFTP aktiviert und AppInsights-Daten sind Schaltflächen. Die Auswahl einer Schaltfläche lädt sofort jedes passende Konto für den aktiven Bereich in ein nach Risiko sortiertes, vertikal scrollbares Panel direkt unter den Kacheln auf der Data-Health-Seite. Die Übersicht bleibt auf Bestandskapazität, Kosten, Einsparungen, Risikokonzentration und Onboarding fokussiert. Das frühere eigenständige Detailpanel für veraltete Konten wurde entfernt, da „Veraltete Konten“ nun diesen gemeinsamen Drilldown verwendet.
Prioritätsbefunde erklärt die Komponentenbewertungen für Wachstum und Betrieb. Betrieb ist der 0–100-Subscore für Drosselung/Latenz; der Wert auf der rechten Seite ist die gesamte gewichtete Kontorisikobewertung von 100.
Manuelles und Tabellenkalkulations-Onboarding erstellt oder ändert niemals Azure-Speicherressourcen.
Die Container-Apps-Webworkload verwendet eine stets bereite Consumption-Replikat mit 1 vCPU und 2 GiB Speicher. Dies hält die A2A-Aufgabensuche und -abbrechung konsistent mit dem prozesslokalen Aufgabenhandler des SDKs. Der Eingang zielt auf Port 8000, passend zu Uvicorn und dem Dockerfile, und Probes erlauben 10 Sekunden für vorübergehende Last. Die private Function-Bereitstellung und Foundry-Smoke-Tests sind bewusst von der Webstartphase entkoppelt, sodass die öffentliche, durch Entra geschützte Benutzeroberfläche nicht durch eine private Abhängigkeit blockiert werden kann. Die Anwendungsversion 0.1.0 bleibt unverändert.
Funktionale Ansichten
Agent-Untersuchung führt abgegrenzte deterministische Tools aus, zeigt die vollständige Vertrauenshülle und das strukturierte Ergebnis, erklärt, warum jedes zurückgegebene Konto markiert wurde, hält Evidenzzitate mit allen eindeutigen zurückgegebenen Konten abgestimmt, bietet einen breiten wiederverwendbaren Katalog operativer/finanzieller/Plattformfragen, speichert neue authentifizierte Fragen für zukünftige Sitzungen und behält die letzten acht Untersuchungen in der Sitzung.
Einsparungssimulator modelliert die Einführung von 1–100 % Ebenenwechsel, vergleicht 10/25/50 %-Baselines, ordnet die Top-20-Kandidaten und behält Abruf-/Aufbewahrungshinweise.
Befunde kombiniert Risiko, robuste Wachstumsanomalien, Datenaktualität und Einsparungsaktionen in einem nach Schweregrad sortierten Posteingang. Gesamtbefunde, Datenaktualität, Wachstumsanomalie, Risiko und Einsparungsaktion sind klickbare Zusammenfassungskacheln; die Auswahl einer Kachel filtert sofort das scrollbare Ergebnispanel darunter. Die frühere doppelte Filter-Schaltflächenzeile wurde entfernt.
Data Health zeigt Aktualitätsabdeckung, Connector-/Quellenstatus, Lebenszyklus- und angenommene Ebenenlücken sowie eine scrollbare Liste zur Behebung veralteter Konten. Für Administratoren ist der sichtbare Deaktiviert-Status eine Schaltfläche: Ein Klick aktiviert diesen Connector, ändert den Status auf Aktiviert und zeigt eine klickbare Ausführen-Aktion. Ein abgeschlossener Pilot-Fixture-Lauf ändert den Status auf Gesund und zeigt synchronisierte/berechtigte Zähler und die letzte Ausführungszeit. Sicherheits-Posture-Karten zeigen SAS-/freigegebene Schlüssel, öffentlichen Zugriff, fehlende private Endpunkte, fehlenden Dienstprinzipalzugriff, Nicht-GRS/GZRS-Replikation, NSG/ASG-Verknüpfungen, nicht mehr verwendete Projekte, fehlende Letzter-Zugriff-Tags, SFTP-aktivierte Endpunkte und mit Application Insights verknüpfte Speicher.
Data Health platziert Synthetischer Pilot, Azure-CLI-Discovery, Azure Resource Graph, Blob-Inventar, Azure-Monitor-Metriken, Cost-Management-Exporte und Databricks-Systemtabellen unmittelbar nach der globalen Filter-/Zurücksetzzeile.
Mandantenweite Admin-Discovery
Administratoren sehen ein dediziertes Admin-Element in der linken Navigation. Die Aktion Mandantenweite Speicherkontodetails abrufen verwendet Azure-CLI-Argumentarrays (niemals eine Shell-Befehlszeichenfolge), um jedes aktivierte Abonnement aufzulisten, das für die authentifizierte Identität sichtbar ist, und führt az storage account list für jedes Abonnement aus. Ergebnisse werden idempotent in den Pilotbestand aufgenommen und in den privaten Cosmos-DB-Container storage-intelligence/storage-accounts upsertiert.
Konfigurieren Sie die Laufzeit mit:
Variable | Zweck | Standard |
| Entra-App-Rolle, die für Admin-Endpunkte erforderlich ist |
|
| Optionale durch Kommas getrennte Mandanten-IDs; leer bedeutet jeden Mandanten, der im CLI-Kontocache sichtbar ist | leer |
|
|
|
| Anfänglicher Fünf-Felder-Discovery-Zeitplan |
|
| Persistierter Admin-Zeitplankonfigurationspfad |
|
| Pfad für geplante CLI-Snapshots |
|
| Azure-CLI-Ausführbare Datei |
|
| Manuelle und geplante Discovery-Ergebnisse in Cosmos DB persistieren |
|
| Privater Cosmos-DB-Kontoendpunkt | erforderlich, wenn Persistenz aktiviert ist |
| Inventardatenbankname |
|
| Speicherkontocontainername |
|
| Atomare lokale Fragenbibliotheksdatei, wenn Cosmos deaktiviert ist |
|
Die verwaltete Identität oder das Automatisierungsprinzipal muss in jedem Zielabonnement/-mandanten mit schreibgeschütztem Zugriff ausgestattet sein. Dieses Projekt weist bewusst keine mandantenweiten Reader-Rollen zu. Mandantenübergreifende Discovery funktioniert nur, nachdem die Identität in jedem Mandanten explizit autorisiert wurde.
Führen Sie die Discovery direkt aus:
.\scripts\run-storage-discovery.ps1Administratoren können den Fünf-Felder-Cron-Ausdruck direkt im Dashboard bearbeiten. Der Zeitplan wird mit croniter validiert, atomar persistiert und nach einem Neustart vom In-Process-Scheduler verwendet. Die nächste Ausführungszeit und häufige UTC-Cron-Beispiele werden in der rollengeschützten Admin-Ansicht angezeigt. Die Bereitstellung erstellt die Entra-App-Rolle StorageIntelligence.Admin und weist sie dem bereitstellenden Benutzer zu. Jeder abgeschlossene Abruf meldet die Anzahl der Cosmos-DB-Upserts. Cosmos verwendet die verwaltete Identität der Web-App, eine datenbankbezogene integrierte Data-Contributor-Zuweisung, /subscription_id-Partitionierung und keine Kontoschlüssel.
Für einen externen Automatisierungshost installieren Sie den mitgelieferten Sechs-Stunden-Fallback-Cron:
crontab config/storage-discovery.cronDer externe geplante Befehl schreibt einen atomaren JSON-Snapshot. Der In-App-Planer aktualisiert dieselben Kontodetails in Cosmos DB. Keiner der Pfade fordert Speicherschlüssel an oder verändert Bestandsressourcen.
Die Erkennung erkennt Databricks, Fabric Lakehouse, SAP, Azure Data Factory und
Application Insights-Tag-Aliase sowie nativen SFTP/HNS-Status.
Sie liest auch Project/ProjectName, BusinessUnit, LastAccessedDate,
ProjectStatus/ProjectDefunct, UsesSASKeys, ServicePrincipalAccess,
NetworkSecurityGroup/NSG und ApplicationSecurityGroup/ASG. Azure-Ressourcen-
Eigenschaften liefern Shared-Key-Zugriff, öffentlichen Blob-/Netzwerkzugriff, Private-Endpoint-Status
und Replikations-SKU. Verknüpfte Konten erscheinen in einem dedizierten Dashboard-Bereich mit kompakten,
zugänglichen Badges.
Die Navigationsfußzeile zeigt © 2026 PepsiCo. Alle Rechte vorbehalten. gefolgt von winzigen,
zugänglichen Microsoft-, Azure- und dem bereitgestellten Azure-AI-Foundry-Bildzeichen. Das Foundry-PNG
ist unter src/web/static/assets mit einer SHA-256-Manifestdatei abgelegt.
Tabellenkalkulationsformat
Laden Sie eine .xlsx-Arbeitsmappe oder eine UTF-8-.csv-Datei mit einer Kopfzeile und diesen Spalten hoch:
Spalte | Beispiel |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Der Importeur akzeptiert bis zu 10.000 Zeilen oder 5 MB pro Datei. Freundliche Header-Aliase wie
storage_account_name, tenant, managementgroup, subscription_name,
environment/stage/env, Business unit, azure_region und access_tier werden
automatisch normalisiert.
business_unit ist ein Kompatibilitätsalias für subsidiary. Jeder Hierarchiewert muss
im Pilotkatalog vorhanden sein; bekannte synthetische Abonnements werden gegen ihre
Mandanten-, Verwaltungsgruppen-, Umgebungs- und Tochtergesellschaftswerte validiert. Regionen dürfen jeden Code aus dem vollständigen
Azure-Public-Region-Selektor verwenden; Stufen müssen eine verfügbare Zugriffsstufe verwenden.
Der versionierte synthetische Katalog enthält genau 339 Abonnements. Jedes Abonnement hat
eine deterministische UUID, einen Mandanten, eine Verwaltungsgruppe, eine Tochtergesellschaft und eine der Stufen Dev, QA,
Perf oder Prod. Alle 339 Namen erscheinen im globalen Abonnement-Selektor.
Bibliothek für Untersuchungsfragen
GET /api/questions gibt den integrierten und gespeicherten Fragenkatalog zurück.
POST /api/questions akzeptiert eine neue Frage mit 3–500 Zeichen, normalisiert Leerzeichen,
lehnt case-insensitive Duplikate ab und begrenzt die gemeinsame Bibliothek auf 100 benutzerdefinierte Fragen.
Azure speichert benutzerdefinierte Fragen als saved-agent-question-Dokumente im vorhandenen privaten
Cosmos-Container unter der __agent_questions__-Partition. Localhost verwendet den atomaren JSON-Pfad
oben. Das Speichern einer Frage führt sie nicht aus und verändert keine Azure-Ressource.
Lokale Ausführung
Python 3.13 ist erforderlich. Node.js und npm werden nicht verwendet.
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Öffnen Sie http://127.0.0.1:8000. Führen Sie die Abnahmetests aus mit:
.\.venv\Scripts\python -m pytestDie Spracheinstellung wird im Browser-localStorage unter
storage-intelligence-language gespeichert. Englisch (en) ist die Standardeinstellung; Spanisch (es) aktualisiert das
Dokument und den Titel. Integrierte spanische Fragen werden vor der API-Übermittlung auf ihre
englische deterministische Absicht kanonisiert, während das Backend auch
häufige spanische Absichtsphrasen für neu erstellte Fragen erkennt.
Architektur
src/storage_intelligence: synthetischer Generator, Konnektoren, Analytik, Abfrage-Router.src/protocols/service.py: protokollneutrale read-only Agent-Fassade.src/protocols/mcp_server.py: MCP-Tools, Ressource, Prompt, HTTP-Mount und Stdio-Einstiegspunkt.src/protocols/a2a_server.py: A2A-Agent-Karte, JSON-RPC/REST-Routen, Aufgabenausführer und Artefakte.src/protocols/README.md: code-naher MCP/A2A-Endpunkt, Authentifizierung und Nutzungsreferenz.src/web: FastAPI und gebündelte React-18.3.1-Browseroberfläche.src/function_app.py: private OpenAPI-Tools und durable Fan-out/Fan-in-Sammlung.src/agent: Foundry-Anweisungen, OpenAPI-Vertrag, Bereitstellungs-/Aufrufskripte und Evaluierungen.infra/foundry: offizielle Vorlage 19, Baseline und unveränderte unterstützende Module.infra/functions-base: beibehaltene offizielle Flex-Consumption-Basismodule.infra: zusammengesetzte Workload-Bicep- und AZD-Parameter.
Siehe Produktspezifikation, Architektur und Protokollintegration.
Azure-Workflow
Der genehmigte .azure/deployment-plan.md ist die Quelle der Wahrheit. Die Bereitstellung verwendet:
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-promptDie Bereitstellungsskripte erstellen oder wiederverwenden geheimnislose Entra-Anwendungsregistrierungen,
aktivieren die ID-Token-Ausstellung für Container Apps Easy Auth, stellen das Web-Image und das Functions-
Paket bereit und erstellen dann die Foundry-Prompt-Agent-Version. Easy Auth akzeptiert sowohl die
Anwendungs-Client-ID als auch den api://-Identifikator-URI als Token-Zielgruppen.
Produktionskonnektoren bleiben deaktiviert, sofern nicht ihre expliziten Flags und Least-Privilege-
Rollen konfiguriert sind.
Kostenhinweise
Private Foundry Standard erfordert AI Search Standard mit Festpreis und Premium ACR. Cosmos DB, Überwachungsaufnahme, Modell-Tokens, private Endpunkte und Container Apps verursachen nutzungsbasierte Kosten. Der Pilot vermeidet Estate-API- und Databricks-Abfragegebühren durch die Verwendung synthetischer Daten.
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