Skip to main content
Glama
yingkiat
by yingkiat
README.md
# fabric-mcp-agent

**๐Ÿ†• Enhanced MVP with Multi-Stage Intelligence** - A complete two-layer system combining an MCP-compliant server with advanced multi-stage agentic AI reasoning for Microsoft Fabric Data Warehouse access.

## ๐ŸŽฏ MVP Status: **ENHANCED** โœ…

**๐Ÿ†• Major Update**: Now features intelligent multi-stage execution with discovery โ†’ analysis โ†’ evaluation workflows for complex business intelligence queries.

## ๐Ÿ”ท Architecture Overview

### Layer 1: Fabric DW MCP Server
Standards-compliant MCP server with 4 complete tools providing clean abstractions over Fabric Data Warehouse operations with full Azure AD authentication.

### Layer 2: **๐Ÿ†• Multi-Stage Agentic Reasoning Engine**
Advanced intelligent system with **3 execution strategies**:
- **Single-Stage**: Simple queries โ†’ Standard tool chain
- **๐Ÿ†• Multi-Stage**: Complex queries โ†’ Discovery โ†’ Analysis โ†’ Evaluation
- **๐Ÿ†• Iterative**: Advanced queries โ†’ Refinement loops (future)

**๐Ÿ†• Separation of Concerns Architecture**:
- **Intent Templates**: Domain-agnostic execution patterns (`agentic_layer/prompts/intent/`)
- **Persona Modules**: Business domain expertise (`agentic_layer/prompts/personas/`)  
- **Runtime Integration**: Dynamic combination for context-aware execution

## ๐Ÿš€ Production Features

### โœ… Complete MCP Tools
- **`run_sql_query`**: Execute SQL from natural language questions or direct SQL with full error handling
- **`get_metadata`**: Retrieve comprehensive table schemas, sample data, and relationships  
- **`summarize_results`**: Generate business-friendly summaries with actionable insights
- **`generate_visualization`**: Create formatted data tables and chart configurations

### โœ… **๐Ÿ†• Advanced Multi-Stage Intelligence**
- **Intelligent Execution Strategy**: Automatic selection between single-stage and multi-stage workflows
- **๐Ÿ†• 3-Stage Discovery Process**: Discovery โ†’ Analysis โ†’ Evaluation with AI-driven transitions
- **๐Ÿ†• Domain-Agnostic Templates**: Reusable execution patterns that work across all business domains
- **๐Ÿ†• Persona-Driven Context**: Business expertise modules for domain-specific knowledge
- **๐Ÿ†• Pure Business Analysis**: Stage 3 provides structured insights without SQL execution
- **Enhanced JSON Parsing**: Robust handling of complex business responses with intelligent fallbacks
- **Azure OpenAI Caching**: Automatic response optimization for repeated queries

### โœ… Enterprise Features
- **๐Ÿ†• Token Usage Optimization**: Data compression reducing token usage by 50-80%
- **๐Ÿ†• Session-Based Logging**: Complete session traces in `logs/sessions/` for easy debugging
- **Performance Monitoring**: Real-time cost tracking and compression statistics
- **Error Tracking**: Full error context with automated recovery mechanisms
- **Security**: Azure AD authentication with read-only database access

## ๐Ÿ”„ **๐Ÿ†• Multi-Stage Execution Flow**

**Enhanced intelligent query processing with adaptive execution strategies:**

### Single-Stage Flow (Simple Queries)
```
User: "Show me specifications for MRH-011C"
โ†“
Intent Classification โ†’ Single-Stage Strategy
โ†“
Load Persona: product_planning.md
โ†“
SQL Generation + Execution โ†’ Results
```

### **๐Ÿ†• Multi-Stage Flow (Complex Queries)**
```
User: "Replace BD Luer-Lock Syringe 2.5mL with equivalent domestic product and pricing"
โ†“
Intent Classification โ†’ Multi-Stage Strategy + spt_sales_rep persona
โ†“
Stage 1: Discovery
  Template: stage1_discovery.md + Persona Context
  โ†’ Find candidate products matching criteria
โ†“
AI Intermediate Processing
  โ†’ Analyze Stage 1 results โ†’ Select best matches
โ†“
Stage 2: Analysis  
  Template: stage2_analysis.md + Selected Candidates
  โ†’ Get detailed pricing and specifications
โ†“
Stage 3: Evaluation
  Template: stage3_evaluation.md + All Previous Data
  โ†’ Pure business analysis (NO SQL) โ†’ Structured insights
```

**๐Ÿ†• Key Innovation**: Domain-agnostic templates + business personas = context-aware execution

## ๐Ÿ“‹ API Endpoints

