Skip to main content
Glama

etf_screen

Read-onlyIdempotent

Every fund matching some filters, each with its net assets and the source and date that number came from. Filters: desk, issuer, max_fee_pct, min_assets_usd; and, from the ETFIQ screener, tracks (the index the funds track, such as "S&P 500"), min_yield_pct (12-month yield of at least that percent), pays (payout frequency: weekly, monthly, quarterly, semiannual or annual, published for income ETFs) and sort (assets, largest first; fee, lowest first; yield, highest first). count is the whole matching set: when fewer rows come back, truncated and note say so, so the rows are part of the set, not all of it. first names every fund tied at the top of the order. Use for "find me all X" and "cheapest X" questions rather than repeated searches. Fees are percentages, not basis points. Funds with no published data for a filter are set aside and counted, not treated as failing it.

Input Schema

NameRequiredDescriptionDefault
deskNo
paysNoPayout frequency, published for income ETFs.
sortNoassets: largest first; fee: lowest first; yield: highest first.
limitNo
issuerNo
tracksNoThe index the funds track, such as S&P 500.
max_fee_pctNo
min_yield_pctNo12-month yield of at least this many percent (10 is 10%).
min_assets_usdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / min_yield_pct
      Added value: +{
      +  "description": "12-month yield of at least this many percent (10 is 10%).",
      +  "type": "number"
      +}
    • addedInput schema / properties / pays
      Added value: +{
      +  "description": "Payout frequency, published for income ETFs.",
      +  "enum": [
      +    "weekly",
      +    "monthly",
      +    "quarterly",
      +    "semiannual",
      +    "annual"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "assets: largest first; fee: lowest first; yield: highest first.",
      +  "enum": [
      +    "assets",
      +    "fee",
      +    "yield"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / tracks
      Added value: +{
      +  "description": "The index the funds track, such as S&P 500.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantial behavioral detail: fees are percentages not basis points, funds lacking published data are set aside and counted rather than failed, and truncated/note/count/first explain partial-result and tie semantics. This is exactly the value-add over structured fields that earns a 5.

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?

It is a dense but information-rich paragraph where nearly every clause carries a distinct fact (return shape, filter list, count/truncation, ties, fee units, null handling). The run-on quality and late placement of the usage guidance keep it from a 5.

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 no output schema and nine parameters, the description does the work of explaining the returned structure (count, truncated, note, first) and edge-case handling, making it largely complete. The absence of explicit limit handling and of specific sibling routing leaves a minor gap.

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 only 44%, but the description documents desk, issuer, max_fee_pct, min_assets_usd, tracks, min_yield_pct, pays, and sort — most of the nine parameters — with meaningful semantics (e.g., fee percentages not bps, yield as 12-month percent). Only limit is left implicit via the truncation discussion, so it nearly compensates for the low schema 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 returns every fund matching supplied filters, each with net assets and the source/date of that figure. This is a specific resource (an ETF screening result set) with the returned payload named. It doesn't explicitly name the sibling tools it competes with (etf_search, etf_compare), but the scope is unambiguous.

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?

"Use for 'find me all X' and 'cheapest X' questions rather than repeated searches" gives an explicit when-to-use and contrasts against an alternative approach. It's clear context without naming specific sibling tools or exclusion cases, so it stops short of a 5.

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.

Resources