Skip to main content
Glama
danchev

openmarkets

by danchev

Open Markets

PyPI PyPI - Downloads PyPI - Monthly Downloads Tests Tools License

A production-grade Model Context Protocol (MCP) server for agentic financial data retrieval and algorithmic market analysis. Open Markets connects LLM agents directly to real-time and historical financial intelligence across equities, fixed income, commodities, currencies, derivatives, funds, crypto, macroeconomic telemetry, SEC EDGAR regulatory disclosures, and quantitative portfolio risk analytics.


🌟 Multi-Provider Architecture

Open Markets aggregates financial telemetry across institutional-grade data providers:

  • SEC EDGAR Direct Ingestion Engine: Official regulatory submissions, real-time 10-K annual reports, 10-Q quarterly reports, 8-K material events, Form 4 insider transactions, and structured US-GAAP interactive XBRL disclosures with direct document links.

  • Federal Reserve Economic Data (FRED Engine): Comprehensive macroeconomic indicators (CPI Inflation, Core PCE, Effective Fed Funds Rate, SOFR, Nonfarm Payrolls, Unemployment, Real GDP, M2 Money Supply, Fed Balance Sheet, TIPS Breakeven Inflation, and Financial Stress).

  • Wall Street Journal (WSJ Michelangelo Engine): High-resolution 1-minute intraday continuous ticks (with pre/post-market), continuous commodities & futures, server-side technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands), global equity benchmark indices, and sovereign bond curves.

  • Yahoo Finance Engine: Complete fundamental statements, real-time quotes, options chains, analyst consensus, institutional ownership, ETF compositions, and screener queries.

  • Quantitative Portfolio & Backtesting Engine: Vectorized multi-asset Sharpe/Sortino ratios, Value-at-Risk (VaR/CVaR), correlation matrices, equal-risk-contribution allocation, constrained Markowitz Minimum Variance optimization, and SMA/RSI strategy backtesting.

  • Green Markets (Bloomberg / Dow Jones): Weekly North American fertilizer price index benchmark.

All network requests use modern Chrome TLS/JA3-impersonation (curl_cffi), automatic session pooling, thread-safe asynchronous concurrency, and configurable in-memory TTL caching.


Related MCP server: MCP Yahoo Finance

🚀 Quick Start

Installation with uvx

uvx openmarkets

Dependency security

Audit the committed lockfile with uv's native OSV integration:

uv audit --locked

CI also enables uv's preview malware check during a locked sync. This check is opt-in and requires a current uv release:

UV_MALWARE_CHECK=1 uv --preview-features malware-check sync --locked --all-groups --all-extras

Usage with Cursor

Install MCP Server

Usage with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "openmarkets": {
      "command": "uvx",
      "args": ["openmarkets@latest"]
    }
  }
}

Usage with VS Code & Cline

Add to .vscode/mcp.json:

{
  "servers": {
    "openmarkets": {
      "command": "uvx",
      "args": ["openmarkets@latest"]
    }
  }
}

🎯 Tool Profiles

Open Markets supports granular server profiles to tailor tool exposure to specific LLM contexts:

# Run with specific domain profile
uvx openmarkets --profile equities
uvx openmarkets --profile macro
uvx openmarkets --profile quant
uvx openmarkets --profile portfolio
uvx openmarkets --profile sec

Profile

Exposed Services & Focus

full (default)

All 127 tools across all 17 services.

equities

stock, financials, analysis, holdings, options, portfolio, screener, sec.

quant

stock, technical_analysis, sector_industry, markets, crypto, funds, commodities, fixed_income, forex, macroeconomics, portfolio.

portfolio

Multi-asset Sharpe/Sortino, Value-at-Risk (VaR/CVaR), correlation matrices, equal-risk-contribution risk parity, Minimum Variance, rolling Beta, and strategy backtesters.

macro

commodities, fixed_income, forex, markets, sector_industry, macroeconomics.

sec

Direct SEC EDGAR submissions, 10-K, 10-Q, 8-K, Form 4, CIK search, and interactive XBRL financial statement facts.

minimal

Essential 36 tools across stock, financial, analyst, and screener lookups.

macroeconomics

US Inflation, PCE, labor markets, Fed rates, GDP, M2, liquidity, and financial stress.

commodities

Physical commodities, energy, metals, softs, and fertilizer indices.

fixed_income

Treasury yield curves and 10Y sovereign benchmark yield spreads.

forex

Foreign exchange rates, DXY dollar index, and currency conversions.

crypto

Top cryptocurrencies, historical crypto pricing, and fear & greed index proxy.


🛠️ Complete Directory of 127 MCP Tools

Open Markets publishes 127 strictly-typed, Pydantic-validated tools across 17 domain services:

1. Stock & Equities (StockService — 18 tools)

  • get_fast_info(ticker): Fast summary with real-time price, market cap, 52-week bounds, and currency.

  • get_info(ticker): Exhaustive company metadata, valuation ratios, enterprise multiples, and governance.

  • get_curated_info(ticker): Context-efficient company fundamentals with 33 essential metrics.

  • get_history(ticker, period, interval): Historical OHLCV pricing with custom intervals (1m to 3mo).

  • get_dividends(ticker): Historical dividend payout schedule and cash amounts.

  • get_splits(ticker): Historical stock split ratios and execution dates.

  • get_corporate_actions(ticker): Combined stream of splits and dividend distributions.

  • get_news(ticker): Latest real-time financial news headlines and article links.

  • get_financial_summary(ticker): Core financial health snapshot (Revenue, Net Income, Margins, Debt).

  • get_extended_financial_summary(ticker): Deep financial metrics (Free Cash Flow, ROE, ROA, Quick Ratio).

  • get_risk_metrics(ticker): Risk indicators including Beta and institutional short interest.

  • get_dividend_summary(ticker): Payout ratio, trailing/forward dividend yields, and 5-year averages.

  • get_price_target(ticker): Analyst consensus price targets (Low, Mean, Median, High).

  • get_quick_technical_indicators(ticker): Lightweight 50-day & 200-day moving average levels.

  • get_valuation_history(ticker): Quarterly & annual historical valuation ratios (P/E, P/S, P/B, EV/EBITDA).

  • get_wsj_stock_history(ticker, timeframe, step): WSJ institutional price history with custom timeframes.

  • get_wsj_intraday_bars(ticker): Continuous 1-minute intraday tick data including pre-market and after-hours.

  • get_wsj_bollinger_bands(ticker, timeframe, window, num_std): Server-side calculated Bollinger Bands directly from WSJ.

2. Technical Analysis (TechnicalAnalysisService — 7 tools)

  • get_technical_indicators(ticker, period): Comprehensive moving averages and 52-week position metrics.

  • get_volatility_metrics(ticker, period): Annualized volatility, maximum daily gains/losses, win/loss day ratios.

  • get_support_resistance_levels(ticker, period): Identified dynamic support and resistance price floors/ceilings.

  • get_wsj_sma(ticker, window, timeframe, step): Server-side computed Simple Moving Average (SMA) via WSJ Michelangelo.

  • get_wsj_ema(ticker, window, timeframe, step): Server-side computed Exponential Moving Average (EMA).

  • get_wsj_rsi(ticker, window, timeframe, step): Server-side computed Relative Strength Index (RSI momentum).

  • get_wsj_macd(ticker, fast_window, slow_window, signal_window): Server-side computed MACD Line, Signal Line, and Histogram.

3. Financial Statements & SEC Filings (FinancialsService — 9 tools)

  • get_curated_financials(ticker): Context-efficient financial performance and solvency snapshot.

  • get_balance_sheet(ticker, quarterly): Standardized balance sheet statements (Assets, Liabilities, Equity).

  • get_income_statement(ticker, quarterly): Income statements (Revenues, Gross Profits, Operating Income, Net Income).

  • get_ttm_income_statement(ticker): Trailing Twelve Months (TTM) income statement.

  • get_ttm_cash_flow_statement(ticker): Trailing Twelve Months (TTM) cash flow statement.

  • get_financial_calendar(ticker): Upcoming earnings release dates and dividend announcement schedules.

  • get_sec_filings(ticker): Official EDGAR SEC filings (10-K, 10-Q, 8-K) with direct document URLs.

  • get_eps_history(ticker): Historical EPS consensus estimates versus reported actuals and surprise percentages.

  • get_full_financials(ticker): Concurrent aggregate of statements, calendar, filings, and EPS history.

4. Analyst Estimates & Consensus (AnalysisService — 8 tools)

  • get_analyst_recommendations(ticker): Wall Street consensus ratings breakdown (Strong Buy, Buy, Hold, Sell).

  • get_recommendation_changes(ticker): Recent rating upgrades and downgrades from major investment banks.

  • get_revenue_estimates(ticker): Forward revenue projections and quarterly growth estimates.

  • get_earnings_estimates(ticker): Forward EPS estimates (Quarterly & Annual).

  • get_growth_estimates(ticker): Multi-year earnings growth forecast comparisons.

  • get_eps_trends(ticker): Historical EPS revision trends (30 days, 60 days, 90 days ago).

  • get_price_targets(ticker): Wall Street price targets with high, low, and median projections.

  • get_full_analysis(ticker): Unified analyst research summary report.

5. Options & Derivatives (OptionsService — 7 tools)

  • get_option_expiration_dates(ticker): Available options chain expiration dates.

  • get_option_chain(ticker, expiration_date): Complete options chain with calls and puts.

  • get_call_options(ticker, expiration_date): Filtered call options with strike, bid/ask, volume, and open interest.

  • get_put_options(ticker, expiration_date): Filtered put options.

  • get_options_volume_analysis(ticker, expiration_date): Aggregate Put/Call volume and Open Interest ratios.

  • get_options_by_moneyness(ticker, expiration_date, moneyness_range): ITM, ATM, and OTM options filtered by moneyness.

  • get_options_skew(ticker, expiration_date): Volatility smile and implied volatility (IV) skew metrics.

6. Institutional Holdings & Insider Trades (HoldingsService — 6 tools)

  • get_major_holders(ticker): Ownership breakdown (Insiders, Institutions, Float percentages).

  • get_institutional_holdings(ticker): Top institutional asset managers (Vanguard, BlackRock, etc.) and shares held.

  • get_mutual_fund_holdings(ticker): Top mutual fund holders and portfolio portfolio position weights.

  • get_insider_purchases(ticker): Six-month insider purchase/sale share and transaction counts.

  • get_insider_roster_holders(ticker): Key company officers and board member share positions.

  • get_full_holdings(ticker): Unified institutional and insider ownership report.

7. Stock Screener (ScreenerService — 1 tool)

  • search_screener_matches(query, count, offset): Paginated discovery across Yahoo's predefined equity, ETF, and fund screens.

8. Sectors & Industry Analytics (SectorIndustryService — 13 tools)

  • get_sector_overview(sector): Macro sector performance and key valuation metrics.

  • get_sector_overview_for_ticker(ticker): Sector intelligence inferred from any ticker.

  • get_sector_top_companies(sector): Leading corporations by market capitalization in a sector.

  • get_sector_top_companies_for_ticker(ticker): Sector peers for any given ticker.

  • get_sector_top_etfs(sector): Benchmark ETFs representing the sector.

  • get_sector_top_mutual_funds(sector): Top mutual funds specialized in the sector.

  • get_sector_industries(sector): Sub-industry breakdown and market weightings within a sector.

  • get_sector_research_reports(sector): Sector research notes and macro updates.

  • get_all_industries(): Complete directory of market industries.

  • get_industry_overview(industry): Industry growth, valuation, and market capitalization.

  • get_industry_top_companies(industry): Industry market leaders by market cap.

  • get_industry_top_growth_companies(industry): Fastest revenue and earnings growers in an industry.

  • get_industry_top_performing_companies(industry): Top price momentum leaders within an industry.

9. Global Markets & Volatility (MarketsService — 4 tools)

  • get_market_summary(market): Regional market overview (US, Europe, Asia).

  • get_market_status(market): Real-time open/closed status for major global exchanges.

  • get_global_indices(): Live snapshot across world benchmark indices (S&P 500, Dow Jones, Nasdaq, Russell 2000, DAX 40, FTSE 100, CAC 40, Euro Stoxx 50, Nikkei 225, Hang Seng, VIX).

  • get_volatility_vix(): Real-time quote for CBOE Volatility Index (VIX / Wall Street Fear Gauge).

10. Fixed Income & Sovereign Debt (FixedIncomeService — 3 tools)

  • get_treasury_yield_curve(): Complete US Treasury yield curve snapshot (1M to 30Y), 2Y/10Y spread, 3M/10Y spread, and inversion status.

  • get_treasury_yield_history(maturity, timeframe, step): Historical yield timeseries for any Treasury tenor.

  • get_global_sovereign_yields(): Benchmark 10-year sovereign yields and basis-point spreads vs US 10Y across 9 nations (US, Germany, UK, Japan, Canada, France, Italy, Australia, Spain).