### MCP Standard Endpoints
- **`GET /list_tools`** - Returns all available MCP tools with schemas
- **`POST /call_tool`** - Execute specific MCP tool with arguments

### Agentic Intelligence Endpoint  
- **`POST /mcp`** - Full agentic reasoning with intent classification and tool chaining

## ๐Ÿงช Quick Start & Testing

### 1. Start the Server
```bash
python main.py
```
(Ensure `.env` is configured with Azure credentials)

### 2. Test MCP Tools Discovery
```bash
curl http://localhost:8000/list_tools
```

### 3. Test Individual MCP Tools
```bash
# Get table metadata
curl -X POST http://localhost:8000/call_tool -H "Content-Type: application/json" \
-d '{"tool": "get_metadata", "args": {"table_name": "JPNPROdb_ps_mstr"}}'

# Execute SQL query
curl -X POST http://localhost:8000/call_tool -H "Content-Type: application/json" \
-d '{"tool": "run_sql_query", "args": {"question": "Show me active products"}}'
```

### 4. **๐Ÿ†• Test Multi-Stage Intelligence (Recommended)**
```bash
# Simple query (single-stage execution)
curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" \
-d '{"question": "tell me the components in MRH-011C"}'

# ๐Ÿ†• Complex query (multi-stage execution)
curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" \
-d '{"question": "Replace BD Luer-Lock Syringe 2.5mL with equivalent domestic product and pricing"}'

# ๐Ÿ†• Multi-stage product analysis
curl -X POST http://localhost:8000/mcp -H "Content-Type: application/json" \
-d '{"question": "Analyze components and pricing for MRH-011C and recommend optimization opportunities"}'
```

### 5. **๐Ÿ†• Session Debugging & Monitoring**
```bash
# View recent session logs with optimization stats
python view_session.py

# View detailed session trace (compression, tokens, cost)
python view_session.py 1

# List all session files
ls logs/sessions/
```

### 6. Access the Web UI
```bash
# Open your browser and visit:
http://localhost:8000
```

## ๐ŸŽฏ **๐Ÿ†• Enhanced Response Examples**

### Single-Stage Response (Simple Query)
```json
{
  "classification": {
    "intent": "product_specification_lookup",
    "persona": "product_planning", 
    "execution_strategy": "single_stage",
    "confidence": 0.95
  },
  "tool_chain_results": {
    "run_sql_query": {"results": [...]},
    "summarize_results": {...}
  },
  "final_response": "**Product MRH-011C specifications:**..."
}
```

### **๐Ÿ†• Multi-Stage Response (Complex Query)**
```json
{
  "classification": {
    "intent": "competitive_replacement_analysis",
    "persona": "spt_sales_rep",
    "execution_strategy": "multi_stage",
    "confidence": 0.92
  },
  "tool_chain_results": {
    "stage1_query": {"results": [...]},
    "intermediate_analysis": {"selected_items": ["08-139-NPR"]},
    "stage2_query": {"results": [...]},
    "stage3_evaluation": {
      "business_answer": "Equivalent product identified: 08-139-NPR...",
      "key_findings": ["22-37% cost savings", "Multiple kit options"],
      "recommended_action": "Recommend 08-139-NPR as primary replacement...",
      "confidence": "high"
    }
  },
  "final_response": "**Equivalent products identified with 22-37% cost savings...**"
}
```

## ๐ŸŒ **๐Ÿ†• Enhanced Production Web UI**

- **๐Ÿ†• Multi-Stage Result Rendering**: Structured business analysis display with confidence indicators
- **๐Ÿ†• Business Analysis Section**: Clear presentation of Stage 3 evaluation with findings and recommendations
- **๐Ÿ†• Progressive Disclosure**: Primary insights first, detailed data on demand
- **๐Ÿ†• Smart Result Detection**: Automatic detection of single-stage vs multi-stage responses
- **Enhanced Data Tables**: Interactive SQL results with sortable columns and hover effects
- **Prompt Management**: Live editing of persona modules with automatic backup
- **Real-time Testing**: All execution strategies accessible through responsive interface
- **Quick Test Buttons**: Pre-built queries for both simple and complex business scenarios

## Configuration

The server requires the following environment variables in a `.env` file located in the project root:

