Skip to main content
Glama
Alex2Yang97

yahoo-finance-mcp

by Alex2Yang97

Yahoo Finance MCP Server

This is a Model Context Protocol (MCP) server that provides comprehensive financial data from Yahoo Finance. It allows you to retrieve detailed information about stocks, including historical prices, company information, financial statements, options data, and market news.

GitHub last commit

Demo

MCP Demo

Related MCP server: Finance MCP Server

MCP Tools

The server exposes the following tools through the Model Context Protocol:

Stock Information

Tool

Description

get_historical_stock_prices

Get historical OHLCV data for a stock with customizable period and interval

get_stock_info

Get comprehensive stock data including price, metrics, and company details

get_yahoo_finance_news

Get latest news articles for a stock

get_stock_actions

Get stock dividends and splits history

Financial Statements

Tool

Description

get_financial_statement

Get income statement, balance sheet, or cash flow statement (annual/quarterly)

get_holder_info

Get major holders, institutional holders, mutual funds, or insider transactions

Options Data

Tool

Description

get_option_expiration_dates

Get available options expiration dates

get_option_chain

Get options chain for a specific expiration date and type (calls/puts)

Analyst Information

Tool

Description

get_recommendations

Get analyst recommendations or upgrades/downgrades history

Real-World Use Cases

With this MCP server, you can use Claude to:

Stock Analysis

  • Price Analysis: "Show me the historical stock prices for NOW over the last 6 months with daily intervals."

  • Financial Health: "Get the quarterly balance sheet for Intuit."

  • Performance Metrics: "What are the key financial metrics for Intuit from the stock info?"

  • Trend Analysis: "Compare the quarterly income statements of ServiceNow and Intuit."

  • Cash Flow Analysis: "Show me the annual cash flow statement for ServiceNow."

Market Research

  • News Analysis: "Get the latest news articles about Intuit."

  • Institutional Activity: "Show me the institutional holders of NOW stock."

  • Insider Trading: "What are the recent insider transactions for ServiceNow?"

  • Options Analysis: "Get the options chain for INTU with expiration date 2026-01-30 for calls."

  • Analyst Coverage: "What are the analyst recommendations for Intuit over the last 3 months?"

Investment Research

  • "Create a comprehensive analysis of Intuit's financial health using their latest quarterly financial statements."

  • "Compare the dividend history and stock splits of Coca-Cola and PepsiCo."

  • "Analyze the institutional ownership changes in ServiceNow over the past year."

  • "Generate a report on the options market activity for Intuit stock with expiration in 30 days."

  • "Summarize the latest analyst upgrades and downgrades in the tech sector over the last 6 months."

Requirements

  • Python 3.14.6 or higher

  • Dependencies as listed in pyproject.toml, including:

    • mcp

    • yfinance

    • pandas

    • pydantic

    • and other packages for data processing

Setup

Run the server directly from the repository without creating a local virtual environment:

uvx --from git+https://github.com/Alex2Yang97/yahoo-finance-mcp yahoo-finance-mcp

Local development

  1. Clone this repository:

    git clone https://github.com/Alex2Yang97/yahoo-finance-mcp.git
    cd yahoo-finance-mcp
  2. Create and activate a virtual environment and install dependencies:

    uv sync

Usage

Quick Start

Run the packaged entrypoint with:

uvx --from git+https://github.com/Alex2Yang97/yahoo-finance-mcp yahoo-finance-mcp

For local changes in this checkout, use:

uvx --from . yahoo-finance-mcp

Development Mode

If you are working inside a local clone and want to run the source tree directly:

uv run server.py

Integration with Claude for Desktop

To integrate this server with Claude for Desktop:

  1. Install Claude for Desktop to your local machine.

  2. Install VS Code to your local machine. Then run the following command to open the claude_desktop_config.json file:

    • MacOS: code ~/Library/Application\ Support/Claude/claude_desktop_config.json

    • Windows: code $env:AppData\Claude\claude_desktop_config.json

  3. Edit the Claude for Desktop config file, located at:

    • macOS:

      {
        "mcpServers": {
          "yfinance": {
            "command": "uvx",
            "args": [
              "--from",
              "git+https://github.com/Alex2Yang97/yahoo-finance-mcp",
              "yahoo-finance-mcp"
            ]
          }
        }
      }
    • Windows:

      {
        "mcpServers": {
          "yfinance": {
            "command": "uvx",
            "args": [
              "--from",
              "git+https://github.com/Alex2Yang97/yahoo-finance-mcp",
              "yahoo-finance-mcp"
            ]
          }
        }
      }
    • Note: You may need to put the full path to the uv executable in the command field. You can get this by running which uv on MacOS/Linux or where uv on Windows.

  4. Restart Claude for Desktop

