Skip to main content
Glama
laxmimerit

Yahoo Finance MCP Server

by laxmimerit

Yahoo Finance MCP Server

A Model Context Protocol (MCP) server that provides access to Yahoo Finance data. This server enables AI assistants to fetch real-time stock prices, financial statements, news, options data, and more through a standardized interface.

PIP: https://pypi.org/project/yahoo-finance-mcp-server/

Features

  • Historical Stock Prices: Get historical price data with customizable periods and intervals

  • Stock Information: Access comprehensive stock data including financials, metrics, and company info

  • Financial Statements: Retrieve income statements, balance sheets, and cash flow statements

  • News: Fetch latest news articles for any ticker

  • Options Data: Get option chains, expiration dates, and options analytics

  • Holder Information: Access institutional, mutual fund, and insider holder data

  • Analyst Recommendations: Get analyst ratings, upgrades, and downgrades

  • Corporate Actions: Track dividends and stock splits

Related MCP server: Finance MCP Server

Installation

The easiest way to use this MCP server is with uvx, which runs it directly without installation:

uvx yahoo-finance-mcp-server

Using uv

Install the package using uv:

uv pip install yahoo-finance-mcp-server

Using pip

pip install yahoo-finance-mcp-server

From Source

git clone https://github.com/laxmimerit/yahoo-finance-mcp-server.git
cd yahoo-finance-mcp-server
uv pip install -e .

Configuration

Claude Desktop Configuration

Add this to your Claude Desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "yahoo-finance": {
      "command": "uvx",
      "args": ["yahoo-finance-mcp-server"]
    }
  }
}

Using uv:

{
  "mcpServers": {
    "yahoo-finance": {
      "command": "uv",
      "args": ["run", "yahoo-finance-mcp-server"]
    }
  }
}

Using Python directly:

{
  "mcpServers": {
    "yahoo-finance": {
      "command": "python",
      "args": ["-m", "yahoo_finance_mcp_server.server"]
    }
  }
}

Other MCP Clients

For other MCP clients that support stdio transport, you can run:

yahoo-finance-mcp-server

Or with uvx:

uvx yahoo-finance-mcp-server

Available Tools

1. get_historical_stock_prices

Get historical stock prices for a ticker symbol.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "AAPL")

  • period (str, optional): Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. Default: "1mo"

  • interval (str, optional): Valid intervals: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Default: "1d"

Example:

Get historical prices for Apple stock over the last year

2. get_stock_info

Get comprehensive stock information including price, company details, financial metrics, and more.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "TSLA")

Example:

Get detailed information about Tesla stock

3. get_yahoo_finance_news

Get latest news articles for a ticker symbol.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "GOOGL")

Example:

Get recent news about Google

4. get_stock_actions

Get dividend and stock split history.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "MSFT")

Example:

Get dividend history for Microsoft

5. get_financial_statement

Get financial statements (income statement, balance sheet, or cash flow).

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "AMZN")

  • financial_type (str): One of: income_stmt, quarterly_income_stmt, balance_sheet, quarterly_balance_sheet, cashflow, quarterly_cashflow

Example:

Get Amazon's quarterly income statement

6. get_holder_info

Get holder and ownership information.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "NVDA")

  • holder_type (str): One of: major_holders, institutional_holders, mutualfund_holders, insider_transactions, insider_purchases, insider_roster_holders

Example:

Get institutional holders of NVIDIA

7. get_option_expiration_dates

Get available options expiration dates for a ticker.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "SPY")

Example:

Get option expiration dates for SPY

8. get_option_chain

Get option chain data for calls or puts.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "AAPL")

  • expiration_date (str): Expiration date in YYYY-MM-DD format

  • option_type (str): Either "calls" or "puts"

Example:

Get Apple call options expiring on 2024-12-20

9. get_recommendations

Get analyst recommendations and upgrades/downgrades.

Parameters:

  • ticker (str): Stock ticker symbol (e.g., "META")

  • recommendation_type (str): Either "recommendations" or "upgrades_downgrades"

  • months_back (int, optional): Number of months to look back. Default: 12

Example:

Get recent analyst upgrades for Meta

Usage Examples

