README.mdā¢5.64 kB
# Financial Data MCP Server
A comprehensive Model Context Protocol (MCP) server for financial data analysis, portfolio management, and automated trading recommendations.
## Features
- š **Real-time Stock Data** - Uses free yfinance (Yahoo Finance) API - no API keys required
- š¼ **Portfolio Management** - Track multiple portfolios with automated analysis
- š **Technical Analysis** - EMA-based trend detection and MACD charts
- šÆ **Trading Signals** - Automated buy/sell recommendations with confidence levels
- š§ **Email Reports** - Automated batch analysis reports with chart attachments
- š **Performance Tracking** - Daily monitoring of recommendation performance
- š¤ **MCP Integration** - Full integration with Claude Code and other MCP clients
## Architecture
### Core Components
1. **financial_mcp_server.py** - Main MCP server
- Provides MCP tools and resources for financial analysis
- Integrates with Claude Code
- Real-time stock data via yfinance
2. **batch_fin_mcp_server.py** - Batch analysis engine
- Analyzes all portfolios at once
- Generates comprehensive reports and charts
- Implements 4 trading scenarios based on EMA analysis
3. **email_report_script.py** - Email automation
- Sends analysis results via email
- Attaches charts and detailed reports
- Saves buy recommendations for tracking
4. **daily_tracking_script.py** - Performance tracking
- Monitors buy recommendation performance
- Creates tracking charts
- Generates daily performance reports
## Installation
### 1. Clone the repository
```bash
git clone https://github.com/j1c4b/finance_mcp_server.git
cd finance_mcp_server
```
### 2. Create and activate virtual environment
```bash
python3 -m venv mcp_fin_server_venv
source mcp_fin_server_venv/bin/activate # On Windows: mcp_fin_server_venv\Scripts\activate
```
### 3. Install dependencies
```bash
pip install -r clean_requirements.txt
```
## Configuration
### Portfolio Setup
Edit `portfolio.json` to add your portfolios:
```json
{
"tech_stocks": {
"portfolio": "Technology Giants",
"stock_list": ["AAPL", "GOOGL", "MSFT", "AMZN", "META"]
},
"dividend_portfolio": {
"portfolio": "Dividend Champions",
"stock_list": ["JNJ", "PG", "KO", "PEP", "MMM"]
}
}
```
### Email Configuration (Optional)
For email reports, create `email_config.json`:
```json
{
"smtp_server": "smtp.gmail.com",
"smtp_port": 587,
"sender_email": "your_email@gmail.com",
"sender_password": "your_app_password",
"recipient_emails": ["recipient@example.com"],
"subject_prefix": "š Financial Analysis Report",
"max_attachment_size_mb": 25
}
```
## Usage
### Running the MCP Server
```bash
source mcp_fin_server_venv/bin/activate
python3 financial_mcp_server.py
```
### Batch Analysis
Analyze all portfolios and generate reports:
```bash
python3 batch_fin_mcp_server.py
```
Results are saved to `batch_financial_charts/`
### Send Email Reports
```bash
python3 email_report_script.py
```
### Track Recommendations
```bash
python3 daily_tracking_script.py
```
Results are saved to `tracking_charts/`
## MCP Tools
The server provides these tools for Claude Code integration:
- `load_portfolio` - Load portfolio data from portfolio.json
- `analyze_portfolio` - Detailed analysis of specific portfolio
- `portfolio_performance` - Performance metrics over time
- `get_stock_info` - Comprehensive stock information
- `get_earnings_calendar` - Upcoming earnings announcements
- `get_analyst_changes` - Recent analyst upgrades/downgrades
- `generate_macd_chart` - MACD technical analysis charts
- `get_market_overview` - Major market indices status
## Trading Scenarios
The batch analyzer identifies 4 key trading scenarios:
- **Scenario A**: Price >10% above 50 EMA ā **SELL** signal
- **Scenario B**: Price above 50 EMA, touched recently ā **BUY** signal
- **Scenario C**: Price >5% below 50 EMA, decreasing 3+ days, above 200 EMA ā **BUY** signal
- **Scenario D**: Price below 50 EMA, touched 200 EMA recently ā **BUY** signal
## Technical Analysis
- **Trend Detection**: Golden Cross / Death Cross analysis
- **EMAs**: 50-day and 200-day exponential moving averages
- **MACD**: Moving Average Convergence Divergence charts
- **Volume Analysis**: Trading volume patterns
- **Confidence Scores**: Each recommendation includes confidence level
## Project Structure
```
finance_mcp_server/
āāā financial_mcp_server.py # Main MCP server
āāā batch_fin_mcp_server.py # Batch analysis engine
āāā email_report_script.py # Email automation
āāā daily_tracking_script.py # Performance tracking
āāā portfolio.json # Portfolio configuration
āāā requirements.txt # Python dependencies
āāā clean_requirements.txt # Cleaned dependencies
āāā CLAUDE.md # AI assistant guidance
āāā mcp-http-bridge/ # HTTP bridge for MCP
āāā batch_financial_charts/ # Generated analysis charts
āāā tracking_charts/ # Performance tracking charts
```
## Requirements
- Python 3.8+
- yfinance (free Yahoo Finance API)
- pandas, numpy, matplotlib
- MCP SDK (mcp>=1.0.0)
## Disclaimer
ā ļø **This software is for informational purposes only. It does not constitute financial advice. Always do your own research before making investment decisions.**
## License
MIT License - See LICENSE file for details
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Support
For issues and questions, please open an issue on GitHub.