License

MIT

Available Tools

9 tools
get_financial_statementB

Get financial statement for a given ticker symbol from yahoo finance. You can choose from the following financial statement types: income_stmt, quarterly_income_stmt, balance_sheet, quarterly_balance_sheet, cashflow, quarterly_cashflow.

Args: ticker: str The ticker symbol of the stock to get financial statement for, e.g. "AAPL" financial_type: str The type of financial statement to get. You can choose from the following financial statement types: income_stmt, quarterly_income_stmt, balance_sheet, quarterly_balance_sheet, cashflow, quarterly_cashflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
financial_typeYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions data source but omits rate limits, data freshness, or any potential side effects—important for a web-scraping tool.

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

Conciseness3/5

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

Structured with Args but somewhat verbose, repeating full list of statement types twice. Could be trimmed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and description does not explain return format (e.g., dictionary structure, keys). Leaves agent uncertain about what data it will receive.

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 has 0% description coverage, but description compensates with clear examples for ticker (e.g., 'AAPL') and explicit list of valid financial_type values. Adds meaningful usage context.

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?

Clearly states it gets financial statements for a ticker from Yahoo Finance, listing all statement types. Distinct from siblings like get_historical_stock_prices and get_stock_info.

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?

Details arguments and options but lacks explicit guidance on when to use versus other tools (e.g., when to choose income_stmt vs balance_sheet). No when-not-to-use advice.

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

get_historical_stock_pricesA

Get historical stock prices for a given ticker symbol from yahoo finance. Include the following information: Date, Open, High, Low, Close, Volume, Adj Close. Args: ticker: str The ticker symbol of the stock to get historical prices for, e.g. "AAPL" period : str Valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max Either Use period parameter or use start and end Default is "1mo" interval : str Valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo Intraday data cannot extend last 60 days Default is "1d"

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
periodNo1mo
intervalNo1d

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses constraint that intraday data cannot extend last 60 days, and lists all valid periods and intervals. Does not describe error handling (e.g., invalid ticker) or rate limits, but the key behavioral constraint is clearly 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?

Well-structured with bullet points for each parameter. Purpose stated first, then parameter details. Some redundancy (e.g., default values repeated from schema) but overall efficient. Could be slightly more concise.

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 no output schema, description enumerates return fields (Date, Open, etc.) which is helpful. Covers input constraints thoroughly. Does not specify output format (likely JSON) or pagination, but for a standard financial API this is sufficient. Sibling tools are numerous, and description clearly distinguishes this tool's purpose.

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 0% description coverage (only titles and types). Description adds substantial meaning: ticker example, explicit list of valid periods/intervals with defaults, and intraday data constraint. This fully compensates for the schema's lack of parameter descriptions.

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?

Clearly states it gets historical stock prices for a given ticker from Yahoo Finance, listing the specific data fields returned (Date, Open, High, etc.). This distinct resource and verb differentiate it from sibling tools like get_stock_info or get_recommendations.

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?

Describes valid periods and intervals, and notes 'Either Use period parameter or use start and end' (though start/end not in schema). Does not provide explicit guidance on when to use this tool versus alternatives, nor exclude inappropriate use cases.

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

get_holder_infoB

Get holder information for a given ticker symbol from yahoo finance. You can choose from the following holder types: major_holders, institutional_holders, mutualfund_holders, insider_transactions, insider_purchases, insider_roster_holders.

Args: ticker: str The ticker symbol of the stock to get holder information for, e.g. "AAPL" holder_type: str The type of holder information to get. You can choose from the following holder types: major_holders, institutional_holders, mutualfund_holders, insider_transactions, insider_purchases, insider_roster_holders.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
holder_typeYes

TDQS

B3.1/5.0
Behavior3/5

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

The description implies a read operation ('get'), but does not explicitly state it is safe or non-destructive. With no annotations provided, the description should disclose behavioral traits; it adds minimal value beyond stating the action. Given the nature of the tool, a score of 3 is acceptable.

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

Conciseness3/5

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

