Skip to main content
Glama

Market data: stock screener

stock_screener

Screen US stocks using TradingView rankings or Finviz filters, then compare overlapping tickers on change percentage.

Instructions

Run the US stock screener on both providers and cross-check the rows.

TradingView ranks the entire market server-side (sort_by ∈ market_cap, dividend_yield, change, price); Finviz can be narrowed with its own filter language (finviz_filters, e.g. cap_smallover,sec_technology or t=AAPL,MSFT). Tickers that both providers return are compared on change percentage.

Args: country: TradingView market (america, turkey, …). sort_by: TradingView sort key. limit: Rows to request from each side (≤200 on Finviz). finviz_filters: Optional Finviz filter expression.

Returns: Envelope with rows (TradingView ranking) and a per-row finviz_match showing whether Finviz agreed.

Input Schema

NameRequiredDescriptionDefault
limitNo
countryNoamerica
sort_byNomarket_cap
finviz_filtersNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that ranking happens server-side, that the two providers are cross-checked on change percentage, and that Finviz caps at 200 rows. It omits failure behavior when one provider errors, rate limits, and whether the call is read-only (implied, but not stated).

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?

Front-loaded purpose sentence followed by prose that explains the two providers, then compact Args/Returns blocks. The Returns block partially restates the output schema, which is mild redundancy against an existing output_schema, but the overall density is high and no sentence is filler.

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 four-parameter, dual-provider tool with an output schema, the description covers inputs, provider semantics, and the comparison logic. The remaining gap is operational edge cases: what happens when one provider returns nothing or fails, and how rows are matched by ticker beyond change percentage.

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 coverage is 0%, so the description must compensate and does: country is tied to TradingView markets with examples, sort_by has its enum values listed, limit is given a per-provider cap, and finviz_filters gets concrete example expressions. An agent could populate every parameter from the description alone.

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?

Opening sentence states a specific verb and resource: 'Run the US stock screener on both providers and cross-check the rows.' It immediately conveys the distinctive dual-provider design. It does not explicitly address the closest sibling, stock_screener_filters, so an agent must infer the division of labor.

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 clearly explains the division of the two providers: TradingView ranks server-side via sort_by, Finviz narrows via its own filter language. That is actionable usage context. It stops short of explicit when-not-to-use guidance or naming stock_screener_filters as the place to discover filter syntax.

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