Skip to main content
Glama

Financial Data MCP Server

by j1c4b
CLAUDE.md5.48 kB
# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview This is a **Financial Data MCP Server** - a Model Context Protocol (MCP) server that provides comprehensive financial analysis tools. The server integrates with Claude Code to provide real-time stock data, portfolio analysis, technical analysis charts, and automated trading recommendations. ## Key Architecture ### Core Components 1. **financial_mcp_server.py** - Main MCP server implementation - Provides MCP tools and resources for financial data analysis - Uses **yfinance** (free Yahoo Finance scraper) - no API keys required - Implements MCP protocol handlers: `list_resources()`, `read_resource()`, `list_tools()`, `call_tool()` - Runs as an async server using `mcp.server.stdio` 2. **batch_fin_mcp_server.py** - Batch analysis engine - Analyzes all portfolios at once and generates comprehensive reports - Implements sophisticated trend analysis using 50-day and 200-day EMAs - Identifies 4 specific trading scenarios (A-D) based on price/EMA relationships - Skips stocks in downtrends, focuses only on uptrending stocks - Generates detailed charts for each stock with scenario analysis 3. **email_report_script.py** - Email automation - Sends batch analysis results via email with chart attachments - Saves buy recommendations to JSON for tracking - Requires email configuration in `email_config.json` 4. **daily_tracking_script.py** - Performance tracking - Monitors performance of buy recommendations over time - Creates tracking charts showing entry price vs current performance - Generates daily tracking reports with performance metrics ### Data Flow ``` portfolio.json → batch_fin_mcp_server.py → batch_financial_charts/ + report ↓ email_report_script.py → buy_recommendations.json ↓ daily_tracking_script.py → tracking_charts/ + report ``` ### Portfolio Structure The `portfolio.json` file uses this structure: ```json { "portfolio_name": { "portfolio": "Display Name", "stock_list": ["SYMBOL1", "SYMBOL2", ...] } } ``` ## Technical Analysis Logic The batch analyzer uses proven technical analysis principles: - **Trend Detection**: Combines 5 signals (Golden/Death Cross, price relative to EMAs, EMA slopes) - **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 ## Common Commands ### Running the MCP Server ```bash # Activate virtual environment first source mcp_fin_server_venv/bin/activate # Run the main MCP server (for Claude Code integration) python3 financial_mcp_server.py ``` ### Running Batch Analysis ```bash # Run batch analysis on all portfolios python3 batch_fin_mcp_server.py # Results saved to: batch_financial_charts/ ``` ### Email Reports ```bash # Configure email first (edit email_config.json) # Then send batch analysis report python3 email_report_script.py ``` ### Daily Tracking ```bash # Track performance of buy recommendations python3 daily_tracking_script.py # Results saved to: tracking_charts/ ``` ### Installing Dependencies ```bash # Install from requirements.txt pip install -r requirements.txt # Or use clean requirements (recommended) pip install -r clean_requirements.txt ``` ## MCP Integration When integrating with Claude Code, the server needs to be configured in Claude's MCP settings. The server provides: **Tools:** - `load_portfolio` - Load portfolio data from portfolio.json - `analyze_portfolio` - Deep analysis of specific portfolio - `portfolio_performance` - Performance metrics over time periods - `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 **Resources:** - `financial://portfolio/overview` - Portfolio summary - `financial://earnings/today` - Today's earnings reports - `financial://market/status` - Current market status ## Important Notes - **No API Keys Required**: Uses free yfinance library (Yahoo Finance scraper) - **Charts Directory**: Charts are saved to project-relative paths, not home directory - **Virtual Environment**: Use `mcp_fin_server_venv/` for all Python operations - **Headless Charts**: matplotlib configured with 'Agg' backend for batch operations - **JSON Serialization**: Special handling for numpy/pandas types to avoid serialization errors - **Logging**: Main server logs to `/tmp/financial_mcp_server.log` and stderr ## File Locations - Portfolio data: `portfolio.json` (project root) - Batch charts: `batch_financial_charts/` - Tracking charts: `tracking_charts/` - Email config: `email_config.json` (create from template) - Buy recommendations: `buy_recommendations.json` (auto-generated) - Tracking history: `tracking_history.json` (auto-generated) - Virtual environment: `mcp_fin_server_venv/` - MCP HTTP Bridge: `mcp-http-bridge/` (Node.js Express server for HTTP access)

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/j1c4b/finance_mcp_server'

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