The description starts with a clear sentence but then repeats the same information in an Args block, which is redundant given the input schema. Could be more concise by omitting the duplicate listing of holder types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description does not explain the return format or structure. For a tool with two simple parameters, this is a notable gap. The agent cannot anticipate what data the tool will return.

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 0%, and the description compensates by listing the holder_type options and providing an example for ticker (e.g., 'AAPL'). This adds meaning beyond the schema's minimal titles.

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 retrieves holder information for a given ticker symbol from yahoo finance, and lists the specific holder types. However, it does not differentiate from sibling tools like get_stock_info, which may be ambiguous. The verb 'get' and resource 'holder information' are specific.

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 explicit guidance on when to use this tool versus alternatives. The description provides parameter details but no context on prerequisites or use cases. Agent would need to infer based on the tool name and sibling names.

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

get_option_chainA

Fetch the option chain for a given ticker symbol, expiration date, and option type.

Args: ticker: str The ticker symbol of the stock to get option chain for, e.g. "AAPL" expiration_date: str The expiration date for the options chain (format: 'YYYY-MM-DD') option_type: str The type of option to fetch ('calls' or 'puts')

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
expiration_dateYes
option_typeYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden, but it only states the action without disclosing side effects, error behaviors, rate limits, or data freshness. The description is neutral but insufficient compared to the ideal of full 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 concise, with a single sentence summarizing the purpose followed by a clean Args list. Every sentence is necessary, and the structure is front-loaded for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and three parameters, the description explains inputs well but does not describe the return value or data structure of the option chain. This is a notable gap for a tool that fetches complex financial data.

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?

Despite 0% schema coverage, the description thoroughly explains each parameter: ticker with an example, expiration_date with format 'YYYY-MM-DD', and option_type with explicit choices ('calls' or 'puts'). This adds critical meaning beyond the schema's type-only definitions.

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 the option chain for a given ticker symbol, expiration date, and option type,' specifying the verb and resource. It is distinct from sibling tools like 'get_option_expiration_dates' which only fetch dates, not the chain.

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, such as when to fetch expiration dates first or when to use other financial data tools. The description lacks any context for choosing this tool over siblings.

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

get_option_expiration_datesB

Fetch the available options expiration dates for a given ticker symbol.

Args: ticker: str The ticker symbol of the stock to get option expiration dates for, e.g. "AAPL"

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description alone must disclose behaviors. It only says 'Fetch' with no details on data freshness, mutability, or response characteristics. Minimal transparency.

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 short (two sentences) and front-loaded with purpose. No fluff, though the arg docstring could be integrated more cleanly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is adequate for a simple single-parameter tool but lacks details on return format (e.g., list of dates, format) and potential errors.

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 0%, but the tool description includes an example ('e.g., "AAPL"') for the ticker parameter. However, it does not elaborate on format constraints or case sensitivity, so it adds only marginal value 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?

Clearly states 'Fetch the available options expiration dates for a given ticker symbol.' The verb 'fetch' and resource 'options expiration dates' are specific. Given sibling tools like get_option_chain, this purpose is well-differentiated.

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 on when to use this tool versus alternatives (e.g., get_option_chain). Does not mention prerequisites or typical use cases.

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

get_recommendationsA

Get recommendations or upgrades/downgrades for a given ticker symbol from yahoo finance. You can also specify the number of months back to get upgrades/downgrades for, default is 12.

Args: ticker: str The ticker symbol of the stock to get recommendations for, e.g. "AAPL" recommendation_type: str The type of recommendation to get. You can choose from the following recommendation types: recommendations, upgrades_downgrades. months_back: int The number of months back to get upgrades/downgrades for, default is 12.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
recommendation_typeYes
months_backNo

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It describes a read-only operation without explicit statement of non-mutability, rate limits, or error handling, though the purpose is straightforward.

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 a clear purpose sentence, followed by a concise Args block. It is efficiently written without excess, though slightly verbose in the parameter list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and parameters adequately but lacks details on return format or example output, which would enhance completeness for a tool without output schema.

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%, but the description's Args block adds meaning by explaining each parameter (ticker, recommendation_type, months_back) with examples, going beyond the schema's bare types.

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 recommendations or upgrades/downgrades for a ticker from Yahoo Finance, which distinguishes it from sibling tools like get_financial_statement or get_historical_stock_prices.

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 explains parameters and provides an example ticker, implying usage for stock analysis, but does not explicitly state when to use this tool versus alternatives or include when-not-to-use conditions.

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

get_stock_actionsA

Get stock dividends and stock splits for a given ticker symbol from yahoo finance.

