TipRanks
REMOTE · MCP.TIPRANKS.COM
Live TipRanks market data: analyst ratings, Smart Score, technicals, options, portfolios.
Available components
Last scanned (12 hours ago)
Scores higher than 95% of remote servers
Reachable. Last reached 7 Nov 2026.
Category Finance and Payments
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 Usability65
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 16966 tokens (~238/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
- 37% 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
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
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.
- 6 Nov 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Oct 26 0
- Tool “get_etf_screener” rewrote its description, which is the text the model reads security
- Tool “get_recent_analyst_ratings” rewrote its description, which is the text the model reads security
- Tool “get_stock_catalyst” rewrote its description, which is the text the model reads security
- Tool “get_top_rated_stocks” rewrote its description, which is the text the model reads security
- Tool “get_top_smart_score_stocks” rewrote its description, which is the text the model reads security
- “get_recent_analyst_ratings” added an optional parameter “offset” cosmetic
- “get_etf_screener” reworded the description of “assetClass” cosmetic
- “get_etf_screener” reworded the description of “category” cosmetic
- “get_top_rated_stocks” reworded the description of “country” cosmetic
- “get_top_rated_stocks” reworded the description of “sector” cosmetic
- “get_top_smart_score_stocks” reworded the description of “country” cosmetic
- “get_top_smart_score_stocks” reworded the description of “sector” cosmetic
- 26 Oct 26 0
- Tool “get_market_performance” rewrote its description, which is the text the model reads security
- 22 Oct 26 0
- Tool “get_earnings_calendar” 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_recent_analyst_ratings” rewrote its description, which is the text the model reads security
- 21 Oct 26 0
- Tool “get_economic_calendar” rewrote its description, which is the text the model reads security
- 20 Oct 26 0
- Tool “get_options_chain” rewrote its description, which is the text the model reads security
- Tool “get_options_contract” rewrote its description, which is the text the model reads security
- Tool “get_options_expirations” rewrote its description, which is the text the model reads security
- “get_etf_holdings” reworded the description of “sort_by” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 7 Nov 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. | DS published | 19718 | 13 | Verified |
| tipranks.com. | No DS | 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_options_unusual_trades ~106
Recent unusual option trades for an underlying (size/sweep alerts). Returns the most recent `limit` flagged trades with the side, strike, expiry, size, and notional value. Useful for spotting large bullish or bearish positioning. Args: ticker: Underlying ticker (e.g. 'AAPL'). limit: Max trades to return (default 25).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_peers ~96
Peer/competitor companies for a stock, with comparative metrics for side-by-side analysis. Read-only, no side effects. Use to find and compare a company against similar names (competitors, same-sector peers). For that company's own data use get_assets_data; for a sector-wide breakdown use get_sector_analysis.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. 'AAPL'. |
No output schema declared.
No examples provided.
get_politician_activity ~102
Returns a specific politician's stock trades or holdings. First call get_politicians to find the politicianId. Args: politicianId: Politician ID from get_politicians activity: 'trades' or 'holdings'
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | – | 'trades' or 'holdings' (default: trades) |
| politicianId | integer | yes | Politician ID, as returned by get_politicians. |
No output schema declared.
No examples provided.
get_politicians ~37
Returns the list of politicians tracked for trading activity. Returns: name, party, state, position, net worth, profile.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_portfolio_analysis ~64
Returns asset allocation by type/country/top stocks and distribution by sector, market cap, dividend yield, beta, and P/E. Args: portfolio_id: One of the IDs returned by list_my_portfolios.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | integer | yes | – |
No output schema declared.
No examples provided.
get_portfolio_holdings ~106
Returns all holdings for one of your TipRanks portfolios. Per holding: ticker, shares, price, cost basis (AvgExecutionPrice), P/E ratio, dividend yield, market cap, sector, country, 52-week high/low, percentage of portfolio, beta, EPS. Plus total value, cash, stock count. Args: portfolio_id: One of the IDs returned by list_my_portfolios.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | integer | yes | – |
No output schema declared.
No examples provided.
get_portfolio_overview ~93
Returns lifetime / 1mo / 6mo / 12mo / YTD returns, Sharpe ratio, and a monthly-return time series. The monthly history field is chart-ready — a list of {month, return} points suitable for direct plotting. Args: portfolio_id: One of the IDs returned by list_my_portfolios.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | integer | yes | – |
No output schema declared.
No examples provided.
get_portfolio_performance ~105
Returns full performance: stats, gains, best trade, recent activity, a daily-yield time series benchmarked against S&P 500 (chart-ready — aligned dates with portfolio and benchmark yield columns, plot directly as overlaid lines), monthly returns, risk profile, beta, dividend yield/amount. Args: portfolio_id: One of the IDs returned by list_my_portfolios.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | integer | yes | – |
No output schema declared.
No examples provided.
get_recent_analyst_ratings ~492
Recent Wall Street analyst rating actions on a single stock, covering the trailing 12 months (newest first). `ratings` holds one row per analyst, their latest rating, newest first. Each row carries the analyst's name, expertUID and firm, the rating (Buy/Hold/Sell), the action (initiated/upgraded/downgraded/reiterated/ maintained), recommendationDate and timestamp, the price target in its own currency (priceTarget, priceTargetCurrencyCode) and converted (convertedPriceTarget, convertedPriceTargetCurrencyCode), and the analyst's TipRanks credibility (numOfStars 0-5, rank, successRate as a fraction, excessReturn as the average return) plus the source article title/quote. The response is size-bounded, so a long list comes in pages: when rows are left out the result carries `nextOffset`; call again with that offset for the next page, until a result has no `nextOffset`. `totalRatings` is the full count. The source returns at most the 100 newest ratings; when it hit that limit the result carries `feedLimit`, and older ratings are not available from this tool. `counts` gives exact last30Days / last90Days / last12Months totals (analysts whose latest rating falls in the window, split buy/hold/sell) over every rating fetched, as of `asOf`; answer 'how many analysts rated X in the past month' from `counts`, which cover every page. For the aggregate consensus and average/best price target, use get_assets_data instead. Args: ticker: Stock ticker (e.g. 'NVDA', 'AAPL'). offset: Index of the first rating to return in the newest-first list (default 0); pass the previous result's `nextOffset`. Returns: {ticker, asOf, totalRatings, counts, offset, ratings, and nextOffset when more remain}. recommendationDate is a 'MM/DD/YYYY' string; numOfStars is the analyst's 0-5 TipRanks star rating.
| Name | Type | Req | Description |
|---|---|---|---|
| offset | integer | – | – |
| ticker | string | yes | – |
No output schema declared.
No examples provided.
get_sector_analysis ~41
Returns sector-level analysis for all 11 US sectors: average P/E, analyst upside, buy ratio, stock count. Sorted by average analyst upside.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_stock_catalyst ~127
TipRanks-generated catalyst summary explaining why a stock is moving. Each entry: {ticker, price_move, summary, sentiment, updated} where sentiment is 'positive' | 'neutral' | 'negative' and price_move, present once today's session has traded, is the stock's actual change today from the live quote. Use to explain today's move for a specific stock. Args: tickers: Comma-separated tickers (e.g. 'AMZN' or 'AMZN,NVDA').
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_stock_prices ~187
Historical daily closing prices for up to 5 stocks or ETFs. Per ticker: {ticker, period, series:[{date, price}], summary} with summary fields first_price, last_price, change_pct, high, low, trading_days. Series is downsampled to ~250 evenly-spaced points (latest point always retained) so the payload stays small for charting. `period` must be one of: 1m, 3m, 6m, ytd, 1y, 2y, 3y, 5y, all. Args: tickers: Comma-separated tickers, up to 5 (e.g. 'AAPL,MSFT'). period: Lookback window (default 'ytd').
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | – |
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_stock_quotes ~162
Real-time price quote for one or more stocks or ETFs. Returns price, intraday OHLC, day change (amount + percent), volume, previous close, market cap, currency, exchange, and market-state flags (is_market_open / is_premarket / is_after_market). When extended-hours data is present, the entry includes a `pre_post_market` block — when the regular session is closed, that's the freshest price. For forex pairs use get_forex_quote; this endpoint is stocks/ETFs only. Args: tickers: Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA').
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
No output schema declared.
No examples provided.
get_stock_splits ~338
Returns the stock-split calendar with split ratios and direction (Forward / Reverse). Use for upcoming splits, reverse-split alerts, historical split lookup. Args: fromDate: Start date YYYY-MM-DD (default: 30 days ago) toDate: End date YYYY-MM-DD (default: 30 days from now) type: Optional filter — 'Forward' or 'Reverse' (case-insensitive). Empty string returns both. limit: Max rows (default: 25, max: 100) ticker: Optional single symbol. Widen fromDate to search a company's history — the default window is only today ± 30 days. Returns: { totalCount, data: [{ ticker, companyName, effectiveDate, type, splitRatio, splitRatioText }] }. A filtered call (ticker or type) also returns `matched` and `window`: `totalCount` is every split in the window, `matched` how many passed the filter. The window is read in full before filtering, so an empty result means there genuinely are none rather than that the first page held none.
| Name | Type | Req | Description |
|---|---|---|---|
| fromDate | string | – | – |
| limit | integer | – | – |
| ticker | string | – | Optional. Return only this company's splits within the window, e.g. 'NVDA'. Pair with a wide fromDate for 'has X ever split'. |
| toDate | string | – | – |
| type | string | – | Optional filter: 'Forward' or 'Reverse' (case-insensitive); omit to return both. |
No output schema declared.
No examples provided.
get_technical_analysis ~367
Returns RSI, MACD, Stochastics, ADX, moving averages, and pivot points for stocks and ETFs. Covers stocks and ETFs alike (e.g. 'NVDA', 'SPY', 'QQQ', 'VTI') with the same payload shape. For an ETF's analyst consensus, forecast, holdings or exposures, use get_etf_analysis, get_etf_forecast, get_etf_top_stocks, or get_etf_exposures. Args: tickers: Comma-separated stock or ETF tickers (e.g. 'NVDA' or 'NVDA,SPY'). timeFrame: '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day') '5h' is slow upstream: request it for one ticker per call. Returns: summary scores, oscillators (RSI, MACD, Stochastics, ADX, CCI, Williams %R, ATR, ROC), moving averages, and pivot points. Labels are strings. indicator: "Buy", "Neutral" or "Sell" (null on ATR and pivot points). scoreScale: "StrongBuy", "Buy", "Neutral", "Sell" or "StongSell" (the upstream's own spelling).
| Name | Type | Req | Description |
|---|---|---|---|
| tickers | – | yes | – |
| timeFrame | string | – | One of '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day'). Request '5h' for one ticker per call. |
No output schema declared.
No examples provided.
get_ticker_earnings ~103
Upcoming and recent earnings dates for a specific stock — scheduled report dates with EPS/revenue estimates where available. Read-only, no side effects. Use this to find when a company reports. For past actual-vs-estimate results use get_earnings_history; for a cross-market schedule use get_earnings_calendar.
| Name | Type | Req | Description |
|---|---|---|---|
| ticker | string | yes | Stock ticker symbol, e.g. 'NVDA'. |
No output schema declared.
No examples provided.
get_top_hedge_fund_managers ~67
Returns top-performing hedge fund managers ranked by success rate and returns. Args: num: Number of managers to return (default 10, max 100 — the upstream returns 100 for anything higher)
| Name | Type | Req | Description |
|---|---|---|---|
| num | integer | – | – |
No output schema declared.
No examples provided.
get_top_rated_stocks ~325
Returns stocks most recommended by the best-performing analysts (by analyst track record) in one market. Args: num: Number of results sector: Sector filter (financial, healthcare, technology, etc.) or empty for all country: 'US', 'Canada', 'UK', 'Germany', 'France', 'Spain', 'Italy', 'Netherlands', 'Switzerland', 'Australia', 'Singapore', 'Japan', 'Israel'; any other country returns no_match. NOTE: UK tickers use GB: prefix but country param is 'UK'.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 'US','Canada','UK','Germany','France','Spain','Italy','Netherlands','Switzerland','Australia','Singapore','Japan', or 'Israel' (default: US); these are the only markets with a list, each list covers… |
| num | integer | – | – |
| sector | string | – | Sector filter: technology, financial, healthcare, energy, utilities, industrials, materials, consumerdefensive, consumercyclical, services (default: all sectors). This feed files oil & gas under its… |
No output schema declared.
No examples provided.
get_top_smart_score_stocks ~293
Returns up to 10 stocks with the highest TipRanks Smart Score (perfect 10 / Outperform) in one market. Args: num: Number of results; the feed returns at most 10 whatever this asks sector: Keeps the rows of that top-10 list in this sector, or empty for all country: 'US', 'Canada', 'UK', 'Germany', 'Spain', 'Australia', 'Singapore', 'HongKong', 'Global'; any other country returns no_match. NOTE: UK tickers use GB: prefix but the country param is 'UK'.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | 'US','Canada','UK','Germany','Spain','Australia','Singapore','HongKong', or 'Global' (default: US); these are the only markets with a list, and any other country returns no_match. UK tickers are retu… |
| num | integer | – | – |
| sector | string | – | Keeps only the rows of the market's top-10 list in this sector: financial, healthcare, consumerdefensive, consumercyclical, utilities, basicmaterials, technology, industrials, energy, communicationse… |
No output schema declared.
No examples provided.
get_trending_stocks ~564
Returns currently trending stocks that recently received analyst ratings. Args: num: Number of results (default 20) filter: exactly one of 'analysts', 'bloggers', 'both'. Anything else is refused — the feed would otherwise answer it with the 'both' list. daysAgo: Days to look back: 3, 7, or any number from 30 up. Every other value (1, 2, 14…) is rejected by the feed. Default 7. Pass 30 or more when filtering by sector or country to ensure enough results — narrow windows often return fewer than 5 stocks in a specific sector. trendingType: exactly 'best-rated' or 'worst-rated' (empty for all). Anything else is refused — the feed would otherwise return the unranked list. country: 'US','Canada','UK','Germany','Israel','Australia' etc. sector: One of energy, financial, general, healthcare, industrials, services, technology, utilities. Empty for all sectors. This feed answers a sector it does not recognise with financial stocks rather than an error, so anything outside that list comes back refused instead. Rows returned for 'energy' are energy companies (Exxon, Chevron, BP) even though the feed tags them UTILITIES. Returns: ticker, SmartScore, analyst/blogger sentiment, hedge fund trend, price target, buy/hold/sell counts per stock.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Country name, e.g. 'US','Canada','UK','Germany','Israel','Australia' (default: US) |
| daysAgo | integer | – | 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 stock… |
| filter | string | – | Exactly one of 'analysts', 'bloggers' or 'both' (default: analysts). Any other value is rejected rather than answered. |
| num | integer | – | – |
| sector | string | – | 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 secto… |
| trendingType | string | – | Exactly 'best-rated' or 'worst-rated'; omit for all (default). Any other value is rejected rather than silently returning the unranked list. |
No output schema declared.
No examples provided.
list_my_portfolios ~64
List the portfolios you authorized this connector to access. Returns the portfolios that were on your TipRanks account at the time you signed in, each with its id and name. If you've added or renamed portfolios since, re-authorize to refresh.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
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/'
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 16,911 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 7 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the TipRanks MCP server?
VerifyMCP ran 13 checks on TipRanks, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.