Applied AI / analytics
Turning analyst requests into governed, self-service answers
A production agent layer gave operations, HR, and sales teams direct access to governed answers and supporting data through the web and Microsoft Teams.
2
user entry points
3
operating functions served
1st pass
ad hoc analysis automated
Live
production deployment
System context
Environment
Teams had detailed operational information in Fabric and Power BI, but routine follow-up questions still flowed through one analyst. The usual loop was message, query, Excel export, response, and another question.
Constraint
Users needed a faster way to explore units, targets, efficiency, labor, cross-training, inventory, allocations, and expected volume without bypassing data permissions or turning every question into a new dashboard.
Architecture
Web UI + Teams bot
Entra authentication
Foundry agent
Data Agent or MCP tool
Fabric semantic layer
Answer + data download
Delivery notes
Meet teams where they work
Authorized users asked questions through a dedicated web chat or Microsoft Teams. Microsoft Entra authenticated users and services before requests reached the Foundry-hosted model and orchestration layer.
Common analytical requests flowed to Fabric Data Agents. Broader governed questions could use Fabric MCP, while custom MCP tools handled complex and frequently repeated business logic.
Combine flexibility with constraints
The custom MCP server, built with FastMCP around a FastAPI application, exposed both general analytical access and deterministic workflows for SLA, efficiency, headcount, labor forecasts, inventory, and allocation questions.
Fabric Data Agents generated SQL or DAX internally against Lakehouses and semantic models. Specialized tools kept important recurring calculations consistent rather than asking a model to reconstruct the logic each time.
Keep the evidence attached
Users received a direct answer and could download the supporting tabular data for continued work in Excel. The system extended existing Power BI investments instead of replacing the governed reporting layer.
Foundry threads and conversations retained request history for debugging. Outputs were validated during delivery against known metrics, existing reports, and direct analyst queries, with human review available for higher-impact workflows.
Run it as a production service
FastAPI and FastMCP ran in Azure Container Apps with Azure Monitor supporting application and infrastructure visibility. Service principals, Entra groups, Fabric permissions, workspace roles, and row-level model security carried existing access boundaries into the conversational experience.
Paul's ownership
Paul designed and built the web experience, Teams bot, Foundry orchestration, FastAPI application, FastMCP layer, Fabric integrations, custom tools, deployment, monitoring, validation, and user workflow. Internal administrators retained ownership of Entra groups.
Capabilities
- + Agent architecture
- + MCP development
- + API engineering
- + Identity + access
- + Tool design
- + AI product delivery
Selected stack
- + Microsoft Foundry
- + Fabric Data Agents
- + FastAPI
- + FastMCP
- + Python
- + Entra ID
- + Azure Container Apps
- + Azure Monitor
Next system / 01
Turning hardware complexity into profitable unit economicsStart with the problem