TipRanks
Server Details
Live TipRanks market data: analyst ratings, Smart Score, technicals, options, portfolios.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 65 of 70 tools scored. Lowest: 2.9/5.
Most tools have distinct purposes, differentiating by asset class (stocks, crypto, forex, etc.) or data type (news, earnings, technicals). However, some overlaps exist, e.g., multiple news tools (get_assets_news, get_latest_news, get_crypto_news) and several quote tools that vary by asset class, which could cause confusion for agents.
The naming follows a mostly consistent verb_noun snake_case pattern (get_, list_). Minor inconsistencies like 'get_bulls_bears_summary' (no 'and') and 'list_my_portfolios' (using 'list' instead of 'get') are infrequent and do not hinder overall readability.
70 tools is high, but the server's broad scope covering stocks, ETFs, options, forex, crypto, commodities, news, portfolios, analysts, and more justifies the number. It is slightly over the typical sweet spot but each tool serves a specific niche.
The tool surface is exceptionally comprehensive, covering fundamental data, technical analysis, sentiment, insider trading, hedge funds, earnings, economic calendar, IPOs, and portfolio management. Minor omissions (e.g., no bond data) are reasonable given the focus on equities and derivatives.
Available Tools
71 toolsget_ai_stock_analysisARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | 'consensus' (default) returns each model's score and factor breakdown; 'full' adds each model's written reasoning. Ignored on multi-ticker calls. | consensus |
| tickers | Yes | Comma-separated tickers (e.g. 'AAPL' or 'AAPL,MSFT,NVDA'), up to 25 | |
| provider | No | Optional single AI provider to report on. Map what the user said to the provider: Claude is Anthropic, ChatGPT/GPT is OpenAI, Grok is xAI, Sonar is PerPlexity. Omit for the headline score that matches the website. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds critical behavioral details: reports regenerate on earnings or price moves, old 'as_of' means no material change, coverage is a subset, and the distinction between 'not_covered' and 'no_report_from_provider' ensures missing providers aren't misreported. It also explains conditional fields like 'consensus.reports_dated'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite its length, every section earns its place: the headline sentence, use-case examples, key differentiators, coverage caveats, and return-field explanations. It is structured with clear headings for arguments and returns, and critical caveats are front-loaded. The length is justified by the tool's inherent complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential aspects given the tool's complexity: input semantics, output structure including nested objects, edge cases (not_covered vs no_report_from_provider), freshness semantics ('as_of', 'reports_dated'), and multi- vs single-ticker behavior. Combined with the rich annotations and output schema, it equips an agent to handle most user intents correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial semantic value: it explains the provider mapping (Claude→Anthropic, ChatGPT→OpenAI, Grok→xAI), clarifies that 'detail' is ignored on multi-ticker calls, and defines what 'full' adds ('each model's written reasoning'). This goes well beyond the schema's bare descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'TipRanks AI Stock Analysis — the 0-100 AI score for one or more stocks.' It clearly distinguishes this from sibling tools like get_top_smart_score_stocks by explicitly stating 'This is NOT the Smart Score (1-10, eight quantitative factors).' The purpose is unambiguous and directly tied to the tool's name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use-case examples ('Use for: "what's the AI score for NVDA"...') and explicit guidance on when to use multi-ticker vs single-ticker calls ('Pass every symbol in one call...'). It also warns against confusing this with Smart Score and clarifies coverage exclusions ('excludes ETFs'), giving agents clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_commodities_quotesARead-onlyIdempotentInspect
Returns real-time quotes for all commodities in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety traits (readOnly, idempotent). The description adds 'real-time' and 'all commodities' but no deeper behavioral insights.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loading the purpose. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the description is fully adequate for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. The description correctly implies no arguments are needed, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns real-time quotes for all commodities in a single request, distinguishing it from single-commodity or other asset class tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for bulk commodity quotes, but does not explicitly state when to avoid or prefer alternatives. However, the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_crypto_quotesARead-onlyIdempotentInspect
Returns real-time quotes for all cryptocurrencies in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds minimal behavioral insight. The phrase 'real-time quotes' implies data freshness, but otherwise the description does not disclose additional traits. Given the existing annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the tool's function. There is no redundant information, and it is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero parameters, existing output schema, and annotations covering safety and idempotency, the description is largely complete. It could be slightly improved by noting the scope (e.g., 'all cryptocurrencies in a single response') but is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema description coverage is 100%. The description does not need to explain parameters. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Returns' and resource 'real-time quotes for all cryptocurrencies', making it clear what the tool does. It is easily distinguishable from sibling tools like get_crypto_quote (single crypto) and other get_all_*_quotes (different asset classes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not contrast with get_crypto_quote for single cryptocurrency quotes or explain use cases. The lack of usage context reduces its helpfulness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_forex_quotesARead-onlyIdempotentInspect
Returns real-time quotes for all forex pairs in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds 'real-time' as a timing trait but does not disclose potential rate limits or data volume. Barely adds beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Fully appropriate for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0 parameters, rich annotations, and an output schema present, the description is complete. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Description adds no parameter info, but none is needed. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns real-time quotes for all forex pairs in a single request. This differentiates it from siblings like get_forex_quote (single pair) and other get_all_* tools (different asset classes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied from the description—when you need all forex quotes—but there is no explicit guidance on when to use this versus get_forex_quote or when not to use it. No alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analysts_by_firmARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| firm | Yes | ||
| sector | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent), the description adds behavioral details: case-insensitive match, dedup by name keeping best rank, sort by rank, and output shape change with sector. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: purpose sentence, output shape, dedup/sort, sector effect, then Args. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, the description covers return values, parameter semantics, and behavioral nuances. No obvious gaps for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions for parameters. The description compensates by explaining firm as a name/fragment with example and sector as optional lowercase string with example. Adds significant value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists analysts at a given firm with case-insensitive substring match. It distinguishes from sibling tools which are mostly about quotes, commodities, crypto, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is clear with purpose and parameters defined. It does not explicitly state when not to use or alternatives, but the context makes it obvious. Example given aids understanding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | A TipRanks article identifier: the numeric post id, the slug, or a full tipranks.com article URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds critical behavioral details: HTML-stripped body capped at 8000 chars, and specific error response. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: four sentences front-loaded with the purpose, followed by input guidance, output details, and error behavior. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and presence of an output schema, the description covers input types, output fields, character limit, and error handling. It is fully complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The lone parameter 'identifier' is fully described in the input schema (100% coverage). The main description reiterates the acceptable formats but adds little beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Fetch the full text of a single TipRanks article,' specifying the exact action and resource. It lists returned fields (title, excerpt, body, etc.) and input types (URL, slug, numeric ID), clearly distinguishing from sibling tools like get_latest_news which return lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to obtain identifiers from other tools ('e.g. from get_latest_news / get_assets_news') and when an error might occur (third-party sites). This provides clear context for use, though it stops short of explicitly stating when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assets_dataARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds value by detailing output structure, rounding behavior, date resolution, and that it's a compact summary. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: purpose first, then args, output fields, and references to other tools. Every sentence provides valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description still thoroughly explains each field in the output. It covers input, output, and usage context comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% but the description extensively explains the 'tickers' parameter, stating both comma-separated string and JSON array are accepted, which adds meaning beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'TipRanks stock data for one or more tickers' and specifies the input format and output structure. It distinguishes itself from sibling tools by listing dedicated tools for deeper detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (headline summary for multiple tickers) and when not to (for deeper detail, use other tools). Provides clear guidance with explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assets_eventsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| to_date | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's disclosure that it returns data is consistent but adds limited new behavioral context. It does not cover potential side effects beyond what annotations suggest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args/Returns format. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given parameter count, required fields, and existence of an output schema, the description fully explains inputs and return types. No missing essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds concrete meaning: tickers as comma-separated strings, dates in ISO format, and optional nature. This compensates well, though the schema allows array input which is not highlighted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns upcoming dividend and earnings events for tickers, and the structured Args/Returns section reinforces the purpose. It distinguishes from sibling tools like get_dividend_history and get_earnings_calendar by combining both event types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear parameter formatting and return types, implying usage when needing upcoming events for tickers. However, it does not explicitly contrast with alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assets_newsARead-onlyIdempotentInspect
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.
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 | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| tickers | Yes | ||
| from_date | No | Optional recency floor 'YYYY-MM-DD'; only returns articles published on or after this date. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations indicating read-only and idempotent, the description adds key traits: headlines only, no article body, sentiment classification details, and redundant date fields with preference for publishTime. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured and front-loaded, but the detailed return field documentation may be redundant if output schema exists. Still concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, 1 required) and availability of annotations and output schema, the description covers all key use aspects, parameter guidance, and return format, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, but description fills gaps: explains tickers as comma-separated (though schema allows array), count default, and from_date format. Slight mismatch for tickers but largely compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns recent news articles for tickers, aggregated from many news sites with sentiment tags and source URLs. It distinguishes itself from sibling 'get_latest_news' by specifying it's for ticker-specific news, not general market news.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly notes when to use this tool versus 'get_latest_news', providing alternative for general/market news. No further usage restrictions mentioned, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assets_warningsARead-onlyIdempotentInspect
Returns risk warnings for tickers.
Args:
tickers: Comma-separated ticker symbols
Returns: warning type, date, and detail fields per ticker.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint, but the description adds context on return structure (warning type, date, detail), which is helpful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with no wasted words; essential information is front-loaded in a single line with brief argument and return descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description provides enough context; it doesn't need to explain return values thanks to output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate, but it only adds a format hint ('Comma-separated ticker symbols'), leaving meaning incomplete for the 'tickers' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Returns risk warnings for tickers' with specific fields (warning type, date, and detail), making the purpose unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like other asset tools; lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_performing_expertsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| num | No | ||
| expert_type | No | One of: analyst, insider, hedgeFund, blogger, firm (default: analyst) | analyst |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds context by specifying the ranking criteria (success rate and average return), which is helpful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-line summary, followed by a structured Args list. It is concise but could be more compact by integrating parameter info into the summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations, output schema (though not shown), and simple parameter set, the description is complete enough for an AI agent to understand and invoke the tool correctly. It specifies ranking criteria, parameter options, and defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (expert_type has description, num does not). The description adds meaning by explaining the num parameter (number of results, max 25) and reiterating expert_type options. It effectively compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns best-performing experts ranked by success rate and average return. It specifies the resource (experts) and action (get best-performing), and the parameter 'expert_type' distinguishes it from sibling tools like get_top_rated_stocks or get_top_hedge_fund_managers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing parameters with defaults, but does not explicitly state when to use this tool vs alternatives, no exclusions or conditions are provided. It is adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blogger_sentimentARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by detailing the return structure (consensus with percentages and counts, articles list) and parameter constraints (limit defaults and max). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is optimally concise with a clear first sentence, a distinction sentence, an Args section, and a Returns section. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and an output schema described in detail, the description covers all necessary information: what it does, when to use it, parameter details, and return format. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description bears full responsibility. It documents both parameters: ticker with an example ('AAPL') and limit with default and maximum values. This adds essential meaning beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns financial-blogger consensus for a stock, along with underlying articles. It explicitly distinguishes itself from two sibling tools (get_recent_analyst_ratings and get_investor_sentiment), making its purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs. alternatives by naming the sibling tools and explaining their focus (Wall Street analysts vs. TipRanks crowd positioning). This makes the usage context very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bulls_bears_summaryARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, and idempotent hints. The description adds valuable behavioral context by detailing the return structure (JSON with bullish/bearish lists and key_points), which goes beyond what annotations provide. There is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with separate Args and Returns sections. Every sentence provides essential information with no redundancy. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no nested objects) and the presence of a described output schema, the description is complete. It covers input format, output structure, and the nature of the returned data. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (description does not replicate schema), but the description adds meaning beyond the schema by specifying the input format 'Comma-separated tickers (e.g. 'AAPL,TSLA')'. This clarifies how to provide tickers, which is helpful given the anyOf type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns discrete bull and bear key points for stocks, with each point tagged by topic. It directly distinguishes from sibling tools that retrieve other financial data. The verb 'returns' and resource 'bull and bear key points' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one needs bullish/bearish sentiment points with topics, but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or alternative tools are mentioned. This is adequate but not proactive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buybacksARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| ticker | No | Optional. If provided, returns the per-ticker historical buyback series; if omitted, returns the cross-market list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds behavioral context about pagination, sorting by dollar amount, and that a company may appear multiple times. No contradictions, but some implicit details remain (e.g., rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections: overview, modes, args, returns. Front-loaded with purpose. Slightly verbose but each sentence adds value. Could be trimmed slightly for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two modes, multiple parameters, detailed return shapes) and the presence of an output schema, the description is complete. It explains both return structures and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite only 33% schema coverage, the description fully explains all parameters: ticker's dual behavior, limit and page constraints (max rows, default, page base). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies exactly what the tool does: returns share-buyback/repurchase activity in two distinct modes. It uses specific verbs and resource names and distinguishes from siblings by detailing the two modes and their use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance on when to use each mode: 'Use for "biggest buybacks", "top repurchase companies"' for cross-market, and 'Use for "AAPL buyback history", "MSFT repurchase trend"' for per-ticker. This clearly helps the agent select the correct mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clinical_trialsARead-onlyIdempotentInspect
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 }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: the fixed window (today -14 to +60 days), sorting by date ascending, and the return shape including count and window. Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, and the description does not contradict them; instead it enriches understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two paragraphs with no filler. The first sentence immediately states the purpose, followed by the window and sorting, then usage guidance, and finally the return format. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and that an output schema exists (implied by the return description), the description provides all necessary context: what it returns, the fixed time window, sorting, and intended use. It is complete for an agent to invoke correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters (schema coverage 100%), so the description does not need to add parameter info. However, it provides the return structure, which adds value beyond the empty schema. The response format is detailed enough for an agent to understand the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns FDA/clinical-trial calendar with upcoming drug approval target dates and tickers. It specifies the time window (today -14 to +60 days) and sorting (by date ascending). This distinguishes it from sibling tools like get_earnings_calendar or get_ipo_calendar which cover different events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use for upcoming FDA decisions, PDUFA dates, biotech catalysts,' providing clear use cases. While it doesn't explicitly exclude other uses or mention alternative tools, the context from sibling tool names (e.g., get_earnings_calendar, get_economic_calendar) implies when to use this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commodity_historicalARead-onlyIdempotentInspect
Daily OHLCV time series for a commodity. Chart-ready: each row is {date, open, high, low, close, volume}, ordered for direct plotting as a price history.
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Commodity symbol, e.g. 'GCUSD' (gold). | |
| to_date | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint; description adds 'rows ordered for plotting' but no additional behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with clear Args section, no wasted sentences. Well-structured for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core purpose and parameters; with output schema present, return values are self-explanatory. Missing default range info is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description provides clear meanings for from_date and to_date with format YYYY-MM-DD, compensating for low schema coverage (33%).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Daily OHLCV time series for a commodity' and 'Chart-ready', clearly distinguishing it from siblings like get_commodity_quote and other historical endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicit guidance through 'Chart-ready' vs siblings; lacks explicit when/not-to-use but context from sibling list is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commodity_quoteARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Commodity symbol, e.g. 'GCUSD' (gold), 'CLUSD' (crude oil). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, making safety clear. The description adds the behavioral trait 'real-time' price quote, which goes beyond annotations by specifying data freshness, offering additional context for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at four lines, with well-organized bullet points for examples. Every sentence adds value, no redundant or verbose phrasing, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter tool with full schema coverage, rich annotations, and an output schema (indicated), the description covers purpose, usage hints (symbols), and real-time nature. It is complete enough without needing additional details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the symbol parameter described. The description adds a list of common symbols (GCUSD, SIUSD, etc.), providing extra examples not in the schema, thus adding value beyond the schema's minimal description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'the real-time price quote for a specific commodity,' specifying verb and resource. It implicitly distinguishes from the sibling tool 'get_all_commodities_quotes' by focusing on a single commodity, and from crypto/forex quotes by domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like 'get_all_commodities_quotes' or other quote tools. Usage context is only implied by the tool name and examples, lacking when-not-to-use or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_kpisARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| group | No | Optional single KPI group by slug or title (e.g. 'revenue_geography', 'Revenue by Segment'). Omit for all groups. | |
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context about the large historical data and default filtering behavior, enhancing transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a purpose statement, behavioral note, parameter documentation in Args, and return format. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 params, output schema described) and rich annotations, the description covers default behavior, parameter options, and return structure. Missing error handling, but overall complete for a read-only data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description fully explains each parameter: ticker with examples, count with default/max/0-meaning, and group with format examples. This compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns company-specific operational KPIs with specific categories (segment revenue, geographic breakdown, etc.). This distinguishes it from sibling tools that handle quotes, news, or other data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on default behavior (most recent `count` periods) and how to get full history or a single group. While no explicit alternative tools are mentioned, the context is clear for a KPI-specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_historicalARead-onlyIdempotentInspect
Daily OHLCV time series for a cryptocurrency. Chart-ready: each row is {date, open, high, low, close, volume}, ordered for direct plotting as a price history.
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Crypto symbol, e.g. 'BTCUSD' (Bitcoin). | |
| to_date | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds that data is 'chart-ready' and ordered for plotting, which is minor added context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an Args section; every sentence is meaningful and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and rich annotations, the description covers purpose, parameters, and output format adequately, though it omits potential limitations like date range constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 33% schema coverage, but description provides meaning for symbol, from_date, to_date with examples and format, adding significant value beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Daily OHLCV time series for a cryptocurrency' and specifies the data format, making the purpose clear and distinct from siblings like get_crypto_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives such as get_crypto_quote or other historical tools; usage context is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_newsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| page | No | 0-indexed page of recent articles (0 = most recent); increase to page further back in time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that it is 'Read-only, no side effects' and 'ordered newest-first,' providing useful behavioral context beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a usage paragraph; every word is purposeful. Front-loaded with the core purpose, followed by clear usage guidance. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one simple parameter and an output schema (referenced, not shown). The description covers purpose, scope, ordering, side effects, and usage alternatives, making it fully informative for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the 'page' parameter. The description adds no extra parameter information beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it provides 'Latest cryptocurrency news' as a market-wide feed, not filtered to a single asset, and specifies the output includes headlines, snippets, and URLs. It also differentiates itself from siblings like get_assets_news and get_latest_news.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly states 'Use for broad crypto/market headlines' and provides explicit alternatives: 'For news about a specific holding use get_assets_news; for the general (non-crypto) editorial feed use get_latest_news.' This gives clear guidance on when and when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_quoteARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Crypto symbol, e.g. 'BTCUSD' (Bitcoin), 'ETHUSD' (Ethereum). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety. The description adds 'real-time' but no extra behavioral details (e.g., rate limits, error handling, freshness). With annotations present, the description adds minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and includes a helpful list of common symbols. However, the 'Args:' section is redundant given the input schema uses the same word. Could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 param, read-only) and an output schema exists, so return values need not be explained. The description covers the core functionality adequately, though it could mention limitations like supported exchanges or data freshness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for the single parameter 'symbol'. The description lists common symbols and repeats the parameter purpose, adding a bit of context but not significantly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns real-time price quotes for a specific cryptocurrency, listing common symbols. The name 'get_crypto_quote' is self-explanatory and distinguishes it from siblings like 'get_crypto_historical' (history) and 'get_all_crypto_quotes' (bulk).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single real-time quote but does not explicitly state when to use this over alternatives. Siblings like 'get_all_crypto_quotes' are not mentioned, nor are exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dividend_historyARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe read operation. Description adds value by detailing output structure, yield percentage format, and behavior of count parameter (capped per-payment list, full annual_totals). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections: purpose, output details, usage examples, arguments. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two time series, special fields), the description is remarkably complete. Output schema exists, but description still provides full expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains both parameters: ticker with example, count with default and max. This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states 'Dividend payment history for a ticker' with chart-ready output details. Name and description align perfectly, and the tool is clearly distinct from siblings by its specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides multiple usage examples ('AAPL dividend history', 'yield trend over 5 years'). Does not explicitly state when not to use or alternatives, but the context is clear enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_calendarARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| toDate | No | ||
| exchange | No | ||
| fromDate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe read operations (readOnlyHint, destructiveHint). The description adds behavioral context like default date ranges and exchange filtering, which goes beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, then a list of parameters. No wasted words; front-loaded with main function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be described. The description covers all input parameters with defaults and filter details, making it complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains all three parameters: purpose, format, and defaults. It adds significant value beyond the JSON schema property names and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns upcoming earnings dates across all stocks for a date range, which is a specific verb+resource. This distinguishes it from siblings like get_ticker_earnings that target specific stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via default date range and optional exchange filter, but does not explicitly contrast with sibling tools. It's clear for the tool's purpose but lacks explicit when-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_call_summaryARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent hints. The description adds important behavioral details: only the most recent quarter is stored per ticker, and the summary is derived from the call, not raw transcript. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet thorough, with clear sections for purpose, usage, args, and returns. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description still explicitly describes the return structure (sentiment with rationale, highlights as objects), ensuring full understanding of the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description includes a dedicated 'Args:' section that fully explains the ticker parameter with examples, adding meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the most recent earnings call summary for a ticker, specifying management guidance, sentiment, highlights, and lowlights. It also contrasts with get_earnings_history, making its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (e.g., 'what did management say about X', 'was the most recent call bullish or bearish') and advises when to use an alternative tool (get_earnings_history for historical data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_historyARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| quarters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses ordering (oldest-first), inclusion of next_quarter, and field details. Annotations indicate readOnly, idempotent, non-destructive; description adds value beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections and bullet-like list of fields. Slightly verbose but all information is valuable and front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists (not shown), description covers field list, ordering, and next_quarter object. Very complete for a data retrieval tool with no obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description fully explains both parameters: ticker (with example values) and quarters (with default and max). Adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns quarterly earnings time series for a ticker, specifying fields, ordering, and chart-ready nature. Differentiates from siblings like get_dividend_history and get_earnings_calendar through detailed output and forward-looking next_quarter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases ('Use for: ...') such as 'AAPL earnings history' and 'earnings surprise trend'. Lacks explicit when-not-to-use or alternatives, but examples imply context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_economic_calendarARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| impact | No | Comma-separated impact levels to keep: High, Medium, Low (default 'High,Medium'); pass '' to keep all. | High,Medium |
| toDate | No | ||
| daysBack | No | ||
| fromDate | No | ||
| countries | No | Comma-separated country names to keep (default 'US'); pass '' to keep all. Examples: 'US','UK','Germany','Japan','China'. | US |
| daysForward | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds context about default behavior, output format, and filtering. It does not contradict annotations and adds useful behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose, a sentence on defaults, bulleted parameter explanations, and a clear return format. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 optional parameters and an output schema, the description fully covers all inputs and outputs. It explains defaults, alternatives for date range, and filtering. The annotations provide safety and idempotency info, completing the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, but the description compensates fully by clearly explaining all 7 parameters, their defaults, and valid values. It adds meaning beyond the schema, e.g., the interplay between daysBack/fromDate and daysForward/toDate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Returns' and the resource 'upcoming and recent economic events', with specific examples (Fed meetings, jobs reports, CPI, GDP). The name itself distinguishes it from sibling tools like get_earnings_calendar and get_ipo_calendar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default filtering (US events, High/Medium impact) and the rationale (raw feed includes many low-impact items). It implicitly guides when to use this tool (for economic events) but does not explicitly contrast with alternatives or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_analysisARead-onlyIdempotentInspect
Returns analyst consensus for ETFs based on weighted average of holdings' ratings.
Args:
tickers: Comma-separated ETF tickers (e.g. 'QQQ,SPY,VTI')
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds no further behavioral disclosure such as rate limits, data freshness, or dependencies. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second describes parameter format. Every word earns its place. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, return values are documented. For a simple read tool with good annotations, the description is largely complete, though it could mention handling of ETFs with no holdings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for parameters. The description adds meaning by specifying format 'comma-separated' and providing examples ('QQQ,SPY,VTI'). This compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'returns' and resource 'analyst consensus for ETFs' with methodology 'weighted average of holdings' ratings'. It clearly distinguishes from siblings like get_etf_holdings and get_analysts_by_firm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating what it returns, but does not explicitly state when to use this tool versus alternatives like get_analysts_by_firm or get_recent_analyst_ratings. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_exposuresARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| ticker | Yes | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; the description adds behavioral details like sorting by market value and pagination. It provides more context than annotations alone without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and logically structured with 'Args' and 'Returns' sections. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's function, parameters, return fields, and sorting, providing everything needed for correct invocation. Given the output schema existence, it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains all three parameters (ticker, page, page_size) with examples, defaults, and constraints (max page_size=100), fully compensating for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it returns ETFs holding a specific stock, sorted by market value. This verb+resource+ordering is clear and distinguishes from sibling tools like get_etf_holdings which focus on an ETF's holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the purpose and parameter details but does not explicitly provide when-to-use or alternatives to differentiate from siblings such as get_etf_analysis or get_etf_holdings. No explicit guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_forecastARead-onlyIdempotentInspect
Returns the analyst forecast for a specific ETF: consensus, price target, upside.
Args:
ticker: ETF ticker (e.g. 'QQQ')
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering safety. The description adds no further behavioral context (e.g., rate limits, auth needs). Acceptable but no extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with front-loaded purpose and an args section. Every word earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so return values are covered. The description fully explains the tool's function for a single-parameter tool with clear output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains ticker with an example ('QQQ'), adding meaning beyond the bare schema. This compensates well for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns analyst forecast for a specific ETF, specifying concrete outputs: consensus, price target, upside. This distinguishes it from sibling tools like get_etf_analysis or get_etf_exposures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Many sibling tools (e.g., get_etf_analysis) could overlap but no exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_holdingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes | ||
| sort_by | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds useful details about output fields and modes but doesn't disclose additional behavioral traits like data freshness or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a summary, bullet-pointed mode explanations, a use-case example, and an Args list. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers input parameters, mode behavior, and a concrete usage example. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description compensates fully by detailing each parameter: ticker, sort_by (with valid values like '5d', 'month', etc.), and limit (0 for all, max 50). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List the constituents of an ETF' and explains two distinct modes (base and top-performers), which differentiates it from sibling tools like get_etf_analysis or get_etf_exposures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case example ('which stocks in XLK rose most this week') for the top-performers mode, effectively guiding the agent on when to use each mode, though it doesn't explicitly state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_screenerARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Focus filter, e.g. 'LargeCap', 'InformationTechnology', 'HighYield' | |
| category | No | Category filter, e.g. 'Sector', 'BroadMarket', 'HighDividendYield' | |
| assetClass | No | Asset class filter, e.g. 'Equity', 'FixedIncome', 'Commodities' |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no behavioral traits beyond the filtering function, such as pagination, limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line purpose statement followed by clear parameter lists. Front-loaded with the main action, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description adequately covers inputs. However, it lacks details on filter combination logic (AND/OR), default behavior, or result ordering, leaving some gaps for a filtering tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description lists explicit example values for assetClass, category, and focus, adding context beyond the schema descriptions (which lack enums).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Filters ETFs by asset class, category, and focus' uses a specific verb and resource, clearly distinguishing the tool from siblings like get_etf_analysis or get_etf_holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering ETFs by the listed criteria, but does not explicitly state when to use this tool versus alternatives or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_top_stocksARead-onlyIdempotentInspect
Returns the top stock holdings within an ETF along with their analyst ratings.
Args:
ticker: ETF ticker (e.g. 'QQQ')
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, so the description adds only that it includes analyst ratings. No extra behavioral traits like rate limits or data freshness are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver the purpose and parameter explanation without fluff. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple tool with one parameter and an output schema present, the description fully covers usage context. No gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the ticker parameter explicitly ('ETF ticker (e.g. 'QQQ')'), adding meaning beyond the schema's bare title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns top stock holdings and analyst ratings for an ETF, specifying the resource (ETF) and action (returns top holdings with ratings). This distinguishes it from siblings like get_etf_holdings which likely return all holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example ticker 'QQQ' and parameter format, clearly indicating when to use (for ETF holdings with ratings). Lacks explicit exclusion guidance, but context with siblings implies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financialsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| period | No | 'annual' (default), 'quarterly', or 'ttm' | annual |
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive hints. The description adds behavioral details: margins as percentages, cash outflows as negative numbers, ordering of periods (oldest-first), and approximate lookback ranges (9 years, 37 quarters). This context goes beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a lead sentence, bullet-pointed field groups, parameter details with examples, and usage hints. Every sentence is informative and concise. There is no fluff or repetition, making it easy to scan quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (per context signals), the description does not need to explain return values. It already covers the key outputs, parameter semantics, and behavioral nuances. For a tool with 3 parameters, this is thorough and leaves no obvious gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only period has a description). The description compensates by explaining each parameter in detail: ticker (example values), period (options and default with context on time ranges), and count (default, max, ordering). This adds significant meaning beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning a time series of financial statements for a ticker, listing exact fields across income statement, balance sheet, and cash flow statement. It differentiates from siblings (e.g., get_earnings_history, get_dividend_history) by specifying the comprehensive multi-statement output and chart-ready flat structure. Example use cases solidify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use case examples (e.g., 'AAPL revenue and FCF over the last 10 years'). It explains the period parameter options ('annual', 'quarterly', 'ttm') and count behavior. However, it does not explicitly state when to avoid this tool or mention alternative sibling tools, leaving some room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forex_historicalARead-onlyIdempotentInspect
Daily OHLCV time series for a forex pair. Chart-ready: each row is {date, open, high, low, close, volume}, ordered for direct plotting as an exchange-rate history.
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Forex pair, uppercase with no slash, e.g. 'EURUSD'. | |
| to_date | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint false. The description adds that data is daily OHLCV, ordered, and includes volume. It does not contradict annotations and provides useful behavioral context beyond the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph plus a bullet list, with no fluff. Every sentence adds value: states purpose, format, and parameter details. Very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but indicated true), so return values are covered. The description covers purpose, usage, and parameter details adequately. It does not mention data limits or pagination, but for historical data this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (symbol described). The description lists all three parameters with formats and examples (e.g., 'EURUSD', YYYY-MM-DD), adding meaning beyond the schema for from_date and to_date. This compensates for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Daily OHLCV time series for a forex pair', specifying the verb (get), resource (forex pair historical data), and format. It distinguishes from siblings like get_forex_quote (current quote) and get_crypto_historical by naming 'forex pair' and the OHLCV structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is 'Chart-ready' and provides data ordered for plotting, giving context for when to use it (historical exchange-rate visualization). It implicitly distinguishes from get_forex_quote but does not explicitly state alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forex_quoteARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Forex pair, uppercase with no slash, e.g. 'EURUSD', 'GBPUSD', 'USDJPY'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the quote is 'real-time,' which is useful context. No contradictions. Could mention rate limits or auth, but adequate given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one purpose sentence, a list of examples, and an Args section. No unnecessary words, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one simple required parameter, and there is an output schema. The description fully covers what the tool does (returns real-time quote) and the parameter. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed description for symbol. The description adds common pair examples (e.g., EURUSD) and format specification, providing extra clarity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Returns the real-time exchange rate quote for a forex pair,' clearly specifying the verb and resource. It lists common pairs and differentiates from siblings like get_forex_historical and get_all_forex_quotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for getting a single real-time quote but does not explicitly state when to use this tool versus alternatives like get_forex_historical or get_all_forex_quotes. No when-not or exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hedge_fund_activityARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description doesn't need to restate safety. It adds value by detailing return structure but does not disclose edge cases or limitations. With annotation coverage, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is brief, front-loaded with purpose, then sibling distinction, parameter descriptions, and return format. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, annotations cover safety, and the description explains parameters and return fields well. It does not mention error handling or prerequisites, but overall it is sufficiently complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'ticker' as stock ticker (e.g., 'AAPL') and 'limit' as max funds to return with default 25 and max 100. This adds concrete meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns per-fund hedge fund holdings and transactions for a ticker, specifying fields like manager, direction, holding value. It also distinguishes itself from get_hedge_fund_holdings (aggregate timeseries), making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions it complements get_hedge_fund_holdings, providing context for when to use this tool vs. that sibling. However, it does not explicitly guide when to use among the many other sibling tools, so it is clear but not fully comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hedge_fund_holdingsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of data sourcing (quarterly 13F filings with up to 45-day lag) and maximum limit (60) provides useful behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence for purpose, one for output structure, one for data source, and one for alternative. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description appropriately explains return value structure (snapshots + summary, rows with date and shares) and constraints (max 60). No gaps for a simple data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaning by stating the default limit is 60 and the max is 60, which is not in the schema. It also describes the expected format of each row, supplementing the schema's property definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns hedge fund share-count history for a ticker, specifying the resource and action. Distinguishes from sibling tools like get_hedge_fund_activity by focusing on holdings time series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool versus alternative: for a snapshot of current sentiment, use get_assets_data with hedgeFundSentimentData. Also mentions data source and lag, providing clear context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_historicalARead-onlyIdempotentInspect
Daily OHLCV time series for a major market index. Chart-ready: each row is {date, open, high, low, close, volume}, ordered for direct plotting as an index history.
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Index symbol, e.g. '^GSPC' for the S&P 500. | |
| to_date | No | ||
| from_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that data is ordered for direct plotting and is daily. No contradictions. Provides useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus an Args list. Information is front-loaded. Every sentence serves a purpose with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return format is fully documented. Description covers output shape ({date, open, high, low, close, volume}). Missing edge cases (holidays, empty data) but acceptable for a straightforward historical data tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only symbol described). The description compensates by documenting symbol with example, from_date format, and to_date default. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns daily OHLCV time series for a major market index, with explicit output format and ordered rows. It distinguishes from sibling tools like get_index_quote (single quote) and other historical tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for index history but does not explicitly state when to use this vs alternatives (e.g., get_commodity_historical, get_crypto_historical). No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_quoteARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Index symbol, e.g. '^GSPC' for the S&P 500. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint=false; description adds 'real-time' but no further behavioral traits like rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose stated first, then symbol list, no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameter well-documented; output schema exists so return values covered; missing details on response contents but sufficient for a simple quote tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameter fully; description adds value by listing example symbols with comments, exceeding schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns real-time quotes for major market indices, lists supported symbols, and distinguishes from sibling tools for other asset classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly guides usage for indices via title and symbol list; no explicit when-not or alternatives, but context is clear given sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_transactionsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds that price is approximate (value/shares, no exact price), providing useful behavioral context consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: first sentence states purpose, then field list, alternative tool guidance, and Arg definitions. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema (present as indicated) and clear parameter descriptions plus behavioral notes, the description fully covers what an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description includes an Args section explaining 'ticker' and 'limit' with default and max, adding meaning beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns corporate insider transactions (Form 4) for a ticker, newest first. It lists the fields and distinguishes itself from retail sentiment tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use alternative tool ('For retail/individual investor sentiment, use get_assets_data and read investorActivity'), providing clear guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_investor_sentimentARead-onlyIdempotentInspect
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, averageHoldingSize,
lastSevenDayChange, lastThirtyDayChange, sector, sectorName,
score, sentiment, marketCap, marketCapCurrencyCode).
- investorsAlsoBoughtYoungest / MidRange / Eldest: same shape,
filtered to that account-tenure bucket. Often shorter or
empty for stocks held mostly by one cohort.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, marking it as safe. The description adds significant value by detailing the return structure and offering interpretive guidance (e.g., divergence between overall and best investors is the headline signal), which goes beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with bullet points and consistent formatting. It front-loads the main purpose and organizes details logically. A minor deduction for verbosity, but it earns its space given the complexity of the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown) and the description thoroughly explains all top-level keys and sub-fields. Combined with the annotations, the description provides complete context for an AI agent to understand the tool's behavior and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description clearly documents the single parameter 'ticker' with an example ('NVDA'). This adds meaning beyond the schema's basic type definition, earning a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns crowd/retail investor sentiment for a stock. It uses specific verb 'Returns' and identifies the resource ('crowd / retail investor sentiment'). It distinguishes from siblings like get_analysts_by_firm or get_hedge_fund_activity by focusing on sentiment from a crowd/retail perspective.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when crowd sentiment is needed but does not explicitly state when to use this tool versus alternatives. It lacks direct comparisons or exclusions, relying on the user to infer from the sibling tool list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ipo_calendarARead-onlyIdempotentInspect
Returns upcoming and recent IPOs.
Args:
fromDate: Start date ISO format (default: today)
toDate: End date ISO format (default: 30 days from now)
| Name | Required | Description | Default |
|---|---|---|---|
| toDate | No | ||
| fromDate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, ensuring safety. The description adds contextual behavior by specifying 'upcoming and recent' and providing default date ranges, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, front-loaded with the main purpose, and no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, presence of output schema, and clear parameter descriptions, the description covers all necessary information for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining each parameter's purpose, ISO format, and defaults, providing meaning absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Returns upcoming and recent IPOs' with a specific verb and resource. No other sibling tool directly targets IPOs, so it distinguishes itself well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when IPO data is needed, but does not explicitly state when to use versus alternatives or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_newsARead-onlyIdempotentInspect
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.
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).
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| tickers | No | ||
| category | No | Optional single category: 'news', 'the-fly', 'blurbs', 'catalyst', 'ratings', 'cryptocurrencies', 'insider-trading', 'newswire', 'private-companies', 'company-announcements'. Omitted = editorial/wire feed (excludes auto-ingested company-announcements). | |
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, and non-destructive behavior. The description adds value by stating the source (editorial/wire feed), ordering (newest first), and return format (JSON list with fields). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two paragraphs: first for purpose and distinction, second for parameter details. Every sentence adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (referenced as JSON list of fields), the description covers input, behavior, output structure, and how to get full articles via get_article. It is fully complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, but the description explains all four parameters with examples and defaults. It adds context for the category parameter beyond the schema description. This significantly aids the agent in using the parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the latest news articles from TipRanks's editorial/wire feed, with a specific verb ('get') and resource ('news articles'). It distinguishes itself from the sibling tool get_assets_news by noting that it provides text excerpts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states use cases: general market news, news on specific stocks, or browsing by category. It contrasts with get_assets_news but does not provide explicit when-not-to-use or exclusions, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_commentaryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, etc.), the description adds that it reads cache only, returns 'unavailable' if no cache, and that content is AI-generated, providing full behavioral clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using bullet points for the return fields and clear sentences. Every sentence adds value, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the presence of an output schema (implied by the description), the description fully explains what the tool does, what it returns, and its limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds meaning by explaining the tool's behavior and return structure, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a 'cached equities market sentiment snapshot' with specific fields. It is distinct from sibling tools, none of which offer market commentary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that it reads cache only and does not trigger regeneration, guiding when to use it. However, it does not explicitly state when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_moversARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| num | No | ||
| country | No | 1=US, 2=Canada, 3=UK (default: 1) | |
| category | Yes | 1=DollarVolume, 2=PercentGainers (ext hours), 3=PercentLosers (ext hours), 4=GainersRegular, 5=LosersRegular, 6=UnusualVolume |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds 'today's market movers' context but no additional behavioral traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, but the 'Args' block repeats schema info. Could be a bit more streamlined without losing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description adequately covers purpose and parameters. Missing return value details but output schema compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with descriptions for category and country; the description partly repeats these and adds minimal new info for 'num'. No parameter semantics beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Returns today's market movers: biggest gainers, losers, most active.' This distinguishes it from sibling tools like 'get_trending_stocks' by specifying the scope and categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for intraday market movers but does not explicitly state when to use this over alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_performanceARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| country | No | us |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds useful detail about the return content (average returns, sector breakdown, top/bottom performers) beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it states the main purpose in the first sentence, then lists the return components, and finally describes the parameter. Every sentence is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, an output schema exists, and annotations are rich, the description is complete. It explains what the tool returns and what parameter is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides a list of valid country codes (e.g., 'us', 'ca', 'gb') which adds significant meaning beyond the input schema that only has a default value and no enum. With 0% schema coverage, the description fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns market-wide performance for a specific country, including average returns, sector breakdown, and top/bottom performers. This is a specific verb+resource that distinguishes it from siblings like get_market_movers or get_sector_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when country-specific market performance is needed, but it does not provide explicit when-to-use or when-not-to-use guidance relative to alternatives like get_market_commentary or get_sector_analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_usageARead-onlyIdempotentInspect
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.
On the OAuth connector, calls refused for being over the limit are counted
too and never refunded, so `used` can come back higher than `limit`. Read
that as the cap having been hit and retried, not as that many calls served.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description reveals critical behaviors: it's free, counts all calls (including failed ones), over-limit calls are counted, and used can exceed limit. This adds substantial context not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but each sentence adds value, covering purpose, usage timing, metering specifics, and edge cases. Structurally, it starts with the core purpose and then elaborates, making it accessible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully explains what the tool does, how to use it, what counts toward the quota, and the unusual case where used exceeds limit. With an output schema present and no parameters, this is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema reflects this with 100% coverage. The description adds no parameter details because none are needed, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reporting current TipRanks MCP usage against the monthly quota. It uses a specific verb ('reports') and resource ('your current usage'), distinguishing it from data-retrieval sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends using this tool before large batches, and explains metering rules. No alternative tools exist for this function, so it doesn't need to name alternatives, but it also lacks explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_options_chainARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes | ||
| strike_gte | No | ||
| strike_lte | No | ||
| contract_type | No | 'call' or 'put'; omit to return both sides. | |
| expiration_date | Yes | Exact expiration in YYYY-MM-DD. REQUIRED — call get_options_expirations first to discover valid dates. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond annotations: data delay of ~15 minutes and the explicit warning that Greeks and implied volatility are not exposed. This prevents the agent from fabricating values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, output fields overview, data freshness note, and parameter list. It is concise yet complete, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description appropriately lists the output fields. It covers data freshness, missing fields, and parameter usage, making it fully actionable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description's 'Args' section provides detailed explanations for all 6 parameters, including the optional filters and default values. This adds significant value beyond the sparse schema descriptions (33% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves option contracts at a single expiration with enriched data fields. It distinguishes itself from siblings like get_options_expirations and get_options_contract by specifying the scope and data elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to call get_options_expirations first to discover valid expiration dates, and explains the contract_type default. It lacks explicit when-not-to-use guidance but implicitly covers it by stating Greeks are not available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_options_contractARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| contract_ticker | Yes | OCC-format option ticker, e.g. 'O:AAPL260520C00205000'. The 'O:' prefix is optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, etc.), the description adds important behavioral context: quotes delayed ~15 minutes, and Greeks/implied volatility are unavailable. This helps the agent set expectations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose, then parameter format explanation, then data limitations. Each sentence adds value and is front-loaded. Could be slightly more concise, but overall good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and an output schema (context says present), the description covers purpose, parameter format, and key limitations (delay, missing Greeks). It is complete enough for agent usage without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameter. The description repeats the OCC format and 'O:' prefix optional, adding no new semantic value beyond what the schema description provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a snapshot of one OCC contract with price, OI, intraday OHLCV, and last trade. It explains the OCC ticker format, distinguishing it from sibling tools like get_options_chain (which returns multiple contracts) or get_options_unusual_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single contract snapshot but does not explicitly state when to use it vs alternatives. It mentions data limitations (no Greeks/IV) which helps guide appropriate use, but lacks explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_options_expirationsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that past expirations are excluded, which is a useful behavioral detail not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no fluff. Every sentence adds value: listing, exclusion, next-step guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, output schema exists, and annotations cover safety, the description sufficiently covers purpose, exclusion, and integration with get_options_chain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (ticker) with 0% schema description coverage. The description adds an example 'AAPL' and explains it's the underlying ticker, which provides some meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists future expiration dates for a ticker's options, specifying it excludes past expirations. This distinguishes it from siblings like get_options_chain and get_options_contract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use the result as input to get_options_chain, providing clear usage context. No explicit when-not-to-use, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_options_unusual_tradesARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds context about the type of trades (size/sweep alerts) and specific fields returned, which goes beyond the annotations and clarifies the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at ~6 lines, front-loads the core purpose, and uses clear parameter docs. No extraneous information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available (not shown but confirmed), the description adequately explains the tool's inputs and outputs (listing returned fields). Given the simple two-parameter interface, this is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explicitly explains 'ticker: Underlying ticker (e.g. AAPL)' and 'limit: Max trades to return (default 25)', providing meaning that the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'recent unusual option trades for an underlying' and lists the specific fields returned (side, strike, expiry, etc.). It distinguishes from siblings like get_options_chain and get_options_contract by focusing on 'unusual' or flagged trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is 'useful for spotting large bullish or bearish positioning', giving context, but does not explicitly say when not to use or suggest alternatives. No exclusions or comparisons to other tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peersARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol, e.g. 'AAPL'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description reinforces with 'Read-only, no side effects,' adding clarity but not contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and contains no unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, good annotations, and an output schema (mentioned in context), the description provides sufficient context for an agent to use the tool correctly. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the 'ticker' parameter. The description mentions 'for a stock' but doesn't add significant meaning beyond the schema's description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns peer/competitor companies with comparative metrics, and it explicitly distinguishes from siblings by naming alternative tools for different use cases (get_assets_data, get_sector_analysis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (find and compare against similar names) and when not to (use get_assets_data for company's own data, get_sector_analysis for sector breakdown), providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_politician_activityARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| activity | No | 'trades' or 'holdings' (default: trades) | trades |
| politicianId | Yes | Politician ID, as returned by get_politicians. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the detail that it returns trades or holdings, but does not provide additional behavioral context such as pagination, rate limits, or authentication requirements. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a list of arguments. It is front-loaded with the purpose and each sentence serves a clear function. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. It covers the key purpose, prerequisite, and parameter options. The description is sufficiently complete for a well-annotated, read-only tool with full schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters. The description reiterates the parameter meanings ('Politician ID from get_politicians', 'trades or holdings') but adds minimal new value beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a specific politician's stock trades or holdings, with a clear verb and resource. It distinguishes itself from siblings by focusing on politician activity and mentions the prerequisite call to get_politicians.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells users to first call get_politicians to obtain the politicianId, providing necessary context for proper usage. While it does not explicitly state when not to use the tool or name alternatives, the guidance is clear and directly addresses the dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_politiciansARead-onlyIdempotentInspect
Returns the list of politicians tracked for trading activity.
Returns: name, party, state, position, net worth, profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. Description adds the specific fields returned and the scope ('tracked for trading activity'), adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no extraneous words. Direct and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, rich annotations, and presence of output schema, the description completely captures the tool's purpose and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4 per rules. Description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the list of politicians tracked for trading activity, listing returned fields (name, party, state, position, net worth, profile). Distinguishes from related sibling get_politician_activity which focuses on specific politician activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for retrieving the full list, but no explicit when-to-use or alternatives. Could be improved by mentioning when to choose this over get_politician_activity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_analysisARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| portfolio_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, so safety is clear. Description adds return data specifics but no additional behavioral traits. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an Args line. Front-loaded with main purpose. Every sentence adds value with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be detailed. Parameter explained adequately. Covers necessary context for a read-only analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaningful context: portfolio_id is 'One of the IDs returned by list_my_portfolios,' which is helpful beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns asset allocation and distribution by various metrics. It uses a specific verb (Returns) and resource, but does not differentiate from sibling portfolio tools like get_portfolio_holdings or get_portfolio_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The only usage hint is that portfolio_id comes from list_my_portfolios, but no context on when to prefer this analysis over other portfolio tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_holdingsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| portfolio_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so behavior is transparent. Description adds useful context about the returned data structure (fields like cost basis, P/E ratio) beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: first sentence states purpose, then bullet-like list of fields, then argument description. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description still provides a detailed list of returned fields. It covers the essential information for invoking this simple read tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description compensates by explaining portfolio_id is an ID from list_my_portfolios, giving the agent a concrete source for valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns all holdings for a TipRanks portfolio, listing specific fields (ticker, shares, price, etc.). Distinguishes from sibling tools like list_my_portfolios (which returns IDs) and other portfolio tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says portfolio_id must be one from list_my_portfolios, providing clear prerequisite. Lacks explicit when-not-to-use guidance, but the tool's simple read nature makes it adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_overviewARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| portfolio_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds that the monthly history is 'chart-ready' and lists exact fields returned, but does not disclose additional behavioral traits like authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an Args section, front-loading the key outputs and providing parameter guidance with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to detail return values. It covers the essential fields and parameter, making it complete for a tool with one required input and rich structured output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains that portfolio_id is 'One of the IDs returned by list_my_portfolios', adding valuable context beyond the schema's simple integer type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns lifetime, 1mo, 6mo, 12mo, YTD returns, Sharpe ratio, and a monthly-return time series. This clearly identifies the verb (returns) and the resource (portfolio overview), distinguishing it from sibling tools like get_portfolio_holdings or get_portfolio_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that portfolio_id should come from list_my_portfolios, giving clear context for obtaining the ID. However, it does not explicitly compare to similar tools or state when to use this vs. alternatives like get_portfolio_analysis or get_portfolio_performance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_performanceARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| portfolio_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context by detailing the complex output (chart-ready data, aligned dates, multiple metrics), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with key outputs and structured as a bullet list. It is informative but slightly verbose (e.g., 'chart-ready — aligned dates' could be more concise). No wasted sentences, but could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (multiple performance metrics) and the presence of an output schema, the description covers the return values thoroughly. However, it does not mention potential data format details or pagination, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter portfolio_id has no description in the schema (0% coverage). The description compensates by specifying 'One of the IDs returned by list_my_portfolios', which adds meaningful context about where to obtain the value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns full performance statistics including gains, best trade, recent activity, benchmarked time series, monthly returns, risk profile, etc. It distinguishes from sibling tools like get_portfolio_holdings or get_portfolio_overview by specifying performance metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that portfolio_id comes from list_my_portfolios, which provides context, but it does not explicitly state when to use this tool vs alternatives or provide exclusion criteria. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_analyst_ratingsARead-onlyIdempotentInspect
Recent Wall Street analyst rating actions on a single stock, covering the trailing 12 months (newest first).
Each row carries the analyst's name and firm, the rating (Buy/Hold/Sell),
the action (initiated/upgraded/downgraded/reiterated/maintained), the price
target, and the analyst's TipRanks credibility (numOfStars 0-5, rank,
success rate, average return) plus the source article title/quote.
For the aggregate consensus and average/best price target, use
get_assets_data instead.
Args:
ticker: Stock ticker (e.g. 'NVDA', 'AAPL').
Returns: a list of rating actions. recommendationDate is a 'MM/DD/YYYY'
string; numOfStars is the analyst's 0-5 TipRanks star rating.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description adds return format details (date as string, star rating range) and clarifies that each row includes analyst credibility, complementing the structural hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure: purpose, content, cross-reference, parameter definition. Every sentence is valuable and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema existing, the description doesn't need to explain all return values, but it highlights key fields (date format, star rating). It sufficiently covers the tool's purpose and parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the ticker parameter. The description compensates by providing an example ('NVDA', 'AAPL') and clarifying it's a stock ticker.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves 'recent analyst rating actions' on a single stock, with specific verb 'get', resource 'analyst ratings', and scope 'trailing 12 months, newest first'. It distinguishes from sibling tool get_assets_data by mentioning aggregate consensus is handled elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using get_assets_data for aggregate consensus, providing an alternative. It implies use for single stock via ticker parameter, but lacks exclusions for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_analysisARead-onlyIdempotentInspect
Returns sector-level analysis for all 11 US sectors: average P/E, analyst upside, buy ratio, stock count. Sorted by average analyst upside.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds value by stating it returns all 11 sectors sorted by analyst upside, providing context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's output and sorting. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters and an output schema exists, the description sufficiently covers what is returned (fields and sorting) and is complete for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, schema coverage is 100%. The description does not need to explain parameters. A score of 4 reflects the baseline for no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns sector-level analysis for all 11 US sectors with specific fields (average P/E, analyst upside, buy ratio, stock count) and sorting. It distinguishes itself from sibling tools which cover commodities, crypto, forex, individual stocks, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for getting a high-level sector overview but does not explicitly state when to use this tool versus alternatives. No exclusions or specific context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_catalystARead-onlyIdempotentInspect
TipRanks-generated catalyst summary explaining why a stock is moving.
Each entry: {ticker, summary, sentiment, updated} where sentiment is
'positive' | 'neutral' | 'negative'. Updated throughout the trading
day. Use to explain today's move for a specific stock.
Args:
tickers: Comma-separated tickers (e.g. 'AMZN' or 'AMZN,NVDA').
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by noting that data is 'Updated throughout the trading day' and describing the output format with sentiment values. It does not contradict annotations and provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence summary, a line describing the output entry, usage instruction, and parameter documentation. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a single parameter with clear explanation, and an output schema exists (though not shown), the description covers all essential aspects: what it does, what it returns, and how to use it. The annotations further complete the behavioral profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'tickers' parameter as 'Comma-separated tickers (e.g. 'AMZN' or 'AMZN,NVDA')' and clarifies accepted formats (string or array). This adds sufficient meaning beyond the schema's basic type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'TipRanks-generated catalyst summary explaining why a stock is moving.' It specifies the verb (get/explain) and resource (catalyst summary), and distinguishes itself from sibling tools like get_stock_prices or get_technical_analysis by focusing on the reason for a stock's move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states: 'Use to explain today's move for a specific stock.' This provides clear context on when to use the tool. However, it does not mention alternatives or when not to use it, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_pricesARead-onlyIdempotentInspect
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, 5y, all.
Args:
tickers: Comma-separated tickers, up to 5 (e.g. 'AAPL,MSFT').
period: Lookback window (default 'ytd').
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | ytd | |
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, etc.), the description adds that the series is downsampled to ~250 points and the latest point always retained, explaining payload optimization. However, it doesn't mention adjusted prices or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a prose overview followed by an Args list. Every sentence adds value, though the example in Args could be integrated without loss of clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema existence, the description covers the main aspects: allowed periods, downsampling, and response fields. However, it lacks details on adjusted vs. unadjusted prices, error behavior, and handling of invalid tickers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully explains both parameters: tickers can be comma-separated up to 5, period must be one of the listed values with default 'ytd'. It also details the per-ticker response structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Historical daily closing prices for up to 5 stocks or ETFs,' which is a specific verb+resource. It distinguishes from sibling tools like get_stock_quotes (current price) and get_crypto_historical by focusing on daily close and stock/ETF scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies historical charting use but does not explicitly state when to use this vs. alternatives like get_stock_quotes for current prices. It also lacks guidance on prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_quotesARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| tickers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, destructiveHint, making the non-mutating nature clear. The description adds detail on returned fields, market-state flags, and extended-hours data behavior, enriching transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise at ~6 lines. First sentence summarizes core function. Followed by return fields, extended-hours note, alternative tool, and parameter description. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is complete. It covers purpose, parameters, behavior (including edge cases like extended hours), and provides alternative. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'tickers' is thoroughly explained with examples and acceptable formats (comma-separated string or array). This adds significant meaning beyond the simple schema type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly that it returns real-time price quotes for stocks or ETFs. Distinguishes from forex by directing to get_forex_quote. The title annotation further confirms purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit alternative: for forex pairs use get_forex_quote. Also explains behavior during extended hours. Lacks explicit when-not-to-use scenarios, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_splitsARead-onlyIdempotentInspect
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)
Returns: { totalCount, data: [{ ticker, companyName, effectiveDate, type,
splitRatio, splitRatioText }] }.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional filter: 'Forward' or 'Reverse' (case-insensitive); omit to return both. | |
| limit | No | ||
| toDate | No | ||
| fromDate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true. The description adds behavioral context by detailing the default date ranges (30 days ago/from now), the limit cap, and the return format. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence overview, followed by a clear bullet-like list of parameters with defaults and constraints. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 required parameters, a detailed output schema (described in text), and comprehensive annotations, the description covers the purpose, parameters, and return format completely. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only the 'type' parameter has a description). The description fully compensates by explaining each parameter: fromDate, toDate, type, limit, with defaults and constraints. This adds significant meaning beyond the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it returns the stock-split calendar with split ratios and direction, and lists specific use cases (upcoming splits, reverse-split alerts, historical lookup). This clearly distinguishes it from sibling tools, which cover other financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use for upcoming splits, reverse-split alerts, historical lookup. It does not explicitly state when not to use it or mention alternatives, but given the unique purpose of the tool among siblings, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_analysisARead-onlyIdempotentInspect
Returns RSI, MACD, Stochastics, ADX, moving averages, and pivot points for individual stocks.
Stocks only — ETFs like SPY, QQQ, VTI are not supported here. For ETFs,
use get_etf_analysis, get_etf_forecast, get_etf_top_stocks, or
get_etf_exposures instead.
Args:
tickers: Comma-separated stock tickers (e.g. 'NVDA' or 'NVDA,AAPL').
ETF tickers will return no data.
timeFrame: '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day')
Returns: summary scores, oscillators (RSI, MACD, Stochastics, ADX, CCI,
Williams %R, ATR, ROC), moving averages, and pivot points.
indicator field: 1=Sell, 2=Neutral, 3=Buy.
scoreScale: 1=StrongBuy, 2=Buy, 3=Neutral, 4=Sell, 5=StrongSell.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| timeFrame | No | One of '1m','5m','15m','30m','1h','5h','day','3d','week','2w','month' (default: 'day') | day |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds context about the output format and value interpretations (e.g., indicator field: 1=Sell, etc.), which is useful beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear introductory sentence, a specific usage restriction, parameter descriptions, and a return value breakdown. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description fully details the return fields and their meanings (indicator and scoreScale). It is sufficient for an agent to understand input and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'tickers' parameter, explaining comma-separated format and noting ETF tickers return no data. For 'timeFrame', it restates the schema description, which already lists options. Schema coverage is 50%, and the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns various technical analysis indicators (RSI, MACD, etc.) for individual stocks. It specifically distinguishes from sibling tools by limiting to stocks and naming alternatives for ETFs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Stocks only — ETFs like SPY, QQQ, VTI are not supported here' and provides a list of alternative tools for ETFs, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticker_earningsARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol, e.g. 'NVDA'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds 'Read-only, no side effects,' which is consistent but adds minimal new behavioral context. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences only, with the core purpose in the first sentence and usage guidance in the second. No redundant words; front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, output schema exists, rich annotations), the description covers purpose and usage guidance well. It could optionally mention that output includes dates and estimates, but output schema handles that. Generally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has one parameter 'ticker' with description 'Stock ticker symbol, e.g. 'NVDA'.' Description does not elaborate further. Schema coverage is 100%, so baseline 3; no added value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides 'upcoming and recent earnings dates for a specific stock' with 'scheduled report dates with EPS/revenue estimates where available.' It also distinguishes from sibling tools by explicitly naming alternatives (get_earnings_history, get_earnings_calendar) and their purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Use this to find when a company reports') and provides specific alternatives for other use cases: 'For past actual-vs-estimate results use get_earnings_history; for a cross-market schedule use get_earnings_calendar'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_hedge_fund_managersBRead-onlyIdempotentInspect
Returns top-performing hedge fund managers ranked by success rate and returns.
Args:
num: Number of managers to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| num | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds ranking criteria and the num parameter but no extra behavioral context like data freshness, pagination, or error handling, adding minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences—front-loaded with the primary purpose and followed by a parameter explanation. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter) and the presence of an output schema (not shown), the description adequately explains what it returns. Minor gaps: no mention of limitations like maximum num or behavior when num=0, but overall sufficient for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with no property descriptions, so the description carries full burden. It explains 'num: Number of managers to return (default 10)', which clarifies purpose and default, but doesn't elaborate on constraints (e.g., max value) or behavior for invalid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns top-performing hedge fund managers ranked by success rate and returns, specifying the resource and ranking criteria. This distinguishes it from siblings like get_hedge_fund_activity or get_hedge_fund_holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. With siblings like get_hedge_fund_activity and get_hedge_fund_holdings, guidance on when to choose this ranking tool over detailed activity/holdings queries is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_rated_stocksARead-onlyIdempotentInspect
Returns stocks most recommended by the best-performing analysts (by analyst track record).
Args:
num: Number of results
sector: Sector filter (financial, healthcare, technology, etc.) or empty for all
country: 'US', 'Canada', 'UK', 'Global'. NOTE: UK tickers use GB: prefix but country param is 'UK'.
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | ||
| sector | No | Lowercase sector filter: financial, healthcare, consumerdefensive, consumercyclical, utilities, materials, technology, industrials, energy, communicationservices, realestate (default: all sectors) | |
| country | No | 'US', 'Canada', 'UK', or 'Global' (default: US). UK tickers are returned with a 'GB:' prefix but the country value is still 'UK'. | US |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds behavioral context: the ranking is based on analyst track record, and notes about UK ticker prefixes ('GB:' prefix but country param value 'UK'). This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear main sentence and a bullet-point Args section. Every sentence adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and annotations, the description covers the core purpose and parameter nuances. It lacks mention of output format or limitations but is sufficient for a simple filtering tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%. The description adds meaning to 'num' (number of results, not just a number), provides examples for sector, and explains the UK ticker format for country. It compensates for the schema's missing descriptions on some parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'returns' and the resource 'stocks most recommended by the best-performing analysts' (by track record). However, it does not differentiate from sibling tools like 'get_top_smart_score_stocks' or 'get_trending_stocks' which also return top stocks but using different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implied usage (to get top stocks by analyst recommendations) but no explicit guidance on when to use this tool versus alternatives. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_smart_score_stocksARead-onlyIdempotentInspect
Returns stocks with the highest TipRanks Smart Score (perfect 10 / Outperform).
Args:
num: Number of results
sector: Sector filter (financial, healthcare, technology, etc.) or empty for all
country: 'US', 'Canada', 'UK', 'Germany', 'Spain', 'France', 'India', 'Italy',
'Israel', 'Australia', 'Singapore', 'Japan', 'HongKong', 'Global'.
NOTE: UK tickers use GB: prefix but the country param is 'UK'.
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | ||
| sector | No | Lowercase sector filter: financial, healthcare, consumerdefensive, consumercyclical, utilities, materials, technology, industrials, energy, communicationservices, realestate (default: all sectors) | |
| country | No | 'US','Canada','UK','Germany','Spain','France','India','Italy','Israel','Australia','Singapore','Japan','HongKong', or 'Global' (default: US). UK tickers are returned with a 'GB:' prefix but the country value is still 'UK'. | US |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, idempotentHint, destructiveHint=false, so safety is clear. The description adds non-obvious behavior: UK tickers use 'GB:' prefix but country parameter is 'UK', and results are specifically 'perfect 10 / Outperform'. This supplements the annotations well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and includes a clean arg list. Slightly verbose with the full country list, but each sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 optional params, output schema present), the description fully explains inputs and their constraints. The GB prefix note addresses a common confusion. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (sector and country have descriptions), but the description adds the UK ticker prefix note and clarifies sector as a lowercase list. The num parameter is simply 'Number of results', adding minimal value. Overall, description enhances understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns stocks with the highest TipRanks Smart Score (perfect 10/Outperform), specifying the resource (stocks filtered by Smart Score) and verb (returns). This distinguishes it from siblings like get_top_rated_stocks which likely uses a different rating system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering by sector, country, and number of stocks but does not explicitly state when to use this tool versus alternatives like get_top_rated_stocks. No when-not or exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trending_stocksARead-onlyIdempotentInspect
Returns currently trending stocks that recently received analyst ratings.
Args:
num: Number of results (default 20)
filter: 'analysts', 'bloggers', or 'both'
daysAgo: Days to look back (default 7). Pass 30 when filtering by sector or
country to ensure enough results — narrow windows often return fewer
than 5 stocks in a specific sector.
trendingType: 'best-rated' or 'worst-rated' (empty for all)
country: 'US','Canada','UK','Germany','Israel','Australia' etc.
Returns: ticker, SmartScore, analyst/blogger sentiment, hedge fund trend,
price target, buy/hold/sell counts per stock.
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | ||
| filter | No | 'analysts', 'bloggers', or 'both' (default: analysts) | analysts |
| country | No | Country name, e.g. 'US','Canada','UK','Germany','Israel','Australia' (default: US) | US |
| daysAgo | No | Days to look back (default: 7). Use 30 when filtering by sector or country, as narrow windows often return very few stocks. | |
| trendingType | No | 'best-rated' or 'worst-rated'; omit for all (default: all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds value by specifying returned fields (ticker, SmartScore, sentiment, etc.) and parameter behavior, but does not address data freshness or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose sentence followed by a parameter list. It is concise without missing key details, though the return description could be integrated or shortened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (5 params, no required) and the presence of annotations and output schema in context, the description covers the tool's purpose, all parameters with examples, and expected return values. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 80% schema description coverage, the schema already documents most parameters. The description adds helpful context, especially the daysAgo heuristic and that trendingType can be empty. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns 'currently trending stocks that recently received analyst ratings,' which is specific and distinguishes it from siblings like get_top_rated_stocks. However, it also includes blogger sentiment, so the purpose could be slightly more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful guidance on parameters like 'daysAgo' (recommending 30 for sector/country filters) and explains filtering options. However, it does not explicitly contrast with alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_portfoliosARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds context about the snapshot nature (portfolios at sign-in time), the return fields (id and name), and the need to re-authorize to refresh, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs, no unnecessary words. The main action is front-loaded in the first sentence. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (listing authorized portfolios), the description covers what it does, what it returns (id and name), and the snapshot nature. The output schema exists but is not shown, so the description adequately complements it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the input schema is empty with 100% coverage. The baseline for 0 parameters is 4. The description does not add parameter-specific information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists portfolios the connector is authorized to access, using the verb 'list' and resource 'portfolios'. It distinguishes itself from sibling tools that are mostly get_* tools for securities, analysis, etc. by focusing on the user's own portfolios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that it returns portfolios present at sign-in time and suggests re-authorizing to refresh. It implies this tool is a prerequisite for other portfolio tools like get_portfolio_holdings, but does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
MCP Usage and example agents can be found here: https://github.com/TipRanks/mcp
Related MCP Servers
- Alicense-qualityBmaintenanceLive TipRanks financial data & analyst research for AI agents - analyst ratings, Smart Score, technicals, options, and your portfolios.15MIT

longbridgeofficial
AlicenseBqualityAmaintenanceUS/HK markets — 110 tools: real-time quotes, options, orders, fundamentals, alerts, DCA & portfolio10011Apache 2.0- AlicenseAqualityAmaintenancePre-computed financial market intelligence for AI agents. Stocks, crypto, and ETFs.92303MIT
- AlicenseAqualityBmaintenanceReal-time news with bias scoring, live market data, and AI-powered options pricing. 9 tools across news intelligence, media bias analysis, stock/crypto data, and meme search.9511MIT