Skip to main content
Glama

Screen Dividends

screen_dividends
Read-only

πŸ’° THE income screener β€” "which stocks pay a high / reliable / growing DIVIDEND?" Ranks the DIVIDEND-PAYING universe (all payers, not just news-covered) and hands you the raw pieces to tell a real income name from a YIELD TRAP (don't trust a headline yield). πŸ”΄ A multi-metric ask that also needs P/E / financial-health (dividend AND low P/E AND healthy) belongs in screen_unified (a fundamental leg + dividend_min_streak_years/dividend_min_cagr gate). THIS tool is the dividend specialist (no P/E filter) but it both INCLUDES (gics) and EXCLUDES (exclude_gics) a sector. Scope (country/gics) is OPTIONAL β€” omit both for a fast whole-market rank. πŸ”΄ no_cut_streak_yrs is a bounded RELIABILITY signal, capped at 10 (clean across the tracked decade incl. 2020/ 2022 stress) β€” NOT the dividend's full age; never state a multi-decade "aristocrat/king" streak, say "clean 10y+". Each row's dividend block decomposes the yield: yield_pct (forward/sustainable β€” quote this), yield_trailing_pct (>> yield_pct β‡’ a special inflated it), payout_ratio (>1 = unsustainable), ttm_div_yoy_pct, no_cut_streak_yrs, last_cut_year, cagr_5y_pct, plus week52_high/low + pe_ratio/pb_ratio/eps + a news block. πŸ”΄ Never rank on yield alone: high yield + recent last_cut_year + negative yoy + high payout + bad news = TRAP; high yield from a price drop + intact/growing dividend + long streak = possible VALUE. Read the payload's _guide. limit default 15 (max 50).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "screen_dividends"
  }
}

Input Schema

NameRequiredDescriptionDefault
gicsNoA GICS sector/industry β€” a CODE PREFIX (sector `25` / group `2550` / industry `255010` / sub `25501010`, CSV for several) OR plain English ('banks', 'semiconductors', 'biotech'); the server resolves it. πŸ”΄ ENGLISH (translate the concept first: ΰΈ˜ΰΈ™ΰΈ²ΰΈ„ΰΈ²ΰΈ£β†’'banks'). So 'European banks' = gics='banks' + country=EU codes.
limitNoMax rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump β€” heavily-covered assets have hundreds of articles.
countryNoMarket filter β€” CSV of ISO-2 codes (e.g. `US` or `CN,TW,HK`). 🌍 If the question names a NATIONALITY or REGION ('European','Thai','Chinese','ASEAN'), put it HERE β€” never leave it inside a concept/`q`/`gics` field. Enumerate a region into its member ISO-2s yourself (Europeβ†’GB,DE,FR,IT,ES,NL,CH,SE; ASEANβ†’TH,SG,MY,ID,PH,VN).
min_cagrNoMin 5-year dividend CAGR, %.
order_byNo`yield` (default) | `streak` | `cagr`.
max_yieldNoMax yield % β€” guards against trap-tier yields.
min_yieldNoMin dividend yield in PERCENT (3 = 3%).
max_payoutNoMax payout ratio β€” 'high yield but payout NOT stretched'. Fraction (0.7) or percent (70).
exclude_gicsNoOPTIONAL β€” EXCLUDE a sector/industry from the screen (GICS code prefix e.g. '4010', OR plain English 'banks' β€” the server resolves the name). 'high-yield stocks but NOT banks' = exclude_gics='banks'. A stock with no GICS classification is KEPT.
min_streak_yearsNoMin no-cut streak years (0–10; caps at 10 = clean across the whole tracked decade). HIGHER = more reliable. A low bar lets a name that CUT recently through β€” it may have only rebuilt a short streak since its `last_cut_year`, so a short streak β‰  'stable'. The stronger the 'safe / stable / hold-for-years' intent, the closer to the cap you should set it.
max_market_cap_usdNoMax market cap, USD.
min_market_cap_usdNoMin market cap, USD.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true; the description carries real behavioral weight beyond that β€” that `no_cut_streak_yrs` is capped at 10 so a multi-decade aristocrat claim would be wrong, that `yield_trailing_pct` above `yield_pct` signals a special, that payout >1 is unsustainable, and that each row carries a `dividend`, valuation and `news` block plus a `_guide`. This is exactly the kind of disclosure annotations cannot provide.

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 core routing and trap logic is front-loaded, which is good, but the block is long, uses emoji and all-caps emphasis, and repeats the yield-trap warning twice (once in prose, once in the πŸ”΄ Never rank line). Several clauses about the payload overlap with each other.

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 12-parameter, all-optional screener with no output schema, the definition covers routing, scope semantics, the reliability cap, and the shape of the returned row (dividend fields, valuation fields, news, _guide). Nothing an agent needs in order to call it and interpret the rows is missing.

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 100%, so the baseline is 3, and the description does add meaning for `no_cut_streak_yrs` (bounded reliability signal, not dividend age) and for include-vs-exclude sector handling. However it also states 'limit default 15 (max 50)' while the schema's own limit description says 'default 20, hard cap 50', a numeric inconsistency that could mislead an agent.

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?

States a concrete verb and resource ('ranks the DIVIDEND-PAYING universe') and immediately distinguishes itself from the sibling screener: 'THIS tool is the dividend specialist (no P/E filter)' versus screen_unified for multi-metric asks. An agent can route between screen_dividends, screen_unified and screen_stocks without opening any schema.

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

Usage Guidelines5/5

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

Explicit routing rules: multi-metric dividend + P/E + health asks belong in screen_unified with a `fundamental` leg and `dividend_min_streak_years`/`dividend_min_cagr` gate; scope is optional and omitting country/gics gives a fast whole-market rank. It also states an analytical rule of use ('never rank on yield alone') with the trap versus value pattern spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.