Skip to main content
Glama
Yahoo Finance MCP Server

Yahoo Finance MCP Server

get_fund_data

Read-onlyIdempotent

Retrieve ETF or mutual fund holdings, expense ratios, sector weightings, and asset allocation to analyze fund composition and compare costs.

Instructions

What an ETF or mutual fund holds and costs: category and fund family, expense ratio and turnover against its category average, top holdings with weights, sector weightings, and asset-class split (stock, bond, cash).

Use for "what's in SPY", fund overlap and concentration checks, or comparing fund costs. Not for individual stocks: use get_company_info for those.

Returns Markdown by default, or JSON when response_format='json'. A symbol that is not a fund returns a short message.

Input Schema

NameRequiredDescriptionDefault
tickerYesETF or mutual fund symbol (e.g., 'SPY', 'QQQ', 'VTI', 'VFIAX')
response_formatNoOutput format: 'markdown' for human-readable or 'json' for machine-readablemarkdown

Output Schema

NameRequiredDescriptionDefault
tickerNo
messageNoSet instead of data when there is nothing to return for this request (for example, no dividends on record).
overviewNo
operationsNoAttribute -> {fund, categoryAverage}.
descriptionNo
topHoldingsNo{symbol, name, weight} with weight as a fraction.
assetClassesNo
sectorWeightingsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar is lower. The description still adds real value by disclosing the output-format switch (Markdown default, JSON on request) and the failure mode — a non-fund symbol yields a short message rather than an error. No permission or rate-limit notes, but none are plausible for a public read-only data lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight paragraphs: what it returns, when to use it and when not to, then response format and edge case. Content is front-loaded and no sentence is redundant with the schema or annotations.

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?

An output schema exists, so return-value documentation is not required. For a two-parameter read-only lookup, the description covers purpose, selection criteria, format control, and the non-fund-input edge case — everything needed to call it 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 and the schema already carries ticker examples and the response_format enum. The description goes slightly beyond by restating the default Markdown vs. JSON contract and by clarifying that the ticker may legitimately be a non-fund symbol that returns a short message, which affects how an agent interprets a terse response.

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?

Names a specific resource (ETF/mutual fund holdings and costs) and enumerates exactly what it returns: category, family, expense ratio, turnover vs. category average, top holdings with weights, sector weights, asset-class split. It explicitly distinguishes itself from the sibling get_company_info for individual stocks, so an agent can route without opening either 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?

Gives concrete triggering scenarios ("what's in SPY", fund overlap/concentration checks, comparing fund costs) and an explicit exclusion with the named alternative (individual stocks → get_company_info). This is the when/when-not/alternative pattern at full strength.

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