Once configured with Claude Desktop or another MCP client, you can ask questions like:

  • "What's the current price of Apple stock?"

  • "Show me Tesla's quarterly revenue for the last year"

  • "Get the latest news about Microsoft"

  • "What are the dividend payments for Coca-Cola?"

  • "Show me the institutional holders of NVIDIA"

  • "Get Amazon's balance sheet"

  • "What options are available for SPY?"

  • "Show me recent analyst upgrades for Google"

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/laxmimerit/yahoo-finance-mcp-server.git
cd yahoo-finance-mcp-server

# Install with development dependencies
uv pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black src/
ruff check src/

Technical Details

  • Protocol: Model Context Protocol (MCP)

  • Transport: stdio

  • Data Source: Yahoo Finance via yfinance library

  • Response Format: JSON

Requirements

  • Python 3.10 or higher

  • Dependencies:

    • fastmcp >= 0.3.0

    • yfinance >= 0.2.40

    • pandas >= 2.0.0

Limitations

  • Data is provided by Yahoo Finance and subject to their terms of service

  • Real-time data may have delays depending on your subscription level

  • Some data may not be available for all ticker symbols

  • Intraday data is limited to the last 60 days

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This software is for informational purposes only. It should not be considered financial advice. Always do your own research before making investment decisions.

Support

If you encounter any issues or have questions:

Acknowledgments

Available Tools

9 tools
get_financial_statementA

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It does state the data source (Yahoo Finance) and the allowed statement types, but it does not explicitly mention that this is a read-only operation, potential limitations, or any network/auth requirements. The 'get' verb implies safety, but the description adds limited behavioral insight beyond that.

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 is clear and front-loaded, but the list of financial statement types is repeated verbatim in the first sentence and in the Args section, which is redundant. This wastes space and could be tightened without losing 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 (2 parameters, no nested objects) and has an output schema, so return format is covered. The description provides the source, allowed values, and parameter explanations, which is sufficient for an agent to invoke it. Minor gaps like error handling or data format are not critical here.

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 coverage is 0%, so the description fully compensates. It explains the ticker parameter with an example ('AAPL') and lists all valid values for financial_type, adding essential meaning beyond the bare string 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 a financial statement for a ticker from Yahoo Finance, using a specific verb and resource. It distinguishes itself from siblings by listing specific statement types (income, balance, cashflow), which are unique among the sibling tools.

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?

Usage is implied by the description and the tool name, but there is no explicit guidance on when to choose this over alternatives, nor any when-not-to-use conditions. The description lists allowed statement types, which helps, but no exclusions or alternative tool references are provided.

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
periodNo1mo
tickerYesstr The ticker symbol of the stock to get historical prices for, e.g. "AAPL"
intervalNo1d

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It discloses the output format (specific columns), the valid parameter values, and a key constraint (intraday data cannot extend last 60 days). The mention of 'start and end' not present in the schema is a minor transparency gap but does not materially mislead.

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-structured with a front-loaded purpose sentence followed by a clear 'Args' block. The parameter enumerations are necessary and efficiently formatted. The 'Either Use period parameter or use start and end' line is slightly confusing given the schema lacks start/end, but overall there is no wasted text.

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 3-parameter tool with an output schema, the description provides thorough input semantics, defaults, and constraints. The existence of an output schema means return values need not be detailed further. The only notable gap is the ambiguous start/end mention, which does not significantly undermine completeness.

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?

The schema only describes the ticker parameter, leaving period and interval as bare strings. The description adds substantial meaning by listing all valid periods and intervals, defaults, and the interaction between period and start/end (even if start/end are not in the schema). This far exceeds the schema's 33% coverage and is essential for correct invocation.

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 historical stock prices for a ticker from Yahoo Finance, enumerates the exact columns returned (Date, Open, High, Low, Close, Volume, Adj Close), and distinguishes it from sibling tools like get_stock_info (current info) or get_stock_actions (corporate actions). The verb+resource+scope is 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 Guidelines3/5

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

The description gives detailed parameter usage guidance (valid periods, intervals, default values, intraday 60-day limit) but does not explicitly state when to choose this tool over alternatives like get_stock_info or get_financial_statement. Usage is implied by the clear purpose but lacks explicit when/when-not instructions.

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