11. Physical Commodities & Agriculture (CommoditiesService — 8 tools)

  • get_commodity_quote(symbol): Real-time price quote for Energy, Metals, Agriculture, Livestock, or Softs.

  • get_commodity_history(symbol, timeframe, step): Historical continuous futures price charts.

  • get_energy_prices(): Multi-quote snapshot for WTI Crude, Brent, Natural Gas, Gasoline, and Heating Oil.

  • get_metals_prices(): Multi-quote snapshot for Gold, Silver, Copper, Platinum, and Palladium.

  • get_agriculture_prices(): Multi-quote snapshot for Wheat, Corn, Soybeans, Coffee, and Sugar.

  • get_livestock_prices(): Live snapshot for Live Cattle, Feeder Cattle, and Lean Hogs.

  • get_softs_prices(): Live snapshot for Coffee, Sugar, Cocoa, and Cotton.

  • get_fertilizer_price_index(): Green Markets North American Fertilizer Price Index weekly benchmark timeseries.

12. Foreign Exchange (ForexService — 4 tools)

  • get_forex_quote(pair): Real-time FX exchange rate (e.g. EURUSD, USDJPY, GBPUSD).

  • get_forex_history(pair, timeframe, step): Historical FX exchange rate timeseries.

  • get_dollar_index_dxy(): Real-time quote for the US Dollar Index (DXY).

  • get_major_currencies(): Currency matrix across EUR, GBP, JPY, CAD, AUD, CHF, CNH.

13. ETFs & Mutual Funds (FundsService — 8 tools)

  • get_fund_info(ticker): ETF/Fund profile, expense ratio, AUM, category, and NAV.

  • get_fund_sector_weighting(ticker): Fund portfolio sector allocations and percentage weights.

  • get_fund_operations(ticker): Annual turnover, minimum investment, and operational parameters.

  • get_fund_overview(ticker): Unified fund overview with performance and fee metrics.

  • get_fund_top_holdings(ticker): Top underlying portfolio holdings and percentage weights.

  • get_fund_bond_holdings(ticker): Bond ratings breakdown, effective duration, and maturity metrics.

  • get_fund_equity_holdings(ticker): Equity price-to-earnings, price-to-book, and median market cap.

  • get_fund_asset_class_holdings(ticker): Asset class allocations (Cash, Stocks, Bonds, Real Estate).

14. Cryptocurrency (CryptoService — 4 tools)

  • get_crypto_info(symbol): Cryptocurrency price, market cap, 24h volume, and circulating supply.

  • get_crypto_history(symbol, period, interval): Historical OHLCV crypto price bars.

  • get_top_cryptocurrencies(count): Quotes for the configured major-cryptocurrency watchlist (not a live ranking).

  • get_crypto_fear_greed_proxy(): Volatility and momentum proxy for crypto market sentiment.

15. Macroeconomics & Federal Reserve Telemetry (MacroeconomicsService — 9 tools)

  • get_cpi_inflation(limit): US Consumer Price Index (Headline CPI & Core CPI) and YoY inflation rates.

  • get_pce_inflation(limit): US Core Personal Consumption Expenditures (PCE) Price Index (Fed's primary 2% inflation target).

  • get_employment_indicators(limit): Civilian Unemployment Rate (%) and Total Nonfarm Payrolls with monthly net job additions.

  • get_interest_rates_telemetry(limit): Benchmark US money market rates: Effective Federal Funds Rate (EFFR) and SOFR.

  • get_gdp_growth(limit): Real GDP ($B chained 2017) and Nominal GDP ($B) with quarter-over-quarter annualized real growth rates.

  • get_money_supply_and_fed_balance_sheet(limit): US M2 Money Supply ($B) and Federal Reserve Balance Sheet Total Assets ($M).

  • get_inflation_expectations(limit): 5-Year and 10-Year market-implied Breakeven Inflation Rates from TIPS.

  • get_financial_stress_and_credit_spreads(limit): St. Louis Fed Financial Stress Index and ICE BofA US High Yield OAS credit spreads.

  • get_macroeconomic_series(series_id, limit): Universal query tool for any valid FRED economic series identifier (e.g. MORTGAGE30US, INDPRO, UMCSENT).

16. SEC EDGAR Filings & XBRL Disclosures (SECService — 9 tools)

  • get_sec_company_profile(ticker): Official SEC corporate registrant profile, 10-digit CIK, SIC code, business address, and incorporation metadata.

  • get_sec_recent_filings(ticker, form_type, limit): Recent official regulatory submissions with direct HTTPS links to primary documents on SEC EDGAR.

  • get_sec_10k_annual_filings(ticker, limit): Form 10-K audited annual financial reports with direct primary document links.

  • get_sec_10q_quarterly_filings(ticker, limit): Form 10-Q quarterly reports with unaudited financial statements.

  • get_sec_8k_material_events(ticker, limit): Form 8-K unscheduled material corporate event announcements (earnings releases, executive changes, M&A).

  • get_sec_insider_form4_filings(ticker, limit): Form 4 insider transaction reports by officers, directors, and 10%+ beneficial owners.

  • get_sec_xbrl_company_facts(ticker): Catalog summary of all available interactive US-GAAP XBRL disclosure concepts filed by an entity.

  • get_sec_xbrl_concept_timeseries(ticker, concept, limit): Multi-quarter historical timeseries for standard GAAP concepts (REVENUES, NET_INCOME, GROSS_PROFIT, ASSETS, CASH, EPS).

  • get_sec_cik_lookup(query, limit): Fast search directory resolving company names and tickers to official 10-digit SEC CIKs across 10,000+ public entities.

17. Quantitative Portfolio Risk & Strategy Backtesting (PortfolioService — 9 tools)

  • calculate_portfolio_risk_metrics(tickers, weights, benchmark, period, risk_free_rate): Multi-asset Sharpe/Sortino/Calmar ratios, Max Drawdown, Historical VaR (95%/99%), Expected Shortfall (CVaR), Beta, and Alpha.

  • calculate_asset_correlation_matrix(tickers, period): Pairwise Pearson correlation matrix and annualized covariance matrix across cross-asset baskets.

  • calculate_risk_parity_weights(tickers, period): Inverse-volatility allocation weights with actual covariance-based risk contributions.

  • calculate_minimum_variance_portfolio(tickers, period): Analytical long-only Markowitz Minimum Variance portfolio allocation weights.

  • calculate_rolling_beta(ticker, benchmark, window, period): Historical rolling window Beta sensitivity series tracking evolving market risk.

  • calculate_drawdown_series(tickers, weights, period): Historical underwater percentage drawdown curve and peak/trough timeline points.

  • backtest_trend_following_strategy(ticker, fast_window, slow_window, period, initial_capital): Moving Average Crossover (Golden Cross / Death Cross) rule-based backtester with win rate, profit factor, and equity curve.

  • backtest_mean_reversion_strategy(ticker, rsi_window, oversold_threshold, overbought_threshold, period, initial_capital): RSI Mean-Reversion strategy backtester with closed trades and performance breakdown.

  • calculate_factor_exposures(ticker, period): Multi-factor linear regression estimating systematic market loadings (SPY, QQQ, IWM, TLT, GLD) and Jensen's Alpha.


🔧 HTTP Transport & Production Deployment

Open Markets can be run as a standalone HTTP service supporting SSE streaming, Bearer token authentication, CORS, and Prometheus metrics:

# Run streamable HTTP server with auth
uvx openmarkets@latest \
  --transport http \
  --host 0.0.0.0 \
  --port 8000 \
  --http-auth-enabled \
  --http-auth-secret "your-production-secret"

Endpoints:

  • GET /health — Liveness & readiness probe.

  • GET /metrics — Prometheus metrics (uptime, cache entries).

  • POST /mcp — MCP streamable JSON-RPC endpoint.


🧪 Testing & Validation

Open Markets maintains a comprehensive suite of unit tests, property tests, and live network integration tests:

# Run all unit tests with coverage enforcement (95%+ achieved)
uv run pytest

# Run live endpoint integration tests against real APIs
uv run pytest -m live -o addopts="" tests/live/

# Run code formatters and type checkers
uv run ruff format && uv run ruff check && uv run pyright

📄 License

AGPLv3+ License — see LICENSE for details.

Available Tools

71 tools
get_all_industriesA

Retrieve a list of all industries, optionally filtered by sector.

Args: sector (str | None): The name of the sector to filter by, or None to retrieve all industries. Returns: list[str]: A list of all industries, or industries in the specified sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description adequately describes a simple read operation returning a list. It lacks details on rate limits, permissions, or error behavior but is sufficient for a basic retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence plus docstring-style args/returns. No wasted words, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple and the output is a list of strings, the description fully covers input semantics and return type. No gaps relevant to its use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description explains the sector parameter's purpose and default behavior, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of industries with optional sector filtering. It is specific and distinguishes from other industry/sector tools, but does not explicitly contrast with get_sector_industries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_sector_industries. The optional filter is mentioned but not contextualized for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analyst_recommendationsB

Retrieve analyst recommendations for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Analyst recommendations data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only says 'Retrieve', implying a read operation. It does not disclose any potential side effects, rate limits, or data format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences plus docstring format) and to the point, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The return value is described only as 'Any: Analyst recommendations data from the repository', which is vague. With no output schema, a clearer explanation of the return structure would be expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description explains the parameter 'ticker' as 'The symbol of the security', adding meaningful context beyond the schema's bare title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('analyst recommendations') for a given ticker. It is specific enough but does not explicitly differentiate from similar sibling tools like get_recommendation_changes or get_price_target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balance_sheetA

Retrieve the balance sheet for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[BalanceSheetEntry]: List of balance sheet entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks information on side effects, permissions, or data freshness. It only implies a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with clear Args and Returns sections, and contains no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter retrieval tool with an output schema, the description adequately covers purpose, input, and return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the ticker parameter by specifying it is 'The symbol of the security,' which is beyond the schema's type and name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the balance sheet for a given ticker, distinguishing it from siblings like get_income_statement and get_cash_flow_statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives, though the name and context of financial reports imply its use for balance sheet data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_call_optionsA

Retrieve call options for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration.

Returns: list[CallOption] | None: List of call options or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expirationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It describes the optional expiration parameter and its default behavior, and the return type. However, it does not explicitly state that it is a read-only operation, nor does it cover error handling, rate limits, or data freshness. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with a summary line, Args section, and Returns section. Every sentence adds value, and there is no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the essential aspects: purpose, parameters, and return type. The presence of an output schema reduces the burden on the description for return values. However, it could mention that it only returns call options to further differentiate from siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must fully define parameters. It provides clear semantics: ticker is 'the symbol of the security', and expiration is 'the expiration date' with the note that None uses the nearest expiration. This adds complete meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves call options for a given ticker and expiration date. The verb 'Retrieve' and resource 'call options' are specific, and it distinguishes from sibling tools like get_put_options and get_option_chain by focusing only on calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when call options are needed for a specific ticker and expiration, but it does not explicitly guide when to use this tool over alternatives like get_option_chain or get_put_options. The note about default expiration provides some guidance, but no exclusions or comparisons are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_corporate_actionsA

Retrieve corporate actions for a stock.

Args: ticker (str): The symbol of the stock.

Returns: list[CorporateActions]: List of corporate action records.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic function. It does not disclose any behavioral traits such as rate limits, authentication requirements, data range, or response format beyond the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-line purpose plus structured docstring sections for Args and Returns. Every element adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and an output schema (implied to define CorporateActions), the description covers the essential information. However, it could be more complete by briefly explaining what constitutes a corporate action (e.g., dividends, splits) or noting common use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage (no parameter description), but the description's Args section adds 'ticker (str): The symbol of the stock,' which clarifies the parameter's purpose beyond the schema. This compensates for the lack of schema details, though examples or format hints are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve corporate actions for a stock,' specifying the action (retrieve) and resource (corporate actions). This distinguishes it from siblings like get_dividends, get_splits, etc., as corporate actions is a distinct category.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With 60+ sibling tools covering many financial data types, explicit usage context or comparisons are absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crypto_fear_greed_proxyA

Retrieve a proxy value for the crypto fear and greed index.

Args: tickers (list[str] | None, optional): List of crypto tickers to include. If None, uses a default set.

Returns: str: Proxy value or description for the fear/greed index.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description states the tool 'retrieve's a proxy value,' implying read-only behavior, but does not disclose any additional behavioral traits like data freshness, limitations, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise, with a clear purpose sentence and parameter documentation. The Args/Returns format adds structure, though it could be slightly shorter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description vaguely states returns 'Proxy value or description,' lacking specifics on format or range. It does not cover potential edge cases or error scenarios for the single parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that 'tickers' is an optional list and defaults to a default set, adding meaning beyond the schema which only defines the type. This fully compensates for the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a proxy value for the crypto fear and greed index, using specific verbs and resource. It is distinct from sibling tools which focus on financial data, not sentiment indices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates use for retrieving fear/greed data, but no explicit guidance on when to use or alternatives. Given the uniqueness of the tool, it is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crypto_historyA

Retrieve historical price data for a cryptocurrency.

Args: ticker (str): The symbol of the cryptocurrency. period (str, optional): Time period for history. Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. Defaults to '1y'. interval (str, optional): Data interval. Valid intervals: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Defaults to '1d'.