| Variable                | Description                                                      |
|-------------------------|------------------------------------------------------------------|
| FABRIC_SQL_SERVER       | Fully qualified Fabric Data Warehouse server hostname            |
| FABRIC_SQL_DATABASE     | Target database name in Fabric                                   |
| AZURE_CLIENT_ID         | Azure Service Principal client ID (for AAD authentication)       |
| AZURE_CLIENT_SECRET     | Azure Service Principal secret                                   |
| AZURE_TENANT_ID         | Azure tenant (directory) ID                                      |
| AZURE_OPENAI_KEY        | API key for your Azure OpenAI deployment                         |
| AZURE_OPENAI_ENDPOINT   | Endpoint URL for Azure OpenAI (e.g., https://xxxx.openai.azure.com) |
| AZURE_OPENAI_DEPLOYMENT | Deployment name (e.g., "gpt-4o")                                |

### Sample `.env`

```env
FABRIC_SQL_SERVER=jzd3bvvlcs5udln5rq47r4qvqi-qdrgdhglbgcezlr5igxskwv6ki.datawarehouse.fabric.microsoft.com
FABRIC_SQL_DATABASE=unified_data_warehouse
AZURE_CLIENT_ID=<your-azure-service-principal-client-id>
AZURE_CLIENT_SECRET=<your-azure-service-principal-secret>
AZURE_TENANT_ID=<your-azure-tenant-id>
AZURE_OPENAI_KEY=<your-azure-openai-key>
AZURE_OPENAI_ENDPOINT=https://<your-resource>.openai.azure.com
AZURE_OPENAI_DEPLOYMENT=gpt-4o
```

## ๐Ÿ“Š **๐Ÿ†• Enhanced Performance Monitoring**

### **๐Ÿ†• Multi-Stage Performance Analysis**
**Current Baseline**: 40.7s total execution time

| Stage | Duration | Operations | Optimization Target |
|-------|----------|------------|-------------------|
| Intent Classification | 3.4s (8.3%) | LLM routing | Caching patterns |
| Stage 1: Discovery | 14.4s (35.4%) | SQL generation + execution | **50%+ reduction** |
| Stage 2: Analysis | 15.7s (38.5%) | SQL generation + execution | **50%+ reduction** |
| Stage 3: Evaluation | 7.1s (17.4%) | Pure LLM analysis | Prompt optimization |

### Real-time Dashboard
```bash
python performance_dashboard.py
```

### **๐Ÿ†• Enhanced Metrics Output**
```
MCP AGENT PERFORMANCE DASHBOARD - MULTI-STAGE ANALYTICS
================================================================================

EXECUTION STRATEGY BREAKDOWN
Single-Stage Queries: 60% (avg 12.8s)
Multi-Stage Queries: 40% (avg 40.7s)

STAGE-LEVEL PERFORMANCE
Stage 1 Discovery: 14.4s avg
Stage 2 Analysis: 15.7s avg  
Stage 3 Evaluation: 7.1s avg
SQL Operations: 74% of total time

OPTIMIZATION OPPORTUNITIES
High Impact: SQL generation caching (60-70% reduction potential)
Medium Impact: Parallel processing (20-30% reduction)
```

## ๐Ÿš€ **๐Ÿ†• Enhanced Production Deployment**

This enhanced MVP is ready for production deployment with:
- โœ… **๐Ÿ†• Multi-stage intelligent execution** with adaptive strategy selection
- โœ… **๐Ÿ†• Structured business analysis** with confidence indicators and recommendations
- โœ… **๐Ÿ†• Domain-agnostic architecture** for rapid business domain expansion
- โœ… **๐Ÿ†• Enhanced UI rendering** with progressive disclosure and business insights
- โœ… Full error handling and recovery with intelligent JSON parsing fallbacks
- โœ… Comprehensive logging and monitoring with stage-level performance analytics
- โœ… Performance optimization with AI caching and clear optimization roadmap
- โœ… Security best practices implemented
- โœ… Scalable architecture for extension

## ๐Ÿ“š **๐Ÿ†• Comprehensive Documentation**

- **[DESIGN_ARCHITECTURE.md](DESIGN_ARCHITECTURE.md)** - Complete system architecture with multi-stage workflow details
- **[CLAUDE.md](CLAUDE.md)** - Development guide with enhanced testing commands and prompt structure
- **[agentic_layer/prompts/intent/README.md](agentic_layer/prompts/intent/README.md)** - Intent template framework documentation
- **[UI_DOCUMENTATION.md](UI_DOCUMENTATION.md)** - Enhanced web interface with multi-stage result rendering
- **[API_RESPONSE_EXAMPLES.md](API_RESPONSE_EXAMPLES.md)** - Complete API response examples for all execution strategies
- **[PERFORMANCE_OPTIMIZATION.md](PERFORMANCE_OPTIMIZATION.md)** - Detailed optimization roadmap with specific targets and implementation phases

**๐ŸŽฏ Ready for Enterprise**: Complete documentation, performance analysis, and optimization roadmap for production scaling.