Skip to main content
Glama

Fabric MCP Agent

by yingkiat
README.mdโ€ข12.5 kB
# 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.

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/yingkiat/mcp_fabric_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server