Returns: list[CryptoHistory]: List of historical data points.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo1y
intervalNo1d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. The description does not disclose behavioral traits such as rate limits, authentication needs, or data timezone; only lists valid periods/intervals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise but follows a docstring style with Args/Returns sections. Could be trimmed slightly, but generally well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (list[CryptoHistory]), return values are defined. Parameters are fully documented. No annotations present, but for a simple retrieval tool, completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning to all parameters: ticker is the symbol, period is a time period with valid options listed, interval is data interval with list. Provides defaults and valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves historical price data for a cryptocurrency, using a specific verb and resource. It distinguishes itself from siblings like get_history (non-crypto) and get_crypto_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description but no explicit when-to-use or when-not-to-use guidance is provided against sibling tools like get_history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_crypto_infoB

Retrieve fast information for a specific cryptocurrency.

Args: ticker (str): The symbol of the cryptocurrency (e.g., 'BTC').

Returns: CryptoFastInfo: Fast info data for the given ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
currencyYesCurrency of the ticker.
dayHighYesDay's high price.
dayLowYesDay's low price.
exchangeYesExchange where the ticker is listed.
fiftyDayAverageYes50-day average price.
lastPriceYesLast traded price.
lastVolumeYesLast traded volume.
openYesOpening price.
previousCloseYesPrevious closing price.
quoteTypeYesType of quote (e.g., CRYPTOCURRENCY).
regularMarketPreviousCloseYesRegular market previous close.
tenDayAverageVolumeYes10-day average volume.
threeMonthAverageVolumeYes3-month average volume.
timezoneYesTimezone of the exchange.
twoHundredDayAverageYes200-day average price.
yearChangeYesChange over the past year.
yearHighYes52-week high price.
yearLowYes52-week low price.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It describes the action as 'retrieve', implying a read operation, but does not detail rate limits, caching behavior, or any side effects. The return type is mentioned but without specifics on what fields are included, leaving the agent with limited information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two sentences and a clear docstring structure. Every part serves a purpose: stating the action, specifying the parameter with example, and noting the return type. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists), the description covers the essential purpose and parameter. However, it lacks context about data freshness (is it real-time or delayed?) and any prerequisites (e.g., must ticker exist?). The output schema likely provides return details, but without annotations, some behavioral aspects remain unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant value to the parameter by providing an example ('BTC') and clarifying that 'ticker' is a symbol. Since the schema has 0% description coverage, this explanation compensates well. It could be improved by noting case sensitivity or format requirements, but it is effective enough for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (retrieve) and resource (fast information for a specific cryptocurrency). It directly names the resource type and uses a relevant example ('BTC'). However, it does not explicitly differentiate from sibling tools like 'get_fast_info' or 'get_info', which may also provide similar fast info for other asset types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus its siblings. There is no mention of alternatives, prerequisites, or context such as whether this is for quick snapshots while other tools are for historical data. The agent would need to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dividendsA

Retrieve dividend history for a stock.

Args: ticker (str): The symbol of the stock.

Returns: list[StockDividends]: List of dividend records.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description does not disclose side effects, auth needs, rate limits, or data freshness. It only states the action and return type, leaving behavioral traits implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences and a bullet list. Every sentence adds value with no redundancy. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description covers input and output. It does not mention optional filters like date range, but 'history' implies full history. Output schema handles return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the single parameter 'ticker' by specifying it is the stock symbol. Schema coverage is 0%, so this clarification is valuable. However, no further detail on format or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves dividend history for a stock using a specific verb and resource. It distinguishes from sibling tools like 'get_dividend_summary' by specifying 'history'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_dividend_summary). No context on prerequisites or exclusions. The description is purely functional without usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dividend_summaryC

Retrieve a summary of dividend data for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Dividend summary data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It only states 'retrieve' implying a read operation, but does not disclose rate limits, permissions, or side effects. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, only three sentences. Every sentence provides necessary information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should explain what the returned dict contains. It only says 'Dividend summary data' without specifying fields, which is insufficient for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds a brief explanation for the 'ticker' parameter (The symbol of the stock) beyond the schema's title. However, it does not provide additional details like format or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it retrieves a summary of dividend data for a stock, which is clear but generic. It does not differentiate from the sibling tool 'get_dividends', which likely provides more detailed dividend information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_dividends'. No context provided about prerequisites or appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_earnings_estimatesC

Retrieve earnings estimates for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Earnings estimates data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states 'Returns: Any' without disclosing behavioral traits such as read-only nature, potential errors, or rate limits. The agent gets no insight into side effects or requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes redundant docstring boilerplate ('Returns: Any: Earnings estimates data from the repository.'). It could be tightened to a single sentence without loss of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not detail the structure or format of the returned earnings estimates data. The agent is left with vague 'Any' type, which is insufficient for reliable integration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description repeats the parameter name and type from the input schema with slight elaboration ('The symbol of the security'), but adds no meaningful constraints or context. With 0% schema coverage, the description should compensate but does not significantly add value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves earnings estimates for a ticker, using a specific verb and resource. However, it does not differentiate from sibling tools like get_eps_history or get_eps_trends, which are related but distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives among the many siblings. There is no mention of prerequisites, filters, or conditions that would help an agent choose it over similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eps_historyA

Retrieve EPS (Earnings Per Share) history for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[EPSHistoryEntry]: List of EPS history entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states it retrieves EPS history, implying a read operation, but lacks details on data freshness, error handling, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three lines: a clear purpose sentence, then structured Args and Returns. No wasted words, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and a single required parameter, the description covers purpose, parameter, and return type. It is complete for a simple retrieval, but could mention handling of invalid tickers or historical depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the tool description includes an Args section defining 'ticker (str): The symbol of the security.' This adds meaning beyond the schema's basic type and title, though it could give format examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Retrieve EPS (Earnings Per Share) history for a given ticker.' The verb is specific, the resource is defined, and it distinguishes from sibling tools like get_eps_trends (estimates) or get_history (generic history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_eps_trends or get_earnings_estimates. The description only states what it does, without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fast_infoB

Retrieve fast info for a specific stock ticker.

Args: ticker (str): The symbol of the stock.

Returns: StockFastInfo: Fast info data for the given ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
currencyYesCurrency of the ticker.
dayHighYesDay's high price.
dayLowYesDay's low price.
exchangeYesExchange where the ticker is listed.
fiftyDayAverageYes50-day average price.
lastPriceYesLast traded price.
lastVolumeYesLast traded volume.
marketCapNoMarket capitalization.
openYesOpening price.
previousCloseYesPrevious closing price.
quoteTypeYesType of quote (e.g., equity, ETF).
regularMarketPreviousCloseYesRegular market previous close.
sharesNoNumber of shares outstanding.
tenDayAverageVolumeYes10-day average volume.
threeMonthAverageVolumeYes3-month average volume.
timezoneYesTimezone of the exchange.
twoHundredDayAverageYes200-day average price.
yearChangeYesChange over the past year.
yearHighYes52-week high price.
yearLowYes52-week low price.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Retrieve fast info' implying a read operation, but does not mention rate limits, authentication requirements, or any side effects. The term 'fast' suggests performance but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence for the purpose followed by a structured Args/Returns block. Every part is essential, no fluff, and the main action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema (not shown), the description provides minimal but adequate information. However, it does not explain what fields are in 'StockFastInfo' or any edge cases, which could be helpful given the many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description compensates by explaining the 'ticker' parameter as 'The symbol of the stock.' This adds meaningful context beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'fast info' for a specific stock ticker, which is distinct from other info tools like 'get_info'. However, it does not explicitly explain what 'fast info' entails, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'get_info' or 'get_full_analysis'. The description lacks any context about prerequisites, ideal use cases, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financial_calendarB

Retrieve the financial calendar for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: FinancialCalendar: Financial calendar data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
Dividend DateNoDividend payment date.
Ex-Dividend DateNoEx-dividend date.
Earnings DateNoList of earnings dates.
Earnings HighNoHigh estimate for earnings.
Earnings LowNoLow estimate for earnings.
Earnings AverageNoAverage earnings estimate.
Revenue HighNoHigh estimate for revenue.
Revenue LowNoLow estimate for revenue.
Revenue AverageNoAverage revenue estimate.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description does not disclose any behavioral traits beyond the basic retrieval action. No mention of error handling, data freshness, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. The Args and Returns sections are clearly separated. Every line adds value, though it could include a usage example.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter and an existing output schema, the description provides the essential purpose but lacks context on the calendar's format, date range, or typical use cases. It is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds limited meaning to the single parameter 'ticker' by stating it is 'The symbol of the security', which is not in the schema. However, it is still minimal and relies on the agent's general knowledge.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'financial calendar for a given ticker'. It unambiguously identifies the tool's purpose and distinguishes it from siblings like get_dividends or get_earnings_estimates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives (e.g., get_financial_summary). No exclusions or prerequisites. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financial_summaryC

Retrieve a financial summary for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Financial summary data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, placing full burden on description. The description only states it retrieves data, omitting behavioral traits like data freshness, permissions, error handling, or whether it's read-only. Barely meets basic expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and includes Args/Returns sections, but the Returns section is vague ('dict: Financial summary data'). Some redundancy with schema. Could be more efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and vague return description ('dict: Financial summary data'). Does not clarify what fields are included, making it incomplete for agents. Among 70+ siblings, lacks differentiation from get_financial_summary_v2.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the tool description defines ticker as 'The symbol of the stock,' which adds minimal value. With only one parameter, the description adds some meaning but lacks detail like format (e.g., uppercase) or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve a financial summary for a stock' using a specific verb and resource. While it distinguishes from siblings like get_full_financials or get_fast_info by its focus on 'financial summary,' it does not highlight how it differs from get_financial_summary_v2, a direct sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_financial_summary_v2, get_full_financials). No prerequisites, when-not-to-use, or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_financial_summary_v2B

Retrieve an alternative version of the financial summary for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Financial summary data (version 2).

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden. It implies a read operation ('Retrieve') but does not disclose any behavioral traits like rate limits, data freshness, or required permissions. The description is insufficient for an agent to understand side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with the purpose stated in the first sentence and no extraneous information. Every part serves a purpose, and it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description does not provide enough context about the return value or how this differs from the standard summary. With many sibling tools, the agent needs more detail to decide correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema description coverage is 0%, the description adds clear meaning for the 'ticker' parameter: 'The symbol of the stock.' This compensation is effective for a single, simple parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves an alternative version of the financial summary for a stock, using a specific verb and resource. It distinguishes from the sibling tool 'get_financial_summary' by describing itself as an 'alternative version', though it does not explain what makes it alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus siblings. With a sibling tool 'get_financial_summary', the description should indicate differences or preferred contexts, but it offers no such instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_analysisB

Retrieve a full analysis report for a given ticker, aggregating all available analysis data.

Args: ticker (str): The symbol of the security.

Returns: dict: Dictionary containing all analysis data for the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fails to disclose behavioral traits such as potential slowness due to aggregation, error handling for invalid tickers, or permission requirements. It only states its function without any caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using two short sentences to convey purpose, and includes well-structured Args and Returns sections. Every sentence adds value without extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description vaguely promises 'all analysis data' but does not detail the structure of the returned dictionary. This leaves ambiguity about what exactly is included, especially given the many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the ticker parameter as 'The symbol of the security,' which adds meaning beyond the schema's title. For a simple string parameter, this is adequate but not exceptional. Schema description coverage is 0%, so the description partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'full analysis report', making the purpose obvious. However, it does not differentiate from the many sibling tools that also retrieve specific analysis data, which is a minor shortcoming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or scenarios where this tool is preferred over other 'get_*' tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_financialsA

Retrieve a full set of financial data for a given ticker, aggregating all available financial statements and records.

Args: ticker (str): The symbol of the security.

Returns: dict: Dictionary containing all financial data for the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It mentions 'aggregating all available financial statements and records,' which hints at combining data, but lacks details on performance, data freshness, or whether the aggregation is real-time or cached. It does not disclose potential side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences plus structured Args/Returns. It is front-loaded with the main action. However, it could be more structured by separating the aggregation detail more clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and no output schema, the description is adequate but incomplete. It does not specify what 'full set' includes (e.g., balance sheet, income statement, cash flows) or whether the dictionary structure is documented elsewhere. The presence of many sibling tools heightens the need for more precision.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions for the single parameter 'ticker.' The description adds meaning by stating 'ticker (str): The symbol of the security,' clarifying the parameter's purpose beyond the schema. This is valuable given 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'a full set of financial data' for a ticker, 'aggregating all available financial statements and records.' This distinguishes it from siblings like get_balance_sheet or get_income_statement, which are for specific statements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for obtaining comprehensive financial data in one call, but it does not explicitly state when to use it versus alternatives (e.g., specific statement tools) or mention any prerequisites or limitations. No guidance on when not to use is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_full_holdingsC

Retrieve a full set of holdings data for a given ticker, aggregating all available holdings information.

Args: ticker (str): The symbol of the security.

