← All selected work
03

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

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.

01

Web UI + Teams bot

02

Entra authentication

03

Foundry agent

04

Data Agent or MCP tool

05

Fabric semantic layer

06

Answer + data download

01

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.

02

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.

03

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.

04

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 economics

Start with the problem

Have a data or AI system worth untangling?