Open Markets

by danchev

279 downloads Not rated yet
GitHub

About

A Model Context Protocol (MCP) server for agentic retrieval of financial data. This server leverages YFinance to provide a simple and efficient way to access historical stock prices, dividends, stock splits, company information, and other financial metrics.

Explore

- Stock information, historical data, and analyst recommendations
- Corporate actions: dividends and stock splits
- Market data: sector performance, indices, trending tickers
- Stock screening by market cap, P/E, yield, sector, and more
- Technical analysis: indicators, volatility, support/resistance
- Options chain, volume analysis, and moneyness filtering

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Open Markets
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Connect to the server via an MCP-compatible client and call the available tools. The README lists the tools and their arguments but does not provide installation or configuration instructions.

get_analyst_recommendations

Retrieve analyst recommendations for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Analyst recommendations data from the repository.

get_earnings_estimates

Retrieve earnings estimates for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Earnings estimates data from the repository.

get_eps_trends

Retrieve EPS (Earnings Per Share) trends for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: EPS trends data from the repository.

get_full_analysis

Retrieve a full analysis report for a given ticker, aggregating all available analysis data. Args: ticker (str): The symbol of the security. Returns: dict: Dictionary containing all analysis data for the ticker.

get_growth_estimates

Retrieve growth estimates for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Growth estimates data from the repository.

get_price_targets

Retrieve price targets for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Price targets data from the repository.

get_recommendation_changes

Retrieve changes in analyst recommendations for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Recommendation changes data from the repository.

get_revenue_estimates

Retrieve revenue estimates for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Revenue estimates data from the repository.

get_crypto_fear_greed_proxy

Retrieve a proxy value for the crypto fear and greed index. Args: tickers (list[str] | None, optional): List of crypto tickers to include. If None, uses a default set. Returns: str: Proxy value or description for the fear/greed index.

get_crypto_history

Retrieve historical price data for a cryptocurrency. Args: ticker (str): The symbol of the cryptocurrency. period (str, optional): Time period for history. Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. Defaults to '1y'. interval (str, optional): Data interval. Valid intervals: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Defaults to '1d'. Returns: list[CryptoHistory]: List of historical data points.

get_crypto_info

Retrieve fast information for a specific cryptocurrency. Args: ticker (str): The symbol of the cryptocurrency (e.g., 'BTC'). Returns: CryptoFastInfo: Fast info data for the given ticker.

get_top_cryptocurrencies

Retrieve a list of the top cryptocurrencies by market cap or volume. Args: count (int, optional): Number of top cryptocurrencies to fetch. Defaults to 10. Returns: list[CryptoFastInfo]: List of top cryptocurrencies.

get_balance_sheet

Retrieve the balance sheet for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[BalanceSheetEntry]: List of balance sheet entries.

get_eps_history

Retrieve EPS (Earnings Per Share) history for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[EPSHistoryEntry]: List of EPS history entries.

get_financial_calendar

Retrieve the financial calendar for a given ticker. Args: ticker (str): The symbol of the security. Returns: FinancialCalendar: Financial calendar data.

get_full_financials

Retrieve a full set of financial data for a given ticker, aggregating all available financial statements and records. Args: ticker (str): The symbol of the security. Returns: dict: Dictionary containing all financial data for the ticker.

get_income_statement

Retrieve the income statement for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[IncomeStatementEntry]: List of income statement entries.

get_sec_filings

Retrieve SEC filings for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[SecFilingRecord]: List of SEC filing records.

get_ttm_cash_flow_statement

Retrieve the trailing twelve months (TTM) cash flow statement for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[TTMCashFlowStatementEntry]: List of TTM cash flow statement entries.

get_ttm_income_statement

Retrieve the trailing twelve months (TTM) income statement for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[TTMIncomeStatementEntry]: List of TTM income statement entries.

get_fund_asset_class_holdings

Retrieve asset class holdings for a specific fund. Args: ticker (str): The symbol of the fund. Returns: FundAssetClassHolding | None: Asset class holdings data or None if unavailable.

get_fund_bond_holdings

Retrieve the bond holdings for a specific fund. Args: ticker (str): The symbol of the fund. Returns: list[FundBondHolding]: List of bond holdings in the fund.

get_fund_equity_holdings