Returns: dict: Dictionary containing all holdings data for the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only states it aggregates all available holdings information without detailing what is included, potential limitations, or whether it works for all security types. This is minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and uses a docstring format (Args, Returns). However, the Returns section is a placeholder ('Dictionary containing all holdings data') that adds little value. It is structured but not exceptionally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, annotations, or detailed parameter description, the description lacks completeness. It does not specify what keys the returned dict contains, any limits, or usage examples, leaving significant gaps for effective tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no structured description in schema). The description adds 'The symbol of the security' for the ticker parameter, which is marginal value beyond the parameter name. It does not compensate adequately for the lack of schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a full set of holdings data for a given ticker, using a specific verb and resource. However, it does not differentiate from sibling tools like get_fund_top_holdings or get_institutional_holdings, which may overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or scenarios where other holdings tools might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_asset_class_holdingsB

Retrieve asset class holdings for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: FundAssetClassHolding | None: Asset class holdings data or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. It does not mention whether the operation is read-only, requires authentication, has rate limits, or any side effects. The return type is hinted at (FundAssetClassHolding | None) but without detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus a structured docstring. The primary action is stated first, and the Args/Returns format is clear. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic purpose and parameter but lacks context on the nature of asset class holdings, data freshness, or how the result relates to other fund data. However, the presence of an output schema (not shown) partially compensates, as the structure can be inferred from it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaningful explanation for the single parameter 'ticker' as 'The symbol of the fund.' This provides clarity beyond the schema's bare type definition. The phrase 'of the fund' clarifies the context, though 'ticker' is commonly understood.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves asset class holdings for a specific fund, using a specific verb and resource. It distinguishes from sibling tools like get_fund_bond_holdings or get_fund_equity_holdings, though it does not clarify what 'asset class holdings' entails (e.g., types of assets).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it should be used when asset class breakdown is needed, but no exclusions or when-not conditions are provided. Among many similar fund tools, this lack of guidance reduces usability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_bond_holdingsA

Retrieve the bond holdings for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: list[FundBondHolding]: List of bond holdings in the fund.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavior. It states the tool returns a list of FundBondHolding, implying a read operation. However, it does not mention side effects, latency, pagination, or data freshness. Basic transparency but lacking detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very brief, with no wasted words. The purpose is front-loaded, and the parameter description is integrated. Perfectly concise for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 1 parameter and an output schema, the description covers the essential. However, it does not specify whether holdings are current or historical, or clarify the structure of FundBondHolding (though output schema may handle that). Adequate but not exhaustive for a tool among many similar ones.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the single parameter 'ticker' as 'The symbol of the fund,' adding meaning beyond the schema's bare 'Ticker' label. Schema description coverage is 0%, so this explicit explanation compensates. Could include format or example, but adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve the bond holdings for a specific fund,' specifying the verb, resource, and scope. Among siblings with many fund-related tools (e.g., get_fund_equity_holdings, get_fund_asset_class_holdings), this tool is distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance provided on when to use this tool versus alternatives (e.g., get_fund_equity_holdings, get_fund_top_holdings). There is no mention of use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_equity_holdingsC

Retrieve the equity holdings for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: list[FundEquityHolding]: List of equity holdings in the fund.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only states the basic action and return type, without disclosing any behavioral traits (e.g., pagination, data freshness, permissions). Minimal beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short, clear, and front-loaded. Three sentences cover purpose, arguments, and returns with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return details are covered. However, the tool is simple but lacks usage guidance and behavioral transparency, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description adds meaning by explaining 'ticker' as the symbol of the fund. However, it remains minimal and could be more specific (e.g., ETF or mutual fund ticker).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves equity holdings for a specific fund, using a ticker parameter. The name and description differentiate it from bond, asset class, or top holdings siblings, but does not explicitly distinguish from get_full_holdings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_fund_top_holdings or get_full_holdings. Lacks context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_infoB

Retrieve general information for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: FundInfo: Information about the fund.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
phoneNoContact phone number.
longBusinessSummaryNoLong business summary of the fund.
companyOfficersNoList of company officers.
executiveTeamNoExecutive team members.
maxAgeNoMaximum age of the data in seconds.
priceHintNoPrice hint for formatting.
previousCloseNoPrevious day's closing price.
openNoOpening price.
dayLowNoDay's lowest price.
dayHighNoDay's highest price.
regularMarketPreviousCloseNoRegular market previous close price.
regularMarketOpenNoRegular market opening price.
regularMarketDayLowNoRegular market day's lowest price.
regularMarketDayHighNoRegular market day's highest price.
trailingPENoTrailing price-to-earnings ratio.
volumeNoTrading volume.
regularMarketVolumeNoRegular market trading volume.
averageVolumeNoAverage trading volume.
averageVolume10daysNoAverage trading volume over 10 days.
averageDailyVolume10DayNoAverage daily volume over 10 days.
bidNoCurrent bid price.
askNoCurrent ask price.
bidSizeNoSize of current bid.
askSizeNoSize of current ask.
yieldNoFund yield.
totalAssetsNoTotal assets under management.
fiftyTwoWeekLowNo52-week low price.
fiftyTwoWeekHighNo52-week high price.
allTimeHighNoAll-time high price.
allTimeLowNoAll-time low price.
fiftyDayAverageNo50-day moving average.
twoHundredDayAverageNo200-day moving average.
trailingAnnualDividendRateNoTrailing annual dividend rate.
trailingAnnualDividendYieldNoTrailing annual dividend yield.
navPriceNoNet asset value price.
currencyNoCurrency of the fund.
tradeableNoWhether the fund is tradeable.
categoryNoFund category.
ytdReturnNoYear-to-date return.
beta3YearNo3-year beta.
fundFamilyNoFund family name.
fundInceptionDateNoFund inception date as Unix timestamp.
legalTypeNoLegal type of the fund.
threeYearAverageReturnNo3-year average return.
fiveYearAverageReturnNo5-year average return.
quoteTypeNoType of quote.
symbolNoTicker symbol.
languageNoLanguage code.
regionNoRegion code.
typeDispNoDisplay type.
quoteSourceNameNoQuote source name.
triggerableNoWhether price alerts can be triggered.
customPriceAlertConfidenceNoCustom price alert confidence level.
longNameNoLong name of the fund.
shortNameNoShort name of the fund.
marketStateNoCurrent market state (e.g., PRE, REGULAR, POST, CLOSED).
fiftyTwoWeekLowChangePercentNoPercentage change from 52-week low.
fiftyTwoWeekRangeNo52-week price range.
fiftyTwoWeekHighChangeNoChange from 52-week high.
fiftyTwoWeekHighChangePercentNoPercentage change from 52-week high.
fiftyTwoWeekChangePercentNo52-week percentage change.
dividendYieldNoDividend yield.
trailingThreeMonthReturnsNoTrailing 3-month returns.
trailingThreeMonthNavReturnsNoTrailing 3-month NAV returns.
netAssetsNoNet assets of the fund.
epsTrailingTwelveMonthsNoEarnings per share over trailing twelve months.
bookValueNoBook value per share.
fiftyDayAverageChangeNoChange from 50-day average.
fiftyDayAverageChangePercentNoPercentage change from 50-day average.
twoHundredDayAverageChangeNoChange from 200-day average.
twoHundredDayAverageChangePercentNoPercentage change from 200-day average.
netExpenseRatioNoNet expense ratio.
priceToBookNoPrice-to-book ratio.
sourceIntervalNoSource data interval in seconds.
exchangeDataDelayedByNoExchange data delay in minutes.
cryptoTradeableNoWhether crypto trading is available.
hasPrePostMarketDataNoWhether pre/post-market data is available.
firstTradeDateMillisecondsNoFirst trade date in milliseconds since epoch.
postMarketChangePercentNoPost-market percentage change.
postMarketPriceNoPost-market price.
postMarketChangeNoPost-market price change.
regularMarketChangeNoRegular market price change.
regularMarketDayRangeNoRegular market day price range.
fullExchangeNameNoFull name of the exchange.
financialCurrencyNoCurrency used for financial statements.
averageDailyVolume3MonthNoAverage daily volume over 3 months.
fiftyTwoWeekLowChangeNoChange from 52-week low.
corporateActionsNoList of corporate actions.
postMarketTimeNoPost-market time as Unix timestamp.
regularMarketTimeNoRegular market time as Unix timestamp.
exchangeNoExchange code.
messageBoardIdNoMessage board identifier.
exchangeTimezoneNameNoExchange timezone name.
exchangeTimezoneShortNameNoExchange timezone short name.
gmtOffSetMillisecondsNoGMT offset in milliseconds.
marketNoMarket identifier.
esgPopulatedNoWhether ESG data is populated.
regularMarketChangePercentNoRegular market percentage change.
regularMarketPriceNoRegular market price.
trailingPegRatioNoTrailing price/earnings to growth ratio.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It states it retrieves information but does not disclose behavior on invalid tickers, rate limits, or return format. For a simple read tool, it is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact with optional Args/Returns sections. It is front-loaded with the core purpose. The Returns line is generic but acceptable given an output schema exists. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, no annotations, and an output schema, the description adequately states purpose and parameter. However, it misses context about fund types (mutual funds vs ETFs) and does not differentiate from get_info, making it less complete in the sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds 'The symbol of the fund' for the ticker parameter, which is not much more than the schema's 'Ticker' title. It does not specify ticker format or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieve') and identifies the resource ('general information for a specific fund'). It clearly distinguishes from sibling tools that retrieve specific aspects (e.g., holdings, operations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like get_info, get_fund_overview, or others. No when-not or context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_operationsC

Retrieve operations data for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: FundOperations | None: Operations data or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not mention any behavioral traits such as read-only, error handling, or prerequisites. With no annotations provided, the description carries the full burden of behavioral disclosure but fails to add beyond stating it returns 'FundOperations | None'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point, with the essential information front-loaded. However, it could be slightly more informative without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter and no annotations, the description is too minimal. It does not explain what 'operations data' comprises, especially when contrasted with many more specific sibling tools. The existence of an output schema does not excuse the lack of context in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'ticker' has 0% schema description coverage. The description adds 'The symbol of the fund' which is minimal and obvious from the parameter name. It does not explain the format or any constraints, so it adds little value over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and resource 'operations data for a specific fund'. It is specific enough to indicate the tool's purpose, though 'operations data' is somewhat vague compared to more specific sibling tools like 'get_fund_asset_class_holdings' or 'get_fund_bond_holdings'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the many sibling tools that also retrieve fund-related information, such as 'get_fund_info' or 'get_fund_overview'. The description lacks context about the tool's specific use case or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_overviewB

Retrieve an overview for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: FundOverview | None: Overview data or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as authentication needs, rate limits, or side effects. It only mentions the return type (FundOverview or None), which is already implied by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three short lines, containing no redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description is adequate for a simple retrieval tool. However, it lacks explanation of what the 'overview' includes and does not distinguish clearly from sibling tools like get_fund_info.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 0%, but the description explains the parameter as 'ticker (str): The symbol of the fund.' This adds basic meaning beyond the schema's title. However, it does not provide detailed syntax or format constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve an overview for a specific fund,' which identifies the verb (retrieve) and resource (overview for a fund). Among siblings like get_fund_info and get_fund_operations, the purpose is distinct but not explicitly differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Siblings include many fund-specific tools, but the description offers no context for selection or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_sector_weightingA

Retrieve sector weighting data for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: FundSectorWeighting | None: Sector weighting data or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It indicates the operation is a retrieval (non-destructive) and states the return type can be None. However, it does not disclose authentication needs, data source freshness, or any potential side effects. For a simple read tool, this is adequate but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of one sentence plus a clean args/returns format. No extraneous information is present, and every word serves a purpose. Ideal for an AI agent parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter and a simple return type (FundSectorWeighting or None). The description covers both sufficiently. Output schema exists (not shown) but is not needed for completeness here. Minor missing info (e.g., example ticker format) does not detract significantly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning by explaining that 'ticker' is 'The symbol of the fund,' which clarifies the parameter beyond the schema's empty description. This is helpful and compensates for the schema's lack of detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve sector weighting data for a specific fund,' specifying the verb (Retrieve), the resource (sector weighting data), and the scope (specific fund via ticker). This distinguishes it from sibling tools like get_fund_asset_class_holdings or get_fund_top_holdings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, lacks prerequisites, and does not mention when not to use it. With many sibling tools covering fund and sector data, explicit usage direction is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fund_top_holdingsB

Retrieve the top holdings for a specific fund.

Args: ticker (str): The symbol of the fund.

Returns: list[FundTopHolding]: List of top holdings in the fund.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description minimally discloses it is a retrieval operation, but does not mention side effects, permissions, rate limits, or criteria for 'top' holdings (e.g., count or ranking method).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct: two sentences with clear Args/Returns sections. No unnecessary words, front-loaded purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and an output schema, so the description is adequate but lacks details like 'top N' or sorting criteria. Could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the single parameter 'ticker' as 'The symbol of the fund', adding meaning beyond the schema's type-only definition. With 0% schema coverage, this compensates well for one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and resource 'top holdings for a specific fund'. It distinguishes from siblings like 'get_full_holdings' by focusing on top holdings, but does not explicitly differentiate from other fund holding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_full_holdings' or 'get_fund_sector_weighting'. The description lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_growth_estimatesC

Retrieve growth estimates for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Growth estimates data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only operation but does not disclose any behavioral traits such as rate limits, permissions, or side effects. Without annotations, it carries the full burden, and it fails to provide meaningful transparency beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and to the point. However, the docstring-style 'Args' and 'Returns' add minimal value and could be integrated more efficiently. It is not excessively verbose, but the lack of structure reduces readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain the return value, but it only says 'Any', which is uninformative. It lacks details about data structure, time range, or possible error conditions, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description only restates the parameter name ('ticker') in the docstring, adding no semantic meaning about its format, constraints, or examples. The description does not compensate for the missing schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('growth estimates') with a specific input (ticker). It distinguishes from sibling tools that deal with other financial data (e.g., earnings, balance sheet). However, it lacks additional context that could further clarify the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as get_earnings_estimates or get_revenue_estimates. The description does not specify prerequisites or contexts where growth estimates are appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_historyB

Retrieve historical price data for a stock.

Args: ticker (str): The symbol of the stock. period (str, optional): Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. Defaults to '1y'. interval (str, optional): Valid intervals: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Defaults to '1d'.

Returns: list[StockHistory]: List of historical data points.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo1y
intervalNo1d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description does not disclose any behavioral traits such as auth requirements, rate limits, data freshness, or side effects. It only describes the input and return structure, leaving behavioral aspects opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections, and each sentence adds value. It could be slightly more concise, but overall it's efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists but is not explained, and the many sibling tools, the description could be more comprehensive (e.g., data range, frequency details). However, it adequately covers core parameters and purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds critical value beyond the schema: it explains that 'ticker' is the stock symbol, and provides valid values for 'period' and 'interval' (including defaults). Since schema coverage is 0%, these clarifications are essential for correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves historical price data for a stock, which is a specific verb and resource. It distinguishes from crypto-related tools by specifying 'stock', but does not explicitly compare with other historical data tools among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_crypto_history or other financial data tools. The description merely states its function without usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_income_statementB

Retrieve the income statement for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[IncomeStatementEntry]: List of income statement entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Retrieve' implying a read-only operation, which is appropriate. No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits like time period, caching, or error handling. Minimal but adequate for a simple retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, with two sentences covering purpose, parameters, and returns. It is front-loaded with the main action. Slightly repetitive in the returns section but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (as indicated by context signals), the description does not need to fully detail return fields. It states the return type but omits time period context (e.g., annual vs. quarterly). Adequate for a simple tool but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds 'The symbol of the security' to explain the 'ticker' parameter, which goes beyond the schema's title-only specification. This provides clear meaning. However, no other parameters exist to add value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves an income statement for a given ticker, using a specific verb and resource. However, it does not differentiate from the sibling tool 'get_ttm_income_statement', which specifically retrieves trailing twelve months income statement. Missing time period information creates ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_balance_sheet, get_ttm_income_statement, or get_full_financials. No when-not-to or exclusion criteria are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_industry_overviewC

Retrieve an overview of a specific industry.

Args: industry (str): The name of the industry. Returns: IndustryOverview: An overview of the specified industry.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
companies_countYesNumber of companies in the industry
market_capYesTotal market capitalization of the industry
message_board_idYesMessage board identifier
descriptionYesIndustry description
industries_countNoNumber of sub-industries
market_weightYesMarket weight of the industry
employee_countYesTotal number of employees in the industry

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must convey behavioral traits. It only states 'retrieve an overview', implying a read-only operation, but does not disclose any potential side effects, authentication requirements, rate limits, or data freshness. The description adds minimal transparency beyond the tool's name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), front-loading the purpose. It is concise and to the point, but the extreme brevity sacrifices useful context. Still, it earns a high score for lack of fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, likely a straightforward fetch) and the presence of an output schema (not shown but indicated), the description is minimally adequate. However, it does not clarify what 'overview' entails (e.g., textual summary, key metrics), leaving the agent uncertain about the return type beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% parameter description coverage, so the description should compensate. However, it merely repeats the parameter name 'industry' without adding meaning or constraints (e.g., valid industry names, format). The parameter is self-explanatory, but the description fails to provide any additional value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'overview of a specific industry'. It is distinct from sibling tools like 'get_sector_overview' which targets sectors, but it does not explicitly differentiate itself from other industry-related tools like 'get_industry_top_companies'. The purpose is clear but lacks specificity on what the overview contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. Sibling tools include many related functions (e.g., 'get_industry_top_companies', 'get_sector_overview'), but the description does not clarify scenarios where this is the best choice or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_industry_top_companiesC

Retrieve a list of top companies within a specific industry.

Args: industry (str): The name of the industry. Returns: list[IndustryTopCompaniesEntry]: A list of top companies in the industry.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'Retrieve a list', implying a read operation, but does not explicitly state safety, effects, or limitations. More detail would be expected for complete transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using two short sentences. It avoids redundancy but could include a bit more context without being verbose. The structured Args/Returns format aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with one parameter and an existing output schema, the description is minimally adequate. It explains the purpose and return type, but lacks details on what defines 'top', valid industry names, or how to handle errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description merely restates the parameter name ('industry') without adding semantic value (e.g., valid values, format, or relation to other tools). The description adds little beyond the schema's title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of top companies within an industry. The verb 'retrieve' and resource 'top companies' are specific. However, it does not differentiate from sibling tools like get_industry_top_growth_companies or get_industry_top_performing_companies, which have more specialized purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings (e.g., get_industry_top_growth_companies). There is no mention of prerequisites, industry name format, or typical use cases, leaving the agent to guess.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_industry_top_growth_companiesC

Retrieve a list of top growth companies within a specific industry.

Args: industry (str): The name of the industry. Returns: list[IndustryTopGrowthCompaniesEntry]: A list of top growth companies in the industry.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only mentions input and return type, but does not disclose how 'growth' is defined, whether results are sorted, any caching behavior, rate limits, or error conditions. Minimal behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and well-structured with Args/Returns sections. It avoids unnecessary details, but the type information is redundant with the schema. Still, it is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (though not provided in input) and many similar siblings, the description lacks context on what defines 'top growth', how to find valid industry names (e.g., via get_all_industries), and any limitations. With no annotations, completeness is low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'industry' has 0% schema description coverage. The description only repeats the type and says 'The name of the industry', adding no additional meaning such as valid values, case sensitivity, or how to obtain industry names. Fails to compensate for schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve a list' and the resource 'top growth companies' with scope 'within a specific industry'. It differentiates from siblings like get_industry_top_companies and get_industry_top_performing_companies by specifying 'growth'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_industry_top_companies or get_industry_top_performing_companies. The description lacks context on the differences between 'top growth', 'top', and 'top performing'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_industry_top_performing_companiesC

Retrieve a list of top performing companies within a specific industry.

Args: industry (str): The name of the industry. Returns: list[IndustryTopPerformingCompaniesEntry]: A list of top growth companies in the industry.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear the full burden. It does not disclose behavioral traits like mutability, authentication requirements, or performance criteria. The description merely states the function without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with clear Args/Returns sections. No redundant information is present, and it effectively communicates the core purpose in a structured manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description covers the basics. However, it lacks context on what defines 'top performing', how results are ordered, or any limitations, which are important for understanding its full scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the industry parameter. The description adds a basic definition ('The name of the industry'), which is minimal but necessary. It does not provide examples, formats, or possible values, leaving room for improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of top performing companies in an industry, using a specific verb and resource. However, it does not differentiate from sibling tools like get_industry_top_companies or get_industry_top_growth_companies, missing the chance to clarify uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. Given the presence of similar sibling tools (e.g., get_industry_top_companies, get_industry_top_growth_companies), this omission makes selection ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_infoB

Retrieve detailed info for a specific stock ticker.

Args: ticker (str): The symbol of the stock.

Returns: StockInfo: Detailed info data for the given ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
address1NoPrimary address line of the company.
cityNoCity of the company's headquarters.
stateNoState or province of the company's headquarters.
zipNoPostal code of the company's headquarters.
countryNoCountry of the company's headquarters.
phoneNoContact phone number.
websiteNoCompany website URL.
industryNoIndustry classification.
industryKeyNoIndustry key.
industryDispNoIndustry display name.
sectorNoSector classification.
sectorKeyNoSector key.
sectorDispNoSector display name.
longBusinessSummaryNoExtended business description.
fullTimeEmployeesNoNumber of full-time employees.
companyOfficersNoList of company officers.
auditRiskNoAudit risk score.
boardRiskNoBoard risk score.
compensationRiskNoCompensation risk score.
shareHolderRightsRiskNoShareholder rights risk score.
overallRiskNoOverall risk score.
governanceEpochDateNoGovernance epoch date (timestamp).
compensationAsOfEpochDateNoCompensation as of epoch date (timestamp).
irWebsiteNoInvestor relations website.
executiveTeamNoList of executive team members.
maxAgeNoMaximum age of the data.
priceHintNoPrice hint for display.
previousCloseNoPrevious closing price.
openNoOpening price.
dayLowNoDay's low price.
dayHighNoDay's high price.
regularMarketPreviousCloseNoRegular market previous close.
regularMarketOpenNoRegular market opening price.
regularMarketDayLowNoRegular market day's low price.
regularMarketDayHighNoRegular market day's high price.
dividendRateNoDividend rate.
dividendYieldNoDividend yield.
exDividendDateNoEx-dividend date.
payoutRatioNoPayout ratio.
fiveYearAvgDividendYieldNoFive-year average dividend yield.
betaNoBeta value.
trailingPENoTrailing P/E ratio.
forwardPENoForward P/E ratio.
volumeNoTrading volume.
regularMarketVolumeNoRegular market trading volume.
averageVolumeNoAverage trading volume.
averageVolume10daysNo10-day average trading volume.
averageDailyVolume10DayNo10-day average daily volume.
bidNoBid price.
askNoAsk price.
bidSizeNoBid size.
askSizeNoAsk size.
marketCapNoMarket capitalization.
fiftyTwoWeekLowNo52-week low price.
fiftyTwoWeekHighNo52-week high price.
allTimeHighNoAll-time high price.
allTimeLowNoAll-time low price.
priceToSalesTrailing12MonthsNoPrice to sales (TTM).
fiftyDayAverageNo50-day average price.
twoHundredDayAverageNo200-day average price.
trailingAnnualDividendRateNoTrailing annual dividend rate.
trailingAnnualDividendYieldNoTrailing annual dividend yield.
currencyNoTrading currency.
tradeableNoIs the stock tradeable.
enterpriseValueNoEnterprise value.
profitMarginsNoProfit margins.
floatSharesNoFloat shares.
sharesOutstandingNoShares outstanding.
sharesShortNoShares short.
sharesShortPriorMonthNoShares short prior month.
sharesShortPreviousMonthDateNoShares short previous month date.
dateShortInterestNoDate of short interest.
sharesPercentSharesOutNoPercent shares out.
heldPercentInsidersNoPercent held by insiders.
heldPercentInstitutionsNoPercent held by institutions.
shortRatioNoShort ratio.
shortPercentOfFloatNoShort percent of float.
impliedSharesOutstandingNoImplied shares outstanding.
bookValueNoBook value.
priceToBookNoPrice to book ratio.
lastFiscalYearEndNoLast fiscal year end.
nextFiscalYearEndNoNext fiscal year end.
mostRecentQuarterNoMost recent quarter (timestamp).
earningsQuarterlyGrowthNoEarnings quarterly growth.
netIncomeToCommonNoNet income to common.
trailingEpsNoTrailing EPS.
forwardEpsNoForward EPS.
lastSplitFactorNoLast split factor.
lastSplitDateNoLast split date.
enterpriseToRevenueNoEnterprise to revenue ratio.
enterpriseToEbitdaNoEnterprise to EBITDA ratio.
52WeekChangeNo52-week change.
SandP52WeekChangeNoS&P 52-week change.
lastDividendValueNoLast dividend value.
lastDividendDateNoLast dividend date.
quoteTypeNoQuote type.
currentPriceNoCurrent price.
targetHighPriceNoTarget high price.
targetLowPriceNoTarget low price.
targetMeanPriceNoTarget mean price.
targetMedianPriceNoTarget median price.
recommendationMeanNoRecommendation mean.
recommendationKeyNoRecommendation key.
numberOfAnalystOpinionsNoNumber of analyst opinions.
totalCashNoTotal cash.
totalCashPerShareNoTotal cash per share.
ebitdaNoEBITDA.
totalDebtNoTotal debt.
quickRatioNoQuick ratio.
currentRatioNoCurrent ratio.
totalRevenueNoTotal revenue.
debtToEquityNoDebt to equity ratio.
revenuePerShareNoRevenue per share.
returnOnAssetsNoReturn on assets.
returnOnEquityNoReturn on equity.
grossProfitsNoGross profits.
freeCashflowNoFree cash flow.
operatingCashflowNoOperating cash flow.
earningsGrowthNoEarnings growth.
revenueGrowthNoRevenue growth.
grossMarginsNoGross margins.
ebitdaMarginsNoEBITDA margins.
operatingMarginsNoOperating margins.
financialCurrencyNoFinancial reporting currency.
symbolNoTicker symbol.
languageNoReporting language.
regionNoRegion.
typeDispNoType display name.
quoteSourceNameNoQuote source name.
triggerableNoIs triggerable.
customPriceAlertConfidenceNoCustom price alert confidence.
regularMarketChangePercentNoRegular market change percent.
regularMarketPriceNoRegular market price.
shortNameNoShort name.
longNameNoLong name.
hasPrePostMarketDataNoHas pre/post market data.
firstTradeDateMillisecondsNoFirst trade date in milliseconds.
postMarketChangePercentNoPost-market change percent.
postMarketPriceNoPost-market price.
postMarketChangeNoPost-market change.
regularMarketChangeNoRegular market change.
regularMarketDayRangeNoRegular market day range.
fullExchangeNameNoFull exchange name.
averageDailyVolume3MonthNo3-month average daily volume.
fiftyTwoWeekLowChangeNo52-week low change.
fiftyTwoWeekLowChangePercentNo52-week low change percent.
fiftyTwoWeekRangeNo52-week range.
fiftyTwoWeekHighChangeNo52-week high change.
fiftyTwoWeekHighChangePercentNo52-week high change percent.
fiftyTwoWeekChangePercentNo52-week change percent.
marketStateNoMarket state.
corporateActionsNoCorporate actions.
postMarketTimeNoPost-market time (timestamp).
regularMarketTimeNoRegular market time (timestamp).
exchangeNoExchange code.
messageBoardIdNoMessage board ID.
exchangeTimezoneNameNoExchange timezone name.
exchangeTimezoneShortNameNoExchange timezone short name.
gmtOffSetMillisecondsNoGMT offset in milliseconds.
marketNoMarket name.
esgPopulatedNoESG data populated.
dividendDateNoDividend date.
earningsTimestampNoEarnings timestamp.
earningsTimestampStartNoEarnings timestamp start.
earningsTimestampEndNoEarnings timestamp end.
earningsCallTimestampStartNoEarnings call timestamp start.
earningsCallTimestampEndNoEarnings call timestamp end.
isEarningsDateEstimateNoIs earnings date an estimate.
epsTrailingTwelveMonthsNoEPS trailing twelve months.
epsForwardNoEPS forward.
epsCurrentYearNoEPS current year.
priceEpsCurrentYearNoPrice/EPS current year.
fiftyDayAverageChangeNo50-day average change.
fiftyDayAverageChangePercentNo50-day average change percent.
twoHundredDayAverageChangeNo200-day average change.
twoHundredDayAverageChangePercentNo200-day average change percent.
sourceIntervalNoSource interval.
exchangeDataDelayedByNoExchange data delayed by (seconds).
averageAnalystRatingNoAverage analyst rating.
cryptoTradeableNoIs crypto tradeable.
displayNameNoDisplay name.
trailingPegRatioNoTrailing PEG ratio.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It indicates a read operation ('Retrieve'), but does not disclose idempotency, authentication needs, rate limits, or data freshness. The behavior is simple enough that a 3 is acceptable, but more detail would help.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using a single sentence with args/returns. Every word contributes. However, given the many siblings, a slightly longer description with differentiation would be more helpful. Still, it is not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description only says 'Detailed info data' without specifying what fields are included. With numerous sibling tools, the user needs to know the scope of 'detailed info' to choose correctly. The description is incomplete for the domain complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It provides a brief description of the ticker parameter as 'The symbol of the stock', which adds meaning beyond the schema. However, it lacks format details or examples. This is adequate but not comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves detailed info for a stock ticker, using the verb 'Retrieve' and specifying the resource. However, it does not distinguish this from many sibling info tools like get_fast_info or get_full_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, scenarios, or exclusions. With many sibling tools providing different info types, the lack of usage direction is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insider_purchasesB

Retrieve insider purchases for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Insider purchases data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden but fails to disclose behavioral traits like data freshness, authorization needs, or any side effects. The return type is vaguely described as 'Any', and no details about the data structure are given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences plus Args/Returns) and front-loaded, but the brevity sacrifices important details. It earns its place but could be more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not explain the structure of the returned insider purchases data (e.g., fields, pagination) or any constraints, leaving the agent with significant uncertainty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the ticker parameter as 'The symbol of the security', adding meaning beyond the schema which only has the title 'Ticker'. With 0% schema coverage, this significantly aids understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'insider purchases' for a given ticker, making the tool's purpose specific and distinguishable from sibling tools that retrieve other data types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives, such as get_institutional_holdings or get_major_holders, nor does it mention prerequisites or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_institutional_holdingsB

