Skip to main content
Glama

FinBridge

Minervini Trend Template Screener (FinBridge DB)

screen_minervini
Read-only

Screen KR, US and/or TW stocks that pass Mark Minervini's 8-point Trend Template (from "Trade Like a Stock Market Wizard"), evaluated on the nightly indicators_latest snapshot (daily corporate-action-adjusted KR prices). Returns stage-2 uptrend leaders, sorted by relative strength by default.

The 8 criteria (all required):

  1. Price above the 150-day and 200-day moving averages

  2. 150-day MA above the 200-day MA

  3. 200-day MA rising (vs ~1 month ago) [can be relaxed via require_sma200_rising]

  4. 50-day MA above both the 150- and 200-day MAs

  5. Price above the 50-day MA

  6. Price at least 'above_low_pct'% above its 52-week low (default 25)

  7. Price within 'near_high_pct'% of its 52-week high (default 25)

  8. RS rating >= 'rs_min' (default 70), where RS is the national percentile (1-99) of blended 3/6/12-month momentum vs the stock's own market

Optionally also require a Volatility Contraction Pattern base via require_vcp. VCP detection here is an APPROXIMATION (heuristic swing/contraction count, not a discretionary chart read) and can miss valid bases or flag false positives.

Args:

  • market: 'kr' (DART/KOSPI+KOSDAQ), 'us' (EDGAR), or 'all' (default)

  • rs_min: minimum RS percentile 1-99 (default 70; Minervini prefers higher)

  • near_high_pct: max % below the 52-week high (default 25; smaller = tighter/closer to high)

  • above_low_pct: min % above the 52-week low (default 25)

  • require_sma200_rising: require criterion 3 (default true)

  • require_vcp: also require a heuristically-detected VCP base (vcp_setup=1) (default false; VCP is approximate)

  • min_vol_avg20: optional minimum 20-day average volume (liquidity filter; recommended to exclude illiquid microcaps)

  • min_price: optional minimum close price (Minervini avoids low-priced/penny stocks; e.g. 10 for US$, 5000 for KRW)

  • sort_by: rs_pctile|rs_120d|ret_120d|ret_20d|pct_from_52w_hi|close (default rs_pctile)

  • order: 'asc'|'desc' (default 'desc'); limit: 1-50 (default 20); response_format: 'markdown'|'json'

Returns: {count, market, criteria:{rs_min, near_high_pct, above_low_pct, require_sma200_rising}, rows:[{name, source, ticker|stock_code, as_of, close, sma50, sma150, sma200, rs_pctile, rs_120d, pct_from_52w_hi, pct_from_52w_lo, ret_120d}]}.

Examples:

  • US leaders in a confirmed uptrend: {market:'us', min_vol_avg20: 500000}

  • Strict KR setups near highs with strong RS: {market:'kr', rs_min: 85, near_high_pct: 15, min_vol_avg20: 100000}

