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
70 toolsget_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 provide read-only, idempotent, non-destructive hints. The description does not add behavioral context beyond purpose, missing details like response format, rate limits, or data freshness.
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, no redundancy, front-loaded with key information. Every word 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 zero parameters and an output schema, the description fully covers the tool's purpose and scope. 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?
No parameters exist, so schema coverage is 100%. Description adds no parameter info, but baseline 4 is appropriate given zero 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 action (returns real-time quotes) and the resource (all commodities) in a single request, distinguishing it from sibling tools like get_commodity_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?
The purpose is clear and implicitly guides when to use this tool (for all commodities) vs alternatives (single commodity), but lacks explicit when-not scenarios or comparison with siblings.
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?
The description adds behavioral context beyond annotations by specifying 'real-time' and 'all cryptocurrencies'. Annotations already cover readOnly and idempotent 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 a single, focused sentence that conveys the essential purpose without any 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?
With an output schema present and no parameters, the description is fairly complete. It could mention that it returns a snapshot or list, but it's adequate.
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, so baseline is 4. The description does not need to add parameter meaning.
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 real-time quotes for all cryptocurrencies, distinguishing it from the sibling 'get_crypto_quote' which likely returns a single 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?
The description implies usage for obtaining a broad overview of all crypto quotes but does not explicitly state when to use it versus alternatives like get_crypto_quote.
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 and idempotent. Description adds 'real-time' and 'all forex pairs' context, enhancing transparency 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, no redundancy, front-loaded with key action and scope. Every word serves a 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 no parameters and presence of output schema, description sufficiently informs the agent about tool behavior. It specifies what is returned and the scope.
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 present; schema coverage is 100%. Baseline score of 4 for no parameters, description does not need to add param details.
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 all forex pairs. Verb is specific and resource is well-defined, distinguishing it from siblings like get_forex_quote which likely returns a single pair.
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: when all forex pairs are needed, use this tool. However, no explicit exclusion for single-pair queries; siblings provide context but description lacks direct guidance.
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, the description discloses important behaviors: deduplication by analyst name keeping best rank, sorting by rank, and conditional shape change when sector is provided. 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, with a front-loaded purpose, clear bullet-point-like output format, and separate Args section. 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 presence of an output schema, the description need not detail return values but still provides a clear overview of row structure and conditional changes. It covers all necessary aspects for a list 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 compensates by explaining both parameters: firm with substring match example, and optional sector with its effect on output shape.
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 analysts at a given firm with a specific verb and resource, and distinguishes itself from sibling tools by its specific function and output format.
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 context on when to use the tool (to list analysts by firm with case-insensitive substring match) and implies not to use it for other purposes, though it does not explicitly list alternatives.
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 declare safe, idempotent, non-destructive. The description adds rich behavioral details: HTML-stripped body capped at 8000 chars, return fields (title, excerpt, author, etc.), and error handling for missing articles. 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 with no unnecessary words. It front-loads the purpose, then details return values and arguments. 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 simple single-parameter tool with robust annotations and output schema (implied by return description), the description covers all necessary aspects: input format, output contents, character limit, and error case. It is fully 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 description already covers the identifier parameter well (numeric id, slug, full URL). The tool description repeats this info and adds context about origin, but does not significantly extend meaning beyond 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 'Fetch the full text of a single TipRanks article' and elaborates on resolving identifiers from URLs, slugs, or numeric IDs. It distinguishes from sibling tools like get_latest_news by specifying single-article retrieval with full content.
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 suggests using identifiers from get_latest_news or get_assets_news, guiding when to use this tool. It lacks explicit when-not-to-use or alternatives, but the context is clear enough.
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 readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral specifics: output format (JSON with assetsData array), rounding of floats, day-resolution dates, and a note to quote daysUntilEarnings rather than compute it. 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 well-structured, starting with a clear one-sentence summary, then detailing input format, output fields, and alternatives. While somewhat verbose due to detailed field explanations, it remains front-loaded and organized. A slightly more concise description would earn a 5.
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 (not shown but present), the description thoroughly covers input format, output structure, field semantics, and alternative tools. It is complete enough for an agent to select and invoke this tool correctly among over 50 siblings.
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 single parameter 'tickers'. The description compensates fully by explaining the accepted formats: a comma-separated string or a JSON array. This adds significant value beyond the bare schema 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 returns key TipRanks stock data for one or more tickers, with a specific verb and resource. It distinguishes itself from sibling tools by noting that deeper detail is available in dedicated tools, establishing its role as a headline summary.
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: 'This is a headline summary tuned to stay small enough for a whole portfolio to fit in a single response.' It also lists alternative tools for deeper detail (get_stock_prices, get_hedge_fund_holdings, etc.), providing clear when-to-use and when-not-to-use advice.
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, idempotentHint, and destructiveHint. The description adds no behavioral traits beyond what annotations provide, such as rate limits or data freshness. It 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 very concise: two sentences plus parameter docs. 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 the existence of an output schema, the description adequately states what is returned (dividend, earnings, coupon dates per ticker). It could mention date range behavior when dates are omitted, but overall 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?
With 0% schema description coverage, the description compensates by explaining the tickers parameter (comma-separated format) and date parameters (ISO format). It provides enough context to use 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 the tool returns upcoming dividend and earnings events for tickers, specifying the exact resource and action. It distinguishes itself from sibling tools like get_dividend_history or get_earnings_calendar by focusing on both event types and coupon dates.
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 parameters and their formats, but does not provide explicit guidance on when to use this tool versus alternatives. For example, it doesn't mention that this tool is suitable for combined dividend and earnings events rather than separate queries.
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?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context: returns only headlines, sentiment classification from TipRanks, redundant date fields with preference for publishTime, and clarification that from_date filters on the date field. It does not explicitly mention the openWorldHint (non-exhaustive results), but the transparency is strong overall.
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 summary paragraph, Args section, and Returns section. It is not overly long, and every sentence adds value. The explanation of redundant date fields is slightly verbose but useful. Front-loading is effective.
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, the description still provides detailed field explanations, including sentiment bucket list and date field preferences. It covers the key behavior (headlines only, date filtering) and sibling distinction. Missing details about error cases or result limits, but overall complete for a 3-param 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 low (33% for from_date), but the description compensates by explaining tickers as 'comma-separated ticker symbols' and count as 'Number of articles to return (default 10)'. For from_date, it adds 'filtered on date' beyond the schema. This adds meaningful guidance for an AI agent.
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 recent news articles for tickers with sentiment and source URL, and explicitly distinguishes from get_latest_news for general or excerpt news. The verb 'Returns' and resource 'news articles for tickers' are specific and clear.
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 get_latest_news instead (for general/market news or article excerpts). It also sets expectations by noting 'headlines only — no article body'. However, it does not cover when to use other sibling news tools like get_crypto_news, though that may be implied by ticker type.
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 declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds value by specifying return fields (warning type, date, detail) and parameter format. It does not disclose limits or error cases, but this is acceptable for a simple read tool.
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 and structured Args/Returns lines. It is front-loaded with the main purpose and contains 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?
For a simple one-parameter tool with an output schema, the description covers purpose, parameter format, and return content. It is sufficiently complete for an agent to select and invoke the 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?
The input schema has no descriptions (0% coverage), so the description compensates by explaining that 'tickers' should be comma-separated symbols and describes the return fields. This adds meaningful guidance 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 risk warnings for tickers, using verb 'returns' and resource 'risk warnings'. The name and title reinforce this, and it distinguishes from sibling tools like 'get_assets_data' which return different asset information.
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 versus alternatives. Usage is implied from the purpose, but it does not mention when not to use it or contrast with other get_assets_* tools.
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=false. The description adds ranking criteria (success rate and average return) but does not disclose additional behavioral traits like data freshness or rate limits, so added value is moderate.
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 concise: two sentences plus parameter list. Purpose is front-loaded. Could be slightly more structured, but 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 two parameters, no required fields, and an output schema, the description adequately explains the tool's purpose and constraints. It doesn't cover all edge cases but is sufficient for typical use.
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 50% and schema already describes expert_type. The description adds the 'max: 25' constraint for num, which is not in the schema, but otherwise repeats schema info. Overall adds some but not substantial meaning.
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 the best-performing experts, ranked by success rate and average return. This distinguishes it from sibling tools like get_analysts_by_firm 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?
Description explains parameters and defaults but does not explicitly state when to use this tool vs. alternatives. Agents must infer usage from the purpose, which may be ambiguous among similar performance-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blogger_sentimentRead-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 |
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 declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds value by detailing the return structure (JSON with fields like ticker, updatedOn, bullish, bearish, key_points) and the 'tagged with a topic' aspect. 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 well-structured with sections for Args and Returns, and uses bullet points for the return fields. It is clear and informative, though slightly verbose with the 'key_points' list description. Could be slightly more concise but overall 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 that the tool has an output schema (though not fully shown), the description explains the return structure thoroughly. The single parameter is well-documented. The tool is simple and the description provides all necessary context 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?
With schema description coverage at 0%, the description compensates by explaining that tickers should be 'Comma-separated tickers (e.g. 'AAPL,TSLA')'. This adds meaning beyond the schema's minimal type info. The description also clarifies that the parameter can be a string or array.
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 individual sentence bullets tagged with a topic. It uses specific verbs ('Returns', 'tagged') and identifies the resource ('stock pages'). It distinguishes from numerous sibling tools by being stock-specific and sentiment-focused.
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 context on when to use the tool (to get bull/bear key points for stocks). It includes a parameter explanation and return format. However, it does not explicitly state when not to use or name alternatives among the many sibling tools.
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 declare readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral details like sorting order, possible duplicate entries, and pagination behavior, enriching transparency 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 well-structured with sections, bullet format, and front-loaded key info. 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 output schema is provided and the tool has only 3 simple parameters, the description covers return structures for both modes comprehensively, making it fully informative.
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 low schema coverage (33%), the description thoroughly explains each parameter: ticker optional, limit and page with defaults and max, and conditional usage per mode. It 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 'Returns share-buyback / stock-repurchase activity' and distinguishes two modes (cross-market and per-ticker), using specific verbs and resource. It stands out from sibling tools by focusing on buyback 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?
Provides explicit context for each mode: cross-market for 'biggest buybacks', per-ticker for historical series. Does not explicitly state when not to use, but the guidance is sufficient for correct selection.
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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false. The description adds fixed time window, sorting, and return format, enriching behavioral context without 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?
Three sentences: purpose, window/detail, use case. Every sentence adds value, no fluff. 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 zero parameters, good annotations, and a described output schema, the description fully covers what the agent needs to know: purpose, fixed window, return structure, and use case.
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 (schema coverage 100%). Baseline 4 for zero parameters; description adds no param detail, but none 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?
Describes a specific verb-resource pair: 'Returns the FDA / clinical-trial calendar' with upcoming drug approval target dates and tickers. Clearly distinguishes from siblings which are about commodities, crypto, forex, 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?
Explicitly states 'Use for upcoming FDA decisions, PDUFA dates, biotech catalysts,' providing clear context. No explicit when-not, but the domain is narrow enough.
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 and idempotentHint. Description adds context about daily frequency and ordering, but does not detail rate limits or pagination. 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 concise sentences plus a parameter list. No redundant 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?
Given the presence of an output schema (true), the description covers the tool's purpose, return structure, and parameter usage completely for a simple 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 coverage is 33% (only symbol has description). Description adds examples and date format for all parameters, compensating for schema gaps.
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 provides 'Daily OHLCV time series for a commodity' and specifies the fields returned. It distinguishes itself from sibling tools like get_commodity_quote (single quote) and get_crypto_historical (crypto-specific).
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 implies use for historical price data and mentions 'Chart-ready' for direct plotting, but does not explicitly state when not to use or compare with alternative tools among siblings.
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, etc. Description adds 'real-time' nature, which is mildly informative but does not contradict or significantly expand 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?
Description is concise (two short paragraphs), front-loaded with primary action, and well-organized with examples in a clean list.
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 and tool is simple (one parameter), the description sufficiently covers purpose and symbol examples. No gaps for a read-only query of a single commodity quote.
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?
Input schema has 100% coverage; description lists common symbol examples but adds minimal 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?
Description clearly states 'returns the real-time price quote for a specific commodity' with common symbol examples. This distinguishes it from siblings like get_all_commodities_quotes (bulk) and get_crypto_quote (different asset class).
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 context is implied: use for a single commodity quote. However, no explicit when-to-use/not-to-use guidance or comparison with alternatives (e.g., get_all_commodities_quotes) is provided.
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, etc. Description adds critical context: full history is large, default returns limited periods, and parameter effects (count cap, group filtering). 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?
Description is structured with arguments and return format, but slightly verbose. Could be more concise, but still clear and front-loaded with 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?
Despite no explicit output schema provided, the description fully specifies the return JSON structure (ticker, lastUpdated, groups with slugs, titles, series). Covers all necessary context for tool use.
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 compensates by detailing 'count' (default 8, max 40, 0 for full) and 'group' (optional slug or title). Adds meaning 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 specifies the tool returns company-specific operational KPIs with examples (segment revenue, geographic breakdown, etc.), and distinguishes from many sibling tools that focus on 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?
Explains default behavior (most recent count periods), how to get full history (count=0), and how to fetch a single group. No explicit when-not-to-use, but context makes it clear this is for company KPIs.
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 declare readOnlyHint and idempotentHint, so the description adds valuable context: data is ordered for direct plotting and chart-ready. This goes beyond the structured annotations. No contradiction found.
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 short paragraphs) with no redundant information. Each sentence serves a purpose: stating output format, then listing parameters. Front-loaded with the core functionality.
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 (implied by 'Has output schema: true'), the description adequately covers purpose, parameters, and output fields. It is complete for a historical data tool, leaving no major 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 only 33% (only symbol has a brief description), but the description adds detailed parameter explanations: symbol example, date format YYYY-MM-DD, and default empty strings. This compensates for the low schema 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 specifically states it provides 'Daily OHLCV time series for a cryptocurrency' and describes the output as 'chart-ready' rows with date, open, high, low, close, volume. This clearly distinguishes it from sibling tools like get_crypto_quote (current price) or get_crypto_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?
The description provides clear context: it gives historical data with optional date parameters. However, it does not explicitly exclude use cases or contrast with alternatives like get_crypto_quote or get_all_crypto_quotes, which slightly reduces guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_crypto_newsCRead-onlyIdempotentInspect
Returns the latest cryptocurrency news articles with headlines, snippets, and URLs.
Args:
page: Page number for pagination (default 0)
| Name | Required | Description | Default |
|---|---|---|---|
| page | 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, destructiveHint. Description adds no behavioral details beyond output format (headlines, snippets, URLs). No mention of pagination behavior, rate limits, or response size.
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 very short and front-loaded with one sentence and an Args block. Efficient, though the Args section is redundant with the schema. 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 output schema exists, description need not detail return values. However, it lacks information about number of articles per page, max pages, or any filtering. Adequate for a simple list but could be more 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 0%; description adds basic meaning for 'page' as pagination parameter with default 0. However, it does not explain page size or total results. Adequate but minimal.
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 latest cryptocurrency news with headlines, snippets, and URLs. The specific mention of 'cryptocurrency' distinguishes it from general news tools, but does not address similarities with siblings like get_assets_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?
No guidance on when to use this tool vs. alternatives such as get_latest_news or get_assets_news. The description lacks any usage context or exclusions.
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. The description adds 'real-time' but no additional behavioral context such as data freshness, rate limits, or fallback 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 very concise: one sentence for purpose, then a clear list of common symbols, and a docstring-style argument explanation. 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 the tool's simplicity, the description covers the main functionality. However, it lacks details on case sensitivity, error handling, or whether the output includes bid/ask prices, which the output schema may already provide.
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 baseline is 3. The description adds value by listing common symbol examples (BTCUSD, ETHUSD, etc.), which helps the agent use correct 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?
The description clearly states it returns the real-time price quote for a specific cryptocurrency with a specific verb and resource. It lists common symbols, distinguishing it from siblings like get_commodity_quote or get_stock_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 usage for getting a single crypto quote, but does not explicitly state when to use this tool over alternatives like get_all_crypto_quotes or how to determine the correct symbol.
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 read-only, idempotent, non-destructive. The description adds critical details: yield as percentages, ordering (newest first), cap on per-payment list, full annual totals. 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?
Well-structured with bullet-like format and front-loaded purpose. Each sentence adds value, though slightly verbose. Could be tightened without losing 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 complexity (two time series, snapshot) and presence of output schema, the description covers all necessary aspects: data structure, yield encoding, use cases, and parameter limits. Complete for 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 0%, but the description's 'Args' section explains both parameters (ticker and count) with examples and constraints (max 100 for count). Adds meaning beyond schema defaults and types.
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 'Dividend payment history for a ticker' with detailed output structure. It specifies chart-ready data including current snapshot and two time series, distinguishing it from other market data tools like stock prices or earnings.
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 like 'AAPL dividend history' and 'yield trend over 5 years', but does not directly compare to sibling tools or specify when not to use it. The examples strongly imply appropriate contexts.
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 declare readOnlyHint and idempotentHint, covering safety. Description adds date-range behavior but lacks details on pagination, error handling, or result structure. Adequate but not rich.
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?
Everything is front-loaded: purpose statement followed by clean parameter list. No redundant information. Highly 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 low complexity, strong annotations (readOnly, idempotent), and presence of output schema, the description covers all necessary aspects. No need to repeat return values per rules.
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 compensates by documenting each parameter's purpose, format (YYYY-MM-DD), and defaults. However, it omits validation constraints like allowed date range or exchange 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 upcoming earnings dates across all stocks for a date range, with specific verb and resource. Differentiates from siblings like get_ticker_earnings (specific ticker) and get_earnings_history (historical).
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 defaults and optional exchange filter, implying use for broad date-range queries. No explicit when-not vs alternatives, but the name and context among siblings are clear enough to infer appropriate usage.
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 declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that only the most recent quarter is stored per ticker, which is useful operational detail. 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?
Description is informative with a clear structure: function statement, brief content, use cases, alternative, then parameter and return docs. Slightly verbose but 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 has one simple parameter and an output schema (not shown but indicated), the description covers purpose, parameter, return format, and comparison to sibling. 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 has zero description coverage for the 'ticker' parameter. Description explicitly defines it as 'Stock ticker (e.g. 'AAPL', 'NVDA')', adding necessary 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?
Description specifies the tool returns 'the most recent earnings call summary for a ticker' including guidance, sentiment, and highlights/lowlights. It clearly distinguishes itself from get_earnings_history by noting the latter is for historical EPS actual-vs-estimate.
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: 'what did management say about X on the last call', 'was the most recent call bullish or bearish', 'summarise the highlights'. Directs users to get_earnings_history for historical EPS data, offering clear when-to-use and when-not-to guidance.
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?
Annotations already indicate readOnlyHint, idempotentHint, destructiveHint=false. Description adds behavioral details: data is ordered oldest-first, returns next_quarter with consensus estimate, low/high band, and expected report date. 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?
Description is well-structured and concise: starts with core purpose, then data format, then next_quarter, then example queries, then parameters. No fluff; each 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 presence of an output schema (not shown), the description does not need to detail return values. It already explains row contents and next_quarter info. For a 2-param tool with good annotations, it is fully 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 description coverage is 0%, but description explains both parameters: ticker (e.g., 'AAPL'), quarters (default 8, max 40). This adds meaning beyond the schema, which only specifies 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?
Description clearly states it returns quarterly earnings time series for a ticker, with chart-ready data and next_quarter info. It includes specific example queries like 'AAPL earnings history' and 'did NVDA beat last quarter', distinguishing it 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?
Description provides concrete use cases (e.g., 'earnings surprise trend', 'EPS beat/miss the past 4 quarters') that guide the agent on when to use this tool. However, it does not explicitly state when not to use it or compare with alternatives like get_ticker_earnings.
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 indicate safe read-only operations. The description adds behavioral details: default filtering logic, parameter limits (max 200), and return structure. 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 complete, starting with a clear purpose, followed by a rationale for defaults, then a well-organized parameter list. 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 7 optional parameters, solid annotations, and an output schema, the description covers all necessary context: filtering behavior, return format, and usage examples. It does not replicate output schema 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?
With only 29% schema coverage, the description compensates fully by explaining each parameter's purpose, default values, and special behaviors (e.g., empty string to disable filters). Examples for countries and impact levels are provided.
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 economic events, listing specific examples like Fed meetings, jobs reports, CPI, GDP. It distinguishes from sibling tools like get_earnings_calendar by specifying economic calendar 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 explains when to use defaults and how to customize via parameters. It notes the rationale for filtering US High/Medium impact items. However, it does not explicitly compare to sibling tools.
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=true, idempotentHint=true, and destructiveHint=false, so the tool is clearly read-only and safe. The description adds value by explaining the specific calculation method (weighted average of holdings' ratings), which goes 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?
The description is extremely concise: two sentences plus a parameter explanation. Every sentence is meaningful and front-loaded with the core purpose. 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?
For a tool with only one parameter and an output schema (assumed present), the description covers the purpose, parameter format, and computation method. No gaps remain for an agent to invoke the 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?
The input schema has 0% schema description coverage, so the description must compensate. It clearly explains the 'tickers' parameter: 'Comma-separated ETF tickers (e.g., 'QQQ,SPY,VTI')', providing format and example. This adds substantial 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 states it 'Returns analyst consensus for ETFs based on weighted average of holdings' ratings.' This specifies the verb (returns), resource (analyst consensus for ETFs), and methodology (weighted average of holdings' ratings), distinguishing it from sibling tools like get_etf_holdings 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 explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for getting ETF analyst consensus but doesn't contrast with alternatives or provide usage boundaries. Among many sibling tools, clear differentiation is left to the agent.
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?
The description adds significant behavioral context beyond annotations: sorting order by holding market value, pagination behavior, and detailed return fields. Annotations already provide readOnlyHint, idempotentHint, etc., and the description complements them 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 clear first sentence, an Args block, and a Returns block. It is concise yet comprehensive, with 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?
Despite no explicit output schema provided, the description enumerates all return fields in detail. For a paginated list tool, this covers all needed information for correct invocation.
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%, meaning the description carries all parameter information. It explains each parameter: ticker with examples, page defaults, page_size with default and max. This adds substantial meaning beyond the schema's type/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 it returns the list of ETFs holding a specific stock, sorted by market value. The verb 'Returns' and resource 'list of ETFs holding a stock' are specific, and it distinguishes from sibling tools like get_etf_holdings (ETFs' holdings) and get_etf_top_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 conveys the tool's purpose clearly but does not explicitly state when to use it versus alternatives or provide exclusions. The context from sibling names helps, but direct guidance is absent.
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 indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds no extra behavioral context beyond what annotations provide, but does not contradict 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 extremely concise, with two sentences and an Args line. 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?
For a simple read-only tool with one parameter and an output schema, the description covers the essential purpose and parameter. It does not explain output format, but that is covered by the 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?
With 0% schema coverage, the description compensates by clearly stating the ticker parameter is an ETF ticker and providing an example ('QQQ').
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 analyst forecasts for a specific ETF, listing consensus, price target, and upside. It distinguishes from siblings like get_etf_holdings and 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 implies usage when an ETF forecast is needed but provides no explicit guidance on when to use versus alternatives or any prerequisites.
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 declare readOnly, openWorld, idempotent, non-destructive. Description adds concrete output fields per mode and explains behavior of sort_by and limit, providing useful 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?
Well-structured with clear sections for modes and parameter descriptions. Slightly verbose but 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?
Covers inputs, mode selection, and output fields. With an output schema present, return values are handled. Missing edge cases like error handling or ticker validity, but sufficient for effective use.
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 only 33%, but description thoroughly documents all three parameters: ticker example, sort_by options, limit behavior. Adds meaning beyond the schema, especially for sort_by enumeration and the distinction between modes.
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 lists ETF constituents with two modes (base and top-performers). Distinguishes from sibling tools like get_etf_top_stocks by specifying it returns individual holdings with weights.
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 recommends top-performers mode for specific questions like 'which stocks in XLK rose most this week', but does not explicitly state when not to use or alternatives beyond implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_screenerBRead-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, idempotentHint, and no destructiveness. The description adds the specific filter values but does not disclose behavioral traits beyond those annotations (e.g., result ordering, pagination, response shape). It is adequate but not enhanced.
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 plus a parameter list. It front-loads the primary action and then lists arguments. There is no extraneous text, and every element contributes to understanding.
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 for safety), the description sufficiently explains the tool's purpose and parameters. It does not detail the return format, but the output schema covers that. Minor gap: no mention of the result being a list or any filtering logic when multiple parameters are combined.
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 baseline is 3. The description lists example values for each parameter, which mirrors the schema descriptions. It adds marginal readability but no new semantic meaning beyond what the schema already 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 the tool's action ('Filters ETFs') and the three filtering dimensions (asset class, category, focus). It distinguishes from sibling ETF tools (e.g., get_etf_holdings) implicitly by its screening nature, but does not explicitly contrast. The verb and resource are specific.
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 get_etf_analysis or get_etf_top_stocks. There is no mention of prerequisites, default behavior when no filters are provided, or when not to use. The agent must infer usage from the name and schema.
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, destructiveHint, idempotentHint. Description adds context that it includes analyst ratings, but does not explain what 'top' means (e.g., by weight) or any limits. Bar is lowered due to annotations, but missing details.
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 param. No wasted words, front-loaded 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?
For a simple tool with one parameter and an output schema, the description is mostly complete. Missing minor detail on how 'top' is determined, but overall adequate.
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 an example 'QQQ' provided. With 0% schema description coverage, the description compensates well by explaining the argument clearly.
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 top stock holdings within an ETF along with analyst ratings. Distinguishes from siblings like get_etf_holdings (all holdings) and get_etf_analysis (analysis, not holdings with ratings).
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: when you need top holdings and ratings for an ETF. No explicit when-to-use or when-not-to-use, and no comparison to sibling tools.
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 indicate read-only, idempotent, non-destructive behavior. The description adds valuable conventions: margins as percentages, cash outflows as negative numbers, and ordering of periods. 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 and bullet points. Slightly verbose but every sentence adds information. Could be more concise without losing 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?
Covers all essential aspects: input parameters, output format (flat object fields), conventions, and example use cases. An output schema exists, but description still provides helpful 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 only 33% (period described). The description explains ticker, period (with options and extent), and count (default, max, ordering) in detail, adding significant value 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 the tool provides financial statements time series for a ticker, chart-ready, with detailed field breakdown across statements and ratios. It lists example queries, clearly distinguishing it from siblings like get_stock_quotes or get_earnings_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 includes 'Use for:' with concrete examples, effectively guiding when to use the tool. It does not explicitly state when not to use or mention alternatives, but the examples provide clear context.
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=true and destructiveHint=false, indicating safe read-only behavior. The description adds value by stating that output rows are ordered for direct plotting and include specific fields (date, open, high, low, close, volume), which goes beyond the 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?
The description is reasonably concise but includes a bulleted args section that repeats some schema information. It is front-loaded with the key purpose, but the args list could be integrated more succinctly.
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 but referenced), the description covers the core functionality and return format adequately. It does not discuss error handling, rate limits, or data coverage limits, but these are not critical for a simple historical 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?
The schema description coverage is only 33% (only symbol has a description), but the description lists all three parameters with brief explanations, including format hints (e.g., 'YYYY-MM-DD' for dates). This adds some meaning beyond the schema, though details on date range constraints or default behavior are missing.
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 daily OHLCV time series for a forex pair, specifying it is 'chart-ready' with fields ordered for direct plotting. This distinguishes it from sibling tools like get_forex_quote (current quote) and get_all_forex_quotes (list of pairs), as well as historical 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?
The description implies usage for fetching historical forex data via the args section (symbol, optional date range), but does not explicitly contrast with alternatives like get_forex_quote or get_all_forex_quotes. No when-not-to-use or prerequisite information is provided.
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, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds 'real-time' which aligns with openWorldHint. No contradictions or additional behavioral context beyond what annotations 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 short and front-loaded with the main purpose. The 'Args' section is redundant with the schema but structured clearly. Removing the redundant lines would improve 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 simplicity of the tool (single required parameter, annotations covering safety, output schema existing), the description provides sufficient information for correct usage. No missing essential 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%, so baseline is 3. The description repeats the parameter info and provides example values, which adds marginal semantic value. However, it does not clarify any constraints 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 real-time exchange rate quotes for a single forex pair, with examples. However, it does not differentiate from the sibling 'get_all_forex_quotes' which likely returns quotes for multiple pairs.
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 by the description: use for a single real-time quote. No explicit when-to-use or alternatives compared to other forex tools like 'get_forex_historical' or 'get_all_forex_quotes'.
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 provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows it's a safe read operation. The description adds value by detailing the returned JSON structure including fields like rank, stars, and is_active, going beyond what annotations 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 concise and well-structured: a one-line summary, a sibling comparison, then Args and Returns sections. Every sentence provides useful 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 tool's low complexity (2 parameters, output schema present), the description is fully complete. It explains the tool's purpose, relationship to alternatives, parameter details, and return format, leaving 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 input schema has 0% coverage (no descriptions for parameters), but the description compensates by explicitly documenting both parameters: 'ticker' and 'limit' with default and max values. This adds necessary meaning beyond the 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 per-fund hedge fund holdings and recent transactions for a ticker, listing specific fields. It explicitly distinguishes itself from the sibling tool 'get_hedge_fund_holdings' by contrasting it as the aggregate share-count timeseries.
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 clear context by mentioning 'Complements get_hedge_fund_holdings', implying when to use each tool. It also specifies defaults and max for the limit parameter. However, it does not explicitly state when not to use this tool or list other alternatives beyond the one sibling.
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 provide readOnlyHint, idempotentHint, destructiveHint. Description adds behavioral context: returns up to 60 snapshots, includes summary block, source from quarterly 13F filings with up to 45-day lag. This 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?
Description is concise with no wasted words. Structured as purpose, details, alternative guidance, then parameter descriptions. Front-loaded with core 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?
Given tool complexity (2 parameters) and presence of output schema, description covers return format, source, lag, limit behavior, and alternative sibling tool. 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?
Schema has no descriptions (0% coverage), but description's Args section explains ticker and limit, including default and max value. Fully compensates for 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 clearly states it returns 'Hedge-fund share-count history for a ticker' with details on snapshots and summary block. It distinguishes from get_assets_data, which provides current sentiment without timeseries.
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 this tool vs get_assets_data: 'For a snapshot of current sentiment without the timeseries, use get_assets_data.' Also mentions data lags and max limit constraints.
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, openWorldHint: true, idempotentHint: true, destructiveHint: false, indicating safe behavior. The description adds that data is chart-ready and ordered for plotting, which is useful but does not disclose potential rate limits or other 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?
The description is concise, with a clear two-paragraph structure: first stating purpose and output format, then listing parameters. Every sentence adds value, no redundancy. 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 the presence of an output schema (not shown but indicated), the description does not need to explain return values. It covers the essential purpose, parameter details, and data format. Sibling tools are provided for context. The description is complete for an agent to understand and invoke the 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 low (33%), with only the 'symbol' parameter having a description. The tool description compensates by detailing parameter formats (YYYY-MM-DD for dates), default for 'to_date', and a concrete symbol example ('^GSPC'), adding meaningful context.
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 provides 'Daily OHLCV time series for a major market index' and specifies the data format as chart-ready with columns date, open, high, low, close, volume. This distinguishes it from sibling tools like get_index_quote (current 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 does not explicitly state when to use this tool versus alternatives. While the context implies it is for historical index data, there is no mention of related quote tools or selection criteria. However, the name and sibling list provide implicit guidance.
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 declare readOnlyHint and idempotentHint; description adds value by specifying real-time nature and listing which indices are available, enhancing 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?
Description is concise and front-loaded, clearly stating the action and then listing indices in a structured format without any 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?
Despite no output schema shown, the description fully covers all needed context: what it returns (real-time quote), valid symbols, and parameter format. Output schema exists to explain return values.
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% coverage for the symbol parameter, but description adds a comprehensive list of valid index symbols with examples, significantly aiding correct invocation.
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 quote for a major market index, lists supported indices, and distinguishes from sibling tools like get_stock_quotes or get_commodity_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?
Description provides clear context for when to use (getting real-time index quotes) and lists valid symbols, but does not explicitly exclude cases or mention alternatives.
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 already declare readOnlyHint, idempotentHint, destructiveHint. Description adds crucial detail: price is approximate (value/shares, no exact price from source), and each row's fields are listed. 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?
Concise and well-structured. Front-loads purpose, uses bullet list for output fields, no unnecessary text. 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?
Despite many sibling tools, the description fully covers what the tool returns, edge cases (approximate price), and alternative tools. Complete for its 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 0%, but description explains limit default (30) and maximum (100) beyond schema. Also clearly states ticker is required. Adds meaningful context.
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 retrieves individual corporate-insider transactions (Form 4) for a ticker, sorted newest first. It clearly distinguishes from retail sentiment tools like get_assets_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?
Provides explicit guidance: for retail/individual investor sentiment, use get_assets_data and read investorActivity. This specifies when not to use this tool and offers alternatives.
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 indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description goes beyond by detailing the full nested JSON structure, explaining field semantics (e.g., investorScore meaning, divergence signal between crowd and best investors), and noting edge cases like empty age-bucketed lists. This adds substantial behavioral 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 lengthy but well-structured: starts with a one-sentence purpose, then systematically breaks down the return JSON with bullet points and nested fields. Every part is informative, though some redundancy 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?
Despite one input parameter, the tool returns complex nested data. The description covers all top-level keys and their fields, provides interpretive hints (e.g., the divergence signal), and notes practical behavior (shorter lists for tenure buckets). Given the output complexity, the description is thorough and 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?
With only one parameter (ticker) and 0% schema description coverage, the description compensates by providing a clear example ('e.g. NVDA') and context. This adds meaning beyond the bare 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 states the tool returns crowd/retail investor sentiment for a stock, with a specific verb ('Returns') and resource ('crowd/retail investor sentiment'). It uniquely distinguishes from siblings like get_stock_quotes or get_technical_analysis by focusing on sentiment and detailed portfolio-level 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 does not provide any guidance on when to use this tool versus alternatives (e.g., when to prefer over get_analyst_ratings or get_blogger_sentiment). No explicit when-not or context is given.
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, idempotentHint, and no destructiveness. The description adds date range behavior with defaults, but doesn't detail additional traits like output format or pagination. Provides some 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?
Description is concise with a docstring-style parameter list. It front-loads the purpose and then explains parameters. Slightly verbose for a simple tool, but 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?
Given zero required parameters, existing output schema, and annotations covering safety, the description is reasonably complete. It covers purpose and parameter formatting. Missing usage guidelines but acceptable for a simple 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 coverage is 0%, so description carries burden. It adds meaning by specifying ISO format and default values for both parameters, which the schema omits. Could be improved with examples or constraints.
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. It uses a specific verb 'Returns' and resource 'IPOs', distinguishing it from sibling tools which cover different 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?
No explicit guidance on when to use this tool versus alternatives. The description implies date range usage through parameter defaults, but lacks when-not-to-use or context for selecting IPOs over other calendars.
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 already declare readOnly, idempotent, openWorld. Description adds that results are newest first, from specific feed, each with excerpt, and explains parameter effects. 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?
Front-loaded with purpose, then usage, then parameter details, then return format. Efficient two paragraphs, but could be slightly more structured (e.g., bullet points for params).
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 all aspects: purpose, usage, parameters, return format, and links to get_article for full text. Good annotations and output schema complement. 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?
Schema covers only 25% of parameters. Description compensates by explaining all four parameters: tickers (optional comma-separated), category (optional with enum via schema), from_date (date format), limit (default 20). Adds meaning beyond 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?
Clearly states it retrieves latest TipRanks news articles from editorial/wire feed, newest first, with excerpts. Explicitly differentiates from sibling get_assets_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?
Describes use cases: general market news, news on specific stocks with summaries, browsing a category. Implicitly covers when not to use by contrasting with get_assets_news and directing to get_article for full text. Could be more explicit about exclusions.
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?
Annotations already mark it as read-only, idempotent, and non-destructive. The description adds valuable context: it's cached, refreshed every ~4 hours, AI-generated, and not authoritative. 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?
Description is concise (4 sentences), front-loaded with the core purpose, and every sentence adds necessary 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 zero parameters and presence of output schema, the description fully covers the tool's behavior: cache freshness, return format, fallback, and usage caveats. 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?
No parameters exist, so schema description coverage is 100%. Baseline score of 4 is appropriate since no additional param info 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?
Description clearly states it returns a cached equities market sentiment snapshot with specific fields (overallSentiment, atmosphere, etc.). It distinguishes itself from sibling tools like get_market_movers or get_investor_sentiment by focusing on aggregated AI-generated 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?
Description explains it reads cache only and does not trigger regeneration, and returns unavailable if no cache. This clarifies when it's appropriate to use, though it doesn't explicitly state when not to use or provide 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, openWorldHint, idempotentHint, and destructiveHint false. The description adds context about what the tool returns (gainers, losers, active) and explains category/country codes, which is beyond annotations. 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 with a one-sentence purpose and an Args list. However, the Args are somewhat unstructured (plain text instead of bulleted or formatted). Still effective 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 output schema present and annotations, the description covers the primary purpose, parameters, and some behavioral context. It does not detail return structure or sorting, but output schema likely covers that. Adequate for a market movers 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% (category and country have descriptions, num does not). The description adds an 'Args' section that explains all three parameters, including num, which schema does not. This 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 'Returns today's market movers: biggest gainers, losers, most active.' which is a specific verb and resource. Among siblings, it is distinct from other quote or performance 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 market movers data but does not explicitly state when to use this tool vs alternatives like get_market_performance or get_trending_stocks. No when-not or alternative tool 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_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 readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. Description adds behavioral context beyond annotations by specifying output contents (sector breakdown, top/bottom performers), which helps the agent understand what the response includes. 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?
Description is single paragraph, front-loaded with purpose, then lists parameters. No extraneous words. Could be slightly more structured (e.g., bullet list for args), but efficient and clear.
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 single parameter and existence of output schema, description covers the tool's purpose and primary input adequately. Does not explain return format or list possible outputs, but output schema may cover that. For a simple read tool, it is fairly 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 0% description coverage (only type and default). Description compensates by listing explicit country code examples ('us', 'ca', 'gb', etc.), providing concrete usage guidance beyond the schema's default 'us'. This adds significant meaning for the agent.
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 'Returns market-wide performance for a specific country' with specific deliverables (average returns, sector breakdown, top/bottom performers). Verb 'returns' and resource 'market-wide performance' are explicit, distinguishing it from sibling tools 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?
Provides list of country codes in arg description, which aids proper selection but does not explicitly state when to use this tool versus alternatives (e.g., get_market_movers for daily movers, get_sector_analysis for sector data). Usage context is implied but not delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_usageRead-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. Only tool calls are metered; the initial connection handshake is not.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses that quotes are typically delayed ~15 minutes and that Greeks and implied volatility are not available, advising not to fabricate them. This adds meaningful context beyond annotations (readOnlyHint, idempotentHint), and 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 well-structured with a summary line, a column list, a behavioral note, and an Args section. It is informative but slightly lengthy due to the column list; however, 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 presence of an output schema (not shown but noted), the description covers parameters and return columns adequately. With 6 parameters and 2 required, it provides sufficient context for an agent to use the 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 33%, but the description provides an Args section that explains all parameters including ticker, expiration_date format, contract_type options, and filters. This compensates for low schema coverage, adding 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 'Contracts at one expiration, enriched with price + OI + volume', specifying the verb (get), resource (options chain), and scope (one expiration). It distinguishes from siblings like get_options_contract (single contract) and get_options_expirations (list of dates).
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 guides usage: requires expiration_date from get_options_expirations, and explains contract_type options and optional filters. It does not explicitly state when not to use or list alternatives among siblings, but the context is clear enough for an agent.
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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by stating quotes are delayed ~15 minutes and Greeks/IV are unavailable, which are important 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 only 5 sentences, front-loaded with the core purpose, followed by essential details about ticker format and data limitations. No extraneous content.
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 an output schema and only one parameter, the description fully covers input format, data characteristics, and limitations. It is complete for its 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%, and the description adds a detailed explanation of the OCC ticker format (prefix, date, call/put, strike) and notes that the 'O:' prefix is optional, significantly enriching the parameter meaning.
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 action ('Snapshot one OCC contract') and specifies the data returned (price, OI, intraday OHLCV, last trade), distinguishing it from siblings like get_options_chain 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 does not explain when to prefer this tool over alternatives or provide usage context. It only describes the ticker format and data limitations, leaving the agent to infer when 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_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 indicate readOnly, idempotent, and non-destructive behavior. The description adds the behavioral detail that past expirations are excluded, which is not in annotations, enhancing transparency. 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?
Three sentences: purpose, exclusion, usage guidance with parameter. Front-loaded with the primary action, 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?
For a simple one-parameter tool with an output schema, the description is complete. It covers what it does, exclusions, and how to use the output. No need to detail return values due 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 the description must compensate. It does so by documenting the single parameter 'ticker' with an example and clarifying it is the underlying ticker, adding significant meaning beyond the schema's 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 lists future expiration dates for a ticker's listed options, with the verb 'List' and specific resource 'options expirations'. It distinguishes from sibling tools like get_options_chain by noting the result is used as input to that tool.
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 says to use the result as input to get_options_chain, providing clear usage context. It does not mention when not to use or give alternatives, but the guidance is sufficient for this simple tool among many options-related siblings.
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 destructiveHint. The description adds context about selection criteria (size/sweep alerts) and return fields, enhancing transparency without 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 extremely concise (3 sentences + bullet-style Args) with no wasted words. The first sentence front-loads the main purpose, followed by return details and usefulness.
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 (not shown but confirmed), the description covers the tool's purpose, input parameters, and return fields adequately. It does not explain how 'unusual' is determined beyond size/sweep alerts, but overall offers sufficient context 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?
With 0% schema description coverage, the description fully compensates by explaining both parameters: ticker as 'Underlying ticker' and limit as 'Max trades to return (default 25)'. The explanations are clear and 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 'Recent unusual option trades for an underlying (size/sweep alerts)' and details the returned fields. It distinguishes from siblings like get_options_chain, get_options_contract, and get_options_expirations by focusing on flagged trades, not full chains or single contracts.
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 spotting large bullish or bearish positioning via unusual trade alerts, but lacks explicit guidance on when to use this tool versus alternatives. No exclusions or when-not scenarios are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_peersBRead-onlyIdempotentInspect
Returns peer companies for a stock with comparative metrics.
Args:
ticker: Stock 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=true, destructiveHint=false, and idempotentHint=true. The description adds limited behavioral context beyond the return type. No contradictions, but minimal added 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?
Extremely concise: two sentences plus an args section. Every word adds value, and the purpose is front-loaded. No wasted content.
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 adequately covers the tool's purpose and the single parameter. It does not need to explain return values, as the output schema handles that.
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 coverage, the description provides a clear meaning for the ticker parameter with an example ('e.g. 'AAPL''), compensating well for the schema's lack of detail.
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 peer companies with comparative metrics for a stock. It uses a specific verb and resource, and is distinct from sibling tools like get_stock_quotes or get_analysts_by_firm, though not explicitly differentiating.
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 vs alternatives. It does not specify context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name and description.
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 readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description adds that it returns trades or holdings, but no other behavioral context is needed.
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 lines plus argument details, no wasted words. Front-loaded with purpose, then prerequisite, then parameter 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?
Given the annotations and presence of an output schema (implied), the description provides sufficient context: purpose, prerequisite, and parameter semantics. It is complete enough 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 coverage is 100% and description adds value by specifying that politicianId comes from get_politicians and activity is limited to 'trades' or 'holdings', enhancing the schema documentation.
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 specific politician's stock trades or holdings'. It is distinct from sibling tools like get_politicians and others, as it focuses on a specific politician's 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?
The description explicitly instructs to first call get_politicians to obtain the politicianId, providing a clear prerequisite. It does not include when-not to use or alternatives, but 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_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 declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which fully convey the behavioral safety profile. The description adds no additional behavioral context beyond listing return fields, which is already covered by the output schema. The description does not contradict annotations but fails to add value beyond 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 very concise: two short sentences that first state the tool's purpose and then list the returned data. Every word earns its place; there is 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 tool has no parameters, an output schema exists, and annotations are comprehensive, the description fully covers what is needed. It succinctly describes what the tool returns, which is sufficient for an agent to understand 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?
There are no parameters (schema coverage is trivially 100%). With zero parameters, the baseline is 4. The description adds value by listing the return fields (name, party, state, position, net worth, profile), which helps the agent understand the output 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 the tool returns a list of politicians tracked for trading activity and enumerates the fields returned (name, party, state, position, net worth, profile). The name 'get_politicians' is unambiguous and specific, distinguishing it from sibling tools that retrieve other types of 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 does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. However, the tool is straightforward (a simple list with no parameters), so the absence of detailed guidelines is acceptable but not exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_analysisRead-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 |
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 indicate read-only, idempotent, non-destructive behavior. The description adds value by detailing the return fields, going beyond the 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 concise: one sentence for purpose, a bullet-like list of fields, and one line for the argument. 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?
For a simple read tool with one parameter and an output schema, the description adequately covers the return fields and parameter prerequisite. 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 schema has no description for portfolio_id (0% coverage), but the description explains it comes from list_my_portfolios, adding essential context beyond the type declaration.
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 holdings for a TipRanks portfolio, listing specific fields. It distinguishes from sibling tools like list_my_portfolios by requiring its output as input.
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 the prerequisite of using list_my_portfolios to obtain the portfolio_id. However, it does not explicitly exclude other usage scenarios or mention 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_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, idempotentHint, openWorldHint, and non-destructive. The description adds that the monthly history is chart-ready, which is useful context but not substantial 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 extremely concise (two sentences plus an Args line), front-loaded with the key returns, and contains no superfluous 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, the description adequately covers the tool's purpose and parameter. It is complete for a simple read-only tool with good annotations.
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 compensates by explaining that portfolio_id is one of the IDs returned by list_my_portfolios, providing clear semantic meaning for the 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?
Description clearly states the tool returns lifetime, 1mo, 6mo, 12mo, YTD returns, Sharpe ratio, and a monthly-return time series. It specifies the monthly history is chart-ready. However, it does not explicitly distinguish from sibling tools like get_portfolio_performance 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 mentions that portfolio_id should be one of the IDs from list_my_portfolios, providing a prerequisite. However, it does not offer guidance on when to use this tool versus 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_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?
The description adds behavioral context beyond annotations: it specifies that the time series is 'chart-ready — aligned dates with portfolio and benchmark yield columns' and lists numerous return fields. Annotations already signal read-only, idempotent, and non-destructive nature, so the description enriches that with concrete output details.
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 fairly concise given the breadth of outputs. It uses a list format for clarity and front-loads the key components. Minor verbosity (e.g., 'A daily-yield time series...') but still effective.
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 tool returning complex performance data, the description covers all major output categories. It mentions the prerequisite for portfolio_id. With an output schema (assumed present), the description is sufficiently complete for an agent to understand what to expect.
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 only defines portfolio_id as an integer with no description. The description adds critical context: 'One of the IDs returned by list_my_portfolios', which explains where to obtain valid values. With 0% schema description coverage, this is a significant improvement.
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 full performance' including stats, gains, best trade, recent activity, and a time series benchmarked against S&P 500. The verb 'returns' and resource 'portfolio performance' are clear. It distinguishes from sibling tools like get_portfolio_analysis and get_portfolio_holdings by listing specific return components.
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 vs alternatives such as get_portfolio_analysis or get_portfolio_overview. The only contextual hint is that portfolio_id comes from list_my_portfolios, but no decision criteria are provided.
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 declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds context about data scope (12 months), ordering (newest first), and the specific fields included, 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 well-structured with a clear purpose sentence, a list of fields, and usage guidance. It is slightly verbose due to listing all fields, but that is justified for 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 exists, the description need not detail returns. It covers the tool's scope, ordering, and field content sufficiently for a simple single-parameter 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?
Even though schema coverage is 0%, the description explains the ticker parameter with examples ('NVDA', 'AAPL'), 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 recent Wall Street analyst rating actions on a single stock for the trailing 12 months, newest first. It distinguishes itself from the sibling tool get_assets_data by explicitly directing users there for aggregate consensus.
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 when to use this tool (for detailed ratings) and when not to use it (for aggregate consensus), providing an alternative sibling tool get_assets_data.
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, so the description's addition of the sorted output and specific metrics provides useful behavioral context beyond the annotations. No contradictions are present.
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 front-loads the key information (returns sector analysis, 11 sectors, metrics, sorting). Every part adds value, with no redundant or extraneous content.
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 there are no parameters, an output schema exists, and annotations provide safety behavior, the description fully covers what the tool does and how results are sorted. It is complete enough for an AI agent to understand the tool's output and purpose.
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 (0 params), and schema description coverage is 100% since no parameters exist. The description does not need to parameter semantics, and a baseline of 4 is appropriate for this case.
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 sector-level analysis for all 11 US sectors with specific metrics (average P/E, analyst upside, buy ratio, stock count) and notes it is sorted by average analyst upside. This provides a clear verb and resource, distinguishing it from sibling tools that focus on individual assets or other segments.
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 makes it evident that this tool is for obtaining a sector-level overview with specific metrics and sorting. While it does not explicitly state when not to use it or list alternatives, the purpose is clear enough in the context of many sibling tools that operate on individual assets, so the usage context is well implied.
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 declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds that the data is 'Updated throughout the trading day' and describes the output format, which provides useful behavioral 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 concise with four sentences: purpose, output format, usage guidance, and parameter details. No redundant 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?
Given the tool's simplicity (one parameter, clear annotations, and output schema exists), the description covers purpose, usage, and parameter semantics. It lacks only minor details like error handling for invalid tickers, but overall 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?
With 0% schema description coverage, the description fully compensates by explaining 'tickers: Comma-separated tickers (e.g. 'AMZN' or 'AMZN,NVDA')', adding format and examples that the schema alone does not convey.
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 provides a 'catalyst summary explaining why a stock is moving', specifying it is TipRanks-generated. It distinguishes from sibling tools like get_stock_quotes or get_earnings_calendar by focusing on the reason behind a price 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 says 'Use to explain today's move for a specific stock', which indicates when to use it. However, it does not mention when not to use it or directly contrast with sibling tools, 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_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?
Annotations already indicate read-only and idempotent behavior. The description adds critical details: series downsampling (250 points, latest retained), output fields (summary, series), and period restrictions. 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 (~100 words), well-structured with bullet points and formatting. The main purpose is front-loaded, and every sentence adds meaningful 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 rich annotations and output schema existence, the description is complete: covers input constraints, output summary, downsampling behavior, and period validation. No gaps for agent decision-making.
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 compensates: explains tickers as comma-separated up to 5, period as lookback window with default 'ytd' and enumerated values, and details the output 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 the tool provides 'Historical daily closing prices for up to 5 stocks or ETFs.' It specifies the output structure and period options, and the focus on historical prices distinguishes it from siblings like get_stock_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 explicitly lists valid period values and the max tickers. While it doesn't explicitly state when to avoid this tool or name alternatives, the sibling list and context suffice for an agent to differentiate.
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?
Beyond annotations (readOnlyHint, etc.), the description explains extended-hours behavior, the pre_post_market block, and market-state flags. It adds valuable context about what happens when markets are closed, which annotations alone do not 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 concise (6 lines), front-loads the purpose, and every sentence adds value. No redundant or vague statements.
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 and annotations cover behavioral hints, the description is complete. It explains return fields, market states, extended-hours behavior, and usage differentiation. 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?
Schema coverage is 0%, but the description explains the tickers parameter clearly: 'Comma-separated tickers' with examples. It also notes it accepts string or array. This compensates for the lack of schema 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 real-time price quotes for stocks or ETFs and lists specific data fields. It explicitly distinguishes from forex pairs, differentiating it from siblings like get_forex_quote, get_commodity_quote, 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 provides explicit guidance: 'For forex pairs use get_forex_quote; this endpoint is stocks/ETFs only.' It also explains when extended-hours data is relevant. However, it does not explicitly mention alternatives for crypto or commodities, but the context of sibling tools makes it clear.
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 declare readOnly, idempotent, and non-destructive. The description reinforces this by stating it 'Returns' data and details the output structure. It adds behavioral context about default date ranges and filtering, which is valuable 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 and well-structured. It starts with a clear main sentence, then lists Args and Returns in a clean format. 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?
Despite no required parameters and an output schema (implied), the description covers parameter details and return fields completely. It provides sufficient context for an agent to use the tool effectively.
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 low (25%, only type has description). However, the description fully explains all parameters: fromDate, toDate, type, limit, including defaults and behaviors. This compensates completely, making parameters clear.
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 stock-split calendar with split ratios and direction. It specifies use cases: upcoming splits, reverse-split alerts, and historical split lookup. This distinguishes it from sibling tools like get_dividend_history or get_earnings_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 includes explicit use cases ('Use for upcoming splits, reverse-split alerts, historical split lookup.'), providing context for when to use. It does not explicitly mention when not to use or compare to alternatives, but 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_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 declare readOnly=true, idempotent=true, etc. Description adds value by specifying that ETF tickers return no data, explaining the output format (indicator values and scoreScale), and documenting input format details. 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, exclusions/alternatives, args, returns. Concise yet informative—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 (inferred from context), the description sufficiently covers input, scope, output interpretation, and alternatives. No gaps for an agent to understand usage.
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 50%, but description compensates by explaining the tickers parameter format and ETF behavior, and reiterating timeframe options with examples. 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 the tool returns technical indicators (RSI, MACD, etc.) for individual stocks. Distinguishes from ETF-specific tools by explicitly stating it supports stocks only and listing alternative tools 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?
Provides explicit when-to-use (individual stocks) and when-not-to-use (ETFs) with a list of alternative tool names. Also describes input format and timeframe options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticker_earningsBRead-onlyIdempotentInspect
Returns upcoming and recent earnings dates for a specific stock.
Args:
ticker: Stock ticker symbol (required)
| 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, idempotentHint=true, destructiveHint=false. Description adds no behavioral context beyond annotations (e.g., no mention of data freshness, pagination, or temporal boundaries).
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, front-loaded. The 'Args' section is redundant with the schema. Could be more concise by removing the redundant parameter listing.
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 are not needed. However, missing clarification on 'upcoming vs recent' temporal scope. For a single-parameter tool with good annotations, it is adequate but not fully 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 0% description coverage; description merely says 'ticker: Stock ticker symbol (required),' adding minimal meaning. No format, example, or case sensitivity guidance.
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 'returns upcoming and recent earnings dates for a specific stock,' using a specific verb and resource. It distinguishes from siblings like get_earnings_calendar (range-based) and get_earnings_history (historical).
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 vs alternatives such as get_earnings_calendar or get_earnings_call_summary. Missing explicit when/when-not or 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_top_hedge_fund_managersARead-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 the tool as read-only, idempotent, and non-destructive (readOnlyHint=true, idempotentHint=true, destructiveHint=false). The description adds that it ranks by success rate and returns, but does not address any additional behavioral aspects like pagination, default behavior, or output limits. With annotations covering safety, the description provides moderate added 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 extremely concise: two sentences, no filler. It front-loads the core purpose and immediately explains the parameter.
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, the description is largely complete. It could optionally mention that the output is a list of managers, but the name implies this. No major gaps are present.
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 explicitly explains the 'num' parameter: 'Number of managers to return (default 10)'. This adds meaning beyond the schema, which only has a type and default. The description clarifies the parameter's purpose, compensating for the lack of schema-level 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 the tool returns top-performing hedge fund managers ranked by success rate and returns. It uses a specific verb and resource, distinguishing it from sibling tools 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, when-not to use, or references to other tools. The description only states what it does, leaving the agent without decision support.
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 readOnlyHint and idempotentHint, so the description adds value by noting the UK ticker prefix behavior and the lowercase sector filter. 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 extremely concise: a one-sentence purpose followed by a parameter list. Every line adds value, with no redundant 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?
Given the tool is a simple filtered list with an output schema (so return values need not be described), the description covers purpose, parameters, and a behavioral quirk (UK prefix). The only minor gap is not stating that the list is sorted by analyst track record, but the purpose implies 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?
Schema coverage is 67%, but the description adds meaning: it explains 'num' as 'Number of results', 'sector' as an optional filter with examples, and 'country' with the crucial UK prefix note. This compensates for the schema's lack of description on 'num'.
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 stocks most recommended by the best-performing analysts (by analyst track record).' This verb-resource pair is specific and distinguishes it from sibling tools like 'get_trending_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 provides parameter details but lacks explicit guidance on when to use this tool versus alternatives. It does not mention use cases, prerequisites, or exclusions, so the agent must infer from the purpose alone.
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 already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about the Smart Score being a perfect 10/Outperform, but does not contradict annotations. Behavioral transparency is adequate but not enhanced 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 and front-loaded with the core purpose. The parameter details are organized in an 'Args' block. Minor redundancy (e.g., repeated country list) but overall 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 (3 optional parameters) and the presence of an output schema, the description is complete. It explains the Smart Score concept and all parameters sufficiently 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 description adds meaning beyond the schema for all three parameters. The 'Args' block explains num, sector, and country with examples and a special note about UK tickers. Schema coverage is 67% but 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 stocks with the highest TipRanks Smart Score (perfect 10/Outperform). The verb 'returns' and resource 'stocks' are specific, and the purpose is distinct from sibling tools which focus on 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?
No explicit guidance on when to use this tool vs alternatives. It does not mention when not to use it or suggest other tools for similar but different queries (e.g., top-rated stocks by other criteria). Usage is only implied by the description.
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 indicate readOnly, idempotent, non-destructive. Description adds return field details (ticker, SmartScore, etc.) but doesn't disclose additional behavioral traits 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: purpose in first sentence, then clear parameter list. 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?
Given the existence of output schema, the description covers parameters and return fields well. Misses edge cases or error conditions, but sufficient for a read-only tool with good annotations.
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 adds meaningful detail beyond schema: explains daysAgo 30-day rule, trendingType behavior, country examples. Schema coverage is 80%, and description compensates with richer context.
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 trending stocks with recent analyst ratings. It is specific, but doesn't explicitly distinguish from sibling tools like get_top_rated_stocks, which might have overlap.
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 for daysAgo parameter (use 30 for narrow filters), but lacks explicit when-to-use vs alternatives like get_market_movers or get_top_rated_stocks. No exclusions or context for choosing 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 declare readOnlyHint, openWorldHint, idempotentHint. The description adds that it returns only portfolios at time of sign-in and that re-authorization may be needed, which is useful 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?
Very concise, front-loaded with key verb and resource. Two sentences contain essential information 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?
Given no parameters and an output schema, the description is complete. It explains the limitation about sign-in time and the need for re-authorization.
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, schema coverage is 100%. Baseline for 0 parameters is 4, and 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?
The description clearly states it lists portfolios that the connector is authorized to access, returning id and name. It is specific and distinguishable from sibling tools which are mostly get_* operations on 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 indicates when to use (to see authorized portfolios) and mentions re-authorization if portfolios changed. It does not explicitly state when not to use or provide alternatives, but 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.
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