get_holder_infoA

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the data source (Yahoo Finance) and the available holder types, but does not mention any behavioral traits such as potential errors, rate limits, data availability, or whether the operation is read-only. The absence of caveats is a minor gap for a simple data-fetching 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?

The description is structured well with a leading purpose statement followed by an Args block. However, the full list of holder types is repeated twice (once in the opening sentence and once in the Args section), which is slightly redundant. Otherwise, it is concise and clear.

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 a simple two-parameter data-fetcher, and an output schema exists to describe return values, so the description need not cover that. It effectively explains what data can be retrieved and the allowed parameters. It lacks any note about error conditions or prerequisites, but for this level of complexity the description is adequately complete.

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?

The schema provides only bare string types with no descriptions (0% coverage), so the description's Args section compensates fully. It explains ticker with an example ("AAPL") and explicitly enumerates all valid values for holder_type, which the schema omits. This adds significant meaning 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's function: "Get holder information for a given ticker symbol from yahoo finance," which specifies the verb (get), resource (holder information), and input (ticker). It also lists the specific holder types, distinguishing it from sibling tools that handle prices, news, financials, or options.

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 when to use the tool (when you need holder information for a ticker) but does not explicitly mention alternatives or exclusions. There is no guidance on when not to use it or how it compares to sibling tools, so usage context is only inferred.

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
tickerYesThe ticker symbol of the stock
option_typeYesThe type of option to fetch ('calls' or 'puts')
expiration_dateYesThe expiration date for the options chain (format: 'YYYY-MM-DD')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'Fetch' which implies a read-only operation, but it does not mention any special requirements, limitations, rate limits, or error conditions. The description adds little beyond what the input 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 concise and well-structured: a one-sentence summary followed by a clear list of args. Every sentence earns its place, and the structure makes it easy for an agent to quickly parse the tool's purpose and required inputs.

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 simple parameter set, complete schema descriptions, and the presence of an output schema, the description is largely sufficient for correct selection and invocation. However, it lacks any guidance on usage relative to sibling tools or any caveats about expiration date validity, preventing a perfect score.

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 fully documents all parameters. The description repeats the parameter meanings without adding extra context such as examples for the date format or clarifying option_type values. It meets the baseline for schema-heavy coverage but does not enhance 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 starts with a specific verb 'Fetch' and clearly identifies the resource (option chain) with the key parameters (ticker, expiration date, option type). It distinguishes itself from sibling tools like get_option_expiration_dates, which deal with expiration dates rather than the chain itself.

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 (when you need an option chain for a specific ticker and expiration) but does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites such as first fetching expiration dates via get_option_expiration_dates. This leaves the agent to infer usage from the purpose.

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

get_option_expiration_datesA

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden for behavioral disclosure. The word 'Fetch' clearly signals a read-only operation, which is a critical safety trait. However, it does not disclose any additional behaviors (e.g., data freshness, error handling, rate limits), leaving some depth missing.

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 front-loads the purpose. The Args section is structured and efficient, with no redundant information. Every sentence earns its place.

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?

For a simple one-parameter fetch tool with an output schema, the description covers the essential aspects: what the tool does and what the parameter means. The return format is not described, but the existence of an output schema makes that unnecessary.

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?