Use when: finding stage-2 momentum leaders (Minervini/CAN SLIM style). Don't use for a single stock's detail (get_technicals), fundamentals (screen_companies/get_valuation), or arbitrary technical signals (screen_technical). Notes: RS threshold of 70 keeps only stocks outperforming ~70% of their national market. KR/US/TW prices are adjusted for corporate actions but not dividends (indicators around dividend events may be slightly distorted); US history starts 2023-03-28 (volume from 2024-07-01) so long-window figures are shallower there. Market data, not investment advice. Errors: an empty result is not an error (count 0 = nothing passed today); 'database has not been built yet' -> ingest/indicators has not run.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows, 1-50 (default 20)
orderNoSort direction (default desc)desc
marketNoMarket: 'kr' (default), 'us', 'tw', or 'all'. Japan has no redistributable price source, so it is not screenable.kr
rs_minNoMinimum RS percentile (default 70)
sort_byNoSort column (default rs_pctile)rs_pctile
min_priceNoMinimum close price (Minervini avoids low-priced stocks; e.g. 10 for US$, 5000 for KRW)
require_vcpNoAlso require a heuristically-detected VCP base (vcp_setup=1). VCP detection is approximate.
above_low_pctNoMin % above the 52-week low (default 25)
min_vol_avg20NoMinimum 20-day average volume (liquidity filter)
near_high_pctNoMax % below the 52-week high (default 25)
response_formatNo'markdown' for a table, 'json' for compact machine-readable outputmarkdown
require_sma200_risingNoRequire the 200-day MA to be rising (criterion 3)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYes
countYes
notesNo
orderNo
marketYes
signalsNo
sort_byNo
us_noteNo
criteriaNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses substantial behavioral context: VCP detection is an 'APPROXIMATION (heuristic swing/contraction count, not a discretionary chart read)', prices are 'adjusted for corporate actions but not dividends', US history has known start dates that affect long-window figures, and RS percentile interpretation is explained. It even clarifies that an empty result is not an error and what a specific database error message means.

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 long but justified by the tool's complexity (12 parameters, 8 screening criteria, multiple markets). It is well-structured with clear sections: criteria list, arguments, return shape, examples, use-when, notes, errors. It drops one point because the Arguments section partially repeats schema descriptions and the 8-criteria list, while valuable, adds substantial length; a slightly tighter version would be even more concise.

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?

The description is complete for a complex screening tool: it covers the data source snapshot, all filter semantics, return fields, sorting options, example invocations, concrete use/when-not-use guidance, data caveats (dividends, US history start), and error conditions. The output schema likely exists, but the description also spells out the expected return object, leaving the agent with everything needed to call the tool 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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful context beyond the schema: it explains why each parameter matters (e.g., 'min_price' avoids penny stocks with example values for US$ and KRW), how 'near_high_pct' relates to tightness, and that 'rs_min' has a Minervini preference for higher values. While the field-level descriptions in the schema are already strong, the tool description enriches them with rationale and 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 opens with a specific verb and resource: 'Screen KR, US and/or TW stocks that pass Mark Minervini's 8-point Trend Template.' It explicitly names the methodology, the underlying data snapshot, and the return focus ('stage-2 uptrend leaders'), making the tool's purpose unambiguous and easily distinguished from siblings like screen_technical or get_technicals.

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?

The 'Use when' section states exactly when to apply the tool: 'finding stage-2 momentum leaders (Minervini/CAN SLIM style).' It also gives explicit exclusions: 'Don't use for a single stock's detail (get_technicals), fundamentals (screen_companies/get_valuation), or arbitrary technical signals (screen_technical).' This gives the agent clear routing guidance.

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.

TDQS

A4.2/5.0
Disambiguation4/5

Most tools have clearly distinct resource+action targets, and the overlapping screen_* tools are thoroughly cross-referenced with 'use screen_X instead' guidance. Minor ambiguity exists between get_disclosure_feed, get_dart_filings, and get_dart_major_events, which all surface KR filings from different angles but remain distinguishable.

Naming Consistency5/5

Every tool follows a consistent verb_noun snake_case pattern: get_* for retrievers, screen_* for screeners, search_* for lookups, plus action verbs like analyze_, backtest_, compare_, import_, and query_. Subfamilies (dart_*, edgar_*, fred_*, crypto_*) are consistently prefixed, making tool selection predictable.

Tool Count3/5

37 tools is heavy, and the four momentum screeners (canslim/kell/minervini/schwartz) plus three KR disclosure tools could arguably be collapsed into parameterized variants. However, the server's unusually broad scope—KR/US/TW/JP/EU equities, crypto, macro, portfolio, backtesting—means most tools earn their place, so the count is high but not chaotic.

Completeness4/5

The surface covers the core workflow well: search, prices, fundamentals, filings, insider trades, valuation, screeners, backtesting, and portfolio tracking for KR/US, plus crypto and macro. Notable gaps are the lack of single-company financial-statement tools for TW/JP/EU (only available through screen_companies) and no real-time stock quotes, but these are workable for the stated local-database research purpose.

Resources