demo-redshift-mcp
Provides CrewAI agents with customer migration analysis capabilities, including querying renewal counts, customer churn, competitor returns, feature adoption, and migration summaries from stored customer data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@demo-redshift-mcpHow many customers renewed into the new product?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Insurance Customer Migration Analysis POC
A production-grade proof-of-concept demonstrating customer migration analysis using:
Data Layer: Mock legacy (Excel) + new product (CSV) + competitor data
MCP Server: Data access tools exposed to CrewAI agents
CrewAI: Query router + analysis agents for multi-step reasoning
Gradio UI: Executive-friendly natural language interface
Architecture
Executive Question
↓
Gradio UI
↓
CrewAI Router Agent (query understanding)
↓
CrewAI Analysis Agent (data fetching + insights)
↓
MCP Tools (GetRenewedCount, GetLeftCount, etc.)
↓
Data Layer (pandas + Excel/CSV queries)
↓
Response formatted for executivesRelated MCP server: Database MCP Server
Setup
1. Install Dependencies
uv syncThis creates a .venv and installs everything from pyproject.toml. Use uv run ... (below) so commands always resolve to this environment instead of your system Python.
2. Environment Setup
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY3. Generate Mock Data
uv run python -m demo_redshift_mcp.data_generatorThis creates:
data/legacy_product.xlsx- 900 legacy customersdata/new_product_customers.csv- 100 new product customersdata/competitor_coverage.csv- Competitor history
Running the Application
Web UI (Recommended)
# Launch Gradio interface
uv run demo-redshift-mcp
# Opens at http://localhost:7860Command Line (Testing)
uv run python -c "
from demo_redshift_mcp.crew_agents import run_customer_migration_analysis
result = run_customer_migration_analysis('How many customers renewed?')
print(result)
"Sample Questions for Executives
"How many customers renewed into the new product?"
Returns: Count + percentage of migration success
"How many customers left and went to competitors?"
Returns: Count + breakdown by status (ACTIVE/EXPIRED/CANCELLED)
"How many came back from competitors and why?"
Returns: Return count + reasons (price, features, etc.)
"What's the overall migration summary?"
Returns: Comprehensive analysis of all segments
"Tell me about customers in California"
Returns: State-specific metrics
"Who adopted the CONNECTED feature?"
Returns: Feature adoption breakdown
Project Structure
demo-redshift-mcp/
├── src/demo_redshift_mcp/
│ ├── app.py # Gradio UI entry point
│ ├── crew_agents.py # CrewAI agents + workflow
│ ├── mcp_server.py # MCP tools definition
│ ├── data_layer.py # Data access logic
│ ├── data_generator.py # Mock data generation
│ └── __init__.py
├── data/ # Generated mock data
│ ├── legacy_product.xlsx
│ ├── new_product_customers.csv
│ └── competitor_coverage.csv
├── INSURANCE_POC_ARCHITECTURE.md
├── pyproject.toml
└── .envKey Design Decisions
Data Separation (Excel vs CSV)
Legacy: Excel (simulates existing systems)
New: CSV in "Redshift" (simulates cloud OLAP)
Reason: Tests cross-store join logic early
MCP Over Direct Queries
Clean abstraction between data and reasoning
Production-ready: swap CSV with Redshift later
Agents stay focused on reasoning, not plumbing
Template + Dynamic Fallback
Fast path: pre-defined queries for common questions
Flexible path: CrewAI creates logic for edge cases
Soft inference: combine pricing + feature signals to explain why customers returned
Next Steps
Phase 1: Data ✅
Mock data generation (900 legacy, 100 new, competitor coverage)
Phase 2: MCP ✅
Data access tools (GetRenewedCount, GetLeftCount, etc.)
Phase 3: CrewAI ✅
Query router + analysis agents
Phase 4: Testing
Run sample questions and verify accuracy
Test edge cases
Phase 5: UI ✅
Gradio interface for executives
Future Enhancements
Replace CSV with actual AWS Redshift
Add state-level dashboards
Export reports as PDF/Excel
Add historical trend analysis
Deploy as FastAPI endpoint
Troubleshooting
"Module not found" error
# Ensure you're in the right directory
cd /Users/Balu/Documents/Projects/MyCode/demo-redshift-mcp
# Reinstall dependencies
uv syncIf you still see this, check that you're running commands with uv run ... rather than a bare python/python3 — a system Python won't have this project's .venv on its path.
"Data not found" error
# Generate mock data
uv run python -m demo_redshift_mcp.data_generatorCrewAI errors
Ensure OPENAI_API_KEY is set in .env
Development
Adding a New Query Tool
Add method to
DataLayer(data_layer.py)Wrap it in
InsuranceMCPTools(mcp_server.py)Create CrewAI @tool wrapper (crew_agents.py)
Update routing logic in analysis_task
Testing Locally
uv run python -c "
from demo_redshift_mcp.data_layer import DataLayer
data = DataLayer()
result = data.customers_renewed()
print(result)
"License
Internal POC - Not for production use without proper data governance.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Agent-Native Amplitude/Mixpanel - connect data sources, prompt for charts
CRM, relationship intelligence, and multi-agent orchestration for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables management of insurance claims, inspections, and contractors through interactive UI widgets and data tools. Users can view claim dashboards, update statuses, and query service provider information using natural language.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to securely interact with multiple databases (MySQL, PostgreSQL) via natural language queries, with cross-database querying and enterprise-grade security.8 npmMIT
- FlicenseNot gradedqualityBmaintenanceProvides retrieval-augmented generation for insurance claims, enabling search, clause retrieval, and governed tool-calling over policy documents using local LLM (Ollama).-
- FlicenseNot gradedqualityBmaintenanceExposes a governed semantic layer built on dbt Core and DuckDB, enabling AI agents to query predefined metric definitions for a P&C insurance dataset. Prevents metric hallucination by restricting agents to governed tools and read-only data access.-