The schema has 0% description coverage, but the description compensates with an Args section that explains the 'ticker' parameter fully, including its meaning and an example ('AAPL'). This adds significant value beyond the raw string type 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 uses a specific verb 'Fetch' and resource 'options expiration dates' for a given ticker, clearly distinguishing it from sibling tools like get_option_chain (which likely returns full option chains) and get_historical_stock_prices. The purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage when option expiration dates are needed, but it provides no explicit alternatives or exclusions. It doesn't mention when to prefer this over get_option_chain or other related tools, so the guidance is only implicit.

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
months_backNo
recommendation_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the default for months_back and the two recommendation types, which is useful. However, it does not mention read-only status, rate limits, or error handling, leaving behavioral transparency partial.

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-structured: a concise introductory sentence followed by an Args block. While redundant in repeating parameter names from the schema, the added explanations are essential given zero schema coverage. No unnecessary filler is present.

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 has an output schema, so return values need no description. Input parameters are thoroughly covered. The only gap is ambiguity about whether months_back applies to both recommendation types or only upgrades_downgrades, but overall the tool is well specified.

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 description coverage is 0%, so the Args section fully compensates. Each parameter is explained with purpose and examples ('AAPL' for ticker), allowed values for recommendation_type are listed, and months_back has its default clarified.

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 recommendations or upgrades/downgrades for a given ticker from Yahoo Finance, using the specific verb 'Get' and naming the resource. It explicitly lists two recommendation types, distinguishing the tool from siblings like get_stock_info or get_stock_actions.

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 whenever recommendation data is needed, but does not explicitly contrast with sibling tools or state when not to use it. It provides parameter-level guidance (e.g., months_back default) but lacks explicit 'use this when' or alternative tool recommendations.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the operation type (getting dividends/splits) and the data source (Yahoo Finance). However, it does not mention return format, error handling, or any side effects, though the simple read-only nature is implied by 'get'.

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 compact purpose statement followed by a clear docstring for the argument. Every sentence earns its place, and the format is highly scannable.

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?

For a single-parameter tool with an output schema available, the description fully covers what the tool does and how to invoke it. It doesn't need to explain return values because the output schema handles that.

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 coverage is 0%, but the description explicitly defines ticker as the stock symbol and provides an example 'AAPL'. This adds meaningful semantic detail well beyond the schema's bare string type.

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 stock dividends and splits for a given ticker from Yahoo Finance. This is distinct from sibling tools that fetch prices, info, news, financial statements, holders, options, or recommendations.

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 indicates this tool should be used when needing dividend or split data for a stock ticker. It does not explicitly name alternative tools or exclusions, but the purpose and context are clear enough to guide selection.

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

get_stock_infoB

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the data categories returned; it does not mention error handling for invalid tickers, rate limits, data freshness, or any other behavioral traits. This is a significant gap for a tool with no annotation support.

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 reasonably concise with a lead sentence and a bullet-like list of information categories. The list is long but informative, and the Args section is clearly separated. It earns its length, though 'Other' is a slightly vague inclusion.

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?

An output schema exists (though not shown), so return structure is presumably covered. The description adequately explains the input and general content, but lacks usage context and behavior beyond listing categories. For a simple one-parameter tool, it is minimally viable but not rich enough for full autonomy.

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 coverage is 0%, so the description must compensate. The Args section explicitly defines 'ticker' as 'The ticker symbol of the stock to get information for, e.g., "AAPL"', adding clear meaning and a concrete example beyond the bare string type.

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 'Get stock information for a given ticker symbol from yahoo finance,' which specifies a verb, resource, and input. The long list of categories (e.g., 'Stock Price & Trading Info', 'Financial Metrics', 'Dividends') distinguishes it from specialized sibling tools like get_historical_stock_prices or get_yahoo_finance_news.

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 its siblings. The description lists what data is returned but does not say 'for a comprehensive overview use this' or 'for historical data use get_historical_stock_prices.' No exclusions or alternatives are mentioned.

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
tickerYesstr The ticker symbol of the stock to get news for, e.g. "AAPL"

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that it gets news, but does not mention return format, potential limitations (e.g., only recent news), pagination, or whether this is a read-only operation. The description adds minimal behavioral context beyond the basic action.

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, with one clear purpose sentence and parameter documentation. It is front-loaded with the core action and has no wasted words, making it easy to parse quickly.

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 parameter and includes an output schema, so the description does not need to explain return values in detail. It provides sufficient context for a straightforward news retrieval tool, though it could have added minor usage context such as the type of news returned or any time range constraints.

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%, and the description repeats the parameter details already present in the schema. It does not add any new meaning or examples beyond what the schema provides. The baseline of 3 is appropriate since the schema fully documents the 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 that the tool retrieves news for a given ticker symbol from Yahoo Finance. It uses a specific verb ('Get') and resource ('news for a ticker'), and it is distinct from sibling tools which focus on prices, info, actions, financial statements, holders, options, and 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?