Retrieve institutional holdings for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Institutional holdings data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It only states 'Retrieve', implying a read-only operation, but omits details on side effects, permissions, rate limits, or data freshness. The return type is vague ('Any') and unhelpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. The structured Args/Returns section is clear, though the Returns line is vague and could be removed or improved without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with no output schema, the description should specify the return format, structure, and any constraints (e.g., pagination, data limits). The vague 'Any' return type fails to provide the completeness needed for an agent to reliably use the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'ticker' has zero schema description coverage (0%), but the docstring adds that it is 'The symbol of the security.' This clarifies its meaning beyond the schema, though format conventions (e.g., ticker symbol style) are omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('institutional holdings for a given ticker'), which distinguishes it from sibling tools that handle different holding types like fund top holdings or major holders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_full_holdings or get_major_holders. There is no mention of context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_major_holdersA

Retrieve major holders for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Major holders data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does not disclose behavioral traits such as whether the operation is read-only, data freshness, or authentication requirements. It only states the action without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loading the purpose in the first sentence, and uses minimal but clear docstring style for parameter and return information. No extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is adequate but incomplete. It does not define what 'major holders' are or specify the return format, which is important given the many sibling holding tools. Additional context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite the input schema having 0% description coverage, the tool's description explains the parameter 'ticker' as 'The symbol of the security,' adding meaning beyond the schema. This compensates for the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and resource 'major holders' for a given ticker, effectively distinguishing it from sibling tools that focus on other types of holdings (e.g., institutional, mutual fund).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_institutional_holdings or get_full_holdings. The description lacks context on preferred use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_statusC

Retrieve the current status of major market indices.

Returns: dict: Market indices status data.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoMarket ID
nameNoMarket name
statusNoMarket status
yfit_market_idNoYahoo Finance market ID
closeNoMarket close time
messageNoStatus message
openNoMarket open time
yfit_market_statusNoYahoo Finance market status
timezoneNoTimezone info

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the return type without any behavioral details (e.g., whether the data is real-time, what market identifiers are accepted, or potential error conditions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short at two sentences, but it lacks essential details. It is not 'efficiently comprehensive'; rather, it is under-specified, which harms usability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a simple tool with one parameter and an output schema, the description fails to explain the input parameter or provide context about the returned data. It is incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'market' is a plain string with no description in the schema (0% schema coverage). The description adds no meaning about the expected format, examples, or constraints, making it impossible for an agent to know what to input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and resource ('current status of major market indices'), making the tool's purpose understandable. However, it does not differentiate from sibling tool 'get_market_summary', which likely serves a similar function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. Given the sibling list includes 'get_market_summary' and other market-related tools, the description should clarify the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_summaryC

Retrieve a summary of the overall market performance.

Returns: dict: Market summary data.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryNoDictionary of market summaries

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, yet the description only says 'Retrieve a summary' and mentions return type. It does not disclose behavioral traits like data freshness, side effects, or access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Minimal length, but missing critical details. It is front-loaded but too sparse to be effective; could be more concise if it included parameter hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single required parameter and no annotations, the description is incomplete. It does not explain the 'market' parameter or the return structure, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'market' has no description, and schema coverage is 0%. The description adds no meaning beyond the schema's name and type; the agent cannot infer what values are valid.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a market summary (verb+resource). However, it does not distinguish from siblings like get_market_status or get_industry_overview, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The sibling list includes many market-related tools, but the description fails to specify context or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mutual_fund_holdingsC

Retrieve mutual fund holdings for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Mutual fund holdings data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It states 'retrieve', implying a read-only operation, but does not explicitly confirm no side effects, required permissions, rate limits, or data freshness. The vague return type 'Any' further reduces transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, immediately stating the purpose and listing the parameter. However, it could be structured more effectively (e.g., using bullet points for args and returns) and the opening line could be more informative. It is efficient but not optimally front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description is incomplete. It lacks explanation of the return structure (e.g., list of holdings, fields like weight, shares), does not mention any constraints (e.g., mutual fund specific, not for ETFs), and fails to guide the agent among many similar fund tools. The absence of an output schema makes the vague 'Any' return type insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the schema: 'ticker (str): The symbol of the security.' The schema only has a title 'Ticker'. With 0% schema description coverage, the baseline is 3, and the description barely meets it by providing a simple one-line description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves mutual fund holdings for a given ticker, using the verb 'retrieve' and the resource 'mutual fund holdings'. However, it does not distinguish among many sibling tools that also retrieve fund data (e.g., get_full_holdings, get_fund_top_holdings), so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many related sibling tools, explicit context about exclusivity (e.g., 'use for mutual fund holdings only, not institutional holdings') is missing. The description implies use for any ticker but does not exclude or compare.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_newsA

Retrieve news items for a stock.

Args: ticker (str): The symbol of the stock.

Returns: list[NewsItem]: List of news items.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Implicitly a read operation ('Retrieve'), but no explicit disclosure of safety, rate limits, pagination, or error states. No annotations provided to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise with clear structure: purpose, parameters, and return type in a standard docstring format. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter tool with an output schema, the description adequately states input and output. However, it lacks context on data freshness or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning by defining 'ticker' as 'The symbol of the stock', providing context beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve news items for a stock' with a specific verb and resource. It distinguishes from sibling tools like get_info or get_history by focusing on news.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Sibling tools exist for different financial data (e.g., analyst recommendations, financials), but the description does not address selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_option_chainA

Retrieve the option contract chain for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration.

Returns: OptionContractChain: The option contract chain data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expirationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
callsNoCall option contracts.
putsNoPut option contracts.
underlyingNoUnderlying asset information.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It states only that the tool retrieves an option chain, with no mention of side effects, authentication requirements, rate limits, or restrictions. The existence of an output schema does not compensate for the lack of behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using a clear format with Args and Returns sections. Every sentence adds value, and there is no redundant or extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately explains the core function, and the output schema compensates for missing return value details. However, given the presence of many sibling option tools, the description does not provide enough context to differentiate usage or mention any prerequisites (e.g., valid ticker).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for both parameters: 'ticker' is described as 'The symbol of the security' and 'expiration' as 'The expiration date. If None, uses the nearest expiration.' Since the input schema has 0% description coverage, this additional information is valuable and clarifies usage beyond the schema's minimal type/title fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve the option contract chain for a given ticker and expiration date,' specifying the verb, resource, and required parameters. It distinguishes from sibling tools like get_call_options and get_put_options by being the generic chain retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some guidance on expiration default ('If None, uses the nearest expiration'), but does not offer explicit context on when to use this tool versus alternatives such as get_call_options or get_options_by_moneyness. No when-not-to-use or exclusionary criteria are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_option_expiration_datesA

Retrieve available option expiration dates for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[OptionExpirationDate]: List of available expiration dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It only states it returns a list of OptionExpirationDate objects, but lacks details on rate limits, data freshness, error handling, or side effects. The docstring-style format adds minimal context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three lines including the docstring. It is front-loaded with the purpose and avoids any superfluous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description is reasonably complete. It specifies input and return type. However, it could be enhanced by describing how the expiration dates relate to other option tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides a docstring-style parameter description ('ticker (str): The symbol of the security'), which adds meaning beyond the schema's bare title and type. Since schema coverage is 0%, this description compensates adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve') and the resource ('available option expiration dates') with a specific input ('given ticker'). It differentiates from sibling tools like 'get_option_chain' which handle full chain data, and 'get_options_by_moneyness' which filter by moneyness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not explain that this is a precursor to fetching option chains, nor does it contrast with sibling tools like 'get_call_options' or 'get_put_options'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_options_by_moneynessB

Retrieve options filtered by moneyness for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration. moneyness_range (float, optional): The moneyness range for filtering. Defaults to 0.1.

Returns: dict: Options data filtered by moneyness.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expiration_dateNo
moneyness_rangeNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavioral traits. It only states that the tool retrieves data and returns a dict, but it does not mention any potential side effects, required authentication, rate limits, or error handling. This lack of transparency is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear one-line purpose statement followed by a neatly formatted Args section and a brief Returns note. Every sentence provides essential information, and there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should elaborate on the return value. It only says 'Options data filtered by moneyness' without detailing the structure or fields. Additionally, while parameters are listed, the moneyness_range parameter lacks precise explanation, and no examples are provided. The description is insufficient for a tool with three parameters and no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by listing each parameter and providing brief explanations. It clarifies that expiration_date can be None (using nearest expiration) and moneyness_range defaults to 0.1. However, the meaning of 'moneyness_range' is not fully explained, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves options filtered by moneyness for a given ticker and expiration date. The verb 'retrieve' and the specific resource 'options filtered by moneyness' clearly define its function. Among siblings like get_option_chain and get_options_skew, this tool's focus on moneyness stands out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (retrieving options by moneyness), but it does not offer any guidance on when not to use it or how it compares to alternatives like get_call_options or get_put_options. No exclusions or alternative suggestions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_options_skewA

