Skip to main content
Glama
lkcair

yfinance-ai MCP server

by lkcair

get_fund_holdings

Read-onlyIdempotent

Retrieve the top holdings of an ETF or mutual fund by ticker, including weights and values, and set a limit on the number returned.

Instructions

Get top holdings for an ETF or mutual fund.

Args: ticker: Fund ticker symbol (e.g., 'VOO', 'SPY', 'QQQ') limit: Maximum number of holdings to return (default 25)

Returns: List of top holdings with weights and values

Input Schema

NameRequiredDescriptionDefault
limitNo
tickerYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds modest value by noting the return shape is holdings with weights and values, but it says nothing about data freshness, pagination beyond the limit, or coverage limits of the top-N cutoff.

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 first sentence followed by a compact Args/Returns block; nothing is padded. The limit default restates the schema, which is a minor redundancy, but the whole definition stays small and scannable.

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 two-parameter read-only tool with an output schema already defined, this covers the essentials: what it fetches, both parameters, and the topic of the return. An agent could call it correctly without further guessing; only sibling differentiation and data-freshness caveats are absent.

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 must carry parameter meaning, and it does: ticker is a fund ticker symbol with concrete examples (VOO, SPY, QQQ) and limit is the max holdings returned with a stated default of 25. This meaningfully exceeds the bare schema types.

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?

States a specific verb+resource+scope ('top holdings for an ETF or mutual fund'), so an agent knows exactly what it retrieves. It does not, however, differentiate itself from nearby siblings such as get_major_holders, get_mutualfund_holders, or get_fund_sector_weights, which is the only thing keeping it below a 5.

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 fund-type framing ('ETF or mutual fund') implies the intended use case, but there is no explicit when-to-use guidance and no mention of when to prefer a sibling like get_mutualfund_holders instead. Usage is inferable rather than stated.

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