Skip to main content
Glama
narumiruna

Yahoo Finance MCP Server

by narumiruna

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Each tool covers a distinct data domain (financials, quotes, analyst actions, news, search, screeners, price history, options, holders). The only potential overlap is between the generic screener and the specialized gapper/top tools, but their descriptions clearly differentiate their purposes.

    Naming Consistency4/5

    All tools share the yfinance_ prefix and mostly follow a verb_noun structure (e.g., get_financials, get_ticker_info). A few tools like search, screen, and screen_gappers deviate from the 'get_' pattern, creating minor inconsistency, but the overall naming remains predictable and readable.

    Tool Count5/5

    With 13 tools, the server is well-scoped for a comprehensive financial data API. Each tool serves a meaningful purpose, and the count is within the ideal range, avoiding both bloat and thinness.

    Completeness5/5

    The toolset covers major Yahoo Finance data categories including fundamentals, quotes, analyst targets, upgrades/downgrades, news, search, screeners, price history, options, and holders. This is a comprehensive surface for the stated domain with no obvious dead ends.

  • Average 4/5 across 13 of 13 tools scored. Lowest: 3.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 6 of 6 community issues answered or closed in the last 6 months
    • 36 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds that results are returned newest first and that available fields vary by symbol and analyst action, which is useful contextual behavior. However, it does not cover potential missing data or error handling.

    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 well-organized, with a clear opening sentence followed by a structured field list. It provides useful detail without excessive verbosity, though the field enumeration could be considered slightly long.

    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 simple read-only tool with only two parameters and a known output schema, the description adequately explains the returned data, ordering, and field variability. It lacks alternative usage guidance, but that dimension is separate. Overall, it is complete enough for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Input schema covers 100% of parameters with descriptions, including symbol and max_rows semantics. The description does not add parameter-specific details beyond what the schema already provides, so baseline 3 applies.

    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 fetches analyst upgrades, downgrades, initiations, and price target changes, specifying the resource and action. However, it does not differentiate from the sibling tool yfinance_get_analyst_price_targets, which may overlap on price target changes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives like yfinance_get_analyst_price_targets. The description only describes functionality without any when/when-not or alternative references.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the scope of data (consensus estimates, trends, etc.) but discloses no additional behavioral traits like pagination, rate limits, or the behavior of the 'sections' parameter beyond what the schema already provides.

    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?

    The description is a single sentence that efficiently lists the key data types covered. No filler, no redundancy, and it directly conveys the tool's scope.

    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?

    The structured schema (3 params with 100% coverage), annotations (read-only, idempotent), and presence of an output schema cover safety and parameters. The description sufficiently conveys the core purpose, but lacks usage alternatives, keeping it just below the top tier.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, meeting the baseline of 3. The description lists content areas that map to the 'sections' parameter, but adds no new meaning about the 'symbol' or 'max_rows' parameters beyond what the schema already details.

    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 uses the specific verb 'Fetch' and identifies the resource as analyst estimates, listing key content areas (consensus estimates, EPS/revenue trends, revisions, recommendations, earnings history). This clearly differentiates from sibling tools like price targets or news, though it does not explicitly name alternatives.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool over alternatives. Sibling tools exist (e.g., yfinance_get_analyst_price_targets, yfinance_get_upgrades_downgrades) but no usage context, prerequisites, or exclusions are offered.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds meaningful context by disclosing that analyst coverage and available fields vary by symbol, and by enumerating the exact return fields. This goes beyond the structured annotations and clarifies potential variability.

    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?

    The description is concise and well-structured. It front-loads the main purpose in one sentence, then uses a bullet list to clearly present return fields. Every sentence and bullet earns its place with no redundant information.

    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?

    The tool is simple with a single well-documented parameter and output schema present. The description covers the return fields and adds a variability caveat, which is sufficient for the agent to understand behavior. Minor edge cases (e.g., missing coverage) are not explicitly detailed, but the variability warning implies them, so this is near-complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema fully describes the only parameter 'symbol' with examples and a clear description (100% coverage). The description does not add any additional parameter semantics or format details beyond what the schema already provides, so a baseline score of 3 is appropriate.

    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 clearly states the action ('Fetch') and the resource ('current price and analyst consensus price targets'), which is specific and distinguishes it from sibling tools like get_upgrades_downgrades that focus on analyst recommendations. This is a clear and unambiguous purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no explicit guidance on when to use this tool versus alternatives. The description only states what it does, and while the sibling list implies different use cases (e.g., upgrades/downgrades for analyst actions), no direct comparisons or exclusions are provided. Guidance is only implied at best.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, so the safety profile is clear. Description adds that it returns historical data and the structure of the output (income, balance sheet, cash flow), which is useful but not extensive behavioral context. No contradictions with annotations.

    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 sentences, each serving a purpose: first defines the action, second describes output, third suggests usage. No unnecessary words or redundancy. Appropriately sized and front-loaded.

    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?

    Given the presence of an output schema (so return format is documented elsewhere), the description covers the tool's purpose, output structure, and typical use cases. It is adequate for a simple read-only tool, though it could mention data range or limitations.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Input schema has 100% coverage with descriptions for both parameters (symbol and frequency). Description does not add any new semantics beyond the schema; it only mentions 'historical data' which is implied by the tool's nature. Baseline 3 is appropriate.

    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?

    Description clearly states it fetches financial statements (income, balance sheet, cash flow) with historical data. Verb 'Fetch' and resource 'financial statements' are specific, and the tool is well-distinguished from siblings like price history or holders.

    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?

    Description says 'Use the data to analyze trends, calculate ratios, or compare periods' which implies usage context but does not explicitly state when to use vs alternatives or when not to use. No exclusions or comparisons to siblings provided.

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

  • Behavior3/5

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

    Annotations already declare read-only, idempotent, open-world behavior. The description's 'Fetch' is consistent. It adds no additional behavioral context such as potential response sizes, rate limits, or pagination, but the max_rows parameter in the schema partially addresses that.

    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?

    A single, clear sentence that packs the tool's purpose and scope without extraneous detail.

    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?

    The description covers the core data types exposed by the tool and an output schema exists to define return structure. It lacks explicit usage guidance but is otherwise sufficient for understanding the tool's domain.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    All three parameters (symbol, max_rows, sections) have thorough descriptions in the schema, so the description does not need to elaborate. It adds no extra parameter semantics beyond the schema's high coverage.

    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 uses a specific verb 'Fetch' and identifies the exact resource: ETF or mutual-fund composition, holdings, exposures, ratings, and operating details. This clearly differentiates it from sibling tools focused on analyst data, news, price history, etc.

    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?

    While the description clearly implies use for fund-related data, it provides no explicit guidance on when to choose this tool over siblings such as yfinance_get_holders or yfinance_get_ticker_info. It neither names alternatives nor states exclusions.

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

  • Behavior3/5

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

    Annotations already declare the tool as read-only, non-destructive, idempotent, and open world. The description adds that it returns JSON data with metrics, but does not elaborate on behaviors like rate limits or data freshness. The description does not contradict annotations.

    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?

    The description is concise, front-loaded with the main purpose, and lists entity types without unnecessary detail. Every sentence adds value.

    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?

    The description is fairly complete given the presence of an output schema and detailed input schema. It covers the purpose and entity types, though it could briefly mention that results are sorted by relevance (implied by 'top'). Minor gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with detailed parameter descriptions in the input schema. The tool description adds a narrative list of top_type options but does not provide new constraints or clarifications beyond what the schema already offers.

    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 clearly states the tool retrieves top-ranked financial entities within a sector. It lists specific ranking types (ETFs, mutual funds, largest companies, etc.), distinguishing it from sibling tools that focus on single entities or historical data.

    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 description implies usage for sector-level rankings but does not explicitly state when to use this tool over alternatives like yfinance_get_ticker_info or yfinance_search. No when-not-to-use guidance is provided.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety traits. The description adds capability scope (predefined keys and custom query trees) but not behavioral nuances such as response size limits or pagination behavior. Since annotations carry the safety burden, a 3 is appropriate.

    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?

    The description is two sentences, front-loaded with the primary action and immediately followed by the key distinction between predefined and custom queries. No filler or redundancy, earning a top score.

    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?

    Given the tool's moderate complexity (9 parameters) but rich schema (100% param coverage) and presence of an output schema, the description is sufficiently complete. It covers the core purpose and the two query modes, though it omits nuanced guidance like when to use count vs. size, which the schema already covers. This is above average but not exhaustive.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the baseline is 3. The description adds a high-level note about query being either a predefined key or a query tree, but this only lightly supplements the schema's already detailed parameter descriptions for query and query_type. It does not explain interactions between size/count or sort fields.

    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 clearly states the tool's function with a specific verb and resource: 'Run a Yahoo Finance screener query.' It further distinguishes itself from siblings like yfinance_screen_gappers and yfinance_get_top by mentioning support for both predefined screener keys and custom query trees, which is this tool's unique scope.

    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 description implies usage context by stating it supports predefined and custom queries, but it does not explicitly say when to use this tool over alternatives like yfinance_screen_gappers or yfinance_get_top. No exclusions or alternative tool references are provided, so guidance is only implied.

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

  • Behavior4/5

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

    Annotations already provide readOnlyHint, idempotentHint, etc. The description adds behavioral nuances: fields vary by security type, timestamps converted. This goes beyond annotations without contradiction.

    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 well-organized with bulleted categories, but slightly verbose with overlapping categories (e.g., Price/Valuation/Trading). Front-loaded purpose is clear.

    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?

    Given the tool's complexity, annotations richness, and output schema implied via field listing, the description is complete. It provides sufficient detail on return fields and behavior for agent decision-making.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The sole parameter 'symbol' is well-described in the input schema with examples, achieving 100% coverage. The description adds no extra parameter meaning beyond what schema provides.

    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 clearly states it retrieves comprehensive stock data including specific categories like company info, financials, trading metrics, and governance. It distinguishes from sibling tools by emphasizing comprehensiveness vs. specialized tools like yfinance_get_financials.

    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 description implies use when full stock details are needed, but lacks explicit guidance on when to choose this over siblings like yfinance_get_financials or yfinance_get_price_history. No 'when not' or alternative recommendations.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds value by detailing the output JSON structure (fields like id, content, title, etc.), which provides behavioral context beyond the annotations. It does not contradict any annotation.

    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?

    The description is concise (three sentences) and front-loaded with the core action. Every sentence serves a purpose: action, output structure, usage guidance. No unnecessary information.

    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?

    Given the tool has one parameter, a rich output schema, and annotations, the description covers the output in detail and provides usage context. It is slightly incomplete as it does not mention any result limits or pagination, but overall sufficient.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already documents the symbol parameter with examples. The description does not add any meaning beyond the schema; it focuses on the output. Baseline 3 is appropriate.

    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 clearly states it fetches news for a specific stock using a specific verb ('Fetch') and resource ('recent news articles and press releases'). It distinguishes this tool from siblings like yfinance_get_financials and yfinance_get_ticker_info, which serve different data types.

    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 description provides a clear use case ('track company announcements, market sentiment, and breaking news') but does not explicitly contrast with alternatives or state when not to use this tool. No sibling differentiation or exclusion criteria are provided.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by detailing the JSON structure returned, including sections like major_holders and insider_transactions, which goes beyond the annotations and output schema.

    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 concise, with a clear first sentence stating the purpose, followed by a bulleted list of return sections. It is well-structured and front-loaded, though the bullet list could be slightly more compact without losing clarity.

    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?

    Given the presence of an output schema and comprehensive annotations, the description provides sufficient context about the data returned. It lists the sections but does not cover edge cases like empty results or rate limits. However, for a read-only tool with openWorldHint, this is adequate.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so baseline is 3. The description does not add additional meaning to the parameters beyond what is in the schema (symbol and max_rows). The schema already provides descriptions for both parameters.

    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 clearly states the tool fetches major holders, institutional holders, mutual fund holders, and insider data. It distinguishes from siblings like yfinance_get_financials which deal with financial statements, making the purpose specific and 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?

    The description explicitly states 'Use this to analyze ownership concentration, insider activity, and institutional interest,' providing clear context for when to use. It does not explicitly mention when not to use or list alternatives, but the sibling tools cover different data types, making the usage fairly clear.

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

  • Behavior4/5

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

    Annotations already provide key behavioral traits (readOnlyHint=true, idempotentHint=true), and the description adds the specific tuning for gappers, which complements rather than contradicts. The description adds value beyond the annotations without being redundant.

    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?

    The description is a single, clear sentence of only 11 words, with no fluff or repetition. It is optimally concise and front-loaded.

    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?

    Given the presence of a full output schema, annotations, and 100% schema coverage, the description provides sufficient context. No additional information is needed for an agent to use this tool correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 100% description coverage, so the schema already explains each parameter thoroughly. The description adds no additional parameter semantics, meeting the baseline of 3.

    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 clearly identifies a specific verb ('Run') and resource ('equity screener') with a unique tuning ('opening-session stock gappers'), distinguishing it from the sibling 'yfinance_screen' which is a general screener. This leaves no ambiguity about the tool's purpose.

    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 description does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or prerequisites. While the tool's purpose implies usage for gappers, the lack of explicit guidelines lowers the score.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by detailing the JSON fields returned (e.g., contractSymbol, strike, impliedVolatility) and the intended use case for options analysis, without contradicting annotations.

    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 front-loaded with the purpose and then lists the JSON fields. It is moderately concise; the field list is helpful but could be slightly more condensed. However, it remains clear and well-structured.

    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?

    The description is sufficiently complete for a data-fetching tool: it explains what data is returned, how to use parameters, and references a sibling tool for dates. The presence of an output schema (though not provided) is compensated by the detailed field listing.

    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 100% for all three parameters. The description adds semantic value by explaining the expiration_date parameter's relationship with yfinance_get_option_dates and by listing the fields in the output, which aids understanding beyond the schema.

    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 clearly states the tool fetches option chain data (calls and puts) for a stock, with specific mention of strike prices and expiration dates. It distinguishes itself from sibling tools like yfinance_get_option_dates by explicitly referencing it for finding available dates.

    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 provides implicit usage guidance by referencing yfinance_get_option_dates to obtain expiration dates, but it does not explicitly state when to use this tool over others or when not to use it.

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

  • Behavior4/5

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

    The description discloses the return format (JSON array of YYYY-MM-DD dates) which adds value beyond annotations. Annotations already indicate read-only, non-destructive, idempotent behavior, so the description's format detail is sufficient for transparency.

    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?

    The description is only three sentences, front-loaded with purpose, and each sentence adds distinct value: purpose, return format, and cross-reference to sibling tool. No wasted words.

    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?

    Given the tool's low complexity (single parameter, simple return), the description covers all necessary context: what it does, what it returns, and how to use it with a related tool. Output schema exists so return structure is further clarified.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with the symbol parameter already well-described. The description adds no extra parameter meaning beyond what the schema provides, meeting the baseline expectation.

    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 clearly states it fetches available option expiration dates for a stock, using specific verb 'fetch' and resource 'option expiration dates'. It distinguishes from sibling tools by mentioning usage with yfinance_get_option_chain.

    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 explicitly tells when to use this tool (to get expiration dates) and how to use it with yfinance_get_option_chain. However, it does not explicitly state when not to use it or mention any prerequisites.

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

  • Behavior4/5

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

    Annotations already indicate readOnly, idempotent, openWorld. Description adds that it returns JSON with specific structures for quotes, news, or both. No mention of rate limits or other constraints, but sufficient for a search tool.

    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?

    Description is detailed with clear sections for each search_type output. Could be slightly more concise, but structure aids readability and understanding.

    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?

    Tool has output schema, and description fully explains return values for each search_type. Input parameters are well-described. Context is complete for a search tool, with no missing behavioral details.

    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 has 100% coverage with descriptions for both parameters. Description adds substantial value by explaining how search_type modifies output and detailing return fields for each type, which goes beyond schema.

    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?

    Description clearly states it searches Yahoo Finance for stocks, ETFs, and news, differentiating from sibling tools like yfinance_get_ticker_info and yfinance_get_ticker_news. It explicitly says 'Use this to find ticker symbols, discover related securities, or search financial news.'

    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?

    Description explains how to filter results via search_type parameter and what each type returns. It implicitly guides usage but does not explicitly state when to avoid or compare with alternatives among siblings.

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

  • Behavior5/5

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

    Annotations (readOnlyHint=true, destructiveHint=false) are supported. The description adds detail about output formats: Markdown table with specific columns or chart images depending on chart_type. It also notes validity constraints for intervals, going beyond structured fields.

    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?

    The description is well-structured: first sentence as command, then bullet points for table columns, chart options, prepost note, and validity warning. Every sentence adds value; no fluff.

    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?

    The description covers the main output cases (table vs. chart) and common constraints. It lacks details on error handling for invalid combinations, but given the presence of annotations and output schema, it is reasonably complete.

    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 baseline is 3. The description adds value by summarizing chart_type options and warning about interval/period compatibility, which is not fully covered in schema descriptions. However, most parameter meaning is already in the schema.

    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 clearly states 'Fetch historical price data and optionally generate technical analysis charts.' It specifies the resource (historical price data) and the optional chart generation. This distinguishes it from sibling tools that focus on financials, holders, news, etc.

    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 provides explicit guidance on chart_type options and warns about valid period/interval combinations. It also explains prepost behavior. However, it does not explicitly mention when to use this tool versus alternatives among siblings.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

yfinance-mcp MCP server

Copy to your README.md:

Score Badge

yfinance-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/narumiruna/yfinance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server