Retrieve options skew analysis for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration.

Returns: dict: Options skew analysis data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expiration_dateNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Retrieve' implies a read-only operation, but no details on permissions, rate limits, or side effects. The description is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: one sentence for purpose, two for parameters, one for return type. No wasted words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description only says 'dict: Options skew analysis data', which is generic. It does not explain what fields are returned (e.g., strikes, IVs), which would help an agent interpret the result. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning: defines ticker as 'symbol of the security' and expiration_date as optional string defaulting to nearest expiration. However, it omits the expected date format (e.g., 'YYYY-MM-DD').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Retrieve' and resource 'options skew analysis', clearly distinguishing it from siblings like get_option_chain, get_options_by_moneyness, etc., which handle other aspects of options data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for skew analysis, but lacks explicit guidance on when to use this tool versus alternatives like get_option_chain or get_options_volume_analysis. There is no mention of exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_options_volume_analysisA

Retrieve options volume analysis for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration.

Returns: dict: Volume analysis data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expiration_dateNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lacks annotations, so it must compensate. It does not disclose read-only nature, authentication needs, or error handling. However, it does explain the default behavior for 'expiration_date' (uses nearest if None), which adds some behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence for purpose, followed by clear parameter docs. Every sentence serves a purpose, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should provide more detail about the return value. It only says 'dict: Volume analysis data', leaving the agent unclear on what keys to expect (e.g., volume, open interest). Additionally, it does not specify if it applies only to options or all securities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must add meaning. It explains that 'ticker' is the symbol and 'expiration_date' is optional with default behavior. This is helpful, though it could specify the date format (e.g., YYYY-MM-DD) for completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves options volume analysis for a given ticker and expiration date. It uses a specific verb ('retrieve') and resource ('options volume analysis'), distinguishing it from sibling tools like 'get_option_chain' or 'get_options_skew'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest any related tools for different needs. The agent must infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_targetC

Retrieve price target data for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Price target data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or the scope of data returned (e.g., historical vs. current targets). Only states it 'Retrieves' data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes unnecessary 'Args:' and 'Returns:' sections that duplicate schema information. It is not optimally structured for an MCP description, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain the structure of the returned price target data (e.g., which fields are included). This leaves the agent without enough information to evaluate or use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'ticker' with only a type and requirement. The description adds minimal value by restating 'The symbol of the stock' but provides no examples, format details, or acceptable values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'price target data for a stock.' It is specific but does not differentiate from the sibling tool 'get_price_targets' (plural), which likely has a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_price_targets' or 'get_analyst_recommendations.' No exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_targetsB

Retrieve price targets for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Price targets data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations present, so the description must carry behavioral info. It indicates a read operation ('Retrieve') and returns data. No side effects or constraints disclosed, but for a simple retrieval this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the main action. The Args/Returns structure is clear but slightly verbose (e.g., 'Returns:' line). Could be trimmed further.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter retrieval tool with no output schema, the description covers the essential. However, additional context about the data structure of 'price targets' would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description adds the key meaning: 'ticker (str): The symbol of the security.' This clarifies the parameter beyond the schema's empty string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Retrieve price targets for a given ticker'—a clear verb and resource. However, it does not differentiate from the sibling tool 'get_price_target' (singular), which could be confusing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_price_target' or 'get_analyst_recommendations'. No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_put_optionsA

Retrieve put options for a given ticker and expiration date.

Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration.

Returns: list[PutOption] | None: List of put options or None if unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expirationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist. The description implies read-only behavior via the 'get' prefix and mentions default expiration behavior. However, it does not explain authorization needs, rate limits, or side effects beyond the basic retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-line purpose followed by a docstring-style listing of args and returns. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the return description is sufficient. The tool has only two parameters with adequate explanations. However, the presence of many options-related siblings suggests missing guidance on when to use this specific tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaningful explanations for both parameters: ticker as 'The symbol of the security' and expiration with default behavior. This fully compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'put options' with parameters ticker and expiration. It distinguishes from siblings like get_call_options and get_option_chain by specifying put options.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates use for retrieving put options, but lacks explicit guidance on when to use this tool versus alternatives like get_option_chain or get_call_options. No exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quick_technical_indicatorsC

Retrieve quick technical indicators for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Technical indicators data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states it returns a dict of technical indicators. It does not disclose what indicators are included, any rate limits, or safety traits (e.g., read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short with no superfluous words. It includes a docstring format, but lacks details that could be added without breaking conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description should provide more context about the return format and behavior. It only states 'Returns: dict: Technical indicators data' without any further detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds a brief docstring for 'ticker' as 'The symbol of the stock'. This adds minimal meaning beyond the schema, as the parameter name and type are already clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'quick technical indicators' for a stock. It distinguishes from sibling 'get_technical_indicators' by the term 'quick', but does not explain what makes it quick or different.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_technical_indicators'. The 'quick' modifier implies speed or less detail, but this is not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recommendation_changesC

Retrieve changes in analyst recommendations for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Recommendation changes data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states 'retrieve changes' but does not specify what constitutes a change (e.g., time range, type of change), the return structure, or whether it is read-only. The return type is given as 'Any', which is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, but it includes redundant 'Args:' and 'Returns:' formatting that could be eliminated. Overall, it is concise but not optimally structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no annotations, no output schema), the description is insufficient. It does not explain the format or nature of the recommendation changes data, leaving the agent with incomplete information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'ticker' with description 'The symbol of the security'. This adds minimal meaning beyond the schema, which already indicates it is a required string. Schema description coverage is 0%, so the description should provide more context but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'retrieve' and the resource 'changes in analyst recommendations' for a specific ticker. The description distinguishes this from the sibling tool 'get_analyst_recommendations', which likely returns current recommendations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives. Does not mention the existence of 'get_analyst_recommendations' as a sibling for current recommendations, nor any prerequisites or context for using the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_revenue_estimatesB

Retrieve revenue estimates for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: Any: Revenue estimates data from the repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks behavioral details such as data freshness, rate limits, or read-only nature. The description only states the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with no wasted words. It uses a clean docstring format that is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema is provided, and the description only vaguely states 'Revenue estimates data from the repository' without specifying the structure or fields of the returned data. This is insufficient for an agent to interpret the output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description includes a docstring explaining the 'ticker' parameter as 'the symbol of the security', adding meaning beyond the JSON schema which lacks parameter descriptions. This compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves revenue estimates for a given ticker. It is specific but does not explicitly differentiate from other estimate-related siblings like get_earnings_estimates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any prerequisites or context for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_risk_metricsC

Retrieve risk metrics for a stock.

Args: ticker (str): The symbol of the stock.

Returns: dict: Risk metrics data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states returns a dict with risk metrics data without specifying what metrics are included (e.g., beta, volatility). No mention of side effects, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with only two lines plus Args/Returns. However, it lacks sufficient detail, especially on the return value, making it under-specified rather than efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (one param, no output schema), the description is incomplete. It fails to describe what 'risk metrics' includes, leaving the agent guessing the exact data returned. The return value description 'dict: Risk metrics data' is too vague.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'ticker' which is self-explanatory from its name. Schema coverage is 0% because description only repeats the parameter name and type. The description adds no additional meaning beyond the schema, but the parameter is simple enough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Retrieve risk metrics for a stock' with a clear verb and resource. However, it does not explicitly differentiate from sibling tools like 'get_volatility_metrics' or 'get_quick_technical_indicators', which may partially overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description implies usage for risk metrics but does not mention exclusions or compare with similar tools among the many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sec_filingsA

Retrieve SEC filings for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[SecFilingRecord]: List of SEC filing records.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as error handling, rate limits, or authentication requirements. Only the return type is mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with no unnecessary words. It follows a clear docstring format with Args and Returns sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description need not detail return values, but it does mention the return type. However, it lacks information about error scenarios or edge cases, which would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'ticker' has a description in the docstring ('The symbol of the security.'), which adds meaning beyond the schema (which lacks a description). For a single required parameter, this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'SEC filings' with the parameter 'ticker'. It distinguishes itself from sibling tools that focus on other financial data like balance sheets, earnings, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through its clear purpose but provides no explicit guidance on when to use this tool versus siblings or when not to use it. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_industriesB

Retrieve a list of industries within a specific sector.

Args: sector (str): The name of the sector. Returns: list[str]: A list of industries in the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses it's a read operation returning a list of strings, but lacks details on permissions, rate limits, or error handling. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with two short paragraphs. Front-loaded with verb 'Retrieve'. Every sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately explains the return type. However, it lacks context about error cases, valid sectors, or how this fits with sibling tools like get_sector_overview. Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage, but the description adds 'The name of the sector' for the parameter. This adds meaning beyond type string, but does not specify valid sector names or format, nor provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'list of industries within a specific sector'. It implies a filtering of industries by sector, distinguishing it from siblings like get_all_industries, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. It does not mention that for all industries, get_all_industries is preferable, nor does it provide context about valid sectors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_overviewC

Retrieve overview information for a specific sector.

Args: sector (str): The name of the sector. Returns: SectorOverview: Overview data for the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
companies_countYesNumber of companies in the sector
market_capYesTotal market capitalization of the sector
message_board_idYesMessage board identifier
descriptionYesSector description
industries_countYesNumber of industries in the sector
market_weightYesMarket weight of the sector
employee_countYesTotal number of employees in the sector

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only says 'retrieve overview information', implying a read operation but providing no details on side effects, authorization, or return behavior (e.g., error cases, pagination). This is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with no wasted words. It efficiently conveys the core purpose and parameter. While it could benefit from more detail, it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and one simple parameter, the description is somewhat adequate. However, it does not explain what 'overview information' entails, leaving ambiguity. A more complete description would clarify the scope or differentiate from related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add meaning. It states 'sector (str): The name of the sector.' but offers no format, examples, or valid values. This is a basic definition that adds little beyond the parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves overview information for a specific sector, using a specific verb and resource. However, it does not differentiate from similar sibling tools like 'get_industry_overview' or 'get_sector_overview_for_ticker', which could lead to confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclude scenarios, making it hard for an AI to decide when this is the correct tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_overview_for_tickerB

Retrieve overview information for a specific sector based on a stock ticker.

Args: ticker (str): The stock ticker symbol. Returns: SectorOverview: Overview data for the sector associated with the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
companies_countYesNumber of companies in the sector
market_capYesTotal market capitalization of the sector
message_board_idYesMessage board identifier
descriptionYesSector description
industries_countYesNumber of industries in the sector
market_weightYesMarket weight of the sector
employee_countYesTotal number of employees in the sector

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'Retrieve overview information' without disclosing behavioral traits such as idempotency, rate limits, data freshness, or any side effects. For a read operation, minimal disclosure is acceptable, but the absence of any behavioral context is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise—two short sentences plus standard Args/Returns. It is front-loaded with the key action and resource. Every word earns its place; no unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, output schema exists), the description is nearly complete. The output schema covers the return structure, so no further detail on return values is needed. However, some usage context (e.g., what 'sector overview' includes) could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'ticker' is described as 'The stock ticker symbol,' which adds no meaning beyond the schema's title and type. With schema coverage at 0%, the description should provide more context (e.g., format, example, constraints). The brief description is insufficient to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Retrieve overview information') and the resource ('specific sector based on a stock ticker'). It specifies the input (ticker) and implies the output is a sector overview. While it distinguishes from siblings like get_sector_overview (which likely takes sector ID directly), it does not explicitly contrast with similar tools, resulting in a slight deduction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many sibling tools covering sectors and tickers (e.g., get_sector_overview, get_sector_top_companies), the description lacks explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_research_reportsB

Retrieve a list of research reports within a specific sector.

Args: sector (str): The name of the sector. Returns: list[IndustryResearchReportEntry]: A list of research reports in the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose any behavioral traits such as side effects, authentication needs, or pagination. It only states that it returns a list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences plus Args/Returns lines. It front-loads the main action and includes no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with one parameter and an output schema, the description is minimally adequate. However, it lacks context about the nature of research reports and does not address potential confusion with similar sector tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds basic meaning for the sole parameter 'sector' beyond the schema's title and type, stating it is 'the name of the sector'. However, it lacks details like case sensitivity or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of research reports for a given sector, using specific verb 'retrieve' and resource 'research reports'. It distinguishes from sibling tools like get_sector_overview which return different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_sector_overview or get_sector_industries. There are no examples or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_top_companiesC

Retrieve a list of top companies within a specific sector.