The description implies the tool should be used when news about a stock is needed, but it does not explicitly discuss alternatives or when not to use it. There is no mention of sibling tools like get_historical_stock_prices or get_recommendations to differentiate usage scenarios.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.2
    • First observedget_financial_statement
    • First observedget_historical_stock_prices
    • First observedget_holder_info
    • First observedget_option_chain
    • First observedget_option_expiration_dates
    • First observedget_recommendations
    • First observedget_stock_actions
    • First observedget_stock_info
    • First observedget_yahoo_finance_news

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

The tools mostly target distinct aspects (prices, info, news, actions, statements, holders, options, recommendations). Slight overlap exists between get_stock_info and get_financial_statement, as both cover financial data, but their descriptions clarify the different scopes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores, e.g., get_historical_stock_prices, get_stock_info, get_option_chain. Minor deviation: get_yahoo_finance_news includes the service name, but the pattern is otherwise uniform.

Tool Count5/5

With 9 tools, the server is well-scoped for a Yahoo Finance data provider. Each tool covers a meaningful data category without excessive overlap or unnecessary granularity.

Completeness4/5

The tool surface covers major stock data areas: historical prices, overview info, news, dividends/splits, financial statements, holders, options, and recommendations. Minor gaps exist, such as lack of a ticker search or real-time quote tool, but these are not critical for the server's apparent purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

  • A Model Context Protocol server exposing real-time and historical Colombo Stock Exchange (CSE) data to AI agents and LLM applications. Provides quotes and OHLCV price history, full financial statements (income, balance sheet, cash flow), pre-computed technicals (moving averages, RS ratings, volume signals), macroeconomic indicators, corporate actions, and rule-based screening across CSE stocks and sector indices, everything needed to build CSE-aware trading assistants, research tools, and market-analysis agents.

  • US stock market data for AI agents: SEC filings, financials, insider trades, 13F, options, macro.

  • Your agent needs markets — prices and fundamentals for listed companies, the filings behind them, crypto, and what the prediction markets put the odds at. **What you can ask for** • "Pull this company's income statement, cash flow and balance sheet for the last 8 quarters." • "What did insiders buy or sell, and when?" • "Snapshot prices for these 50 tickers, then the OHLC history for the three that moved." • "What are the current odds on this event across Kalshi and Polymarket?" • "Screen for companies matching these financial criteria." **How to use it** Point any MCP client at https://mcp.aisa.one/finance/mcp and sign in with OAuth — there is no key to create or paste. 49 tools: prices and snapshots, income statements, balance sheets and cash flows, metrics and ratios, earnings and analyst estimates, filings and line-item search, insider trades, macro interest rates, news, a screener; CoinGecko spot prices, market tables, OHLC, per-venue tickers and trending; Kalshi and Polymarket markets and trades; plus EDINET filings for Japan. **Why this rather than the source** Equities, crypto and event markets behind one account, so a cross-asset question is one conversation. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the number here, then ask the same agent what X is saying about the ticker today — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/marketpulse/mcp · /crypto-market-data/mcp · /prediction-market-data/mcp · /stock-pulse/mcp for one slice each.

  • Your agent needs company financials it can compute on — statements, ratios, earnings, estimates, filings and insider activity as structured data, not a PDF. **What you can ask for** • "Give me 8 quarters of income statement, balance sheet and cash flow for this ticker." • "What do analysts estimate for next quarter, and how did the last four surprise?" • "Find this exact line item across every filing." • "Who bought or sold as an insider in the last 90 days?" • "Screen for profitable companies under this valuation with growing revenue." **How to use it** Point any MCP client at https://mcp.aisa.one/marketpulse/mcp and sign in with OAuth — there is no key to create or paste. 21 tools: prices and snapshots, income statements, balance sheets, cash-flow statements, financial metrics and snapshots, earnings, analyst estimates, company facts, filings and filing items, line-item search, a screener, insider trades, macro interest rates, news, plus EDINET documents and filing digests for Japanese issuers. **Why this rather than the source** Statements as fields you can compute on, and a screener in the same place. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the fundamentals here, then ask the same agent what social is saying about the ticker — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    MCP server that provides AI assistants access to stock market data including financial statements, stock prices, and market news through a Model Context Protocol interface.
    11
    2,290
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time financial data from Yahoo Finance to Large Language Models through the Model Context Protocol, enabling AI models to access stock prices, historical data, and company information.
    1
    MIT