财务分析
HTTP-SSESTDIO提供实时市场数据和技术分析的金融MCP服务器
提供实时市场数据和技术分析的金融MCP服务器
The investor-agent is a Model Context Protocol (MCP) server that provides comprehensive financial insights and analysis to Large Language Models. It leverages real-time market data, fundamental and technical analysis to deliver:
The server integrates with yfinance for market data and automatically optimizes data volume for better performance.
Robust Caching & Error Handling Strategy:
yfinance[nospam] → Built-in smart caching + rate limiting for Yahoo Finance APIhishel → HTTP response caching for external APIs (CNN, crypto, earnings data)tenacity → Retry logic with exponential backoff for transient failuresThis multi-layered approach ensures reliable data delivery while respecting API rate limits and minimizing redundant requests.
curl -LsSf https://astral.sh/uv/install.sh | sh
# Core features only uvx investor-agent # With technical indicators (requires TA-Lib) uvx "investor-agent[ta]" # With Alpaca intraday data (requires Alpaca API keys) uvx "investor-agent[alpaca]" # With all optional features uvx "investor-agent[ta,alpaca]"
get_market_movers(category="most-active", count=25, market_session="regular") - Market movers data including top gainers, losers, or most active stocks. Supports different market sessions (regular/pre-market/after-hours) for most-active category. Returns up to 100 stocks with cleaned percentage changes, volume, and market cap dataget_ticker_data(ticker, max_news=5, max_recommendations=5, max_upgrades=5) - Comprehensive ticker report with essential field filtering and configurable limits for news, analyst recommendations, and upgrades/downgradesget_options(ticker_symbol, num_options=10, start_date=None, end_date=None, strike_lower=None, strike_upper=None, option_type=None) - Options data with advanced filtering by date range (YYYY-MM-DD), strike price bounds, and option type (C=calls, P=puts)get_price_history(ticker, period="1mo") - Historical OHLCV data with intelligent interval selection: daily intervals for periods ≤1y, monthly intervals for periods ≥2y to optimize data volumeget_financial_statements(ticker, statement_types=["income"], frequency="quarterly", max_periods=8) - Financial statements with parallel fetching support. Returns dict with statement type as keyget_institutional_holders(ticker, top_n=20) - Major institutional and mutual fund holders dataget_earnings_history(ticker, max_entries=8) - Historical earnings data with configurable entry limitsget_insider_trades(ticker, max_trades=20) - Recent insider trading activity with configurable trade limitsget_nasdaq_earnings_calendar(date=None, limit=100) - Upcoming earnings announcements using Nasdaq API (YYYY-MM-DD format, defaults to today).fetch_intraday_data(stock, window=200) - Fetch 15-minute historical stock bars using Alpaca API. Returns CSV string with timestamp and close price data in EST timezone. Requires investor-agent[alpaca] installation and ALPACA_API_KEY/ALPACA_API_SECRET environment variables.get_cnn_fear_greed_index(indicators=None) - CNN Fear & Greed Index with selective indicator filtering. Available indicators: fear_and_greed, fear_and_greed_historical, put_call_options, market_volatility_vix, market_volatility_vix_50, junk_bond_demand, safe_haven_demandget_crypto_fear_greed_index() - Current Crypto Fear & Greed Index with value, classification, and timestampget_google_trends(keywords, period_days=7) - Google Trends relative search interest for market-related keywords. Requires a list of keywords to track (e.g., ["stock market crash", "bull market", "recession", "inflation"]). Returns relative search interest scores that can be used as sentiment indicators.calculate_technical_indicator(ticker, indicator, period="1y", timeperiod=14, fastperiod=12, slowperiod=26, signalperiod=9, nbdev=2, matype=0, num_results=100) - Calculate technical indicators (SMA, EMA, RSI, MACD, BBANDS) with configurable parameters and result limiting. Returns dictionary with price_data and indicator_data as CSV strings. matype values: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3. Requires TA-Lib library.Add to your claude_desktop_config.json:
{ "mcpServers": { "investor": { "command": "uvx", "args": ["investor-agent"] } } }
For local development and testing, use the included chat.py script:
# Install dev dependencies uv sync --group dev # Set up your API key export OPENAI_API_KEY="your-api-key" # or ANTHROPIC_API_KEY, GEMINI_API_KEY, etc. # Optional: Set custom model (defaults to openai:gpt-5-mini) export MODEL_IDENTIFIER="your-preferred-model" # Run the chat interface python chat.py
For available model providers and identifiers, see the pydantic-ai documentation.
npx @modelcontextprotocol/inspector uvx investor-agent
MIT License. See LICENSE file for details.