mcpField
F
fundamentals

fundamentals

github.com/staskhData & databases394179 installsUpdated 1d ago
Repository

About fundamentals

fundamentals is a command-line skill that retrieves Yahoo Finance company data and calculates Piotroski F-Scores. It is intended for fundamental stock analysis, combining financial statements, earnings, company metrics, and a nine-criterion financial-strength assessment.

Key features

  1. 01Fetch company metrics and financial statements
  2. 02Retrieve historical and estimated earnings
  3. 03Calculate Piotroski F-Score
  4. 04Show criterion-level results and interpretation
  5. 05Include New York generation time and data delay

Use cases

  1. 01Review a company's financial fundamentals
  2. 02Screen stocks for improving fundamentals
  3. 03Compare financial strength across companies
  4. 04Assess year-over-year financial health

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/staskh/trading_skills --skill fundamentals

After installing, type/fundamentalsin Claude Code to confirm it loaded.

Bundled filesscripts/fundamentals.pyscripts/piotroski.py

Details

From the project README

Fundamentals

Fetch fundamental financial data from Yahoo Finance.

Instructions

Note: If uv is not installed or pyproject.toml is not found, replace uv run python with python in all commands below.

uv run python scripts/fundamentals.py SYMBOL [--type TYPE]

Arguments

  • SYMBOL - Ticker symbol
  • --type - Data type: all, financials, earnings, info (default: all)

Output

Returns JSON with:

  • info - Key metrics (market cap, PE, EPS, dividend, etc.)
  • financials - Recent quarterly/annual income statement data
  • earnings - Historical and estimated earnings

Present key metrics clearly. Compare actual vs estimated earnings if relevant.


Piotroski F-Score

Calculate Piotroski's F-Score to evaluate a company's financial strength using 9 fundamental criteria.

Instructions
uv run python scripts/piotroski.py SYMBOL
What is Piotroski F-Score?

Piotroski's F-Score is a fundamental analysis tool developed by Joseph Piotroski that evaluates a company's financial strength using 9 criteria. Each criterion scores 1 point if passed, 0 if failed, for a maximum score of 9.

The 9 Criteria
  1. Positive Net Income - Company is profitable
  2. Positive ROA - Assets are generating returns
  3. Positive Operating Cash Flow - Company generates cash from operations
  4. Cash Flow > Net Income - High-quality earnings (cash exceeds accounting profit)
  5. Lower Long-Term Debt - Decreasing leverage (improving financial position)
  6. Higher Current Ratio - Improving liquidity
  7. No New Shares Issued - No dilution (or share buybacks)
  8. Higher Gross Margin - Improving profitability efficiency
  9. Higher Asset Turnover - More efficient use of assets
Score Interpretation
  • 8-9: Excellent - Very strong financial health
  • 6-7: Good - Strong financial health
  • 4-5: Fair - Moderate financial health
  • 0-3: Poor - Weak financial health
Output

Returns JSON with:

  • score - F-Score (0-9)
  • max_score - Maximum possible score (9)
  • criteria - Detailed breakdown of each criterion with pass/fail status and values
  • interpretation - Text description of financial health level
  • data_available - Boolean indicating if year-over-year comparison data is available for criteria 5-9
Implementation Details
  • Criteria 1-4 use quarterly financial data (most recent year)
  • Criteria 5-9 use annual financial data for year-over-year comparisons
  • Compares most recent fiscal year vs previous fiscal year
Use Cases

Use Piotroski F-Score when:

  • Evaluating fundamental financial strength
  • Screening for value stocks with improving fundamentals
  • Assessing financial health trends
  • Comparing financial strength across companies
  • Identifying companies with strong fundamentals but undervalued prices

Dependencies

  • pandas
  • yfinance

Timezone

All timestamps and time-based calculations must use the America/New_York timezone. All JSON output must include generated_at (NY time string) and data_delay fields.

Comments

Markdown supported