mcpField
F
Financial Data Fetcher

Financial Data Fetcher

github.com/gracefullightData & databases49539 installsUpdated 1d ago
Repository

About Financial Data Fetcher

Financial Data Fetcher is a skill for AI trading agents to retrieve market prices, financial news, fundamentals, and quote snapshots. It uses Alpaca API and yfinance for data access.

Key features

  1. 01Real-time and historical OHLCV prices
  2. 02Financial news by ticker
  3. 03Company fundamental metrics
  4. 04Live quotes and market snapshots
  5. 05Five-minute real-time data cache

Use cases

  1. 01Review historical prices for selected symbols
  2. 02Gather recent news about a ticker
  3. 03Compare fundamentals across symbols
  4. 04Check current quotes and bid-ask data

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gracefullight/stock-checker --skill financial-data-fetcher

After installing, type/financial-data-fetcherin Claude Code to confirm it loaded.

Bundled filesmetadata.json

Details

From the project README

Financial Data Fetcher Skill

Provides comprehensive market data access for AI trading agents.

Overview

This skill fetches:

  • Real-time and historical OHLCV price data
  • Financial news from multiple sources
  • Fundamental data (P/E ratios, earnings, market cap)
  • Market snapshots and quotes

Tools

1. get_price_data

Fetches historical or real-time price data for symbols.

Parameters:

  • symbols (required): List of ticker symbols (e.g., ["AAPL", "MSFT"])
  • timeframe (optional): "1Min", "5Min", "1Hour", "1Day" (default: "1Day")
  • start_date (optional): Start date in YYYY-MM-DD format
  • end_date (optional): End date in YYYY-MM-DD format
  • limit (optional): Number of bars to fetch (default: 100)

Returns:

{
  "success": true,
  "data": {
    "AAPL": [
      {
        "timestamp": "2025-10-30T09:30:00Z",
        "open": 150.25,
        "high": 151.50,
        "low": 149.80,
        "close": 151.00,
        "volume": 5000000
      }
    ]
  }
}

Usage:

python scripts/fetch_data.py get_price_data --symbols AAPL MSFT --timeframe 1Day --limit 30
2. get_latest_news

Fetches recent financial news for symbols.

Parameters:

  • symbols (required): List of ticker symbols
  • limit (optional): Number of news items (default: 10)
  • sources (optional): News sources to query (default: all)

Returns:

{
  "success": true,
  "data": [
    {
      "symbol": "AAPL",
      "headline": "Apple announces new product line",
      "summary": "...",
      "source": "Bloomberg",
      "url": "https://...",
      "published_at": "2025-10-30T08:00:00Z",
      "sentiment": "positive"
    }
  ]
}
3. get_fundamentals

Fetches fundamental data for symbols.

Parameters:

  • symbols (required): List of ticker symbols
  • metrics (optional): Specific metrics to fetch (default: all)

Returns:

{
  "success": true,
  "data": {
    "AAPL": {
      "market_cap": 3000000000000,
      "pe_ratio": 28.5,
      "eps": 6.42,
      "dividend_yield": 0.52,
      "beta": 1.2,
      "52_week_high": 200.00,
      "52_week_low": 120.00
    }
  }
}
4. get_market_snapshot

Gets current market snapshot with real-time quotes.

Parameters:

  • symbols (required): List of ticker symbols

Returns:

{
  "success": true,
  "data": {
    "AAPL": {
      "price": 151.00,
      "bid": 150.98,
      "ask": 151.02,
      "bid_size": 100,
      "ask_size": 200,
      "last_trade_time": "2025-10-30T15:59:59Z",
      "volume": 50000000,
      "vwap": 150.75
    }
  }
}

Implementation

See scripts/fetch_data.py for full implementation using Alpaca API and yfinance.

Rate Limiting

  • Alpaca API: 200 requests/minute
  • News API: 25 requests/day (free tier)
  • Caching: 5-minute cache for real-time data

Error Handling

All tools return consistent error format:

{
  "success": false,
  "error": "Error message",
  "error_code": "INVALID_SYMBOL"
}

Integration Example

from claude_skills import load_skill

skill = load_skill("financial_data_fetcher")

# Get price data
result = skill.get_price_data(
    symbols=["AAPL", "MSFT"],
    timeframe="1Day",
    limit=30
)

if result["success"]:
    prices = result["data"]
    # Use in trading strategy

Comments

Markdown supported