Retrieve the equity holdings for a specific fund. Args: ticker (str): The symbol of the fund. Returns: list[FundEquityHolding]: List of equity holdings in the fund.

get_fund_info

Retrieve general information for a specific fund. Args: ticker (str): The symbol of the fund. Returns: FundInfo: Information about the fund.

get_fund_operations

Retrieve operations data for a specific fund. Args: ticker (str): The symbol of the fund. Returns: FundOperations | None: Operations data or None if unavailable.

get_fund_overview

Retrieve an overview for a specific fund. Args: ticker (str): The symbol of the fund. Returns: FundOverview | None: Overview data or None if unavailable.

get_fund_sector_weighting

Retrieve sector weighting data for a specific fund. Args: ticker (str): The symbol of the fund. Returns: FundSectorWeighting | None: Sector weighting data or None if unavailable.

get_fund_top_holdings

Retrieve the top holdings for a specific fund. Args: ticker (str): The symbol of the fund. Returns: list[FundTopHolding]: List of top holdings in the fund.

get_full_holdings

Retrieve a full set of holdings data for a given ticker, aggregating all available holdings information. Args: ticker (str): The symbol of the security. Returns: dict: Dictionary containing all holdings data for the ticker.

get_insider_purchases

Retrieve insider purchases for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Insider purchases data from the repository.

get_institutional_holdings

Retrieve institutional holdings for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Institutional holdings data from the repository.

get_major_holders

Retrieve major holders for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Major holders data from the repository.

get_mutual_fund_holdings

Retrieve mutual fund holdings for a given ticker. Args: ticker (str): The symbol of the security. Returns: Any: Mutual fund holdings data from the repository.

get_market_status

Retrieve the current status of major market indices. Returns: dict: Market indices status data.

get_market_summary

Retrieve a summary of the overall market performance. Returns: dict: Market summary data.

get_call_options

Retrieve call options for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration. Returns: list[CallOption] | None: List of call options or None if unavailable.

get_option_chain

Retrieve the option contract chain for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration. Returns: OptionContractChain: The option contract chain data.

get_option_expiration_dates

Retrieve available option expiration dates for a given ticker. Args: ticker (str): The symbol of the security. Returns: list[OptionExpirationDate]: List of available expiration dates.

get_options_by_moneyness

Retrieve options filtered by moneyness for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration. moneyness_range (float, optional): The moneyness range for filtering. Defaults to 0.1. Returns: dict: Options data filtered by moneyness.

get_options_skew

Retrieve options skew analysis for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration. Returns: dict: Options skew analysis data.

get_options_volume_analysis

Retrieve options volume analysis for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration_date (str | None, optional): The expiration date as a string. If None, uses the nearest expiration. Returns: dict: Volume analysis data.

get_put_options

Retrieve put options for a given ticker and expiration date. Args: ticker (str): The symbol of the security. expiration (date | None, optional): The expiration date. If None, uses the nearest expiration. Returns: list[PutOption] | None: List of put options or None if unavailable.

get_all_industries

Retrieve a list of all industries, optionally filtered by sector. Args: sector (str | None): The name of the sector to filter by, or None to retrieve all industries. Returns: list[str]: A list of all industries, or industries in the specified sector.

get_industry_overview

Retrieve an overview of a specific industry. Args: industry (str): The name of the industry. Returns: IndustryOverview: An overview of the specified industry.

get_industry_top_companies

Retrieve a list of top companies within a specific industry. Args: industry (str): The name of the industry. Returns: list[IndustryTopCompaniesEntry]: A list of top companies in the industry.

get_industry_top_growth_companies

Retrieve a list of top growth companies within a specific industry. Args: industry (str): The name of the industry. Returns: list[IndustryTopGrowthCompaniesEntry]: A list of top growth companies in the industry.

get_industry_top_performing_companies

Retrieve a list of top performing companies within a specific industry. Args: industry (str): The name of the industry. Returns: list[IndustryTopPerformingCompaniesEntry]: A list of top growth companies in the industry.

get_sector_industries

Retrieve a list of industries within a specific sector. Args: sector (str): The name of the sector. Returns: list[str]: A list of industries in the sector.

get_sector_overview

Retrieve overview information for a specific sector. Args: sector (str): The name of the sector. Returns: SectorOverview: Overview data for the sector.