Args: ticker: str The ticker symbol of the stock to get stock actions for, e.g. "AAPL"

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so description must disclose behaviors. It mentions it gets dividends and splits but omits details like side effects, authentication needs, or error handling. As a read operation, it's safe but not explicitly declared.

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?

Description is extremely concise: two sentences, no fluff, front-loaded with essential information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose and parameter adequately. However, it lacks detail on return data format and edge cases, leaving some gaps in completeness.

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 has one parameter with no description (0% coverage). Description adds a clear explanation with type and example (e.g., 'AAPL'), significantly enhancing the schema for the single parameter.

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 gets stock dividends and stock splits for a ticker from yahoo finance, specifying verb and resource. It distinguishes from sibling tools like get_stock_info or get_historical_stock_prices.

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?

Description provides no guidance on when to use this tool versus alternatives, nor any conditions or exclusions. It simply states what it does without contextual use cases.

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

get_stock_infoA

Get stock information for a given ticker symbol from yahoo finance. Include the following information: Stock Price & Trading Info, Company Information, Financial Metrics, Earnings & Revenue, Margins & Returns, Dividends, Balance Sheet, Ownership, Analyst Coverage, Risk Metrics, Other.

Args: ticker: str The ticker symbol of the stock to get information for, e.g. "AAPL"

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

A4/5.0
Behavior3/5

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

No annotations provided; description implies a read operation but lacks details on data freshness, rate limits, or limitations. It is adequate but not comprehensive.

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 structured with a list of info categories and an Args section. Slightly verbose but not wordy; could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and simple input, the description lists data categories but lacks example output or details on return format. It is adequate for basic use.

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%, but the description provides clear parameter meaning: ticker symbol with an example. This adds value beyond the bare 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 retrieves stock information from Yahoo Finance for a given ticker symbol, listing specific categories. It distinguishes from siblings like get_financial_statement by offering comprehensive stock data.

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 implies usage for general stock info queries but does not explicitly state when to avoid it or compare to siblings. Context signals list sibling tools, allowing inference.

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

get_yahoo_finance_newsA

Get news for a given ticker symbol from yahoo finance.

Args: ticker: str The ticker symbol of the stock to get news for, e.g. "AAPL"

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral traits. It only says 'get news' but does not disclose whether the news is recent, how many results, rate limits, or authentication needs. The bare-minimum description lacks 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 extremely concise: one line stating the purpose and an optional Args block. No redundancy, and the main action is front-loaded. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple task (retrieving news for a ticker) and lack of output schema, the description gives minimal but sufficient context. However, it does not describe the output format (e.g., list of articles, titles, links), leaving some ambiguity.

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?

The schema provides only the parameter name and type. The description adds an explanation and example ('e.g. AAPL') for the ticker parameter, which adds semantic value beyond the schema. Despite 0% schema coverage, the description compensates well for a single parameter.

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 gets news for a ticker symbol from Yahoo Finance. The verb 'get' and resource 'news' are specific, and the purpose is distinct from sibling tools like get_financial_statement or get_historical_stock_prices.

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 get_stock_info or when not to use it. The description simply states what it does without contextualizing its use relative to siblings.

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

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct financial data category (e.g., financial statements, historical prices, options, news) with no overlap. An agent can easily choose the correct tool based on the desired information.

Naming Consistency5/5

All tools follow a consistent 'get_<data_type>' naming pattern (e.g., get_financial_statement, get_option_chain). This makes the tool set predictable and easy to navigate.

Tool Count5/5

With 9 tools, the server covers the essential Yahoo Finance functionalities without being bloated. Each tool serves a clear purpose, and the count is well-suited for the domain.

Completeness4/5

The tool set covers major stock data needs (prices, financials, options, holders, recommendations, dividends, info, news). Minor gaps like earnings estimates or ticker search are present but do not severely hinder common use cases.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Yahoo Finance data including stock prices, historical data, financial statements, dividends, news, analyst recommendations, and company information through the yfinance library.
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides real-time financial data from Yahoo Finance, enabling stock price lookups, historical data analysis, company information retrieval, and multi-stock comparisons through natural language queries.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to retrieve stock market data and financial information from Yahoo Finance using the yfinance Python library. Supports querying stock prices, historical data, and other financial metrics through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive financial data from Yahoo Finance, enabling retrieval of stock prices, company information, financial statements, options data, analyst recommendations, and market news through natural language queries.
    MIT

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/Alex2Yang97/yahoo-finance-mcp'

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