Skip to main content
Glama

get_ai_stock_analysis

Read-onlyIdempotent

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. Omit for the
               headline score that matches the website.
    detail: 'consensus' (default) or 'full' to add each model's written
             reasoning. Ignored on multi-ticker calls.

Returns JSON: {stocks: [{ticker, company, ai_score, rating,
  headline_model, price, price_target, upside_pct, as_of, reflects,
  consensus: {models, avg_score, score_high, score_low, ratings_split,
  avg_price_target, avg_upside_pct, reports_dated}, providers: [...],
  key_points: [...]}], not_covered: [...],
  no_report_from_provider: [{ticker, covered_by}]}.
  `consensus.reports_dated` appears only when the models did not all run on
  the same date; `as_of` is always the headline report's own date.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
detailNo'consensus' (default) returns each model's score and factor breakdown; 'full' adds each model's written reasoning. Ignored on multi-ticker calls.consensus
tickersYesComma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA'), up to 25
providerNoOptional 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / tickers / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +]
    • removedInput schema / properties / tickers / type
      Removed value: -"string"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_ai_stock_analysisOutput",
      -  "type": "object"
      -}New value: +null
  3. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, openWorld, non-destructive), yet the description adds substantial behavior: coverage excludes ETFs, uncovered vs covered-but-missing-provider symbols are reported in separate buckets so a missing provider is never misreported as absent analysis, and as_of regeneration semantics (new earnings or significant price move). This goes well beyond the annotation surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but deliberately structured with 'Use for:' examples, an explicit NOT clause, and per-field notes. Front-loaded with the headline definition. The Returns paragraph is dense but earns its place since no output schema exists; a tight edit could still trim some redundancy around as_of/reports_dated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the full return contract and does so: it enumerates the stocks fields, explains ai_score vs consensus, upside_pct, reports_dated conditional presence, and the two error buckets. Nothing an agent needs to invoke or interpret the call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: the interaction rule that detail is ignored on multi-ticker calls, and the rationale for provider selection ('Omit for the headline score that matches the website'). The batching instruction reinforces the max-25 ticker constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (TipRanks AI Stock Analysis 0-100 score) and verb (get), and explicitly distinguishes itself from the closest sibling system: 'This is NOT the Smart Score (1-10, eight quantitative factors).' An agent can separate this from get_top_smart_score_stocks or get_technical_analysis without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrases ('what's the AI score for NVDA', 'why do the models disagree on Tesla') and an explicit exclusion (not the Smart Score, and the two routinely disagree by design). It also states the batching rule — pass every symbol in one call for watchlist/ranking questions — which is exactly when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources