# Quants Agent - Portfolio Analytics Chat Interface

React-based chat interface for portfolio analysis connecting to n8n workflows with 5 integrated MCP-FastAPI backend servers. Provides QuantStats analysis, AI technical analysis, security performance reports, Yahoo Finance data, and PDF report generation.

## Links
- App: https://portfolio-react.tigzig.com
- Docs: https://tigzig.com/app-documentation/n8n-tech-analysis.html
- GitHub (Frontend): https://github.com/amararun/shared-portfolio-analysis-react
- GitHub (QuantStats MCP): https://github.com/amararun/shared-quantstats
- GitHub (Technical Analysis MCP): https://github.com/amararun/shared-fastapi-mcp-technical-analysis
- GitHub (Yahoo Finance MCP): https://github.com/amararun/shared-yfin-coolify

## Tags
portfolio-analysis, mcp, quantstats, technical-analysis, n8n, react

## Architecture

```
React Chat UI → n8n Webhook → MCP Agents → 5 Backend Servers
                                          ├── QuantStats MCP Server
                                          ├── Technical Analysis MCP Server
                                          ├── Security Performance (FFN) MCP Server
                                          ├── Yahoo Finance MCP Server
                                          └── ReportLab PDF Server
```

### Frontend (shared-portfolio-analysis-react)
React 18 + TypeScript + Vite + TailwindCSS + shadcn/ui. Chat interface with markdown rendering, syntax highlighting, tab-based UI (AI Research Analyst / Logs). Pre-configured quick prompts for common analysis types.

### Backend Integration
The n8n workflow orchestrates requests across MCP servers. Each server exposes `/mcp` endpoint for AI/LLM interaction via fastapi-mcp package.

### Backend Servers

**QuantStats MCP Server** (shared-quantstats)
- Uses quantstats-lumi (Lumiwealth's fork with bug fixes)
- Endpoints: `/` (web UI), `/analyze` (API), `/mcp` (MCP)
- Calculates: Sharpe, Sortino, max drawdown, VaR, rolling stats
- Generates HTML reports with visualizations
- Config: `IS_LOCAL_DEVELOPMENT`, `BASE_URL_FOR_REPORTS`

**Technical Analysis MCP Server** (shared-fastapi-mcp-technical-analysis)
- Calculates EMAs, MACD, RSI, Bollinger Bands
- Generates charts via Matplotlib, sends to Gemini Vision API for AI interpretation
- Produces PDF and HTML reports
- Data from Yahoo Finance via custom FastAPI server
- Config: `GEMINI_API_KEY`, `GEMINI_MODEL_NAME`

**Yahoo Finance MCP Server** (shared-yfin-coolify)
- Live endpoint: https://yfin.hosting.tigzig.com
- Financial statements (balance sheet, income, cash flow) in pipe-delimited and JSON formats
- Historical prices (OHLCV), market data (cap, float, shares outstanding)
- Excel-friendly JSON endpoints for spreadsheet integration
- OpenAPI schema at docs/OPENAI_JSON_YFIN.TXT for ChatGPT integration

## Setup

```bash
# Frontend
git clone https://github.com/amararun/shared-portfolio-analysis-react.git
cd PORTFOLIO_AGENT_REACT/react-app
npm install
echo "VITE_N8N_WEBHOOK_URL=your_webhook_url" > .env
npm run dev
```

Backend: Deploy each MCP server independently. Configure n8n workflow with MCP client nodes pointing to each server's `/mcp` endpoint. Workflow schema available in `docs/` folder of frontend repo.

## Features
- Real-time chat with AI analyst
- QuantStats portfolio profiling (single symbol vs benchmark)
- AI-powered technical chart analysis with pattern recognition
- Security performance reports (multi-symbol)
- Yahoo Finance data retrieval (financials, prices, market data)
- PDF and HTML report generation
- Comprehensive logging with expandable details