get_sector_overview_for_ticker

Retrieve overview information for a specific sector based on a stock ticker. Args: ticker (str): The stock ticker symbol. Returns: SectorOverview: Overview data for the sector associated with the ticker.

get_sector_research_reports

Retrieve a list of research reports within a specific sector. Args: sector (str): The name of the sector. Returns: list[IndustryResearchReportEntry]: A list of research reports in the sector.

get_sector_top_companies

Retrieve a list of top companies within a specific sector. Args: sector (str): The name of the sector. Returns: list[SectorTopCompaniesEntry]: A list of top companies in the sector.

get_sector_top_companies_for_ticker

Retrieve a list of top companies within a specific sector based on a stock ticker. Args: ticker (str): The stock ticker symbol. Returns: list[SectorTopCompaniesEntry]: A list of top companies in the sector associated with the ticker.

get_sector_top_etfs

Retrieve a list of top ETFs within a specific sector. Args: sector (str): The name of the sector. Returns: list[SectorTopETFsEntry]: A list of top ETFs in the sector.

get_sector_top_mutual_funds

Retrieve a list of top mutual funds within a specific sector. Args: sector (str): The name of the sector. Returns: list[SectorTopMutualFundsEntry]: A list of top mutual funds in the sector.

get_corporate_actions

Retrieve corporate actions for a stock. Args: ticker (str): The symbol of the stock. Returns: list[CorporateActions]: List of corporate action records.

get_dividend_summary

Retrieve a summary of dividend data for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Dividend summary data.

get_dividends

Retrieve dividend history for a stock. Args: ticker (str): The symbol of the stock. Returns: list[StockDividends]: List of dividend records.

get_fast_info

Retrieve fast info for a specific stock ticker. Args: ticker (str): The symbol of the stock. Returns: StockFastInfo: Fast info data for the given ticker.

get_financial_summary

Retrieve a financial summary for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Financial summary data.

get_financial_summary_v2

Retrieve an alternative version of the financial summary for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Financial summary data (version 2).

get_history

Retrieve historical price data for a stock. Args: ticker (str): The symbol of the stock. period (str, optional): Valid periods: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max. Defaults to '1y'. interval (str, optional): Valid intervals: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo. Defaults to '1d'. Returns: list[StockHistory]: List of historical data points.

get_info

Retrieve detailed info for a specific stock ticker. Args: ticker (str): The symbol of the stock. Returns: StockInfo: Detailed info data for the given ticker.

get_news

Retrieve news items for a stock. Args: ticker (str): The symbol of the stock. Returns: list[NewsItem]: List of news items.

get_price_target

Retrieve price target data for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Price target data.

get_quick_technical_indicators

Retrieve quick technical indicators for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Technical indicators data.

get_risk_metrics

Retrieve risk metrics for a stock. Args: ticker (str): The symbol of the stock. Returns: dict: Risk metrics data.

get_splits

Retrieve stock split history for a stock. Args: ticker (str): The symbol of the stock. Returns: list[StockSplit]: List of stock split records.

get_support_resistance_levels

Retrieve support and resistance levels for a given ticker and period. Args: ticker (str): The symbol of the security. period (str, optional): Time period for levels (e.g., '6mo'). Defaults to '6mo'. Returns: SupportResistanceLevelsDict: Support and resistance levels data.

get_technical_indicators

Retrieve technical indicators for a given ticker and period. Args: ticker (str): The symbol of the security. period (str, optional): Time period for indicators (e.g., '6mo'). Defaults to '6mo'. Returns: TechnicalIndicatorsDict: Technical indicators data.

get_volatility_metrics

Retrieve volatility metrics for a given ticker and period. Args: ticker (str): The symbol of the security. period (str, optional): Time period for metrics (e.g., '1y'). Defaults to '1y'. Returns: VolatilityMetricsDict: Volatility metrics data.

This MCP server provides a variety of tools for retrieving financial data. Below is a list of available tools and their main arguments:

---

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "open markets": {
            "yfinance": {
                "command": "uvx",
                "args": [
                    "openmarkets@latest"
                ]
            }
        }
    }
}

McpServers

{
    "yfinance": {
        "command": "uvx",
        "args": [
            "openmarkets@latest"
        ]
    }
}