Args: sector (str): The name of the sector. Returns: list[SectorTopCompaniesEntry]: A list of top companies in the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states that it returns a list of SectorTopCompaniesEntry, but does not disclose behavioral traits like read-only nature, rate limits, data freshness, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one line plus docstring), which is concise but under-specified. It lacks important context about the meaning of 'top' and how the tool differs from similar ones.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description need not explain return values, but it still omits context about the intended use case, what 'top' means, and how to interpret the results. With many sibling tools, more differentiation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description adds only 'The name of the sector' for the parameter, which is minimal and does not specify valid values, format, or examples. More detail is needed for a string parameter that likely has a constrained set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve', resource 'top companies', and scope 'within a specific sector', which distinguishes it from similar sibling tools like get_industry_top_companies. However, it does not specify what 'top' means (e.g., by market cap, revenue), leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparison with siblings such as get_industry_top_companies or get_sector_overview.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_top_companies_for_tickerC

Retrieve a list of top companies within a specific sector based on a stock ticker.

Args: ticker (str): The stock ticker symbol. Returns: list[SectorTopCompaniesEntry]: A list of top companies in the sector associated with the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the retrieval action and input/output types but does not mention side effects (e.g., read-only), error handling (e.g., invalid ticker), or permissions required. The agent lacks essential behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two main sentences followed by an Args/Returns layout. It is front-loaded with the purpose. However, the Returns section is redundant given an output schema exists. Still, it remains relatively efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single-parameter input and existence of an output schema, the description provides sufficient information for basic invocation. However, it lacks context on what determines 'top' companies and how the sector is derived from the ticker, which limits completeness for complex use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It provides only 'ticker (str): The stock ticker symbol,' which adds minimal meaning beyond the schema's type declaration. No constraints, examples, or domain specifics are included.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of top companies in a sector based on a stock ticker. It uses a specific verb ('Retrieve') and identifies the resource. However, 'top' remains ambiguous without criteria, and it doesn't differentiate from siblings like get_sector_top_companies, which likely takes a sector name directly. Still, the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With 60+ sibling tools, including get_sector_top_companies and get_industry_top_companies, the description offers no context on choosing this ticker-based approach over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_top_etfsB

Retrieve a list of top ETFs within a specific sector.

Args: sector (str): The name of the sector. Returns: list[SectorTopETFsEntry]: A list of top ETFs in the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the return type but does not disclose read-only nature, rate limits, data freshness, or any side effects. With no annotations, more behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded. However, the Args/Returns section is redundant with the schema. Despite this, it is concise with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description is minimally complete. It identifies input and return type but lacks usage guidance, examples, or edge case handling. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It merely restates the parameter name and type ('sector (str): The name of the sector.') without adding format examples, case sensitivity, or valid values. This adds no meaningful semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve a list of top ETFs within a specific sector.' It uses a specific verb ('Retrieve') and resource ('top ETFs'), and distinguishes from sibling tools like get_sector_top_companies and get_sector_top_mutual_funds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling list includes many sector tools but the description does not mention any exclusions or preferred scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sector_top_mutual_fundsB

Retrieve a list of top mutual funds within a specific sector.

Args: sector (str): The name of the sector. Returns: list[SectorTopMutualFundsEntry]: A list of top mutual funds in the sector.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectorYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It does not disclose behavioral traits like read-only nature, valid sectors, error handling, or rate limits. The description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured, with a clear action statement followed by Args and Returns sections. Every sentence is necessary and no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description is adequate but lacking behavioral context and guidance. It does not explain what qualifies as 'top' mutual funds or how sectors are defined, which could be helpful given the sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds a brief explanation for the parameter 'sector: The name of the sector,' which provides some meaning beyond the empty schema description. However, it lacks specificity such as examples or valid values. Given 0% schema coverage, more detail would be expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: 'Retrieve a list of top mutual funds within a specific sector.' It uses a specific verb and resource, and distinguishes from siblings like get_sector_top_companies and get_sector_top_etfs by focusing on mutual funds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. With many sibling tools for sector data, there is no mention of context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_splitsB

Retrieve stock split history for a stock.

Args: ticker (str): The symbol of the stock.

Returns: list[StockSplit]: List of stock split records.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It describes a simple read operation returning a list of StockSplit records, but omits any side effects, permissions, or rate limits. Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and uses a structured Args/Returns format. It is front-loaded but could be more efficient; every sentence is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single parameter and an output schema present, the description is fairly complete. It covers what the tool returns. No need to explain return values further, but edge cases like no splits found are not mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description compensates by explaining the parameter 'ticker' as 'The symbol of the stock'. This adds meaning beyond the schema, though no details on formatting or validation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Retrieve stock split history for a stock' with a specific verb and resource. However, it does not differentiate from sibling tools that also retrieve historical data (e.g., get_dividends, get_history).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No mention of prerequisites, context, or exclusions. Simply states what it does.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_support_resistance_levelsA

Retrieve support and resistance levels for a given ticker and period.

Args: ticker (str): The symbol of the security. period (str, optional): Time period for levels (e.g., '6mo'). Defaults to '6mo'.

Returns: SupportResistanceLevelsDict: Support and resistance levels data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo6mo

Output Schema

ParametersJSON Schema
NameRequiredDescription
current_priceNo
resistance_levelsNo
support_levelsNo
nearest_resistanceNo
nearest_supportNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It fails to mention any traits like rate limits, data freshness, error handling, or prerequisites. The minimal description only states the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with the purpose stated in the first sentence and parameter details in a structured format. Every sentence adds value, and no extraneous content exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description is minimally complete but lacks depth. It does not explain return values, potential errors, or edge cases. For a straightforward data retrieval tool, this is acceptable but could be more thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds brief explanations for both parameters (ticker as symbol, period with default and example), but does not elaborate on valid values or format constraints. This is adequate for a simple tool but could be more informative.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves support and resistance levels for a specific ticker and period. The verb 'retrieve' and resource 'support and resistance levels' are precise, and no sibling tool offers this functionality, providing strong differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (e.g., when needing support/resistance data for a security) but provides no explicit guidance on when not to use it or alternatives. It lacks comparative context with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_technical_indicatorsB

Retrieve technical indicators for a given ticker and period.

Args: ticker (str): The symbol of the security. period (str, optional): Time period for indicators (e.g., '6mo'). Defaults to '6mo'.

Returns: TechnicalIndicatorsDict: Technical indicators data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo6mo

Output Schema

ParametersJSON Schema
NameRequiredDescription
current_priceNo
fifty_two_week_highNo
fifty_two_week_lowNo
price_position_in_52w_range_percentNo
average_volumeNo
sma_20No
sma_50No
sma_200No
price_vs_sma_20No
price_vs_sma_50No
price_vs_sma_200No

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden of behavioral disclosure. It only implies a read operation ('Retrieve') but provides no details on side effects, dependencies, or constraints such as required authentication or data freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one main sentence and organized Args/Returns sections. Minor redundancy: period default is stated in both the description and schema. But overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, output schema present), the description covers basic functionality. However, it lacks usage guidance and behavioral details, making it adequate but not fully complete for decision-making among many siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaningful explanations for both parameters: ticker as 'the symbol of the security' and period as 'time period for indicators (e.g., '6mo')' with default. This adds value beyond the schema's type/title fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and resource 'technical indicators for a given ticker and period'. It is unambiguous but does not differentiate from many sibling tools like get_quick_technical_indicators or get_support_resistance_levels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description only states what it does, not when it is appropriate or when not to use it. With 60+ sibling tools, this is a significant omission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_cryptocurrenciesB

Retrieve a list of the top cryptocurrencies by market cap or volume.

Args: count (int, optional): Number of top cryptocurrencies to fetch. Defaults to 10.

Returns: list[CryptoFastInfo]: List of top cryptocurrencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description omits crucial behavioral details like whether the list is sorted by market cap or volume, any rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, though the docstring format (Args/Returns) adds unnecessary verbosity for a single parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple with one parameter and an output schema exists, the description lacks details on the meaning of 'top' (market cap vs volume) and any limitations, making it incomplete for fully informed use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; the description only repeats the parameter name and default value without adding constraints like valid range or behavior for edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves top cryptocurrencies by market cap or volume, distinguishing it from sibling crypto tools like get_crypto_info or get_crypto_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as get_crypto_info for specific details or get_crypto_history for historical data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ttm_cash_flow_statementB

Retrieve the trailing twelve months (TTM) cash flow statement for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[TTMCashFlowStatementEntry]: List of TTM cash flow statement entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden but only states the basic operation. It does not disclose behaviors like data freshness, error handling, or any required permissions, leaving significant gaps for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two clear sections (Args, Returns). Each sentence is necessary and efficiently communicates purpose and parameter without superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description covers the core functionality. However, it could mention that it returns a list of TTM cash flow entries, which is partially covered by the output schema. Lacks any mention of how it differs from similar tools like get_ttm_income_statement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'ticker' is described in the docstring as 'The symbol of the security', which adds minimal meaning beyond the schema's title 'Ticker'. Given 0% schema description coverage, this weak compensation keeps the score at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'trailing twelve months (TTM) cash flow statement' for a given ticker. It distinguishes this tool from siblings like get_balance_sheet and get_income_statement by specifying TTM cash flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as a standard cash flow statement or other financial statements. The description does not mention prerequisites or context for optimal use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ttm_income_statementB

Retrieve the trailing twelve months (TTM) income statement for a given ticker.

Args: ticker (str): The symbol of the security.

Returns: list[TTMIncomeStatementEntry]: List of TTM income statement entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It only states the return type but fails to mention data freshness, error handling, rate limits, or any side effects. For a read tool, basic transparency is lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. It uses a structured args/returns format without redundancy. However, the docstring style adds a few unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter, no nested objects) and has an output schema covering return values. The description covers the basic purpose and parameter, but omits usage context and behavioral details. It is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds a brief definition ('The symbol of the security') but no additional context like accepted formats, exchanges, or default values. The contribution is minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the trailing twelve months (TTM) income statement for a given ticker. The verb 'retrieve' and resource 'TTM income statement' are specific, and the tool name distinguishes it from siblings like 'get_income_statement' by specifying 'TTM'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., get_income_statement for non-TTM data). No context on prerequisites, data frequency, or scenarios where this tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_volatility_metricsB

Retrieve volatility metrics for a given ticker and period.

Args: ticker (str): The symbol of the security. period (str, optional): Time period for metrics (e.g., '1y'). Defaults to '1y'.

Returns: VolatilityMetricsDict: Volatility metrics data.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo1y

Output Schema

ParametersJSON Schema
NameRequiredDescription
daily_volatilityNo
annualized_volatilityNo
max_daily_gain_percentNo
max_daily_loss_percentNo
positive_daysNo
negative_daysNo
total_trading_daysNo
positive_days_percentageNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states 'Retrieve' implying a read operation but fails to disclose any behavioral traits such as authentication needs, rate limits, or data sources. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with two sentences for purpose, then structured Args and Returns. No unnecessary words. Slightly wordy but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While output schema exists, the description could hint at specific metrics (e.g., beta, volatility). It just says 'Volatility metrics data', which is vague but acceptable given the tool name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has only titles with no descriptions. The tool description adds meaningful parameter explanations: ticker as 'symbol' and period with example '1y' and default. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Retrieve' and resource 'volatility metrics' with a specific scope 'for a given ticker and period'. This distinguishes it from sibling tools like get_risk_metrics or get_financial_summary, which focus on different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives. Among many get_* siblings, there is no mention of scenarios where volatility metrics are preferred over other metric tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3/5.0
Disambiguation3/5

Many tools have overlapping purposes (e.g., multiple 'get_price_target' tools, various 'get_industry_top_*' tools, and several 'get_full_*' aggregators). While descriptions help differentiate, some ambiguity remains, requiring careful selection.

Naming Consistency4/5

All tools use a consistent 'get_' prefix with snake_case naming, making the pattern predictable. However, some names are vague (e.g., 'get_info' vs 'get_fast_info') and could be more descriptive.

Tool Count2/5

71 tools is excessive for a typical server. While the domain (financial data) is broad, many tools could be consolidated or grouped. The high count may overwhelm agents.

Completeness4/5

The tool set covers a wide range of financial data: stocks, funds, crypto, sectors, industries, options, technical analysis, etc. Minor gaps exist (e.g., no historical options data), but overall it is comprehensive for a data retrieval server.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server providing real-time stock data and options analysis through Yahoo Finance, enabling LLMs to access market data, analyze stocks, and evaluate options strategies.
    25
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    A Model Context Protocol server that enables interaction with Yahoo Finance to retrieve stock pricing, company information, and historical financial data through natural language queries.
    10
    29
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol server built with FastMCP that provides financial data tools for AI agents, enabling them to access and analyze stock market information from Yahoo Finance through natural language queries.
    2
  • A
    license
    C
    quality
    D
    maintenance
    A Model Context Protocol server providing comprehensive financial data from Yahoo Finance, allowing users to retrieve detailed stock information, financial statements, options data, and market news.
    34
    MIT

Latest Blog Posts

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/danchev/openmarkets'

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