Skip to main content
Glama

get_recent_analyst_ratings

Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
offsetNo
tickerYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "title": "Offset",
      +  "type": "integer"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_recent_analyst_ratingsOutput",
      -  "type": "object"
      -}New value: +null
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, so the bar is contextual detail — and the description delivers: size-bounded pages with `nextOffset`, `totalRatings` as the full count, a hard source cap of 100 newest ratings surfaced via `feedLimit`, and the fact older ratings are simply unavailable. That limit disclosure is exactly the kind of behavior an agent cannot infer from structured fields.

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?

Well organized and front-loaded — the one-line summary precedes the per-field, pagination, counts, and alternative-tool paragraphs. It runs long and the closing 'Returns:' block partly restates the body's field list, which is a minor redundancy given no output schema exists.

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?

For a two-parameter read tool with no output schema, the description covers everything an agent needs: response shape, per-row fields, pagination loop, hard feed limit, and the role of `counts`. Nothing required for a correct call or a correct interpretation of results is missing.

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

Parameters5/5

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

Schema description coverage is 0% — both properties are bare — so the description must carry the load, and it does: ticker is illustrated ('NVDA', 'AAPL') and offset is defined as the index of the first rating in the newest-first list, with the instruction to pass the prior result's `nextOffset`. Both parameters gain meaning beyond the schema.

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?

States a specific verb and resource — 'recent Wall Street analyst rating actions on a single stock' — and bounds scope to the trailing 12 months, newest first. An agent can distinguish this from get_assets_data and get_analysts_by_firm without opening any 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?

Explicitly routes the aggregate-consensus and average/best-price-target questions to get_assets_data, and tells the agent to answer 'how many analysts rated X in the past month' from `counts` rather than paging through rows. Both when-to-use and when-to-use-something-else are stated.

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