TipRanks
REMOTE · MCP.TIPRANKS.COM · SCANNED SEP 21
Live TipRanks market data: analyst ratings, Smart Score, technicals, options, portfolios.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 14580 tokens (~205/item across 71 items; 71 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage79
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 38% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 71 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 72 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the TipRanks MCP server?
TipRanks is a hosted endpoint at https://mcp.tipranks.com/mcp/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.tipranks.com
claude mcp add --transport http com-tipranks-tipranks 'https://mcp.tipranks.com/mcp/'
{
"mcpServers": {
"com-tipranks-tipranks": {
"url": "https://mcp.tipranks.com/mcp/"
}
}
} {
"servers": {
"com-tipranks-tipranks": {
"type": "http",
"url": "https://mcp.tipranks.com/mcp/"
}
}
} [mcp_servers.com-tipranks-tipranks] url = "https://mcp.tipranks.com/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-tipranks-tipranks": {
"type": "remote",
"url": "https://mcp.tipranks.com/mcp/",
"enabled": true
}
}
} openclaw mcp add com-tipranks-tipranks --url 'https://mcp.tipranks.com/mcp/' --transport streamable-http
mcp_servers:
com-tipranks-tipranks:
url: "https://mcp.tipranks.com/mcp/" {
"McpServers": {
"com-tipranks-tipranks": {
"Transport": "http",
"Url": "https://mcp.tipranks.com/mcp/"
}
}
} assistant mcp add com-tipranks-tipranks -t streamable-http -u 'https://mcp.tipranks.com/mcp/'
{
"mcpServers": {
"com-tipranks-tipranks": {
"type": "http",
"url": "https://mcp.tipranks.com/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 15 Sept 26 +7
- Stability: fail → pass ▲ security
- 2 Sept 26 0
- Tool “get_my_usage” rewrote its description, which is the text the model reads security
- 29 Aug 26 0
- Tool “get_etf_holdings” rewrote its description, which is the text the model reads security
- Tool “get_etf_screener” rewrote its description, which is the text the model reads security
- Tool “get_stock_prices” rewrote its description, which is the text the model reads security
- Tool “get_stock_splits” rewrote its description, which is the text the model reads security
- Tool “get_top_hedge_fund_managers” rewrote its description, which is the text the model reads security
- Tool “get_trending_stocks” rewrote its description, which is the text the model reads security
- “get_etf_screener” added an optional parameter “limit” cosmetic
- “get_stock_splits” added an optional parameter “ticker” cosmetic
- “get_trending_stocks” added an optional parameter “sector” cosmetic
- “get_etf_screener” reworded the description of “focus” cosmetic
- “get_trending_stocks” reworded the description of “daysAgo” cosmetic
- “get_trending_stocks” reworded the description of “filter” cosmetic
- “get_trending_stocks” reworded the description of “trendingType” cosmetic
- 26 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50.
- 16 Aug 26 0
- Stability: 0.67 → fail ▼ security
- Tool “get_ai_stock_analysis” dropped its output schema ▼ functional
- Tool “get_all_commodities_quotes” dropped its output schema ▼ functional
- Tool “get_all_crypto_quotes” dropped its output schema ▼ functional
- Tool “get_all_forex_quotes” dropped its output schema ▼ functional
- Tool “get_analysts_by_firm” dropped its output schema ▼ functional
- Tool “get_article” dropped its output schema ▼ functional
- Tool “get_assets_data” dropped its output schema ▼ functional
- Tool “get_assets_events” dropped its output schema ▼ functional
- Tool “get_assets_news” dropped its output schema ▼ functional
- Tool “get_assets_warnings” dropped its output schema ▼ functional
- Tool “get_best_performing_experts” dropped its output schema ▼ functional
- Tool “get_blogger_sentiment” dropped its output schema ▼ functional
- Tool “get_bulls_bears_summary” dropped its output schema ▼ functional
- Tool “get_buybacks” dropped its output schema ▼ functional
- Tool “get_clinical_trials” dropped its output schema ▼ functional
- Tool “get_commodity_historical” dropped its output schema ▼ functional
- Tool “get_commodity_quote” dropped its output schema ▼ functional
- Tool “get_company_kpis” dropped its output schema ▼ functional
- Tool “get_crypto_historical” dropped its output schema ▼ functional
- Tool “get_crypto_news” dropped its output schema ▼ functional
- Tool “get_crypto_quote” dropped its output schema ▼ functional
- Tool “get_dividend_history” dropped its output schema ▼ functional
- Tool “get_earnings_calendar” dropped its output schema ▼ functional
- Tool “get_earnings_call_summary” dropped its output schema ▼ functional
- Tool “get_earnings_history” dropped its output schema ▼ functional
- Tool “get_economic_calendar” dropped its output schema ▼ functional
- Tool “get_etf_analysis” dropped its output schema ▼ functional
- Tool “get_etf_exposures” dropped its output schema ▼ functional
- Tool “get_etf_forecast” dropped its output schema ▼ functional
- Tool “get_etf_holdings” dropped its output schema ▼ functional
- Tool “get_etf_screener” dropped its output schema ▼ functional
- Tool “get_etf_top_stocks” dropped its output schema ▼ functional
- Tool “get_financials” dropped its output schema ▼ functional
- Tool “get_forex_historical” dropped its output schema ▼ functional
- Tool “get_forex_quote” dropped its output schema ▼ functional
- Tool “get_hedge_fund_activity” dropped its output schema ▼ functional
- Tool “get_hedge_fund_holdings” dropped its output schema ▼ functional
- Tool “get_index_historical” dropped its output schema ▼ functional
- Tool “get_index_quote” dropped its output schema ▼ functional
- Tool “get_insider_transactions” dropped its output schema ▼ functional
- Tool “get_investor_sentiment” dropped its output schema ▼ functional
- Tool “get_ipo_calendar” dropped its output schema ▼ functional
- Tool “get_latest_news” dropped its output schema ▼ functional
- Tool “get_market_commentary” dropped its output schema ▼ functional
- Tool “get_market_movers” dropped its output schema ▼ functional
- Tool “get_market_performance” dropped its output schema ▼ functional
- Tool “get_my_usage” dropped its output schema ▼ functional
- Tool “get_options_chain” dropped its output schema ▼ functional
- Tool “get_options_contract” dropped its output schema ▼ functional
- Tool “get_options_expirations” dropped its output schema ▼ functional
- Tool “get_options_unusual_trades” dropped its output schema ▼ functional
- Tool “get_peers” dropped its output schema ▼ functional
- Tool “get_politician_activity” dropped its output schema ▼ functional
- Tool “get_politicians” dropped its output schema ▼ functional
- Tool “get_portfolio_analysis” dropped its output schema ▼ functional
- Tool “get_portfolio_holdings” dropped its output schema ▼ functional
- Tool “get_portfolio_overview” dropped its output schema ▼ functional
- Tool “get_portfolio_performance” dropped its output schema ▼ functional
- Tool “get_recent_analyst_ratings” dropped its output schema ▼ functional
- Tool “get_sector_analysis” dropped its output schema ▼ functional
- Tool “get_stock_catalyst” dropped its output schema ▼ functional
- Tool “get_stock_prices” dropped its output schema ▼ functional
- Tool “get_stock_quotes” dropped its output schema ▼ functional
- Tool “get_stock_splits” dropped its output schema ▼ functional
- Tool “get_technical_analysis” dropped its output schema ▼ functional
- Tool “get_ticker_earnings” dropped its output schema ▼ functional
- Tool “get_top_hedge_fund_managers” dropped its output schema ▼ functional
- Tool “get_top_rated_stocks” dropped its output schema ▼ functional
- Tool “get_top_smart_score_stocks” dropped its output schema ▼ functional
- Tool “get_trending_stocks” dropped its output schema ▼ functional
- Tool “list_my_portfolios” dropped its output schema ▼ functional
- 15 Aug 26 0
- Tool “get_all_crypto_quotes” rewrote its description, which is the text the model reads security
- Tool “get_all_forex_quotes” rewrote its description, which is the text the model reads security
- Tool “get_commodity_historical” rewrote its description, which is the text the model reads security
- Tool “get_crypto_historical” rewrote its description, which is the text the model reads security
- Tool “get_forex_historical” rewrote its description, which is the text the model reads security
- Tool “get_index_historical” rewrote its description, which is the text the model reads security
- Schema quality: 172 → 196 ▼ functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- MCP protocol version: 2025-11-25 → 2026-07-28 functional
- “get_all_crypto_quotes” added an optional parameter “limit” cosmetic
- “get_all_crypto_quotes” added an optional parameter “symbols” cosmetic
- “get_all_forex_quotes” added an optional parameter “limit” cosmetic
- “get_all_forex_quotes” added an optional parameter “symbols” cosmetic
- 13 Aug 26 0
- Tool “get_all_commodities_quotes” rewrote its description, which is the text the model reads security
- Tool “get_assets_news” rewrote its description, which is the text the model reads security
- Tool “get_latest_news” rewrote its description, which is the text the model reads security
- “get_latest_news” added an optional parameter “to_date” cosmetic
- “get_assets_news” reworded the description of “from_date” cosmetic
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Probed https://mcp.tipranks.com/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.tipranks.com | CN=GeoTrust TLS RSA CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US | 19 Jul 2026 | 19 Jan 2027 | RSA 2048 | SHA256-RSA | 94f2f77ebbb87d15bd26df1391b278b |
| SANs: mcp.tipranks.com | ||||||
| CN=GeoTrust TLS RSA CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US (CA) | CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US | 2 Nov 2017 | 2 Nov 2027 | RSA 2048 | SHA256-RSA | d07782a133fc6f9a57296e131ffd179 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.tipranks.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| tipranks.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="tipranks-mcp", resource_metadata="https://mcp.tipranks.com/.well-known/oauth-protected-resource"
Bearer realm="tipranks-mcp", resource_metadata="https://mcp.tipranks.com/.well-known/oauth-protected-resource" Protected resource metadata
| Document | https://mcp.tipranks.com/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.tipranks.com/mcp/ |
| Authorisation server | https://mcp.tipranks.com |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.tipranks.com/mcp/ | Verified | 200 | |
| http (plaintext) | http://mcp.tipranks.com/mcp/ | HTTPS enforced | 301 | https://mcp.tipranks.com/mcp/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_ai_stock_analysis ~786
TipRanks AI Stock Analysis — the 0-100 AI score for one or more stocks. Six frontier models (OpenAI, Anthropic, Gemini, xAI, DeepSeek, Perplexity) research each covered stock independently. Every model returns its own 0-100 score, rating (outperform / neutral / underperform), price target, and a weighted factor breakdown across financial performance, technical analysis, valuation, earnings call and corporate events. Use for: "what's the AI score for NVDA", "AI rating on my watchlist", "compare the AI scores of AAPL, MSFT and NVDA", "why do the models disagree on Tesla". Pass every symbol in one call — a multi-ticker call returns one compact row per ticker, which is what a watchlist or ranking question needs. A single ticker also returns every model's score with its factor breakdown plus the bull and bear key points. This is NOT the Smart Score (1-10, eight quantitative factors). It is a separate system, and the two routinely disagree by design. `ai_score` is the headline score and matches the AI Stock Analysis page; `consensus` holds the cross-model average, the high and low scoring models, and the split of rating labels. `upside_pct` is the model's price target against the current price. `as_of` is when the report was generated — reports regenerate on new earnings or a significant price move, so an older date means nothing material has changed since. Coverage is a subset of the stock universe and excludes ETFs. Symbols with no report at all come back under `not_covered`; symbols that are covered but lack a report from the requested `provider` come back separately under `no_report_from_provider`, each listing the models that did score them — so a missing provider is never reported as "this stock has no AI analysis". Args: tickers: Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT'), max 25. provider: Optional single provider to report on.…
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | 'consensus' (default) returns each model's score and factor breakdown; 'full' adds each model's written reasoning. Ignored on multi-ticker calls. |
| provider | – | – | 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 matche… |
| tickers | string | yes | Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA'), up to 25 |
No output schema declared.
No examples provided.
get_all_commodities_quotes ~97
Returns real-time quotes for all commodities in a single request. Each row carries the commodity's display name and a changePercentage derived from price and change, alongside the raw price, change and volume. Use the name given in the response — several symbols are non-mnemonic (HEUSX is Lean Hogs, SBUSX is Sugar, ZSUSX is Soybeans).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_all_crypto_quotes ~293
Real-time crypto quotes: the largest coins, each with a display name. The feed carries 4,771 coins in alphabetical order, which is far more than one response can hold — so this returns `limit` of them ordered by market capitalisation, largest first, and the response states how many were left out. Pass `symbols` for specific coins, or call get_crypto_quote for a single one. Read `note` before summarising: it says how many coins the slice covers out of how many exist, so a "top coins" answer is not mistaken for the whole market. `volume` on a crypto row is the source venue's own figure and is not a common unit across coins — some rows count coins, others quote-currency turnover. It does not rank the market and coins cannot be compared on it. Args: symbols: Comma-separated coins (optional; overrides the ranked slice) limit: How many ranked coins to return (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many ranked coins to return (default 40, max 75). Ignored when `symbols` is given. |
| symbols | string | – | Optional comma-separated coins to return instead of the ranked slice, e.g. 'BTCUSD,ETHUSD'. Bare tickers like 'BTC' resolve to the USD pair. |
No output schema declared.
No examples provided.
get_all_forex_quotes ~283
Real-time forex quotes: the most-traded pairs, each with a display name. The feed carries 1,550 pairs in alphabetical order, which is far more than one response can hold — so this returns the most prominent `limit` of them (majors first, then by volume), and the response states how many were left out. Pass `symbols` for specific pairs, or call get_forex_quote for a single one. Read `note` before summarising: it says how many pairs the slice covers out of how many exist, so a "top pairs" answer is not mistaken for the whole market. `volume` on a forex row is a per-venue tick count, not market turnover — FX is over-the-counter and most pairs report 0. It does not rank the market. Args: symbols: Comma-separated pairs (optional; overrides the ranked slice) limit: How many ranked pairs to return (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many ranked pairs to return (default 40, max 75). Ignored when `symbols` is given. |
| symbols | string | – | Optional comma-separated pairs to return instead of the ranked slice, e.g. 'EURUSD,USDJPY'. Slash and dash forms are accepted. |
No output schema declared.
No examples provided.
get_analysts_by_firm ~184
List analysts at a given firm (case-insensitive substring match). Each row: {name, firm, rank, avg_return_1y_pct, covered_tickers_sample, total_covered}. Results are deduped by analyst name (keeping the best rank) and sorted by rank ascending. When `sector` is provided, the per-analyst coverage list is filtered to tickers in that sector and the row shape becomes {name, firm, rank, avg_return_1y_pct, sector, covered_tickers}. Args: firm: Firm name or fragment (e.g. 'Goldman' matches 'Goldman Sachs'). sector: Optional lowercase sector (e.g. 'technology', 'healthcare').
| Name | Type | Req | Description |
|---|---|---|---|
| firm | string | yes | – |
| sector | string | – | – |
No output schema declared.
No examples provided.
get_article ~185
Fetch the full text of a single TipRanks article. Resolve a TipRanks article URL (e.g. from get_latest_news / get_assets_news), a slug, or a numeric post id to its title, excerpt, full body text (HTML-stripped, capped at 8000 chars), author, category, date, canonical URL, and any tagged tickers. Args: identifier: Numeric post id, slug, or a tipranks.com article URL. Returns a JSON object, or {"error": ...} when no matching TipRanks article exists (e.g. the URL points to an aggregated third-party site, which is not stored in TipRanks).
| Name | Type | Req | Description |
|---|---|---|---|
| identifier | string | yes | A TipRanks article identifier: the numeric post id, the slug, or a full tipranks.com article URL. |
No output schema declared.
No examples provided.
get_assets_data ~435
Returns key TipRanks stock data for one or more tickers. Args: tickers: Ticker symbols — a comma-separated string ("AAPL,MSFT,C") or a JSON array (["AAPL","MSFT","C"]). Both are accepted. Returns JSON {"assetsData": [...one compact entry per ticker...]}. This is a headline summary tuned to stay small enough for a whole portfolio to fit in a single response. Fields per entry: - ticker, companyName, sector, stockType, marketCap - url: canonical TipRanks page for the stock — use as the citation source. - price: latest close. - smartScore: TipRanks composite 1-10 (combines the 8 datasets — analyst, blogger, news, hedge-fund, insider, etc.). - analystConsensus / bestAnalystConsensus: rating label from ALL covering analysts vs. the top-performing ones ("Strong Buy".."Strong Sell"); a divergence between the two is itself a signal. - priceTarget: average 12-month target. priceTargetUpside: decimal vs. current price (0.05 = +5%). - peRatio, dividendYield (decimal). - newsSentiment, hedgeFundsScore, insiderScore: 0-1 sentiment signals. - ytdGainPct, yearlyGainPct: price performance as a percent (12.5 = +12.5%, 3944 = +3944%). - nextEarningsDate, and daysUntilEarnings (whole days from today — quote this rather than computing the gap from the date yourself). Floats are rounded and dates are day-resolution. For deeper per-ticker detail (full price history, 13F / insider breakdowns, blogger counts, financials) use the dedicated tools (get_stock_prices, get_hedge_fund_holdings, get_insider_transactions, get_financials, ...).
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_assets_events ~124
Returns upcoming dividend and earnings events for tickers. Args: tickers: Comma-separated ticker symbols (e.g. "AAPL,MSFT") from_date: Optional start date (ISO format, e.g. "2026-03-01") to_date: Optional end date (ISO format, e.g. "2026-06-01") Returns: dividend dates, earnings dates, and coupon dates per ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | – | – |
| tickers | – | yes | – |
| to_date | string | – | – |
No output schema declared.
No examples provided.
get_assets_news ~355
Returns recent news articles for tickers, aggregated from many news sites, each with a sentiment tag and source URL (headlines only — no article body). For general/market TipRanks news without a specific ticker, or for an article excerpt, use get_latest_news. This tool serves the CURRENT news window only: it returns each ticker's most recent articles, and from_date just trims that recent set. For news from a specific past date range, use get_latest_news with from_date + to_date, which searches the full archive. Args: tickers: Comma-separated ticker symbols count: Number of articles to return (default 10) from_date: Optional 'YYYY-MM-DD' recency floor (filtered on `date`). Returns JSON: {"assetNewsArticles": [...]}. Each entry: - ticker, companyName - sentiment: bucketed signal — one of "VeryPositive", "Positive", "Neutral", "Negative", "VeryNegative". Derived from TipRanks news-sentiment classifier on the article text. - siteName, url, title - date, addedOn, publishTime, articleTimestamp: redundant date fields. addedOn is when TipRanks ingested it; publishTime is the source's stated publication time. Prefer publishTime.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| from_date | string | – | 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. |
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_assets_warnings ~51
Returns risk warnings for tickers. Args: tickers: Comma-separated ticker symbols Returns: warning type, date, and detail fields per ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_best_performing_experts ~102
Returns the best-performing experts ranked by TipRanks success rate and average return. Args: expert_type: One of: analyst, insider, hedgeFund, blogger, firm (default: analyst) num: Number of results (default: 10, max: 25)
| Name | Type | Req | Description |
|---|---|---|---|
| expert_type | string | – | One of: analyst, insider, hedgeFund, blogger, firm (default: analyst) |
| num | integer | – | – |
No output schema declared.
No examples provided.
get_blogger_sentiment ~170
Returns the financial-blogger consensus for a stock plus the underlying blogger articles. Distinct from get_recent_analyst_ratings (Wall Street analysts) and get_investor_sentiment (TipRanks crowd positioning). Args: ticker: Stock ticker (e.g. 'AAPL') limit: Max blogger articles to return (default 20, max 50) Returns JSON: {ticker, company, consensus, articles}. - consensus: {bullish_pct, bearish_pct, neutral_pct, bullish_count, bearish_count, neutral_count, score, avg}. - articles: [{blogger, title, url, site, date}] (newest first).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_bulls_bears_summary ~138
Returns the discrete bull and bear key points for stocks — the individual sentence bullets TipRanks shows on its stock pages, each tagged with a topic. Args: tickers: Comma-separated tickers (e.g. 'AAPL,TSLA') Returns JSON: {"data": [...one entry per ticker...]}. Each entry has: - ticker, updatedOn - bullish: list of bullish point sentences - bearish: list of bearish point sentences - key_points: list of {sentiment, topic, point} for the full set.
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_buybacks ~347
Returns share-buyback / stock-repurchase activity in one of two modes: - CROSS-MARKET (no ticker): latest reported buybacks across all companies, sorted by dollar amount spent (largest first). Use for 'biggest buybacks', 'top repurchase companies'. A single company may appear multiple times for different fiscal quarters. - PER-TICKER (ticker provided): historical quarterly buyback series for one ticker. Use for 'AAPL buyback history', 'MSFT repurchase trend'. Args: ticker: Optional. If provided, returns the per-ticker historical series. If empty, returns the cross-market list. limit: Cross-market mode only — max rows (default: 25, max: 100). page: Cross-market mode only — page number, 1-based (default: 1). Returns: Cross-market mode: { totalCount, data: [{ ticker, companyName, fiscalPeriodEndDate, stockEarningsDate, eps, marketCapUSD, totalValueSpentToRepurchaseShares, epsCurrencyTypeCode }] }. Per-ticker mode: quarterly time series, chart-ready as a bar or line plot of buyback spend over time — [{ date, marketCapEndFiscalPeriod, totalValueSpentToRepurchaseShares, ratio (decimal — buyback / market cap) }, ...].
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| ticker | string | – | Optional. If provided, returns the per-ticker historical buyback series; if omitted, returns the cross-market list. |
No output schema declared.
No examples provided.
get_clinical_trials ~99
Returns the FDA / clinical-trial calendar — upcoming drug approval target dates and the tickers behind each drug. Window is fixed at today − 14 days to today + 60 days, sorted by date ascending. Use for upcoming FDA decisions, PDUFA dates, biotech catalysts. Returns: { data: [{ targetDate, clinicalTrials: [{ drugName, ticker }] }], count, window }.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_commodity_historical ~417
Daily OHLC price history for a commodity, covering the whole date range you ask for. Chart-ready: while the range fits in one response, each row is the price feed's own daily row — {symbol, date, open, high, low, close, volume, change, changePercent, vwap} — newest first, ordered for direct plotting as a price history. A range too long to return day by day is aggregated into coarser OHLC bars rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly), each bar spans `date` to `endDate`, and a bar's high/low are that period's real extremes. Aggregated bars carry the same fields except `vwap`, which the feed defines per session only. Re-request a narrower from_date/to_date for daily rows. `summary` always describes the FULL requested window, computed from the daily data: its first and last close with dates, its high and low with dates, and the trailing changes the window reaches back far enough to support. Base any "starting price", "a year ago" or "period high/low" claim on `summary`, or on a bar that is actually present. `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's yearHigh/yearLow cover a rolling 52 weeks — a different period — so label those as 52-week figures. For the current level alone, call get_commodity_quote. Args: symbol: Commodity symbol (e.g. 'GCUSD' for gold) from_date: Start date YYYY-MM-DD (optional) to_date: End date YYYY-MM-DD (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | – | – |
| symbol | string | yes | Commodity symbol, e.g. 'GCUSD' (gold). |
| to_date | string | – | – |
No output schema declared.
No examples provided.
get_commodity_quote ~109
Returns the real-time price quote for a specific commodity. Common symbols: GCUSD (gold), SIUSD (silver), CLUSD (crude oil), NGUSD (natural gas), HGUSD (copper), PLUSD (platinum). Args: symbol: Commodity symbol (e.g. 'GCUSD' for gold)
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Commodity symbol, e.g. 'GCUSD' (gold), 'CLUSD' (crude oil). |
No output schema declared.
No examples provided.
get_company_kpis ~240
Returns company-specific operational KPIs: segment revenue, geographic breakdown, active users/devices, gross margins by type, opex breakdown. Full history runs back to 2014 and is large, so this returns the most recent `count` periods per metric by default — pass count=0 for the full history, or `group` to fetch a single group. Args: ticker: Stock ticker (e.g. 'AAPL', 'MSFT') count: Most-recent periods per metric (default 8, max 40; 0 = full history) group: Optional single group by slug or title Returns JSON: {"ticker", "lastUpdated", "groups": [...]}. Each group has slug, title, and metrics: [{title, slug, unit, series: [{periodEnd, value}]}].
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| group | string | – | Optional single KPI group by slug or title (e.g. 'revenue_geography', 'Revenue by Segment'). Omit for all groups. |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_crypto_historical ~415
Daily OHLC price history for a cryptocurrency, covering the whole date range you ask for. Chart-ready: while the range fits in one response, each row is the price feed's own daily row — {symbol, date, open, high, low, close, volume, change, changePercent, vwap} — newest first, ordered for direct plotting as a price history. A range too long to return day by day is aggregated into coarser OHLC bars rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly), each bar spans `date` to `endDate`, and a bar's high/low are that period's real extremes. Aggregated bars carry the same fields except `vwap`, which the feed defines per session only. Re-request a narrower from_date/to_date for daily rows. `summary` always describes the FULL requested window, computed from the daily data: its first and last close with dates, its high and low with dates, and the trailing changes the window reaches back far enough to support. Base any "starting price", "a year ago" or "period high/low" claim on `summary`, or on a bar that is actually present. `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's yearHigh/yearLow cover a rolling 52 weeks — a different period — so label those as 52-week figures. For the current level alone, call get_crypto_quote. Args: symbol: Cryptocurrency symbol (e.g. 'BTCUSD' for Bitcoin) from_date: Start date YYYY-MM-DD (optional) to_date: End date YYYY-MM-DD (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | – | – |
| symbol | string | yes | Crypto symbol, e.g. 'BTCUSD' (Bitcoin). |
| to_date | string | – | – |
No output schema declared.
No examples provided.
get_crypto_news ~119
Latest cryptocurrency news — a market-wide feed across all coins (not filtered to a single asset), ordered newest-first: article headlines, snippets, and source URLs. Read-only, no side effects. Use for broad crypto/market headlines. For news about a specific holding use get_assets_news; for the general (non-crypto) editorial feed use get_latest_news.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | 0-indexed page of recent articles (0 = most recent); increase to page further back in time. |
No output schema declared.
No examples provided.
get_crypto_quote ~113
Returns the real-time price quote for a specific cryptocurrency. Common symbols: BTCUSD (Bitcoin), ETHUSD (Ethereum), SOLUSD (Solana), BNBUSD (BNB), XRPUSD (XRP), ADAUSD (Cardano), DOGEUSD (Dogecoin). Args: symbol: Cryptocurrency symbol (e.g. 'BTCUSD' for Bitcoin)
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Crypto symbol, e.g. 'BTCUSD' (Bitcoin), 'ETHUSD' (Ethereum). |
No output schema declared.
No examples provided.
get_dividend_history ~242
Dividend payment history for a ticker. Chart-ready: includes the current snapshot (yield %, payout ratio, frequency, annualised payout) plus two time series — a per-payment list [{ex_date, pay_date, amount, yield_pct, is_special, ...}] (newest first, capped at `count`) and an annual_totals list [{year, amount, yield_pct}] suitable for a yearly bar chart. All yields are emitted as percentages (4.5 = 4.5%), so plots don't need to know which underlying field used decimal vs. percentage encoding. Use for: "AAPL dividend history", "yield trend over 5 years", "dividend growth chart", "is the payout sustainable". Args: ticker: Stock ticker (e.g. 'AAPL', 'JNJ'). count: Number of most-recent individual payments to return (default 16, max 100). The annual_totals series is always returned in full.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_earnings_calendar ~100
Returns upcoming earnings dates across all stocks for a date range. Args: fromDate: Start date YYYY-MM-DD (default: today) toDate: End date YYYY-MM-DD (default: 14 days from now) exchange: Optional exchange filter, e.g. 'US' for US-only results
| Name | Type | Req | Description |
|---|---|---|---|
| exchange | string | – | – |
| fromDate | string | – | – |
| toDate | string | – | – |
No output schema declared.
No examples provided.
get_earnings_call_summary ~234
Returns the most recent earnings call summary for a ticker — management guidance text, overall call sentiment (positive / neutral / negative with a one-line rationale), and AI-extracted highlights and lowlights from the call as {title, content} bullets. This is a structured summary derived from the call, not the raw transcript text. Useful for "what did management say about X on the last call", "was the most recent call bullish or bearish", or "summarise the highlights from MSFT's latest earnings". Only the most recent quarter is stored per ticker; for historical EPS actual-vs-estimate series use get_earnings_history. Args: ticker: Stock ticker (e.g. 'AAPL', 'NVDA'). Returns: { ticker, fiscal_year, fiscal_quarter, guidance, sentiment: { label, summary }, highlights: [ { title, content }, ... ], lowlights: [ { title, content }, ... ] }
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_earnings_history ~233
Quarterly earnings time series for a ticker. Chart-ready: each quarter row is {period, report_date, actual_eps, estimate_eps, eps_surprise_pct, prior_year_eps, eps_yoy_change_pct, actual_revenue, estimate_revenue, revenue_surprise_pct, net_income, ...}, ordered oldest-first so a bar chart of actual vs. estimate EPS, or a YoY trend line, plots directly. Also returns next_quarter — the upcoming scheduled report with the consensus estimate, low/high estimate band, and expected report date — for forward-looking charts. Use for: "AAPL earnings history", "earnings surprise trend", "did NVDA beat last quarter", "EPS beat/miss the past 4 quarters". Args: ticker: Stock ticker (e.g. 'AAPL', 'NVDA'). quarters: Number of most-recent reported quarters to return (default 8, max 40).
| Name | Type | Req | Description |
|---|---|---|---|
| quarters | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_economic_calendar ~334
Returns upcoming and recent economic events (Fed meetings, jobs reports, CPI, GDP). Defaults to US events at High/Medium impact only because the raw feed includes hundreds of low-impact items from every country. Args: daysBack: Days to look back (default 0) daysForward: Days to look forward (default 7) fromDate: Start date ISO format (alternative to daysBack) toDate: End date ISO format (alternative to daysForward) countries: Comma-separated country names to keep (default 'US'). Pass an empty string to disable the country filter. Common values: 'US','UK','Germany','Japan','China','Canada','France'. impact: Comma-separated impact levels to keep (default 'High,Medium'). Valid values: 'High','Medium','Low'. Pass empty to keep all levels. limit: Max events returned after filtering (default 50, max 200). Returns: { totalMatched, returned, filters, economicCalendar: [...] }.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | string | – | Comma-separated country names to keep (default 'US'); pass '' to keep all. Examples: 'US','UK','Germany','Japan','China'. |
| daysBack | integer | – | – |
| daysForward | integer | – | – |
| fromDate | string | – | – |
| impact | string | – | Comma-separated impact levels to keep: High, Medium, Low (default 'High,Medium'); pass '' to keep all. |
| limit | integer | – | – |
| toDate | string | – | – |
No output schema declared.
No examples provided.
get_etf_analysis ~57
Returns analyst consensus for ETFs based on weighted average of holdings' ratings. Args: tickers: Comma-separated ETF tickers (e.g. 'QQQ,SPY,VTI')
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_etf_exposures ~186
Returns the list of ETFs that hold a specific stock, sorted by holding market value (largest first). Args: ticker: Stock ticker (e.g. 'MSFT', 'AAPL') page: Page number (default 1) page_size: Results per page (default 20, max 100) Returns per ETF: etfTicker, etfCompanyName, etfCategory, aum, expenseRatio, holdingWeight (% of ETF in this stock), holdingMarketValue ($), holdingNumOfShares, weightInAsset (% of stock's outstanding shares held by this ETF), etfAnalystConsensusScore, etfSmartScore. Also returns totalCount (total ETFs holding the stock).
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | – |
| page_size | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_etf_forecast ~51
Returns the analyst forecast for a specific ETF: consensus, price target, upside. Args: ticker: ETF ticker (e.g. 'QQQ')
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_etf_holdings ~338
List the constituents of an ETF. Base mode (default): returns every holding with its weight % in the index — {ticker, name, weight_pct}. Top-performers mode: pass `sort_by` (one of '5d', 'month', 'ytd', 'year') and a `limit` > 0 to get the top N constituents by that period's return. Each row carries weight_pct, current_price, return_pct for the chosen period, and analyst_consensus. Use the top-performers mode for questions like 'which stocks in XLK rose most this week' without separately calling a screener. Args: ticker: ETF ticker (e.g. 'SPY', 'QQQ'). sort_by: '' for full list, or one of '5d', 'month', 'ytd', 'year'. limit: 0 to return all constituents; >0 (max 50) to return top N. A negative or non-numeric limit is REJECTED rather than treated as 0 — `limit` picks the mode here, so defaulting an unusable one would answer a ranked top-N request with the full unranked list.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| sort_by | string | – | 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. |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_etf_screener ~258
Filters ETFs by asset class, category, and focus. Args: assetClass: Alternatives, AssetAllocation, Commodities, Currency, Equity, FixedIncome category: BroadMarket, Sector, HighDividendYield, SizeAndStyle, Corporate, etc. focus: LargeCap, SmallCap, MidCap, TotalMarket, Financials, HealthCare, InformationTechnology, Energy, RealEstate, HighDividendYield, HighYield, etc. Use this for a sector question ('tech ETFs' -> InformationTechnology); the screener has no `sector` filter. limit: Rows to return (default 20, max 100).
| Name | Type | Req | Description |
|---|---|---|---|
| assetClass | string | – | Asset class filter, e.g. 'Equity', 'FixedIncome', 'Commodities' |
| category | string | – | Category filter, e.g. 'Sector', 'BroadMarket', 'HighDividendYield' |
| focus | string | – | Focus filter, e.g. 'LargeCap', 'InformationTechnology', 'HighYield'. This is the screener's SECTOR filter — there is no separate sector parameter. |
| limit | integer | – | Rows to return (default: 20, max: 100). |
No output schema declared.
No examples provided.
get_etf_top_stocks ~50
Returns the top stock holdings within an ETF along with their analyst ratings. Args: ticker: ETF ticker (e.g. 'QQQ')
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_financials ~346
Financial statements time series for a ticker, chart-ready. Each period is a flat ~25-field object spanning the income statement (revenue, gross / operating / EBITDA / net margins, EPS, R&D), the balance sheet (total assets, total debt, total equity, net debt, cash + short-term investments), the cash flow statement (operating cash flow, free cash flow, capex, dividends paid, buybacks), and two computed ratios (current ratio, debt-to-equity). Margins are emitted as percentages — gross_margin_pct of 49.27 means 49.27%. Cash outflows (dividends_paid, buybacks) are returned as negative numbers, matching the source convention. Use for: "AAPL revenue and FCF over the last 10 years", "show margins trend", "is net debt rising", "EPS growth", "R&D as % of revenue". Args: ticker: Stock ticker (e.g. 'AAPL', 'NVDA'). period: 'annual' (default), 'quarterly', or 'ttm' (trailing twelve months). Annual periods extend ~9 years back; quarterly extends ~37 quarters back. count: Number of most-recent periods to return (default 5, max 40), ordered oldest-first inside the returned `periods` array.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | – |
| period | string | – | 'annual' (default), 'quarterly', or 'ttm' |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_forex_historical ~456
Daily OHLC price history for a forex pair, covering the whole date range you ask for. Chart-ready: while the range fits in one response, each row is the price feed's own daily row — {symbol, date, open, high, low, close, volume, change, changePercent, vwap} — newest first, ordered for direct plotting as an exchange-rate history. A range too long to return day by day is aggregated into coarser OHLC bars rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly), each bar spans `date` to `endDate`, and a bar's high/low are that period's real extremes. Aggregated bars carry the same fields except `vwap`, which the feed defines per session only. Re-request a narrower from_date/to_date for daily rows. `summary` always describes the FULL requested window, computed from the daily data: its first and last close with dates, its high and low with dates, and the trailing changes the window reaches back far enough to support. Base any "starting rate", "a year ago" or "period high/low" claim on `summary`, or on a bar that is actually present. `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's yearHigh/yearLow cover a rolling 52 weeks — a different period — so label those as 52-week figures. For the current level alone, call get_forex_quote. `volume` on a forex row is a per-venue tick count, not market turnover — FX is over-the-counter. Read it as a liquidity hint at best. Args: symbol: Forex pair symbol (e.g. 'EURUSD') from_date: Start date YYYY-MM-DD (optional) to_date: End date YYYY-MM-DD (optional)
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | – | – |
| symbol | string | yes | Forex pair, uppercase with no slash, e.g. 'EURUSD'. |
| to_date | string | – | – |
No output schema declared.
No examples provided.
get_forex_quote ~92
Returns the real-time exchange rate quote for a forex pair. Common pairs: EURUSD, GBPUSD, USDJPY, USDCHF, AUDUSD, USDCAD. Args: symbol: Forex pair symbol (e.g. 'EURUSD')
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Forex pair, uppercase with no slash, e.g. 'EURUSD', 'GBPUSD', 'USDJPY'. |
No output schema declared.
No examples provided.
get_hedge_fund_activity ~183
Returns per-fund hedge-fund holdings and recent transactions for a ticker — which institutions hold it, how much each changed (bought/sold), the holding value, % of portfolio, and the fund's TipRanks rank/stars. Complements get_hedge_fund_holdings (the aggregate share-count timeseries). Args: ticker: Stock ticker (e.g. 'AAPL') limit: Max funds to return (default 25, max 100) Returns JSON: {ticker, company, sentiment, trend_action, trend_value, funds}. - funds: [{manager, institution, shares_change, direction, holding_value, pct_of_portfolio, as_of, rank, stars, is_active}].
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_hedge_fund_holdings ~157
Hedge-fund share-count history for a ticker. Returns the most recent `limit` snapshots (max 60) plus a summary block (snapshot_count, first/last date and shares). Each row: {date, shares}. Sourced from quarterly 13F filings; lags by up to 45 days. For a snapshot of current sentiment without the timeseries, use get_assets_data and read hedgeFundSentimentData. Args: ticker: Stock ticker (e.g. 'AAPL'). limit: Max snapshots to return (default 60, max 60).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_index_historical ~426
Daily OHLC price history for a major market index, covering the whole date range you ask for. Chart-ready: while the range fits in one response, each row is the price feed's own daily row — {symbol, date, open, high, low, close, volume, change, changePercent, vwap} — newest first, ordered for direct plotting as an index history. A range too long to return day by day is aggregated into coarser OHLC bars rather than cut short. `interval` names which (weekly/monthly/quarterly/yearly), each bar spans `date` to `endDate`, and a bar's high/low are that period's real extremes. Aggregated bars carry the same fields except `vwap`, which the feed defines per session only. Re-request a narrower from_date/to_date for daily rows. `summary` always describes the FULL requested window, computed from the daily data: its first and last close with dates, its high and low with dates, and the trailing changes the window reaches back far enough to support. Base any "starting level", "a year ago" or "period high/low" claim on `summary`, or on a bar that is actually present. `summary.windowHigh`/`windowLow` describe THIS window. A quote tool's yearHigh/yearLow cover a rolling 52 weeks — a different period — so label those as 52-week figures. For the current level alone, call get_index_quote. Args: symbol: Index symbol (e.g. '^GSPC' for S&P 500) from_date: Start date YYYY-MM-DD to_date: End date YYYY-MM-DD (defaults to today)
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | yes | – |
| symbol | string | yes | Index symbol, e.g. '^GSPC' for the S&P 500. |
| to_date | string | – | – |
No output schema declared.
No examples provided.
get_index_quote ~161
Returns the real-time quote for a major market index. Index symbols: ^GSPC (S&P 500), ^IXIC (Nasdaq), ^DJI (Dow Jones), ^GSPTSE (TSX), ^FTSE (FTSE 100), ^N225 (Nikkei), ^AORD (All Ords), ^HSI (Hang Seng), ^STI (STI), ^BSESN (Sensex), ^VIX (VIX). Args: symbol: Index symbol (e.g. '^GSPC' for S&P 500)
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Index symbol, e.g. '^GSPC' for the S&P 500. |
No output schema declared.
No examples provided.
get_insider_transactions ~191
Individual corporate-insider (officers/directors, Form 4) transactions for a ticker, newest first. Each row: insider_name, role, is_officer, is_director, action (e.g. "Auto Sell", "Grant/Award/Other Acquisition"), side (buy/sell), shares, price (approximate — value / shares; the source has no exact price), value, date, filing_link (the SEC Form-4 URL), and insider_stars. This is corporate-insider activity (Form 4). For retail/individual investor sentiment, use get_assets_data and read investorActivity. Args: ticker: Stock ticker (e.g. 'AAPL'). limit: Max rows to return (default 30, max 100).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_investor_sentiment ~504
Returns crowd / retail investor sentiment for a stock. Args: ticker: Stock ticker (e.g. 'NVDA') Returns JSON with these top-level keys: - investorStatsOverview: stats aggregated across ALL TipRanks portfolios that hold the ticker. Fields: * numberOfPortfolios: total active portfolios on the platform. * portfoliosHoldingStock: how many of them hold THIS ticker. * averageAllocation: average % allocation among holders (decimal). * percentOverLast30Days / percentOverLast7Days: change in the count of holders over the window (decimal; 0.013 = +1.3%). * investorScore: TipRanks' 0-1 score of how confident "the crowd" is on this stock; higher = more bullish positioning. * sectorAverageScore: investorScore averaged across the sector, for comparison. * sentiment: bucketed label — one of "VeryNegative", "Negative", "Neutral", "Positive", "VeryPositive". * sectorAverageSentiment: same bucket, sector-wide. - bestInvestorStatsOverview: same fields, but restricted to "Best Investors" — TipRanks users with top-decile portfolio returns over the trailing window. If investorStatsOverview and bestInvestorStatsOverview diverge (e.g. crowd is Positive but best investors are Negative), that's the headline signal. - ageDistribution: holders split by TipRanks account-tenure tier (NOT the investor's biological age): * eldest: oldest accounts on the platform * midRange: middle tier * youngest: newest accounts Each has percentHolders, last30DaysChange, last7DaysChange, and per-bucket averages (averageBeta, averageMonthlyReturn, dividendYield, averagePeRatio). - investorsAlsoBought: top other stocks held by people who hold this one (each: ticker, companyName, averageHold…
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_ipo_calendar ~67
Returns upcoming and recent IPOs. Args: fromDate: Start date ISO format (default: today) toDate: End date ISO format (default: 30 days from now)
| Name | Type | Req | Description |
|---|---|---|---|
| fromDate | string | – | – |
| toDate | string | – | – |
No output schema declared.
No examples provided.
get_latest_news ~431
Latest TipRanks news articles (newest first) from TipRanks's own editorial/wire feed — each with a text excerpt, unlike get_assets_news. Use for general market news (no ticker), news on a specific stock with a short summary of each story, or to browse a news category. This is also the tool for news from a specific PAST date range — pass from_date AND to_date together; the archive holds years of stories, so a past window is answerable here even though get_assets_news only reaches recent articles. Args: tickers: Optional comma-separated tickers to filter by (e.g. 'NVDA,AAPL'). Omit for general market news. category: Optional single category (see the field description). from_date: Optional 'YYYY-MM-DD' recency floor. limit: Max articles to return (default 20). to_date: Optional 'YYYY-MM-DD' inclusive upper bound. Results are newest-first, so from_date alone returns today's news rather than news from around that date — add to_date to scope a window. Returns a JSON list of {id, title, excerpt, author, category, date, url, tickers}. To read a full article, pass its url or id to get_article.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional single category: 'news', 'the-fly', 'blurbs', 'catalyst', 'ratings', 'cryptocurrencies', 'insider-trading', 'newswire', 'private-companies', 'company-announcements'. Omitted = editorial/wire… |
| from_date | string | – | – |
| limit | integer | – | – |
| tickers | string | – | – |
| to_date | string | – | 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. |
No output schema declared.
No examples provided.
get_market_commentary ~111
Cached equities market sentiment snapshot. Returns {overallSentiment, atmosphere, keyThemes, tailwinds, headwinds}. Generated by TipRanks' AI pipeline with web search, refreshed every ~4 hours; this endpoint reads the cache only and does not trigger regeneration. If no recent cache exists, returns {"status": "unavailable"}. The content is AI-generated commentary, not authoritative TipRanks market data — present it as such to end users.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_market_movers ~184
Returns today's market movers: biggest gainers, losers, most active. Args: category: 1=DollarVolume, 2=PercentGainers, 3=PercentLosers, 4=GainersRegular, 5=LosersRegular, 6=UnusualVolume country: 1=US, 2=Canada, 3=UK num: Number of results
| Name | Type | Req | Description |
|---|---|---|---|
| category | integer | yes | 1=DollarVolume, 2=PercentGainers (ext hours), 3=PercentLosers (ext hours), 4=GainersRegular, 5=LosersRegular, 6=UnusualVolume |
| country | integer | – | 1=US, 2=Canada, 3=UK (default: 1) |
| num | integer | – | – |
No output schema declared.
No examples provided.
get_market_performance ~74
Returns market-wide performance for a specific country: average returns, sector breakdown, top/bottom performers. Args: country: Country code: 'us', 'ca', 'gb', 'de', 'il', 'au', 'hk', 'sg', etc.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | – |
No output schema declared.
No examples provided.
get_my_usage ~233
Your current TipRanks MCP usage against the monthly tool-call quota. Reports calls used this calendar month, your limit, how many remain, your plan tier, and when the quota resets (UTC). Handy to check before running a large batch of calls. This call is free — it never counts against the quota. What counts: every tool call is metered once whether or not it returns data, so an unrecognised ticker or an invalid argument costs the same as a successful call. The connection handshake (initialize, tools/list and the other discovery calls) is never metered, and neither is this tool. Calls refused for being over the limit are refunded on both ladders, so `used` settles at the cap rather than climbing while a client retries. It can still read higher than `limit` when the ceiling FELL mid-month — a complimentary grant expiring or being revoked, or a paid MCP subscription lapsing — and there it is the count of calls genuinely served before the cap dropped.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_options_chain ~264
Contracts at one expiration, enriched with price + OI + volume. Each row: ticker (OCC), contract_type, strike, name, price, volume, open_interest, open_interest_change, change_percent, day_open / high / low, last_trade_date. Quotes are typically delayed ~15 minutes. Greeks and implied volatility are NOT exposed by this data source — do not fabricate them. Args: ticker: Underlying (e.g. 'AAPL'). expiration_date: One of the dates from get_options_expirations (YYYY-MM-DD). contract_type: '' for both, or 'call' or 'put'. strike_gte: Filter strikes >= this value (optional). strike_lte: Filter strikes <= this value (optional). limit: Max contracts to return (default 50).
| Name | Type | Req | Description |
|---|---|---|---|
| contract_type | string | – | 'call' or 'put'; omit to return both sides. |
| expiration_date | string | yes | Exact expiration in YYYY-MM-DD. REQUIRED — call get_options_expirations first to discover valid dates. |
| limit | integer | – | – |
| strike_gte | – | – | – |
| strike_lte | – | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_options_contract ~154
Snapshot one OCC contract — price, OI, intraday OHLCV, last trade. The contract_ticker is an OCC-format symbol like 'O:AAPL260520C00205000' (O: + underlying + YYMMDD + C/P + strike-in-thousandths-8-digits). The 'O:' prefix is optional. Quotes are typically delayed ~15 minutes. Greeks and implied volatility are not available from this data source. Args: contract_ticker: OCC contract symbol.
| Name | Type | Req | Description |
|---|---|---|---|
| contract_ticker | string | yes | OCC-format option ticker, e.g. 'O:AAPL260520C00205000'. The 'O:' prefix is optional. |
No output schema declared.
No examples provided.
get_options_expirations ~64
List future expiration dates for a ticker's listed options. Excludes past expirations. Use the result as input to get_options_chain. Args: ticker: Underlying ticker (e.g. 'AAPL').
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | – |
No output schema declared.
No examples provided.
What is the TipRanks MCP server?
TipRanks is an MCP server listed in the public MCP registry as com.tipranks/tipranks. Live TipRanks market data: analyst ratings, Smart Score, technicals, options, portfolios. This page covers its hosted endpoint (https://mcp.tipranks.com/mcp/).
Is the TipRanks MCP server safe to use?
TipRanks scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the TipRanks MCP server expose?
TipRanks exposes 71 tools: list_my_portfolios, get_portfolio_holdings, get_portfolio_overview, get_portfolio_analysis, get_portfolio_performance, and 66 more. Their descriptions and schemas cost roughly 14,525 tokens of context every time the server is loaded.
Does the TipRanks MCP server require authentication?
Yes. TipRanks asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the TipRanks MCP server still maintained?
TipRanks is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.