Yahoo Finance MCP Server
Use this read-only, no-API-key Yahoo Finance MCP server to give MCP clients live market data and fundamental research over stdio or HTTP.
Get real-time/delayed stock quotes and historical OHLCV prices with summary stats and returns.
Research company profiles, executives, key statistics, and annual income/balance/cash-flow statements.
Compare 2–10 stocks side by side on key metrics.
Retrieve analyst ratings, price targets, recommendation trends, upgrades/downgrades, and forward EPS/revenue/growth estimates.
Fetch ticker news, options expiration dates/chains, ownership and insider activity, and dividend/split history.
Search ticker symbols by company name or keyword and check market open/closed status with index summaries.
Access earnings dates, beat/miss history, ex-dividend dates, and market-wide earnings calendars filtered by date and market cap.
Run Yahoo predefined stock, ETF, and mutual-fund screeners.
Inspect ETF/mutual-fund holdings, expense ratios, sector weights, and asset allocations.
Explore sector/industry overviews with largest, fastest-growing, and best-performing companies.
Return human-readable Markdown by default or structured JSON on request; all tools are read-only and cannot place trades.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Yahoo Finance MCP Server What's the latest news for AMZN?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Yahoo Finance MCP Server 📈
Free Yahoo Finance MCP server with no API key. 18 read-only tools give Claude, Claude Code, Cursor, VS Code, Windsurf, Codex, n8n or any other MCP client live stock quotes, historical prices, financial statements, earnings dates and calendars, analyst ratings and estimates, options chains, insider and institutional holders, stock screeners, ETF and fund holdings, sector overviews and market news. Runs locally with one npx command, over stdio or Streamable HTTP.
npm package:
yahoo-finance-mcp-server· GitHub repo:danishashko/yahoo-finance-mcp. The repo name is shorter than the package name; both refer to this project.
🎯 What You Get
📊 Real-time stock quotes with full market data
📈 Historical prices (OHLCV) with summary statistics
🏢 Company profiles, officers, and key statistics
💰 Financial statements (income, balance sheet, cash flow)
🎯 Analyst ratings, price targets, and the recent recommendation trend
⚖️ Multi-stock comparisons side by side
📰 Latest financial news per ticker
🧾 Options chains (calls/puts, strikes, IV, open interest)
🏦 Ownership data — institutional, mutual fund, and insider activity
💵 Dividend & split history
🔮 Forward analyst estimates (price targets, EPS/revenue, growth)
🔎 Symbol search by company name or keyword
🕒 Market status (open/closed) and index summary
📅 Earnings dates: next report, beat/miss history, and a market-wide earnings calendar
🧲 Stock screeners: day gainers/losers, most active, most shorted, undervalued growth, top ETFs
🧺 ETF and fund data: holdings, expense ratio, sector weights
🏭 Sector and industry overviews with their largest, fastest-growing and best-performing companies
Every tool returns human-readable markdown by default, or structured JSON on request (response_format: "json"). Requests share a single browser-impersonating HTTP session to reduce Yahoo Finance rate-limiting.
Related MCP server: Financial Data MCP Server
🚀 Quick Start
Add this to your Claude Desktop config and restart Claude:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yahoo-finance": {
"command": "npx",
"args": ["-y", "yahoo-finance-mcp-server"]
}
}
}That is it. On first launch the npx wrapper creates an isolated Python environment and installs the dependencies for you (a one-time step that can take a minute). You only need Python 3.10+ and Node.js 16+ on your machine.
Other clients
Claude Code
claude mcp add yahoo-finance -- npx -y yahoo-finance-mcp-serverCursor (~/.cursor/mcp.json), Windsurf (~/.codeium/windsurf/mcp_config.json) and Gemini CLI (~/.gemini/settings.json) take the same mcpServers block as Claude Desktop above.
VS Code (.vscode/mcp.json)
{
"servers": {
"yahoo-finance": {
"type": "stdio",
"command": "npx",
"args": ["-y", "yahoo-finance-mcp-server"]
}
}
}Codex CLI (~/.codex/config.toml)
[mcp_servers.yahoo-finance]
command = "npx"
args = ["-y", "yahoo-finance-mcp-server"]n8n and other URL-only clients: see HTTP mode.
Prefer a global install?
npm install -g yahoo-finance-mcp-server{
"mcpServers": {
"yahoo-finance": {
"command": "yahoo-finance-mcp-server"
}
}
}🌐 HTTP mode (n8n, remote agents, anything that connects to a URL)
Some clients spawn an MCP server as a child process and talk to it over stdio; others only take a URL. n8n's MCP Client Tool node is the second kind - it offers HTTP Streamable and SSE and no way to launch a command - so stdio alone puts the server out of reach.
--http serves the same 18 tools over Streamable HTTP at /mcp:
npx -y yahoo-finance-mcp-server --http
# -> http://127.0.0.1:8000/mcpFlag | Default | What it does |
| off | Serve Streamable HTTP at |
|
| Interface to bind |
|
| Port to bind |
| see below | Host header to accept, repeatable |
| off | Keep a session per client instead of stateless |
No authentication is added, so keep it on an interface you trust.
Reaching it from a container
n8n in Docker is not on your loopback interface, so bind wider and use the host alias:
npx -y yahoo-finance-mcp-server --http --host 0.0.0.0 --port 8931Then point the MCP Client Tool node at http://host.docker.internal:8931/mcp
with authentication set to None.
DNS-rebinding protection stays on when you bind wider. localhost,
127.0.0.1 and host.docker.internal on the bound port are accepted by
default; any other name needs --allowed-host name:port, and a request
arriving under an unlisted name gets 421 Misdirected Request.
🔧 Available Tools
Tool | What it returns | Parameters |
| Current price, change, day and 52-week range, volume, market cap, P/E, EPS, dividend yield |
|
| OHLCV history with summary stats and total return |
|
| Business summary, key executives, valuation and financial highlights |
|
| Annual income statement, balance sheet, and cash flow |
|
| Key metrics for multiple tickers side by side, plus quick insights |
|
| Price targets, consensus, recommendation trend, and recent upgrades/downgrades |
|
| Latest news headlines with source, date, summary, and link |
|
| Expiration dates, or the calls/puts chain (strike, bid/ask, volume, OI, IV) |
|
| Institutional, mutual-fund, or major holders, or insider transactions |
|
| Dividend payment history (with summary) and stock-split history |
|
| Forward price targets, EPS/revenue estimates by period, and growth estimates |
|
| Find ticker symbols by company name or keyword |
|
| Whether a market is open/closed, with timing and a major-index summary |
|
| Next earnings date (days away, EPS and revenue estimates), ex-dividend date, beat/miss history |
|
| Every company reporting in a date range, with timing and EPS estimate |
|
| Results of a Yahoo predefined screener with price, change, relative volume, P/E |
|
| ETF or mutual fund holdings, expense ratio, sector weights, asset classes |
|
| Sector or industry overview, largest companies, industries, top growers and performers |
|
Every tool also accepts response_format ("markdown", the default, or "json").
Every result also carries the data as MCP structured content, described by the tool's published outputSchema, whichever text format you ask for. Clients that support structured output read typed fields directly; others read the text. Missing figures are null, and a failed call returns isError: true with a message saying what to change.
get_historical_prices options:
period:1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,maxinterval:1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
get_options_chain: call without expiration_date to list available dates, then again with a date. option_type is calls, puts, or both. A chain returns the strikes nearest the current price.
get_holders: holder_type is institutional, mutualfund, major, insider_transactions, insider_purchases (6-month net insider buying), or insider_roster.
screen_stocks: screener is one of day_gainers, day_losers, most_actives, most_shorted_stocks, small_cap_gainers, aggressive_small_caps, growth_technology_stocks, undervalued_growth_stocks, undervalued_large_caps, top_etfs_us, top_performing_etfs, technology_etfs, bond_etfs, top_mutual_funds, solid_large_growth_funds, solid_midcap_growth_funds, conservative_foreign_funds, high_yield_bond, portfolio_anchors.
get_sector_overview: sector is one of basic-materials, communication-services, consumer-cyclical, consumer-defensive, energy, financial-services, healthcare, industrials, real-estate, technology, utilities. Call without industry to get the list of industry keys.
💬 Example Prompts
Once the server is connected, just ask Claude:
"What's the current price of Apple stock?"
"Show me Amazon's stock performance over the last year"
"Tell me about Tesla as a company and who runs it"
"Show me Apple's income statement"
"Compare AAPL, MSFT, and GOOGL"
"What do analysts think about Amazon, and what's the price target?"
"What's the latest news on NVIDIA?"
"Show me the SPY call options expiring next month"
"Who are the biggest institutional holders of Apple?"
"What's Coca-Cola's dividend history?"
"When does NVIDIA report next, and has it been beating estimates?"
"Which large caps report earnings this week?"
"What are today's biggest gainers?"
"What's inside QQQ and what does it cost?"
"Who are the biggest semiconductor companies?"
"Are Tesla insiders net buying or selling?"
❓ FAQ
Does it need an API key or a paid plan?
No. It reads Yahoo Finance's public data through the yfinance library. There is no key, account or signup.
Is the data real-time? Quotes are near real-time for most US stocks and can be delayed about 15 minutes on some exchanges. Every quote states its exchange, market state and timestamp.
Which tickers work?
Any symbol Yahoo Finance lists: US stocks (AAPL), class shares (BRK.B or BRK-B), non-US listings with Yahoo's exchange suffix (7203.T, BP.L, SAP.DE), ETFs and mutual funds (SPY, VFIAX), indices (^GSPC), crypto (BTC-USD) and currencies (EURUSD=X). Case does not matter. If you only have a company name, search_symbols finds the ticker.
Can it place trades or change anything? No. Every tool is read-only.
Does it work with clients other than Claude? Yes. It speaks standard MCP, so any client that supports MCP over stdio or Streamable HTTP can use it. Setup for the common ones is under Quick Start.
How do agents get structured data?
Every result carries typed structuredContent matching the tool's outputSchema, whatever text format was asked for. Pass response_format: "json" to get JSON text as well.
Where is the machine-readable summary?
llms.txt lists every tool, limit and error behaviour in one page for agents.
🐛 Troubleshooting
"Command not found" / "Python not found"
Make sure Python and Node.js are installed and on your PATH. On macOS/Linux, try python3 instead of python in the config.
"Module not found: yfinance" (manual install only) Install the dependencies:
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpxTools not showing up in Claude
Confirm the config file is valid JSON (no trailing commas).
Fully quit and reopen Claude Desktop.
Check the path in your config actually exists.
"Error fetching data"
Check your internet connection.
Verify the ticker symbol (for example
AAPL, notApple).Some smaller companies have limited data, and Yahoo Finance can be briefly unavailable.
Using a different model or provider (LiteLLM, OpenRouter, NVIDIA NIM, a local model)
This server never talks to a model. Your client starts it as a local process and
speaks JSON-RPC over stdin/stdout, so changing ANTHROPIC_BASE_URL or swapping the
model behind your client has no effect on it. If tools stop firing after a switch
like that, check two things: the model has to support function calling, and a proxy
configured to drop unsupported parameters can silently strip your tool definitions,
which produces no error at all. Run /mcp in your client (or claude mcp list) to
confirm the server is connected before suspecting the server.
🛠️ Manual Installation (Alternative)
If you would rather run the Python file directly instead of via npx:
1. Download the server
Save yahoo_finance_mcp.py somewhere on your machine and install the dependencies:
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpx(or pip3 on macOS/Linux)
2. Point Claude Desktop at it
{
"mcpServers": {
"yahoo-finance": {
"command": "python3",
"args": ["/absolute/path/to/yahoo_finance_mcp.py"]
}
}
}On Windows use "command": "python" and a path like "C:\\path\\to\\yahoo_finance_mcp.py" (double backslashes or forward slashes).
3. Restart Claude Desktop.
🔒 Privacy & Rate Limits
Uses the free Yahoo Finance API via the
yfinancelibrary.Requests go straight to Yahoo Finance. Nothing is stored or proxied.
Yahoo Finance rate-limits roughly 2,000 requests/hour per IP.
Intended for personal, educational, and research use.
📝 Notes
Tickers are case-insensitive, and
BRK.Bis accepted as well as Yahoo'sBRK-B.Some quotes may be delayed 15 to 20 minutes.
Financial statements are generally available for larger public companies.
📋 Changelog
See CHANGELOG.md for the full version history.
📚 Resources
⚖️ Legal Disclaimer
This tool uses Yahoo Finance's publicly available data through the yfinance library. Yahoo!, Y!Finance, and Yahoo! Finance are registered trademarks of Yahoo, Inc. This tool is not affiliated with, endorsed by, or vetted by Yahoo, Inc. Please refer to Yahoo!'s terms of use for details on your rights to use the data.
👤 Author
Daniel Shashko
GitHub: @danishashko
LinkedIn: daniel-shashko
npm: danielshashko
📄 License
MIT © Daniel Shashko
Available Tools
18 toolscompare_stocksARead-onlyIdempotent
Side-by-side comparison of 2-10 stocks across key metrics (price, market cap, P/E, EPS, dividend yield, 52-week range, and period performance) with brief auto-generated insights.
Use for "which is better, X or Y", peer/relative comparison, or screening a small set. For a deep dive on a single name use get_stock_quote or get_company_info.
Pass 2-10 tickers in the tickers list. Returns a Markdown comparison table by default, or JSON when response_format='json'. A ticker that fails to resolve is reported per-symbol rather than failing the whole call.
Inputs: tickers (required), response_format. Returns: message, tickers, comparison
get_analyst_estimatesARead-onlyIdempotent
Forward-looking analyst estimates for one stock: price targets, EPS and revenue estimates by period (current and next quarter and year), and growth estimates.
Use for projected/expected numbers and forecasts. This complements get_analyst_recommendations: that tool returns ratings and the recommendation trend, this one returns the numeric forward estimates.
Returns Markdown by default, or JSON when response_format='json'. A stock without analyst coverage returns the available fields as N/A or a short message.
Inputs: ticker (required), response_format. Returns: ticker, message, priceTargets, growthEstimates, +2 more
get_analyst_recommendationsARead-onlyIdempotent
Wall Street analyst view on one stock: price targets (high/mean/low), consensus rating, the buy/hold/sell recommendation-trend breakdown, and recent upgrades/downgrades.
Use for "what do analysts think of X", ratings, or sentiment. For forward EPS/revenue/growth projections use get_analyst_estimates instead: this tool is ratings and targets, that one is the numeric estimates. Not for news-driven sentiment (use get_market_news). Small caps often have few or no covering analysts, so a thin consensus carries little weight.
Returns Markdown by default, or JSON when response_format='json'. A stock with no analyst coverage returns the available fields as N/A; errors return a short message.
Inputs: ticker (required), response_format. Returns: ticker, message, consensus, priceTargets, +2 more
get_company_infoARead-onlyIdempotent
Detailed company profile for one stock: long business summary, sector/industry, key executives, headquarters/website/employee count, and valuation & financial-highlight stats (market cap, P/E, margins, and similar).
Use for "what does X do", company background, or a business overview. For the statement-level numbers (income/balance/cash flow) use get_financial_statements; for just the live price use get_stock_quote.
Returns Markdown by default, or JSON when response_format='json'. An unknown ticker or upstream error returns a short error message.
Inputs: ticker (required), response_format. Returns: Yahoo's full company profile; the listed fields are the most used of ~180.
get_dividends_splitsARead-onlyIdempotent
Full dividend payment history (with a trailing-period summary) and the stock-split history for one stock.
Use for dividend-income analysis, payment dates and amounts, dividend growth, or past split events. For the current/forward dividend yield use get_stock_quote; for price history use get_historical_prices.
Returns Markdown by default, or JSON when response_format='json'. A stock that pays no dividend or has never split returns a short message noting that none exist.
Inputs: ticker (required), response_format. Returns: splits, ticker, message, dividends
get_earningsARead-onlyIdempotent
Next earnings date for one stock (with days until it, consensus EPS and revenue range) plus its earnings history: each past report's EPS estimate, reported EPS and surprise %. Also returns the next ex-dividend date.
Use before opening or holding a position through earnings, to check the earnings track record (beats vs misses), or for "when does X report". For forward EPS/revenue estimates by period use get_analyst_estimates; for every company reporting in a date range use get_earnings_calendar; for full income statements use get_financial_statements. limit counts upcoming and past dates together, newest first.
Returns Markdown by default, or JSON when response_format='json'. A symbol with no earnings (an ETF, an index) returns a short message.
Inputs: ticker (required), limit, response_format. Returns: beats, ticker, history, message, +7 more
get_earnings_calendarARead-onlyIdempotent
Every company reporting earnings in a date range, market-wide: symbol, company, market cap, event, date, timing (BMO before open / AMC after close), EPS estimate and, once reported, actual EPS and surprise %.
Use for "who reports this week", building a catalyst watchlist, or checking which holdings report soon. Not for one stock's history: use get_earnings for that. Results are sorted by market cap, largest first.
Returns Markdown by default, or JSON when response_format='json'. An empty range returns a short message.
Inputs: limit, end_date, start_date, min_market_cap, +1 more. Returns: end, count, start, message, +1 more
get_financial_statementsARead-onlyIdempotent
Annual financial statements for one company: income statement, balance sheet, and cash flow statement, each with multiple years of data.
Use for revenue, earnings, assets/liabilities, cash flow, or fundamental analysis. For headline ratios only use get_company_info; for forward projections use get_analyst_estimates. Quarterly data is not returned; request JSON for the complete machine-readable export.
Returns Markdown by default, or JSON when response_format='json'. Companies without filed statements (for example some ETFs or ADRs) return empty sections or a short message.
Inputs: ticker (required), response_format. Returns: ticker, message, cashFlow, balanceSheet, +2 more
get_fund_dataARead-onlyIdempotent
What an ETF or mutual fund holds and costs: category and fund family, expense ratio and turnover against its category average, top holdings with weights, sector weightings, and asset-class split (stock, bond, cash).
Use for "what's in SPY", fund overlap and concentration checks, or comparing fund costs. Not for individual stocks: use get_company_info for those.
Returns Markdown by default, or JSON when response_format='json'. A symbol that is not a fund returns a short message.
Inputs: ticker (required), response_format. Returns: ticker, message, overview, operations, +4 more
get_historical_pricesARead-onlyIdempotent
Historical OHLCV price series for one stock over a chosen period/interval, plus summary stats (highest/lowest/average close, average volume) and total return over the window.
Use for performance, trends, or charting ("how has X done over the last year"). For a single current price use get_stock_quote; for dividend/split events use get_dividends_splits. Note: intraday intervals (1m-90m) are only available for short recent periods, and long periods return many rows, so prefer JSON or a shorter period if the output is truncated.
Returns Markdown (summary stats plus the last 10 rows) by default, or the full series as JSON when response_format='json'. An empty or unsupported period/interval combination returns a short message.
Inputs: ticker (required), period, interval, response_format. Returns: data, note, period, ticker, +5 more
get_holdersARead-onlyIdempotent
Ownership and insider activity for one stock, selected by holder_type: 'institutional' (top institutional holders), 'mutualfund' (top fund holders), 'major' (insider-vs-institutional ownership % breakdown), 'insider_transactions' (recent insider buys and sells, one row per trade), 'insider_purchases' (net insider buying vs selling over the last 6 months), or 'insider_roster' (each insider, their position and shares held).
Use for "who owns X", institutional ownership, or insider trading activity. One holder_type per call: call again to get a different view. Not for share count, float or valuation (use get_company_info) or for analyst opinion (use get_analyst_recommendations). Institutional and fund holdings come from quarterly filings, so they can be a few months old; insider trades are filed within days and are the fresher signal.
Returns Markdown by default, or JSON when response_format='json'. Missing data for the chosen category returns a short message.
Inputs: ticker (required), holder_type, response_format. Returns: data, note, ticker, message, +3 more
get_market_newsARead-onlyIdempotent
Latest news articles for one stock; each item has a title, publisher/source, publish date, a short summary, and a link.
Use for "what's the latest news on X", recent headlines, or catalysts. Returns news only: for price use get_stock_quote, for fundamentals use the financials tools.
count sets how many articles to return (1-20, default 10). Returns Markdown by default, or JSON when response_format='json'. No recent news returns a short message.
Inputs: ticker (required), count, response_format. Returns: news, count, ticker, message
get_market_statusARead-onlyIdempotent
Whether a stock market is currently open or closed for a given region, with trading-session timing and a summary of that region's major indices.
Use for "is the US market open", market hours, or a quick index overview. region is one of US (default), GB, ASIA or EUROPE for equity markets, or RATES, COMMODITIES, CURRENCIES or CRYPTOCURRENCIES for those asset classes; other country codes are not accepted. This is market-wide, not per-stock: use get_stock_quote for an individual price, and get_sector_overview for sector performance.
Returns Markdown by default, or JSON when response_format='json'. An unrecognized region returns a short message.
Inputs: region, response_format. Returns: region, status, message, summary
get_options_chainARead-onlyIdempotent
Equity options data for one underlying, in two modes: call with no expiration_date to LIST every available expiration date; call again with a specific 'YYYY-MM-DD' to get that expiration's chain (strike, bid/ask, last, volume, open interest, implied volatility).
Use for options pricing, implied volatility, or open-interest analysis. option_type selects 'calls', 'puts', or 'both'. Always discover the valid dates first (call with no date) before requesting a chain, since only listed expirations work.
Returns Markdown by default, or JSON when response_format='json'. A ticker with no listed options returns a short message.
Inputs: ticker (required), option_type, expiration_date, response_format. Returns: note, puts, calls, ticker, +6 more
get_sector_overviewARead-onlyIdempotent
Overview of a market sector, or of one industry inside it: description, company count, total market cap, market weight, and the largest companies with analyst rating. A sector also lists its industries with their keys and weights; an industry adds its top growth companies (growth estimate) and top performers (YTD return, target price).
Use for sector rotation, "biggest semiconductor companies", finding peers for a stock, or exploring an industry before picking names. Call without industry first, then pass one of the returned industry keys.
Returns Markdown by default, or JSON when response_format='json'. An unknown industry key returns a short message listing the valid ones.
Inputs: sector (required), limit, industry, response_format. Returns: name, sector, message, industry, +5 more
get_stock_quoteARead-onlyIdempotent
Real-time quote snapshot for ONE stock: last price, day change ($ and %), open, previous close, day range, 52-week range, volume and average volume, market cap, beta, trailing P/E, EPS, dividend yield, and sector/industry/website.
Use for "what's the price of X" or a quick single-stock snapshot. For several stocks side by side use compare_stocks; for the full company profile use get_company_info; for a past price series use get_historical_prices.
Returns Markdown by default, or structured JSON when response_format='json'. An unknown ticker or an upstream/rate-limit error returns a short error message rather than raising.
Inputs: ticker (required), response_format. Returns: beta, open, change, dayLow, +23 more
screen_stocksARead-only
Run one of Yahoo Finance's predefined screeners and return the matching symbols with price, % change, volume relative to the 3-month average, market cap, trailing and forward P/E, and 52-week range.
Use to discover candidates you don't have yet: today's movers, unusual volume, heavily shorted names, undervalued growth or large caps, or top ETFs and funds. Not for a symbol you already know (use get_stock_quote) and not for custom filters: only Yahoo's predefined screeners exist, so pick the closest one. Results are live and reorder through the trading day, so two calls minutes apart can differ. count takes the top N in the screener's own ranking; there is no paging. Follow up on a symbol with get_stock_quote, get_company_info or get_earnings.
Returns Markdown by default, or JSON when response_format='json'.
Inputs: screener (required), count, response_format. Returns: count, title, total, message, +2 more
search_symbolsARead-onlyIdempotent
Resolve a company name or keyword to ticker symbols; each match returns the symbol, name, exchange, and instrument type (equity, ETF, and so on).
Use this first when you have a company or brand name but not its ticker, then pass the resolved symbol to the other tools. Skip it when you already have a valid ticker. Not for fetching prices or fundamentals. A name often matches several listings (the US share, foreign listings, ETFs): choose by exchange and type, not just the first row.
query is the name/keyword to search; count caps the number of matches (1-20, default 8). Returns Markdown by default, or JSON when response_format='json'. No matches returns a short message.
Inputs: query (required), count, response_format. Returns: count, query, message, results
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
The tools have clearly distinct purposes, and the descriptions explicitly resolve the few potentially overlapping areas: analyst recommendations vs. estimates, single-stock earnings vs. earnings calendar, and quote vs. compare vs. company info. An agent can select the right tool without much ambiguity.
All tool names use consistent snake_case with an action-first pattern such as get_stock_quote, get_historical_prices, search_symbols, screen_stocks, and compare_stocks. There is no mixing of camelCase or inconsistent verb styles.
Eighteen tools is slightly heavy relative to the ideal 3–15 range, but the breadth of Yahoo Finance coverage justifies the size. Each tool appears to earn its place by covering a distinct finance subdomain rather than duplicating functionality.
The surface is broad and covers most stock-research workflows: discovery, quotes, history, fundamentals, analysts, ownership, earnings, options, dividends, funds, sectors, news, and screening. Minor gaps remain, such as market-wide news or direct index/FX quote and historical tools beyond market status.
Maintenance
Related MCP Connectors
Financial data MCP server for Claude, ChatGPT, Cursor and Codex. Real-time stock quotes, financial statements, options flow, SEC filings, insider trades, 13F holdings, macro data and market news from gloom.sh, the open-source Bloomberg Terminal alternative.
Official Intrinio MCP server. US stock prices, options and fundamentals for AI agents.
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. This is the official MCP server of www.ceyloncharts.com
Research US-listed companies and funds with the StockPortfolio.pro MCP server. Tools cover SEC filing-grounded financials, filing timelines, company comparisons, watchlist screens, fund profiles, and cited filing questions. Filed figures include their fiscal period and EDGAR source URL; missing filing data is returned as null. Public tools work without authentication; optional API-key or OAuth access is supported. US-listed, USD-reporting companies only. Keyless access includes 3 free AI questions per rolling 30-day window. To get more now, choose the Dev plan ($19.99/month, 200 credits) at https://www.stockportfolio.pro/register?plan=dev, then follow https://www.stockportfolio.pro/docs/api-mcp to connect with OAuth or an API key. Or wait for the free allowance to renew.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive stock market data and technical analysis tools via the MCP protocol, enabling real-time quotes, historical data, and professional indicators like RSI and MACD for Claude Desktop and other clients.26 PyPI5Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI models to access real-time financial market data including stock quotes, fundamentals, daily prices, symbol search, and market status via the Alpha Vantage API. Works with any MCP-compatible client like Claude Desktop for natural language interaction.-
- AlicenseNot gradedqualityDmaintenanceReal-time stock market data for Claude Desktop and any MCP-compatible client, powered by Yahoo Finance.1,737 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that provides real-time stock quotes and company summaries using the Alpha Vantage API. It enables natural language financial data queries in Claude Desktop and other MCP clients.-