Server definition
- Hash
- sha256:f8f86e345d366ea0fab8c52ef05aaef96645231edc7fc5dd8a14e5df56b94a92
- What it is
- What a remote MCP server returned when asked what it offers: 71 tools
The blob, as servednamed by its sha256
{
"instructions": "TipRanks provides market data and analyst research (ratings, price targets, Smart Scores, financials) for informational purposes only — not investment, financial, legal, or tax advice. Quotes and other data may be delayed. Present results as information, not recommendations.",
"tools": [
{
"description": "TipRanks AI Stock Analysis — the 0-100 AI score for one or more stocks.\n\n Six frontier models (OpenAI, Anthropic, Gemini, xAI, DeepSeek, Perplexity)\n research each covered stock independently. Every model returns its own\n 0-100 score, rating (outperform / neutral / underperform), price target,\n and a weighted factor breakdown across financial performance, technical\n analysis, valuation, earnings call and corporate events.\n\n Use for: \"what's the AI score for NVDA\", \"AI rating on my watchlist\",\n \"compare the AI scores of AAPL, MSFT and NVDA\", \"why do the models\n disagree on Tesla\".\n\n Pass every symbol in one call — a multi-ticker call returns one compact row\n per ticker, which is what a watchlist or ranking question needs. A single\n ticker also returns every model's score with its factor breakdown plus the\n bull and bear key points.\n\n This is NOT the Smart Score (1-10, eight quantitative factors). It is a\n separate system, and the two routinely disagree by design.\n\n `ai_score` is the headline score and matches the AI Stock Analysis page;\n `consensus` holds the cross-model average, the high and low scoring models,\n and the split of rating labels. `upside_pct` is the model's price target\n against the current price. `as_of` is when the report was generated —\n reports regenerate on new earnings or a significant price move, so an older\n date means nothing material has changed since.\n\n Coverage is a subset of the stock universe and excludes ETFs. Symbols with\n no report at all come back under `not_covered`; symbols that are covered but\n lack a report from the requested `provider` come back separately under\n `no_report_from_provider`, each listing the models that did score them — so\n a missing provider is never reported as \"this stock has no AI analysis\".\n\n Args:\n tickers: Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT'), max 25.\n provider: Optional single provider to report on. Omit for the\n headline score that matches the website.\n detail: 'consensus' (default) or 'full' to add each model's written\n reasoning. Ignored on multi-ticker calls.\n\n Returns JSON: {stocks: [{ticker, company, ai_score, rating,\n headline_model, price, price_target, upside_pct, as_of, reflects,\n consensus: {models, avg_score, score_high, score_low, ratings_split,\n avg_price_target, avg_upside_pct, reports_dated}, providers: [...],\n key_points: [...]}], not_covered: [...],\n no_report_from_provider: [{ticker, covered_by}]}.\n `consensus.reports_dated` appears only when the models did not all run on\n the same date; `as_of` is always the headline report's own date.\n ",
"inputSchema": {
"properties": {
"detail": {
"default": "consensus",
"description": "'consensus' (default) returns each model's score and factor breakdown; 'full' adds each model's written reasoning. Ignored on multi-ticker calls.",
"enum": [
"consensus",
"full"
],
"title": "Detail",
"type": "string"
},
"provider": {
"anyOf": [
{
"enum": [
"OpenAI",
"Anthropic",
"Gemini",
"xAI",
"DeepSeek",
"PerPlexity"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional single AI provider to report on. Map what the user said to the provider: Claude is Anthropic, ChatGPT/GPT is OpenAI, Grok is xAI, Sonar is PerPlexity. Omit for the headline score that matches the website.",
"title": "Provider"
},
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"description": "Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA'), up to 25",
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_ai_stock_analysisArguments",
"type": "object"
},
"name": "get_ai_stock_analysis",
"outputSchema": null
},
{
"description": "Returns real-time quotes for all commodities in a single request.\n\n Each row carries the commodity's display name and a changePercentage derived\n from price and change, alongside the raw price, change and volume. Use the\n name given in the response — several symbols are non-mnemonic (HEUSX is Lean\n Hogs, SBUSX is Sugar, ZSUSX is Soybeans).\n ",
"inputSchema": {
"properties": {},
"title": "get_all_commodities_quotesArguments",
"type": "object"
},
"name": "get_all_commodities_quotes",
"outputSchema": null
},
{
"description": "Real-time crypto quotes: the largest coins, each with a display name.\n\n The feed carries 4,771 coins in alphabetical order, which is far more than one\n response can hold — so this returns `limit` of them ordered by market\n capitalisation, largest first, and the response states how many were left out.\n Pass `symbols` for specific coins, or call get_crypto_quote for a single one.\n\n Read `note` before summarising: it says how many coins the slice covers out of\n how many exist, so a \"top coins\" answer is not mistaken for the whole market.\n\n `volume` on a crypto row is the source venue's own figure and is not a common\n unit across coins — some rows count coins, others quote-currency turnover. It\n does not rank the market and coins cannot be compared on it.\n\n Args:\n symbols: Comma-separated coins (optional; overrides the ranked slice)\n limit: How many ranked coins to return (optional)\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 40,
"description": "How many ranked coins to return (default 40, max 75). Ignored when `symbols` is given.",
"title": "Limit",
"type": "integer"
},
"symbols": {
"default": "",
"description": "Optional comma-separated coins to return instead of the ranked slice, e.g. 'BTCUSD,ETHUSD'. Bare tickers like 'BTC' resolve to the USD pair.",
"title": "Symbols",
"type": "string"
}
},
"title": "get_all_crypto_quotesArguments",
"type": "object"
},
"name": "get_all_crypto_quotes",
"outputSchema": null
},
{
"description": "Real-time forex quotes: the most-traded pairs, each with a display name.\n\n The feed carries 1,550 pairs in alphabetical order, which is far more than one\n response can hold — so this returns the most prominent `limit` of them (majors\n first, then by volume), and the response states how many were left out. Pass\n `symbols` for specific pairs, or call get_forex_quote for a single one.\n\n Read `note` before summarising: it says how many pairs the slice covers out of\n how many exist, so a \"top pairs\" answer is not mistaken for the whole market.\n\n `volume` on a forex row is a per-venue tick count, not market turnover — FX is\n over-the-counter and most pairs report 0. It does not rank the market.\n\n Args:\n symbols: Comma-separated pairs (optional; overrides the ranked slice)\n limit: How many ranked pairs to return (optional)\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 40,
"description": "How many ranked pairs to return (default 40, max 75). Ignored when `symbols` is given.",
"title": "Limit",
"type": "integer"
},
"symbols": {
"default": "",
"description": "Optional comma-separated pairs to return instead of the ranked slice, e.g. 'EURUSD,USDJPY'. Slash and dash forms are accepted.",
"title": "Symbols",
"type": "string"
}
},
"title": "get_all_forex_quotesArguments",
"type": "object"
},
"name": "get_all_forex_quotes",
"outputSchema": null
},
{
"description": "List analysts at a given firm (case-insensitive substring match).\n\n Each row: {name, firm, rank, avg_return_1y_pct, covered_tickers_sample,\n total_covered}. Results are deduped by analyst name (keeping the best\n rank) and sorted by rank ascending.\n\n When `sector` is provided, the per-analyst coverage list is filtered\n to tickers in that sector and the row shape becomes {name, firm,\n rank, avg_return_1y_pct, sector, covered_tickers}.\n\n Args:\n firm: Firm name or fragment (e.g. 'Goldman' matches 'Goldman Sachs').\n sector: Optional lowercase sector (e.g. 'technology', 'healthcare').\n ",
"inputSchema": {
"properties": {
"firm": {
"title": "Firm",
"type": "string"
},
"sector": {
"default": "",
"title": "Sector",
"type": "string"
}
},
"required": [
"firm"
],
"title": "get_analysts_by_firmArguments",
"type": "object"
},
"name": "get_analysts_by_firm",
"outputSchema": null
},
{
"description": "Fetch the full text of a single TipRanks article.\n\n Resolve a TipRanks article URL (e.g. from get_latest_news / get_assets_news),\n a slug, or a numeric post id to its title, excerpt, full body text\n (HTML-stripped, capped at 8000 chars), author, category, date, canonical\n URL, and any tagged tickers.\n\n Args:\n identifier: Numeric post id, slug, or a tipranks.com article URL.\n\n Returns a JSON object, or {\"error\": ...} when no matching TipRanks article\n exists (e.g. the URL points to an aggregated third-party site, which is not\n stored in TipRanks).\n ",
"inputSchema": {
"properties": {
"identifier": {
"description": "A TipRanks article identifier: the numeric post id, the slug, or a full tipranks.com article URL.",
"title": "Identifier",
"type": "string"
}
},
"required": [
"identifier"
],
"title": "get_articleArguments",
"type": "object"
},
"name": "get_article",
"outputSchema": null
},
{
"description": "Returns key TipRanks stock data for one or more tickers.\n\n Args:\n tickers: Ticker symbols — a comma-separated string (\"AAPL,MSFT,C\") or a\n JSON array ([\"AAPL\",\"MSFT\",\"C\"]). Both are accepted.\n\n Returns JSON {\"assetsData\": [...one compact entry per ticker...]}. This is a\n headline summary tuned to stay small enough for a whole portfolio to fit in a\n single response. Fields per entry:\n - ticker, companyName, sector, stockType, marketCap\n - url: canonical TipRanks page for the stock — use as the citation source.\n - price: latest close.\n - smartScore: TipRanks composite 1-10 (combines the 8 datasets — analyst,\n blogger, news, hedge-fund, insider, etc.).\n - analystConsensus / bestAnalystConsensus: rating label from ALL covering\n analysts vs. the top-performing ones (\"Strong Buy\"..\"Strong Sell\"); a\n divergence between the two is itself a signal.\n - priceTarget: average 12-month target. priceTargetUpside: decimal vs.\n current price (0.05 = +5%).\n - peRatio, dividendYield (decimal).\n - newsSentiment, hedgeFundsScore, insiderScore: 0-1 sentiment signals.\n - ytdGainPct, yearlyGainPct: price performance as a percent (12.5 = +12.5%,\n 3944 = +3944%).\n - nextEarningsDate, and daysUntilEarnings (whole days from today — quote this\n rather than computing the gap from the date yourself).\n Floats are rounded and dates are day-resolution. For deeper per-ticker detail\n (full price history, 13F / insider breakdowns, blogger counts, financials)\n use the dedicated tools (get_stock_prices, get_hedge_fund_holdings,\n get_insider_transactions, get_financials, ...).\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_assets_dataArguments",
"type": "object"
},
"name": "get_assets_data",
"outputSchema": null
},
{
"description": "Returns upcoming dividend and earnings events for tickers.\n\n Args:\n tickers: Comma-separated ticker symbols (e.g. \"AAPL,MSFT\")\n from_date: Optional start date (ISO format, e.g. \"2026-03-01\")\n to_date: Optional end date (ISO format, e.g. \"2026-06-01\")\n\n Returns: dividend dates, earnings dates, and coupon dates per ticker.\n ",
"inputSchema": {
"properties": {
"from_date": {
"default": "",
"title": "From Date",
"type": "string"
},
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
},
"to_date": {
"default": "",
"title": "To Date",
"type": "string"
}
},
"required": [
"tickers"
],
"title": "get_assets_eventsArguments",
"type": "object"
},
"name": "get_assets_events",
"outputSchema": null
},
{
"description": "Returns recent news articles for tickers, aggregated from many news\n sites, each with a sentiment tag and source URL (headlines only — no\n article body). For general/market TipRanks news without a specific ticker,\n or for an article excerpt, use get_latest_news.\n\n This tool serves the CURRENT news window only: it returns each ticker's most\n recent articles, and from_date just trims that recent set. For news from a\n specific past date range, use get_latest_news with from_date + to_date,\n which searches the full archive.\n\n Args:\n tickers: Comma-separated ticker symbols\n count: Number of articles to return (default 10)\n from_date: Optional 'YYYY-MM-DD' recency floor (filtered on `date`).\n\n Returns JSON: {\"assetNewsArticles\": [...]}. Each entry:\n - ticker, companyName\n - sentiment: bucketed signal — one of \"VeryPositive\", \"Positive\",\n \"Neutral\", \"Negative\", \"VeryNegative\". Derived from TipRanks\n news-sentiment classifier on the article text.\n - siteName, url, title\n - date, addedOn, publishTime, articleTimestamp: redundant date\n fields. addedOn is when TipRanks ingested it; publishTime is\n the source's stated publication time. Prefer publishTime.\n ",
"inputSchema": {
"properties": {
"count": {
"default": 10,
"title": "Count",
"type": "integer"
},
"from_date": {
"default": "",
"description": "Optional recency floor 'YYYY-MM-DD', applied to the recent articles this tool returns. It cannot pull older news into range — for a past date window use get_latest_news with from_date + to_date.",
"title": "From Date",
"type": "string"
},
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_assets_newsArguments",
"type": "object"
},
"name": "get_assets_news",
"outputSchema": null
},
{
"description": "Returns risk warnings for tickers.\n\n Args:\n tickers: Comma-separated ticker symbols\n\n Returns: warning type, date, and detail fields per ticker.\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_assets_warningsArguments",
"type": "object"
},
"name": "get_assets_warnings",
"outputSchema": null
},
{
"description": "Returns the best-performing experts ranked by TipRanks success rate and average return.\n\n Args:\n expert_type: One of: analyst, insider, hedgeFund, blogger, firm (default: analyst)\n num: Number of results (default: 10, max: 25)\n ",
"inputSchema": {
"properties": {
"expert_type": {
"default": "analyst",
"description": "One of: analyst, insider, hedgeFund, blogger, firm (default: analyst)",
"title": "Expert Type",
"type": "string"
},
"num": {
"default": 10,
"title": "Num",
"type": "integer"
}
},
"title": "get_best_performing_expertsArguments",
"type": "object"
},
"name": "get_best_performing_experts",
"outputSchema": null
},
{
"description": "Returns the financial-blogger consensus for a stock plus the underlying\n blogger articles.\n\n Distinct from get_recent_analyst_ratings (Wall Street analysts) and\n get_investor_sentiment (TipRanks crowd positioning).\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL')\n limit: Max blogger articles to return (default 20, max 50)\n\n Returns JSON: {ticker, company, consensus, articles}.\n - consensus: {bullish_pct, bearish_pct, neutral_pct, bullish_count,\n bearish_count, neutral_count, score, avg}.\n - articles: [{blogger, title, url, site, date}] (newest first).\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_blogger_sentimentArguments",
"type": "object"
},
"name": "get_blogger_sentiment",
"outputSchema": null
},
{
"description": "Returns the discrete bull and bear key points for stocks — the individual\n sentence bullets TipRanks shows on its stock pages, each tagged with a topic.\n\n Args:\n tickers: Comma-separated tickers (e.g. 'AAPL,TSLA')\n\n Returns JSON: {\"data\": [...one entry per ticker...]}. Each entry has:\n - ticker, updatedOn\n - bullish: list of bullish point sentences\n - bearish: list of bearish point sentences\n - key_points: list of {sentiment, topic, point} for the full set.\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_bulls_bears_summaryArguments",
"type": "object"
},
"name": "get_bulls_bears_summary",
"outputSchema": null
},
{
"description": "Returns share-buyback / stock-repurchase activity in one of two modes:\n\n - CROSS-MARKET (no ticker): latest reported buybacks across all companies,\n sorted by dollar amount spent (largest first). Use for 'biggest buybacks',\n 'top repurchase companies'. A single company may appear multiple times for\n different fiscal quarters.\n - PER-TICKER (ticker provided): historical quarterly buyback series for one\n ticker. Use for 'AAPL buyback history', 'MSFT repurchase trend'.\n\n Args:\n ticker: Optional. If provided, returns the per-ticker historical series.\n If empty, returns the cross-market list.\n limit: Cross-market mode only — max rows (default: 25, max: 100).\n page: Cross-market mode only — page number, 1-based (default: 1).\n\n Returns:\n Cross-market mode: { totalCount, data: [{ ticker, companyName,\n fiscalPeriodEndDate, stockEarningsDate, eps,\n marketCapUSD, totalValueSpentToRepurchaseShares,\n epsCurrencyTypeCode }] }.\n Per-ticker mode: quarterly time series, chart-ready as a bar or\n line plot of buyback spend over time —\n [{ date, marketCapEndFiscalPeriod,\n totalValueSpentToRepurchaseShares,\n ratio (decimal — buyback / market cap) }, ...].\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"ticker": {
"default": "",
"description": "Optional. If provided, returns the per-ticker historical buyback series; if omitted, returns the cross-market list.",
"title": "Ticker",
"type": "string"
}
},
"title": "get_buybacksArguments",
"type": "object"
},
"name": "get_buybacks",
"outputSchema": null
},
{
"description": "Returns the FDA / clinical-trial calendar — upcoming drug approval target\n dates and the tickers behind each drug.\n\n Window is fixed at today − 14 days to today + 60 days, sorted by date ascending.\n Use for upcoming FDA decisions, PDUFA dates, biotech catalysts.\n\n Returns: { data: [{ targetDate, clinicalTrials: [{ drugName, ticker }] }],\n count, window }.\n ",
"inputSchema": {
"properties": {},
"title": "get_clinical_trialsArguments",
"type": "object"
},
"name": "get_clinical_trials",
"outputSchema": null
},
{
"description": "Daily OHLC price history for a commodity, covering the whole date range you ask for.\n\n Chart-ready: while the range fits in one response, each row is the price feed's\n own daily row — {symbol, date, open, high, low, close, volume, change,\n changePercent, vwap} — newest first, ordered for direct plotting as a price history.\n\n A range too long to return day by day is aggregated into coarser OHLC bars\n rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly),\n each bar spans `date` to `endDate`, and a bar's high/low are that period's real\n extremes. Aggregated bars carry the same fields except `vwap`, which the feed\n defines per session only. Re-request a narrower from_date/to_date for daily rows.\n\n `summary` always describes the FULL requested window, computed from the daily\n data: its first and last close with dates, its high and low with dates, and the\n trailing changes the window reaches back far enough to support. Base any\n \"starting price\", \"a year ago\" or \"period high/low\" claim on `summary`, or on a\n bar that is actually present.\n\n `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's\n yearHigh/yearLow are the feed's trailing range, roughly the past 12-13\n months — a different period — so label those as trailing-year figures. For the current level alone, call get_commodity_quote.\n\n Args:\n symbol: Commodity symbol (e.g. 'GCUSD' for gold)\n from_date: Start date YYYY-MM-DD (optional)\n to_date: End date YYYY-MM-DD (optional)\n ",
"inputSchema": {
"properties": {
"from_date": {
"default": "",
"title": "From Date",
"type": "string"
},
"symbol": {
"description": "Commodity symbol, e.g. 'GCUSD' (gold).",
"title": "Symbol",
"type": "string"
},
"to_date": {
"default": "",
"title": "To Date",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_commodity_historicalArguments",
"type": "object"
},
"name": "get_commodity_historical",
"outputSchema": null
},
{
"description": "Returns the real-time price quote for a specific commodity.\n\n Common symbols: GCUSD (gold), SIUSD (silver), CLUSD (crude oil),\n NGUSD (natural gas), HGUSD (copper), PLUSD (platinum).\n\n yearHigh / yearLow are the feed's trailing-year range, roughly the past\n 12-13 months: call them trailing-year figures. For a year-to-date or\n calendar-year change, a dated extreme or an exact 52-week figure use\n get_commodity_historical, since the quote does not date its extremes.\n\n Args:\n symbol: Commodity symbol (e.g. 'GCUSD' for gold)\n ",
"inputSchema": {
"properties": {
"symbol": {
"description": "Commodity symbol, e.g. 'GCUSD' (gold), 'CLUSD' (crude oil).",
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_commodity_quoteArguments",
"type": "object"
},
"name": "get_commodity_quote",
"outputSchema": null
},
{
"description": "Returns company-specific operational KPIs: segment revenue, geographic\n breakdown, active users/devices, gross margins by type, opex breakdown.\n\n Full history runs back to 2014 and is large, so this returns the most\n recent `count` periods per metric by default — pass count=0 for the full\n history, or `group` to fetch a single group.\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL', 'MSFT')\n count: Most-recent periods per metric (default 8, max 40; 0 = full history)\n group: Optional single group by slug or title\n\n Returns JSON: {\"ticker\", \"lastUpdated\", \"groups\": [...]}. Each group has\n slug, title, and metrics: [{title, slug, unit, series: [{periodEnd, value}]}].\n ",
"inputSchema": {
"properties": {
"count": {
"default": 8,
"title": "Count",
"type": "integer"
},
"group": {
"default": "",
"description": "Optional single KPI group by slug or title (e.g. 'revenue_geography', 'Revenue by Segment'). Omit for all groups.",
"title": "Group",
"type": "string"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_company_kpisArguments",
"type": "object"
},
"name": "get_company_kpis",
"outputSchema": null
},
{
"description": "Daily OHLC price history for a cryptocurrency, covering the whole date range you ask for.\n\n Chart-ready: while the range fits in one response, each row is the price feed's\n own daily row — {symbol, date, open, high, low, close, volume, change,\n changePercent, vwap} — newest first, ordered for direct plotting as a price history.\n\n A range too long to return day by day is aggregated into coarser OHLC bars\n rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly),\n each bar spans `date` to `endDate`, and a bar's high/low are that period's real\n extremes. Aggregated bars carry the same fields except `vwap`, which the feed\n defines per session only. Re-request a narrower from_date/to_date for daily rows.\n\n `summary` always describes the FULL requested window, computed from the daily\n data: its first and last close with dates, its high and low with dates, and the\n trailing changes the window reaches back far enough to support. Base any\n \"starting price\", \"a year ago\" or \"period high/low\" claim on `summary`, or on a\n bar that is actually present.\n\n `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's\n yearHigh/yearLow are the feed's trailing range, roughly the past 12-13\n months — a different period — so label those as trailing-year figures. For the current level alone, call get_crypto_quote.\n\n Args:\n symbol: Cryptocurrency symbol (e.g. 'BTCUSD' for Bitcoin)\n from_date: Start date YYYY-MM-DD (optional)\n to_date: End date YYYY-MM-DD (optional)\n ",
"inputSchema": {
"properties": {
"from_date": {
"default": "",
"title": "From Date",
"type": "string"
},
"symbol": {
"description": "Crypto symbol, e.g. 'BTCUSD' (Bitcoin).",
"title": "Symbol",
"type": "string"
},
"to_date": {
"default": "",
"title": "To Date",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_crypto_historicalArguments",
"type": "object"
},
"name": "get_crypto_historical",
"outputSchema": null
},
{
"description": "Latest cryptocurrency news — a market-wide feed across all coins (not\n filtered to a single asset), ordered newest-first: article headlines,\n snippets, and source URLs. Read-only, no side effects.\n\n Use for broad crypto/market headlines. For news about a specific holding\n use get_assets_news; for the general (non-crypto) editorial feed use\n get_latest_news.\n ",
"inputSchema": {
"properties": {
"page": {
"default": 0,
"description": "0-indexed page of recent articles (0 = most recent); increase to page further back in time.",
"title": "Page",
"type": "integer"
}
},
"title": "get_crypto_newsArguments",
"type": "object"
},
"name": "get_crypto_news",
"outputSchema": null
},
{
"description": "Returns the real-time price quote for a specific cryptocurrency.\n\n Common symbols: BTCUSD (Bitcoin), ETHUSD (Ethereum), SOLUSD (Solana),\n BNBUSD (BNB), XRPUSD (XRP), ADAUSD (Cardano), DOGEUSD (Dogecoin).\n\n yearHigh / yearLow are the feed's trailing-year range, roughly the past\n 12-13 months: call them trailing-year figures. For a year-to-date or\n calendar-year change, a dated extreme or an exact 52-week figure use\n get_crypto_historical, since the quote does not date its extremes.\n\n Args:\n symbol: Cryptocurrency symbol (e.g. 'BTCUSD' for Bitcoin)\n ",
"inputSchema": {
"properties": {
"symbol": {
"description": "Crypto symbol, e.g. 'BTCUSD' (Bitcoin), 'ETHUSD' (Ethereum).",
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_crypto_quoteArguments",
"type": "object"
},
"name": "get_crypto_quote",
"outputSchema": null
},
{
"description": "Dividend payment history for a ticker. Chart-ready: includes the\n current snapshot (yield %, payout ratio, frequency, annualised\n payout) plus two time series — a per-payment list\n [{ex_date, pay_date, amount, yield_pct, is_special, ...}] (newest\n first, capped at `count`) and an annual_totals list\n [{year, amount, yield_pct}] suitable for a yearly bar chart.\n\n All yields are emitted as percentages (4.5 = 4.5%), so plots don't\n need to know which underlying field used decimal vs. percentage\n encoding.\n\n Use for: \"AAPL dividend history\", \"yield trend over 5 years\",\n \"dividend growth chart\", \"is the payout sustainable\".\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL', 'JNJ').\n count: Number of most-recent individual payments to return\n (default 16, max 100). The annual_totals series is\n always returned in full.\n ",
"inputSchema": {
"properties": {
"count": {
"default": 16,
"title": "Count",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_dividend_historyArguments",
"type": "object"
},
"name": "get_dividend_history",
"outputSchema": null
},
{
"description": "Returns upcoming earnings dates across all stocks for a date range.\n\n Args:\n fromDate: Start date YYYY-MM-DD (default: today)\n toDate: End date YYYY-MM-DD (default: 14 days from now)\n exchange: Optional exchange filter, e.g. 'US' for US-only results\n ",
"inputSchema": {
"properties": {
"exchange": {
"default": "",
"title": "Exchange",
"type": "string"
},
"fromDate": {
"default": "",
"title": "Fromdate",
"type": "string"
},
"toDate": {
"default": "",
"title": "Todate",
"type": "string"
}
},
"title": "get_earnings_calendarArguments",
"type": "object"
},
"name": "get_earnings_calendar",
"outputSchema": null
},
{
"description": "Returns the most recent earnings call summary for a ticker —\n management guidance text, overall call sentiment (positive / neutral\n / negative with a one-line rationale), and AI-extracted highlights\n and lowlights from the call as {title, content} bullets.\n\n This is a structured summary derived from the call, not the raw\n transcript text. Useful for \"what did management say about X on the\n last call\", \"was the most recent call bullish or bearish\", or\n \"summarise the highlights from MSFT's latest earnings\".\n\n Only the most recent quarter is stored per ticker; for historical\n EPS actual-vs-estimate series use get_earnings_history.\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL', 'NVDA').\n\n Returns:\n { ticker, fiscal_year, fiscal_quarter, guidance,\n sentiment: { label, summary },\n highlights: [ { title, content }, ... ],\n lowlights: [ { title, content }, ... ] }\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_earnings_call_summaryArguments",
"type": "object"
},
"name": "get_earnings_call_summary",
"outputSchema": null
},
{
"description": "Quarterly earnings time series for a ticker. Chart-ready: each\n quarter row is {period, report_date, actual_eps, estimate_eps,\n eps_surprise_pct, prior_year_eps, eps_yoy_change_pct, actual_revenue,\n estimate_revenue, revenue_surprise_pct, net_income, ...}, ordered\n oldest-first so a bar chart of actual vs. estimate EPS, or a YoY\n trend line, plots directly.\n\n Also returns next_quarter — the upcoming scheduled report with the\n consensus estimate, low/high estimate band, and expected report date\n — for forward-looking charts.\n\n Use for: \"AAPL earnings history\", \"earnings surprise trend\", \"did\n NVDA beat last quarter\", \"EPS beat/miss the past 4 quarters\".\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL', 'NVDA').\n quarters: Number of most-recent reported quarters to return\n (default 8, max 40).\n ",
"inputSchema": {
"properties": {
"quarters": {
"default": 8,
"title": "Quarters",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_earnings_historyArguments",
"type": "object"
},
"name": "get_earnings_history",
"outputSchema": null
},
{
"description": "Returns upcoming and recent economic events (Fed meetings, jobs reports, CPI, GDP).\n\n Defaults to US events at High/Medium impact only because the raw feed includes\n hundreds of low-impact items from every country.\n\n Args:\n daysBack: Days to look back (default 0)\n daysForward: Days to look forward (default 7)\n fromDate: Start date ISO format (alternative to daysBack)\n toDate: End date ISO format (alternative to daysForward)\n countries: Comma-separated country names to keep (default 'US').\n Pass an empty string to disable the country filter.\n Common values: 'US','UK','Germany','Japan','China','Canada','France'.\n impact: Comma-separated impact levels to keep (default 'High,Medium').\n Valid values: 'High','Medium','Low'. Pass empty to keep all levels.\n limit: Max events returned after filtering (default 50, max 200).\n\n Returns: { totalMatched, returned, filters, economicCalendar: [...] }.\n ",
"inputSchema": {
"properties": {
"countries": {
"default": "US",
"description": "Comma-separated country names to keep (default 'US'); pass '' to keep all. Examples: 'US','UK','Germany','Japan','China'.",
"title": "Countries",
"type": "string"
},
"daysBack": {
"default": 0,
"title": "Daysback",
"type": "integer"
},
"daysForward": {
"default": 7,
"title": "Daysforward",
"type": "integer"
},
"fromDate": {
"default": "",
"title": "Fromdate",
"type": "string"
},
"impact": {
"default": "High,Medium",
"description": "Comma-separated impact levels to keep: High, Medium, Low (default 'High,Medium'); pass '' to keep all.",
"title": "Impact",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"toDate": {
"default": "",
"title": "Todate",
"type": "string"
}
},
"title": "get_economic_calendarArguments",
"type": "object"
},
"name": "get_economic_calendar",
"outputSchema": null
},
{
"description": "Returns analyst consensus for ETFs based on weighted average of holdings' ratings.\n\n Args:\n tickers: Comma-separated ETF tickers (e.g. 'QQQ,SPY,VTI')\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_etf_analysisArguments",
"type": "object"
},
"name": "get_etf_analysis",
"outputSchema": null
},
{
"description": "Returns the list of ETFs that hold a specific stock, sorted by holding market\n value (largest first).\n\n Args:\n ticker: Stock ticker (e.g. 'MSFT', 'AAPL')\n page: Page number (default 1)\n page_size: Results per page (default 20, max 100)\n\n Returns per ETF: etfTicker, etfCompanyName, etfCategory, aum, expenseRatio,\n holdingWeight (% of ETF in this stock), holdingMarketValue ($),\n holdingNumOfShares, weightInAsset (% of stock's outstanding shares held by this ETF),\n etfAnalystConsensusScore, etfSmartScore. Also returns totalCount (total ETFs holding the stock).\n ",
"inputSchema": {
"properties": {
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 20,
"title": "Page Size",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_etf_exposuresArguments",
"type": "object"
},
"name": "get_etf_exposures",
"outputSchema": null
},
{
"description": "Returns the analyst forecast for a specific ETF: consensus, price target, upside.\n\n Args:\n ticker: ETF ticker (e.g. 'QQQ')\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_etf_forecastArguments",
"type": "object"
},
"name": "get_etf_forecast",
"outputSchema": null
},
{
"description": "List the constituents of an ETF.\n\n Base mode (default): returns every holding with its weight % in the\n index — {ticker, name, weight_pct}.\n\n Top-performers mode: pass `sort_by` (one of '5d', 'month', 'ytd',\n 'year') and a `limit` > 0 to get the top N constituents by that\n period's return. Each row carries weight_pct, current_price,\n return_pct for the chosen period, and analyst_consensus.\n\n Use the top-performers mode for questions like 'which stocks in XLK\n rose most this week' without separately calling a screener.\n\n Args:\n ticker: ETF ticker (e.g. 'SPY', 'QQQ').\n sort_by: '' for full list, or one of '5d', 'month', 'ytd', 'year'.\n limit: 0 to return all constituents; >0 (max 50) to return top N. A\n negative or non-numeric limit is REJECTED rather than treated as 0 —\n `limit` picks the mode here, so defaulting an unusable one would\n answer a ranked top-N request with the full unranked list.\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 0,
"title": "Limit",
"type": "integer"
},
"sort_by": {
"default": "",
"description": "Optional prices field to sort by descending (e.g. 'prices.5d.gain', 'prices.twoWeeks.gain', 'prices.month.gain'); when set, returns top performers instead of the full list.",
"title": "Sort By",
"type": "string"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_etf_holdingsArguments",
"type": "object"
},
"name": "get_etf_holdings",
"outputSchema": null
},
{
"description": "Filters ETFs by asset class, category, and focus.\n\n Args:\n assetClass: Alternatives, AssetAllocation, Commodities, Currency, Equity, FixedIncome\n category: BroadMarket, Sector, HighDividendYield, SizeAndStyle, Corporate, etc.\n focus: LargeCap, SmallCap, MidCap, TotalMarket, Financials, HealthCare,\n InformationTechnology, Energy, RealEstate, HighDividendYield, HighYield, etc.\n Use this for a sector question ('tech ETFs' -> InformationTechnology);\n the screener has no `sector` filter.\n limit: Rows to return (default 20, max 100).\n ",
"inputSchema": {
"properties": {
"assetClass": {
"default": "",
"description": "Asset class filter, e.g. 'Equity', 'FixedIncome', 'Commodities'",
"title": "Assetclass",
"type": "string"
},
"category": {
"default": "",
"description": "Category filter, e.g. 'Sector', 'BroadMarket', 'HighDividendYield'",
"title": "Category",
"type": "string"
},
"focus": {
"default": "",
"description": "Focus filter, e.g. 'LargeCap', 'InformationTechnology', 'HighYield'. This is the screener's SECTOR filter — there is no separate sector parameter.",
"title": "Focus",
"type": "string"
},
"limit": {
"default": 0,
"description": "Rows to return (default: 20, max: 100).",
"title": "Limit",
"type": "integer"
}
},
"title": "get_etf_screenerArguments",
"type": "object"
},
"name": "get_etf_screener",
"outputSchema": null
},
{
"description": "Returns the top stock holdings within an ETF along with their analyst ratings.\n\n Args:\n ticker: ETF ticker (e.g. 'QQQ')\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_etf_top_stocksArguments",
"type": "object"
},
"name": "get_etf_top_stocks",
"outputSchema": null
},
{
"description": "Financial statements time series for a ticker, chart-ready. Each\n period is a flat ~25-field object spanning the income statement\n (revenue, gross / operating / EBITDA / net margins, EPS, R&D),\n the balance sheet (total assets, total debt, total equity, net\n debt, cash + short-term investments), the cash flow statement\n (operating cash flow, free cash flow, capex, dividends paid,\n buybacks), and two computed ratios (current ratio, debt-to-equity).\n\n Margins are emitted as percentages — gross_margin_pct of 49.27\n means 49.27%. Cash outflows (dividends_paid, buybacks) are\n returned as negative numbers, matching the source convention.\n\n Use for: \"AAPL revenue and FCF over the last 10 years\", \"show\n margins trend\", \"is net debt rising\", \"EPS growth\", \"R&D as %\n of revenue\".\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL', 'NVDA').\n period: 'annual' (default), 'quarterly', or 'ttm' (trailing\n twelve months). Annual periods extend ~9 years back;\n quarterly extends ~37 quarters back.\n count: Number of most-recent periods to return (default 5,\n max 40), ordered oldest-first inside the returned\n `periods` array.\n ",
"inputSchema": {
"properties": {
"count": {
"default": 5,
"title": "Count",
"type": "integer"
},
"period": {
"default": "annual",
"description": "'annual' (default), 'quarterly', or 'ttm'",
"title": "Period",
"type": "string"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_financialsArguments",
"type": "object"
},
"name": "get_financials",
"outputSchema": null
},
{
"description": "Daily OHLC price history for a forex pair, covering the whole date range you ask for.\n\n Chart-ready: while the range fits in one response, each row is the price feed's\n own daily row — {symbol, date, open, high, low, close, volume, change,\n changePercent, vwap} — newest first, ordered for direct plotting as an exchange-rate history.\n\n A range too long to return day by day is aggregated into coarser OHLC bars\n rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly),\n each bar spans `date` to `endDate`, and a bar's high/low are that period's real\n extremes. Aggregated bars carry the same fields except `vwap`, which the feed\n defines per session only. Re-request a narrower from_date/to_date for daily rows.\n\n `summary` always describes the FULL requested window, computed from the daily\n data: its first and last close with dates, its high and low with dates, and the\n trailing changes the window reaches back far enough to support. Base any\n \"starting rate\", \"a year ago\" or \"period high/low\" claim on `summary`, or on a\n bar that is actually present.\n\n `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's\n yearHigh/yearLow are the feed's trailing range, roughly the past 12-13\n months — a different period — so label those as trailing-year figures. For the current level alone, call get_forex_quote.\n\n `volume` on a forex row is a per-venue tick count, not market turnover — FX is\n over-the-counter. Read it as a liquidity hint at best.\n\n Args:\n symbol: Forex pair symbol (e.g. 'EURUSD')\n from_date: Start date YYYY-MM-DD (optional)\n to_date: End date YYYY-MM-DD (optional)\n ",
"inputSchema": {
"properties": {
"from_date": {
"default": "",
"title": "From Date",
"type": "string"
},
"symbol": {
"description": "Forex pair, uppercase with no slash, e.g. 'EURUSD'.",
"title": "Symbol",
"type": "string"
},
"to_date": {
"default": "",
"title": "To Date",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_forex_historicalArguments",
"type": "object"
},
"name": "get_forex_historical",
"outputSchema": null
},
{
"description": "Returns the real-time exchange rate quote for a forex pair.\n\n Common pairs: EURUSD, GBPUSD, USDJPY, USDCHF, AUDUSD, USDCAD.\n\n yearHigh / yearLow are the feed's trailing-year range, roughly the past\n 12-13 months: call them trailing-year figures. For a year-to-date or\n calendar-year change, a dated extreme or an exact 52-week figure use\n get_forex_historical, since the quote does not date its extremes.\n\n A pair quotes the BASE currency (first three letters) in units of the\n QUOTE currency (last three): USDHUF 320 means 1 USD = 320 HUF. A rising\n rate, or a rate above its priceAvg50 / priceAvg200, is the base\n strengthening against the quote. changePercentage is measured against\n previousClose as of the quote's timestamp. Spot FX is closed from Friday\n 17:00 to Sunday 17:00 New York time; a quote stamped in that window\n shows the change as of the last close, not a move made that day.\n\n Args:\n symbol: Forex pair symbol (e.g. 'EURUSD')\n ",
"inputSchema": {
"properties": {
"symbol": {
"description": "Forex pair, uppercase with no slash, e.g. 'EURUSD', 'GBPUSD', 'USDJPY'.",
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_forex_quoteArguments",
"type": "object"
},
"name": "get_forex_quote",
"outputSchema": null
},
{
"description": "Returns per-fund hedge-fund holdings and recent transactions for a ticker —\n which institutions hold it, how much each changed (bought/sold), the holding\n value, % of portfolio, and the fund's TipRanks rank/stars.\n\n Complements get_hedge_fund_holdings (the aggregate share-count timeseries).\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL')\n limit: Max funds to return (default 25, max 100)\n\n Returns JSON: {ticker, company, sentiment, trend_action, trend_value, funds}.\n - funds: [{manager, institution, shares_change, direction, holding_value,\n pct_of_portfolio, as_of, rank, stars, is_active}].\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_hedge_fund_activityArguments",
"type": "object"
},
"name": "get_hedge_fund_activity",
"outputSchema": null
},
{
"description": "Hedge-fund share-count history for a ticker.\n\n Returns the most recent `limit` snapshots (max 60) plus a summary\n block (snapshot_count, first/last date and shares). Each row:\n {date, shares}. Sourced from quarterly 13F filings; lags by up to\n 45 days.\n\n For a snapshot of current sentiment without the timeseries, use\n get_assets_data and read hedgeFundSentimentData.\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL').\n limit: Max snapshots to return (default 60, max 60).\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 60,
"title": "Limit",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_hedge_fund_holdingsArguments",
"type": "object"
},
"name": "get_hedge_fund_holdings",
"outputSchema": null
},
{
"description": "Daily OHLC price history for a major market index, covering the whole date range you ask for.\n\n Chart-ready: while the range fits in one response, each row is the price feed's\n own daily row — {symbol, date, open, high, low, close, volume, change,\n changePercent, vwap} — newest first, ordered for direct plotting as an index history.\n\n A range too long to return day by day is aggregated into coarser OHLC bars\n rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly),\n each bar spans `date` to `endDate`, and a bar's high/low are that period's real\n extremes. Aggregated bars carry the same fields except `vwap`, which the feed\n defines per session only. Re-request a narrower from_date/to_date for daily rows.\n\n `summary` always describes the FULL requested window, computed from the daily\n data: its first and last close with dates, its high and low with dates, and the\n trailing changes the window reaches back far enough to support. Base any\n \"starting level\", \"a year ago\" or \"period high/low\" claim on `summary`, or on a\n bar that is actually present.\n\n `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's\n yearHigh/yearLow are the feed's trailing range, roughly the past 12-13\n months — a different period — so label those as trailing-year figures. For the current level alone, call get_index_quote.\n\n Takes the same index symbols and broker/CFD-name mapping as\n get_index_quote — e.g. ^NDX for 'US Tech 100' / 'Nasdaq 100', ^IXIC for\n 'Nasdaq Composite', ^GDAXI for 'Germany 40'.\n\n Args:\n symbol: Index symbol (e.g. '^GSPC' for S&P 500)\n from_date: Start date YYYY-MM-DD\n to_date: End date YYYY-MM-DD (defaults to today)\n ",
"inputSchema": {
"properties": {
"from_date": {
"title": "From Date",
"type": "string"
},
"symbol": {
"description": "Index symbol, e.g. '^GSPC' for the S&P 500.",
"title": "Symbol",
"type": "string"
},
"to_date": {
"default": "",
"title": "To Date",
"type": "string"
}
},
"required": [
"symbol",
"from_date"
],
"title": "get_index_historicalArguments",
"type": "object"
},
"name": "get_index_historical",
"outputSchema": null
},
{
"description": "Returns the real-time quote for a major market index.\n\n Index symbols: ^GSPC (S&P 500), ^NDX (Nasdaq 100), ^IXIC (Nasdaq\n Composite), ^DJI (Dow Jones), ^RUT (Russell 2000), ^GSPTSE (TSX),\n ^FTSE (FTSE 100), ^GDAXI (DAX 40), ^FCHI (CAC 40), ^STOXX50E\n (Euro STOXX 50), ^IBEX (IBEX 35), ^N225 (Nikkei), ^AXJO (ASX 200),\n ^AORD (All Ords), ^HSI (Hang Seng), ^STI (STI), ^BSESN (Sensex),\n ^VIX (VIX).\n\n Broker / CFD names map to the index they track (the same map the AI\n chat uses): 'US Tech 100' / 'NAS100' / 'USTEC' -> ^NDX; 'US 500' /\n 'SPX500' -> ^GSPC; 'Wall Street 30' / 'US 30' -> ^DJI; 'US 2000' /\n 'US Small Cap 2000' -> ^RUT; 'Germany 40' / 'GER40' -> ^GDAXI;\n 'UK 100' -> ^FTSE; 'France 40' -> ^FCHI; 'Euro 50' / 'EU50' ->\n ^STOXX50E; 'Spain 35' -> ^IBEX; 'Japan 225' -> ^N225; 'Australia 200'\n -> ^AXJO; 'Hong Kong 50' -> ^HSI. 'Nasdaq Composite' is\n ^IXIC; 'Nasdaq 100' and the Nasdaq 100 CFD names above are ^NDX —\n different indices at different levels, so quote the one the user named\n and name it. A bare 'Nasdaq' is ambiguous: say which one you quote. For\n an index not listed here (e.g. 'S&P 100'), call it by its own symbol —\n a listed index with a similar name is a different index.\n\n yearHigh / yearLow are the feed's trailing-year range, roughly the past\n 12-13 months: call them trailing-year figures. For a year-to-date or\n calendar-year change, a dated extreme or an exact 52-week figure use\n get_index_historical, since the quote does not date its extremes.\n\n Args:\n symbol: Index symbol (e.g. '^GSPC' for S&P 500)\n ",
"inputSchema": {
"properties": {
"symbol": {
"description": "Index symbol, e.g. '^GSPC' for the S&P 500.",
"title": "Symbol",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_index_quoteArguments",
"type": "object"
},
"name": "get_index_quote",
"outputSchema": null
},
{
"description": "Individual corporate-insider (officers/directors, Form 4) transactions for\n a ticker, newest first.\n\n Each row: insider_name, role, is_officer, is_director, action (e.g.\n \"Auto Sell\", \"Grant/Award/Other Acquisition\"), side (buy/sell), shares,\n price (approximate — value / shares; the source has no exact price), value,\n date, filing_link (the SEC Form-4 URL), and insider_stars.\n\n This is corporate-insider activity (Form 4). For retail/individual\n investor sentiment, use get_assets_data and read investorActivity.\n\n Args:\n ticker: Stock ticker (e.g. 'AAPL').\n limit: Max rows to return (default 30, max 100).\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 30,
"title": "Limit",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_insider_transactionsArguments",
"type": "object"
},
"name": "get_insider_transactions",
"outputSchema": null
},
{
"description": "Returns crowd / retail investor sentiment for a stock.\n\n Args:\n ticker: Stock ticker (e.g. 'NVDA')\n\n Returns JSON with these top-level keys:\n - investorStatsOverview: stats aggregated across ALL TipRanks\n portfolios that hold the ticker. Fields:\n * numberOfPortfolios: total active portfolios on the platform.\n * portfoliosHoldingStock: how many of them hold THIS ticker.\n * averageAllocation: average % allocation among holders (decimal).\n * percentOverLast30Days / percentOverLast7Days: change in the\n count of holders over the window (decimal; 0.013 = +1.3%).\n * investorScore: TipRanks' 0-1 score of how confident \"the\n crowd\" is on this stock; higher = more bullish positioning.\n * sectorAverageScore: investorScore averaged across the sector,\n for comparison.\n * sentiment: bucketed label — one of \"VeryNegative\",\n \"Negative\", \"Neutral\", \"Positive\", \"VeryPositive\".\n * sectorAverageSentiment: same bucket, sector-wide.\n - bestInvestorStatsOverview: same fields, but restricted to \"Best\n Investors\" — TipRanks users with top-decile portfolio returns\n over the trailing window. If investorStatsOverview and\n bestInvestorStatsOverview diverge (e.g. crowd is Positive but\n best investors are Negative), that's the headline signal.\n - ageDistribution: holders split by TipRanks account-tenure tier\n (NOT the investor's biological age):\n * eldest: oldest accounts on the platform\n * midRange: middle tier\n * youngest: newest accounts\n Each has percentHolders, last30DaysChange, last7DaysChange,\n and per-bucket averages (averageBeta, averageMonthlyReturn,\n dividendYield, averagePeRatio).\n - investorsAlsoBought: top other stocks held by people who hold\n this one (each: ticker, companyName, averageHoldingSize,\n lastSevenDayChange, lastThirtyDayChange, sector, sectorName,\n score, sentiment, marketCap, marketCapCurrencyCode).\n - investorsAlsoBoughtYoungest / MidRange / Eldest: same shape,\n filtered to that account-tenure bucket. Often shorter or\n empty for stocks held mostly by one cohort.\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_investor_sentimentArguments",
"type": "object"
},
"name": "get_investor_sentiment",
"outputSchema": null
},
{
"description": "Returns upcoming and recent IPOs.\n\n Args:\n fromDate: Start date ISO format (default: today)\n toDate: End date ISO format (default: 30 days from now)\n ",
"inputSchema": {
"properties": {
"fromDate": {
"default": "",
"title": "Fromdate",
"type": "string"
},
"toDate": {
"default": "",
"title": "Todate",
"type": "string"
}
},
"title": "get_ipo_calendarArguments",
"type": "object"
},
"name": "get_ipo_calendar",
"outputSchema": null
},
{
"description": "Latest TipRanks news articles (newest first) from TipRanks's own\n editorial/wire feed — each with a text excerpt, unlike get_assets_news.\n\n Use for general market news (no ticker), news on a specific stock with a\n short summary of each story, or to browse a news category. This is also the\n tool for news from a specific PAST date range — pass from_date AND to_date\n together; the archive holds years of stories, so a past window is answerable\n here even though get_assets_news only reaches recent articles.\n\n Args:\n tickers: Optional comma-separated tickers to filter by (e.g. 'NVDA,AAPL').\n Omit for general market news.\n category: Optional single category (see the field description).\n from_date: Optional 'YYYY-MM-DD' recency floor.\n limit: Max articles to return (default 20).\n to_date: Optional 'YYYY-MM-DD' inclusive upper bound. Results are\n newest-first, so from_date alone returns today's news rather\n than news from around that date — add to_date to scope a window.\n\n Returns a JSON list of {id, title, excerpt, author, category, date, url,\n tickers}. To read a full article, pass its url or id to get_article.\n ",
"inputSchema": {
"properties": {
"category": {
"default": "",
"description": "Optional single category: 'news', 'the-fly', 'blurbs', 'catalyst', 'ratings', 'cryptocurrencies', 'insider-trading', 'newswire', 'private-companies', 'company-announcements'. Omitted = editorial/wire feed (excludes auto-ingested company-announcements).",
"title": "Category",
"type": "string"
},
"from_date": {
"default": "",
"title": "From Date",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"default": "",
"title": "Tickers"
},
"to_date": {
"default": "",
"description": "Optional 'YYYY-MM-DD' upper bound on the publish date, inclusive of that whole day. Pair with from_date to read a specific past window; from_date on its own returns the newest stories since that date.",
"title": "To Date",
"type": "string"
}
},
"title": "get_latest_newsArguments",
"type": "object"
},
"name": "get_latest_news",
"outputSchema": null
},
{
"description": "Cached equities market sentiment snapshot.\n\n Returns {overallSentiment, atmosphere, keyThemes, tailwinds, headwinds}.\n Generated by TipRanks' AI pipeline with web search, refreshed every\n ~4 hours; this endpoint reads the cache only and does not trigger\n regeneration. If no recent cache exists, returns\n {\"status\": \"unavailable\"}.\n\n The content is AI-generated commentary, not authoritative TipRanks\n market data — present it as such to end users.\n ",
"inputSchema": {
"properties": {},
"title": "get_market_commentaryArguments",
"type": "object"
},
"name": "get_market_commentary",
"outputSchema": null
},
{
"description": "Returns today's market movers: biggest gainers, losers, most active.\n\n Args:\n category: 1=DollarVolume, 2=PercentGainers, 3=PercentLosers,\n 4=GainersRegular, 5=LosersRegular, 6=UnusualVolume\n country: 1=US, 2=Canada, 3=UK\n num: Number of results\n ",
"inputSchema": {
"properties": {
"category": {
"description": "1=DollarVolume, 2=PercentGainers (ext hours), 3=PercentLosers (ext hours), 4=GainersRegular, 5=LosersRegular, 6=UnusualVolume",
"title": "Category",
"type": "integer"
},
"country": {
"default": 1,
"description": "1=US, 2=Canada, 3=UK (default: 1)",
"title": "Country",
"type": "integer"
},
"num": {
"default": 20,
"title": "Num",
"type": "integer"
}
},
"required": [
"category"
],
"title": "get_market_moversArguments",
"type": "object"
},
"name": "get_market_movers",
"outputSchema": null
},
{
"description": "Returns market-wide performance for a specific country: average returns,\n sector breakdown, top/bottom performers.\n\n Args:\n country: Country code: 'us', 'ca', 'gb', 'de', 'il', 'au', 'hk', 'sg', etc.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "us",
"title": "Country",
"type": "string"
}
},
"title": "get_market_performanceArguments",
"type": "object"
},
"name": "get_market_performance",
"outputSchema": null
},
{
"description": "Your current TipRanks MCP usage against the monthly tool-call quota.\n\n Reports calls used this calendar month, your limit, how many remain, your\n plan tier, and when the quota resets (UTC). Handy to check before running a\n large batch of calls. This call is free — it never counts against the quota.\n\n What counts: every tool call is metered once whether or not it returns data,\n so an unrecognised ticker or an invalid argument costs the same as a\n successful call. The connection handshake (initialize, tools/list and the\n other discovery calls) is never metered, and neither is this tool.\n\n Calls refused for being over the limit are refunded on both ladders, so\n `used` settles at the cap rather than climbing while a client retries. It\n can still read higher than `limit` when the ceiling FELL mid-month — a\n complimentary grant expiring or being revoked, or a paid MCP subscription\n lapsing — and there it is the count of calls genuinely served before the\n cap dropped.\n ",
"inputSchema": {
"properties": {},
"title": "get_my_usageArguments",
"type": "object"
},
"name": "get_my_usage",
"outputSchema": null
},
{
"description": "Contracts at one expiration, enriched with price + OI + volume.\n\n Each row: ticker (OCC), contract_type, strike, name, price, volume,\n open_interest, open_interest_change, change_percent, day_open / high /\n low, last_trade_date.\n\n Quotes are typically delayed ~15 minutes. Greeks and implied\n volatility are NOT exposed by this data source — do not fabricate\n them.\n\n Args:\n ticker: Underlying (e.g. 'AAPL').\n expiration_date: One of the dates from get_options_expirations\n (YYYY-MM-DD).\n contract_type: '' for both, or 'call' or 'put'.\n strike_gte: Filter strikes >= this value (optional).\n strike_lte: Filter strikes <= this value (optional).\n limit: Max contracts to return (default 50).\n ",
"inputSchema": {
"properties": {
"contract_type": {
"default": "",
"description": "'call' or 'put'; omit to return both sides.",
"title": "Contract Type",
"type": "string"
},
"expiration_date": {
"description": "Exact expiration in YYYY-MM-DD. REQUIRED — call get_options_expirations first to discover valid dates.",
"title": "Expiration Date",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"strike_gte": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Strike Gte"
},
"strike_lte": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Strike Lte"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker",
"expiration_date"
],
"title": "get_options_chainArguments",
"type": "object"
},
"name": "get_options_chain",
"outputSchema": null
},
{
"description": "Snapshot one OCC contract — price, OI, intraday OHLCV, last trade.\n\n The contract_ticker is an OCC-format symbol like 'O:AAPL260520C00205000'\n (O: + underlying + YYMMDD + C/P + strike-in-thousandths-8-digits).\n The 'O:' prefix is optional.\n\n Quotes are typically delayed ~15 minutes. Greeks and implied\n volatility are not available from this data source.\n\n Args:\n contract_ticker: OCC contract symbol.\n ",
"inputSchema": {
"properties": {
"contract_ticker": {
"description": "OCC-format option ticker, e.g. 'O:AAPL260520C00205000'. The 'O:' prefix is optional.",
"title": "Contract Ticker",
"type": "string"
}
},
"required": [
"contract_ticker"
],
"title": "get_options_contractArguments",
"type": "object"
},
"name": "get_options_contract",
"outputSchema": null
},
{
"description": "List future expiration dates for a ticker's listed options.\n\n Excludes past expirations. Use the result as input to get_options_chain.\n\n Args:\n ticker: Underlying ticker (e.g. 'AAPL').\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_options_expirationsArguments",
"type": "object"
},
"name": "get_options_expirations",
"outputSchema": null
},
{
"description": "Recent unusual option trades for an underlying (size/sweep alerts).\n\n Returns the most recent `limit` flagged trades with the side, strike,\n expiry, size, and notional value. Useful for spotting large bullish\n or bearish positioning.\n\n Args:\n ticker: Underlying ticker (e.g. 'AAPL').\n limit: Max trades to return (default 25).\n ",
"inputSchema": {
"properties": {
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_options_unusual_tradesArguments",
"type": "object"
},
"name": "get_options_unusual_trades",
"outputSchema": null
},
{
"description": "Peer/competitor companies for a stock, with comparative metrics for\n side-by-side analysis. Read-only, no side effects.\n\n Use to find and compare a company against similar names (competitors,\n same-sector peers). For that company's own data use get_assets_data; for a\n sector-wide breakdown use get_sector_analysis.\n ",
"inputSchema": {
"properties": {
"ticker": {
"description": "Stock ticker symbol, e.g. 'AAPL'.",
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_peersArguments",
"type": "object"
},
"name": "get_peers",
"outputSchema": null
},
{
"description": "Returns a specific politician's stock trades or holdings.\n\n First call get_politicians to find the politicianId.\n\n Args:\n politicianId: Politician ID from get_politicians\n activity: 'trades' or 'holdings'\n ",
"inputSchema": {
"properties": {
"activity": {
"default": "trades",
"description": "'trades' or 'holdings' (default: trades)",
"title": "Activity",
"type": "string"
},
"politicianId": {
"description": "Politician ID, as returned by get_politicians.",
"title": "Politicianid",
"type": "integer"
}
},
"required": [
"politicianId"
],
"title": "get_politician_activityArguments",
"type": "object"
},
"name": "get_politician_activity",
"outputSchema": null
},
{
"description": "Returns the list of politicians tracked for trading activity.\n\n Returns: name, party, state, position, net worth, profile.\n ",
"inputSchema": {
"properties": {},
"title": "get_politiciansArguments",
"type": "object"
},
"name": "get_politicians",
"outputSchema": null
},
{
"description": "Returns asset allocation by type/country/top stocks and distribution by sector,\n market cap, dividend yield, beta, and P/E.\n\n Args:\n portfolio_id: One of the IDs returned by list_my_portfolios.\n ",
"inputSchema": {
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "integer"
}
},
"required": [
"portfolio_id"
],
"title": "get_portfolio_analysisArguments",
"type": "object"
},
"name": "get_portfolio_analysis",
"outputSchema": null
},
{
"description": "Returns all holdings for one of your TipRanks portfolios.\n\n Per holding: ticker, shares, price, cost basis (AvgExecutionPrice),\n P/E ratio, dividend yield, market cap, sector, country, 52-week high/low,\n percentage of portfolio, beta, EPS. Plus total value, cash, stock count.\n\n Args:\n portfolio_id: One of the IDs returned by list_my_portfolios.\n ",
"inputSchema": {
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "integer"
}
},
"required": [
"portfolio_id"
],
"title": "get_portfolio_holdingsArguments",
"type": "object"
},
"name": "get_portfolio_holdings",
"outputSchema": null
},
{
"description": "Returns lifetime / 1mo / 6mo / 12mo / YTD returns, Sharpe ratio, and a\n monthly-return time series. The monthly history field is chart-ready —\n a list of {month, return} points suitable for direct plotting.\n\n Args:\n portfolio_id: One of the IDs returned by list_my_portfolios.\n ",
"inputSchema": {
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "integer"
}
},
"required": [
"portfolio_id"
],
"title": "get_portfolio_overviewArguments",
"type": "object"
},
"name": "get_portfolio_overview",
"outputSchema": null
},
{
"description": "Returns full performance: stats, gains, best trade, recent activity, a\n daily-yield time series benchmarked against S&P 500 (chart-ready —\n aligned dates with portfolio and benchmark yield columns, plot directly\n as overlaid lines), monthly returns, risk profile, beta, dividend\n yield/amount.\n\n Args:\n portfolio_id: One of the IDs returned by list_my_portfolios.\n ",
"inputSchema": {
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "integer"
}
},
"required": [
"portfolio_id"
],
"title": "get_portfolio_performanceArguments",
"type": "object"
},
"name": "get_portfolio_performance",
"outputSchema": null
},
{
"description": "Recent Wall Street analyst rating actions on a single stock, covering the\n trailing 12 months (newest first).\n\n Each row carries the analyst's name and firm, the rating (Buy/Hold/Sell),\n the action (initiated/upgraded/downgraded/reiterated/maintained), the price\n target, and the analyst's TipRanks credibility (numOfStars 0-5, rank,\n success rate, average return) plus the source article title/quote.\n\n For the aggregate consensus and average/best price target, use\n get_assets_data instead.\n\n Args:\n ticker: Stock ticker (e.g. 'NVDA', 'AAPL').\n\n Returns: a list of rating actions. recommendationDate is a 'MM/DD/YYYY'\n string; numOfStars is the analyst's 0-5 TipRanks star rating.\n ",
"inputSchema": {
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_recent_analyst_ratingsArguments",
"type": "object"
},
"name": "get_recent_analyst_ratings",
"outputSchema": null
},
{
"description": "Returns sector-level analysis for all 11 US sectors: average P/E, analyst\n upside, buy ratio, stock count. Sorted by average analyst upside.",
"inputSchema": {
"properties": {},
"title": "get_sector_analysisArguments",
"type": "object"
},
"name": "get_sector_analysis",
"outputSchema": null
},
{
"description": "TipRanks-generated catalyst summary explaining why a stock is moving.\n\n Each entry: {ticker, summary, sentiment, updated} where sentiment is\n 'positive' | 'neutral' | 'negative'. Updated throughout the trading\n day. Use to explain today's move for a specific stock.\n\n Args:\n tickers: Comma-separated tickers (e.g. 'AMZN' or 'AMZN,NVDA').\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_stock_catalystArguments",
"type": "object"
},
"name": "get_stock_catalyst",
"outputSchema": null
},
{
"description": "Historical daily closing prices for up to 5 stocks or ETFs.\n\n Per ticker: {ticker, period, series:[{date, price}], summary} with\n summary fields first_price, last_price, change_pct, high, low,\n trading_days. Series is downsampled to ~250 evenly-spaced points\n (latest point always retained) so the payload stays small for charting.\n\n `period` must be one of: 1m, 3m, 6m, ytd, 1y, 2y, 3y, 5y, all.\n\n Args:\n tickers: Comma-separated tickers, up to 5 (e.g. 'AAPL,MSFT').\n period: Lookback window (default 'ytd').\n ",
"inputSchema": {
"properties": {
"period": {
"default": "ytd",
"title": "Period",
"type": "string"
},
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_stock_pricesArguments",
"type": "object"
},
"name": "get_stock_prices",
"outputSchema": null
},
{
"description": "Real-time price quote for one or more stocks or ETFs.\n\n Returns price, intraday OHLC, day change (amount + percent), volume,\n previous close, market cap, currency, exchange, and market-state\n flags (is_market_open / is_premarket / is_after_market). When\n extended-hours data is present, the entry includes a\n `pre_post_market` block — when the regular session is closed,\n that's the freshest price.\n\n For forex pairs use get_forex_quote; this endpoint is stocks/ETFs only.\n\n Args:\n tickers: Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA').\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
}
},
"required": [
"tickers"
],
"title": "get_stock_quotesArguments",
"type": "object"
},
"name": "get_stock_quotes",
"outputSchema": null
},
{
"description": "Returns the stock-split calendar with split ratios and direction\n (Forward / Reverse). Use for upcoming splits, reverse-split alerts,\n historical split lookup.\n\n Args:\n fromDate: Start date YYYY-MM-DD (default: 30 days ago)\n toDate: End date YYYY-MM-DD (default: 30 days from now)\n type: Optional filter — 'Forward' or 'Reverse' (case-insensitive).\n Empty string returns both.\n limit: Max rows (default: 25, max: 100)\n ticker: Optional single symbol. Widen fromDate to search a company's history —\n the default window is only today ± 30 days.\n\n Returns: { totalCount, data: [{ ticker, companyName, effectiveDate, type,\n splitRatio, splitRatioText }] }. A filtered call\n (ticker or type) also returns `matched` and `window`: `totalCount` is\n every split in the window, `matched` how many passed the filter. The\n window is read in full before filtering, so an empty result means there\n genuinely are none rather than that the first page held none.\n ",
"inputSchema": {
"properties": {
"fromDate": {
"default": "",
"title": "Fromdate",
"type": "string"
},
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"ticker": {
"default": "",
"description": "Optional. Return only this company's splits within the window, e.g. 'NVDA'. Pair with a wide fromDate for 'has X ever split'.",
"title": "Ticker",
"type": "string"
},
"toDate": {
"default": "",
"title": "Todate",
"type": "string"
},
"type": {
"default": "",
"description": "Optional filter: 'Forward' or 'Reverse' (case-insensitive); omit to return both.",
"title": "Type",
"type": "string"
}
},
"title": "get_stock_splitsArguments",
"type": "object"
},
"name": "get_stock_splits",
"outputSchema": null
},
{
"description": "Returns RSI, MACD, Stochastics, ADX, moving averages, and pivot points\n for stocks and ETFs.\n\n Covers stocks and ETFs alike (e.g. 'NVDA', 'SPY', 'QQQ', 'VTI') with the\n same payload shape. For an ETF's analyst consensus, forecast, holdings or\n exposures, use get_etf_analysis, get_etf_forecast, get_etf_top_stocks, or\n get_etf_exposures.\n\n Args:\n tickers: Comma-separated stock or ETF tickers (e.g. 'NVDA' or 'NVDA,SPY').\n timeFrame: '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day')\n '5h' is slow upstream: request it for one ticker per call.\n\n Returns: summary scores, oscillators (RSI, MACD, Stochastics, ADX, CCI,\n Williams %R, ATR, ROC), moving averages, and pivot points.\n Labels are strings. indicator: \"Buy\", \"Neutral\" or \"Sell\" (null\n on ATR and pivot points). scoreScale: \"StrongBuy\", \"Buy\",\n \"Neutral\", \"Sell\" or \"StongSell\" (the upstream's own spelling).\n ",
"inputSchema": {
"properties": {
"tickers": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"type": "string"
},
"type": "array"
}
],
"title": "Tickers"
},
"timeFrame": {
"default": "day",
"description": "One of '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day'). Request '5h' for one ticker per call.",
"title": "Timeframe",
"type": "string"
}
},
"required": [
"tickers"
],
"title": "get_technical_analysisArguments",
"type": "object"
},
"name": "get_technical_analysis",
"outputSchema": null
},
{
"description": "Upcoming and recent earnings dates for a specific stock — scheduled\n report dates with EPS/revenue estimates where available. Read-only, no\n side effects.\n\n Use this to find when a company reports. For past actual-vs-estimate\n results use get_earnings_history; for a cross-market schedule use\n get_earnings_calendar.\n ",
"inputSchema": {
"properties": {
"ticker": {
"description": "Stock ticker symbol, e.g. 'NVDA'.",
"title": "Ticker",
"type": "string"
}
},
"required": [
"ticker"
],
"title": "get_ticker_earningsArguments",
"type": "object"
},
"name": "get_ticker_earnings",
"outputSchema": null
},
{
"description": "Returns top-performing hedge fund managers ranked by success rate and returns.\n\n Args:\n num: Number of managers to return (default 10, max 100 — the upstream\n returns 100 for anything higher)\n ",
"inputSchema": {
"properties": {
"num": {
"default": 10,
"title": "Num",
"type": "integer"
}
},
"title": "get_top_hedge_fund_managersArguments",
"type": "object"
},
"name": "get_top_hedge_fund_managers",
"outputSchema": null
},
{
"description": "Returns stocks most recommended by the best-performing analysts (by analyst track record).\n\n Args:\n num: Number of results\n sector: Sector filter (financial, healthcare, technology, etc.) or empty for all\n country: 'US', 'Canada', 'UK', 'Global'. NOTE: UK tickers use GB: prefix but country param is 'UK'.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "US",
"description": "'US', 'Canada', 'UK', or 'Global' (default: US). UK tickers are returned with a 'GB:' prefix but the country value is still 'UK'.",
"title": "Country",
"type": "string"
},
"num": {
"default": 20,
"title": "Num",
"type": "integer"
},
"sector": {
"default": "",
"description": "Lowercase sector filter: financial, healthcare, consumerdefensive, consumercyclical, utilities, materials, technology, industrials, energy, communicationservices, realestate (default: all sectors)",
"title": "Sector",
"type": "string"
}
},
"title": "get_top_rated_stocksArguments",
"type": "object"
},
"name": "get_top_rated_stocks",
"outputSchema": null
},
{
"description": "Returns stocks with the highest TipRanks Smart Score (perfect 10 / Outperform).\n\n Args:\n num: Number of results\n sector: Sector filter (financial, healthcare, technology, etc.) or empty for all\n country: 'US', 'Canada', 'UK', 'Germany', 'Spain', 'France', 'India', 'Italy',\n 'Israel', 'Australia', 'Singapore', 'Japan', 'HongKong', 'Global'.\n NOTE: UK tickers use GB: prefix but the country param is 'UK'.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "US",
"description": "'US','Canada','UK','Germany','Spain','France','India','Italy','Israel','Australia','Singapore','Japan','HongKong', or 'Global' (default: US). UK tickers are returned with a 'GB:' prefix but the country value is still 'UK'.",
"title": "Country",
"type": "string"
},
"num": {
"default": 20,
"title": "Num",
"type": "integer"
},
"sector": {
"default": "",
"description": "Lowercase sector filter: financial, healthcare, consumerdefensive, consumercyclical, utilities, materials, technology, industrials, energy, communicationservices, realestate (default: all sectors)",
"title": "Sector",
"type": "string"
}
},
"title": "get_top_smart_score_stocksArguments",
"type": "object"
},
"name": "get_top_smart_score_stocks",
"outputSchema": null
},
{
"description": "Returns currently trending stocks that recently received analyst ratings.\n\n Args:\n num: Number of results (default 20)\n filter: exactly one of 'analysts', 'bloggers', 'both'. Anything else is\n refused — the feed would otherwise answer it with the 'both' list.\n daysAgo: Days to look back: 3, 7, or any number from 30 up. Every other value\n (1, 2, 14…) is rejected by the feed. Default 7. Pass 30 or more when\n filtering by sector or country to ensure enough results — narrow\n windows often return fewer than 5 stocks in a specific sector.\n trendingType: exactly 'best-rated' or 'worst-rated' (empty for all). Anything\n else is refused — the feed would otherwise return the unranked list.\n country: 'US','Canada','UK','Germany','Israel','Australia' etc.\n sector: One of energy, financial, general, healthcare, industrials, services,\n technology, utilities. Empty for all sectors. This feed answers a\n sector it does not recognise with financial stocks rather than an\n error, so anything outside that list comes back refused instead.\n Rows returned for 'energy' are energy companies (Exxon, Chevron, BP)\n even though the feed tags them UTILITIES.\n\n Returns: ticker, SmartScore, analyst/blogger sentiment, hedge fund trend,\n price target, buy/hold/sell counts per stock.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "US",
"description": "Country name, e.g. 'US','Canada','UK','Germany','Israel','Australia' (default: US)",
"title": "Country",
"type": "string"
},
"daysAgo": {
"default": 7,
"description": "Days to look back: 3, 7, or any number from 30 up — anything else (1, 2, 14…) is rejected. Default 7. Use 30 or more when filtering by sector or country, as narrow windows often return very few stocks.",
"title": "Daysago",
"type": "integer"
},
"filter": {
"default": "analysts",
"description": "Exactly one of 'analysts', 'bloggers' or 'both' (default: analysts). Any other value is rejected rather than answered.",
"title": "Filter",
"type": "string"
},
"num": {
"default": 20,
"title": "Num",
"type": "integer"
},
"sector": {
"default": "",
"description": "Sector filter: energy, financial, general, healthcare, industrials, services, technology or utilities. Omit for all sectors; a sector outside this list is refused rather than answered. Rows for sector='energy' are energy companies even though the feed labels them UTILITIES.",
"title": "Sector",
"type": "string"
},
"trendingType": {
"default": "",
"description": "Exactly 'best-rated' or 'worst-rated'; omit for all (default). Any other value is rejected rather than silently returning the unranked list.",
"title": "Trendingtype",
"type": "string"
}
},
"title": "get_trending_stocksArguments",
"type": "object"
},
"name": "get_trending_stocks",
"outputSchema": null
},
{
"description": "List the portfolios you authorized this connector to access.\n\n Returns the portfolios that were on your TipRanks account at the time\n you signed in, each with its id and name. If you've added or renamed\n portfolios since, re-authorize to refresh.\n ",
"inputSchema": {
"properties": {},
"title": "list_my_portfoliosArguments",
"type": "object"
},
"name": "list_my_portfolios",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f8f86e345d366ea0fab8c52ef05aaef96645231edc7fc5dd8a14e5df56b94a92 | sha256sum