A Model Context Protocol (MCP) server for agentic retrieval of financial market data. This server leverages YFinance to provide a simple and efficient way to access historical stock prices, dividends, stock splits, company information, and other financial metrics.

This MCP server is designed to be used with various LLM applications that support the Model Context Protocol, such as Claude Desktop and Cursor. It allows users to retrieve financial data in a structured way, making it easy to integrate into AI applications.

Available Tools

This MCP server provides a variety of tools for retrieving financial data. Below is a list of available tools and their main arguments:

---

Stock Information

- get_stock_info(ticker: str)
Get basic information about a stock.

Historical Data
- get_historical_data(ticker: str, period: str = "1mo", interval: str = "1d") Get historical price data for a stock. - get_multiple_tickers(tickers: list[str], period: str = "1d") Get data for multiple stocks at once. - download_bulk_data(tickers: list[str], period: str = "1mo", interval: str = "1d", ...) Download bulk historical data for multiple tickers. - get_ticker_history_metadata(ticker: str) Get available periods, intervals, and metadata for a ticker.
Analyst Data
- get_recommendations(ticker: str) Get analyst recommendations for a stock. - get_analyst_price_targets(ticker: str) Get analyst price targets. - get_upgrades_downgrades(ticker: str) Get recent upgrades and downgrades. - get_recommendations_summary(ticker: str) Get recommendations summary.
Corporate Actions
- get_dividends(symbol: str, period: str = "5y") Get dividend history for a stock. - get_splits_history(symbol: str, period: str = "5y") Get stock split history.
Market Data
- get_market_status() Get current US market status. - get_trending_tickers(region: str = "US", count: int = 10) Get trending/popular tickers. - get_sector_performance() Get sector performance using ETFs. - get_index_data(indices: list[str] = None) Get data for major market indices.
Calendar & Market Hours
- get_market_calendar_info(ticker: str) Get market calendar and session info. - get_market_hours(ticker: str) Get market hours and session information. - get_exchange_info(ticker: str) Get detailed exchange and trading information.
Screener & Search
- screen_stocks_by_criteria(...) Screen stocks by market cap, P/E, dividend yield, sector, etc. - get_similar_stocks(ticker: str, count: int = 5) Find similar stocks by sector and market cap. - get_top_performers(period: str = "1mo", sector: str = None, count: int = 10) Get top performing stocks.
Technical Analysis
- get_technical_indicators(ticker: str, period: str = "6mo") Get technical indicators (SMA, price position, etc.). - get_volatility_metrics(ticker: str, period: str = "1y") Get volatility and risk metrics. - get_support_resistance_levels(ticker: str, period: str = "6mo") Get support and resistance levels.
Options
- get_options_expiration_dates(ticker: str) Get available options expiration dates. - get_option_chain(ticker: str, expiration_date: str = None) Get option chain for a ticker. - get_options_volume_analysis(ticker: str, expiration_date: str = None) Analyze options volume and open interest. - get_options_by_moneyness(ticker: str, expiration_date: str = None, moneyness_range: float = 0.1) Filter options by proximity to current price.
Financial Statements
- get_financials_summary(ticker: str) Get key financial metrics summary.
Funds & ETFs
- get_fund_profile(ticker: str) Get fund/ETF profile. - get_fund_holdings(ticker: str, count: int = 20) Get top holdings of a fund/ETF. - get_fund_sector_allocation(ticker: str) Get sector allocation of a fund/ETF. - get_fund_performance(ticker: str) Get fund/ETF performance metrics. - compare_funds(tickers: list[str]) Compare multiple funds/ETFs.
Crypto
- get_crypto_info(crypto_symbol: str) Get cryptocurrency info. - get_crypto_historical_data(crypto_symbol: str, period: str = "1mo", interval: str = "1d") Get historical data for a cryptocurrency. - get_top_cryptocurrencies(count: int = 10) Get data for top cryptocurrencies. - get_crypto_fear_greed_proxy(crypto_symbols: list[str] = None) Get a proxy for crypto fear/greed index.
Currency & Validation
- get_currency_data(base_currency: str = "USD", target_currencies: list[str] = None) Get currency exchange rates. - validate_tickers(tickers: list[str]) Validate if tickers are valid and available.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.