equibles
Server Details
90+ free tools, Claude & ChatGPT: prices, options, SEC filings, 13F, insider, congress, transcripts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- daniel3303/stock-market-mcp-server
- GitHub Stars
- 1
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.5/5 across 108 of 108 tools scored. Lowest: 1.7/5.
Most tools have clearly distinct purposes, with detailed descriptions that cross-reference related alternatives. A few near-duplicate names could cause misselection, notably SearchDocument versus SearchDocuments and GetCftcPositioning versus GetLatestCftcPositioning.
Tool names consistently follow a VerbNoun camelCase pattern: Get for retrievals, Search for discovery, List/Read for document access, and Add/Close/Remove/Update/Watch/Create/Delete for portfolio mutations. Despite the large count, there is no mixing of naming conventions or unpredictable verb styles.
108 tools is an extreme surface area, far beyond the 3-15 well-scoped range and well past the 25+ threshold. Even for a broad financial data platform, this creates a heavy selection burden and substantial context overhead for agents.
The server covers an unusually wide domain: prices, fundamentals, SEC filings, options, insider activity, 13F holdings, short interest, macro data, funds, IPOs, and full portfolio lifecycle management. Notable gaps remain, such as a basic company profile/ticker-resolution tool, dividend history, and analyst estimates, so it is not a perfect 5.
Available Tools
111 toolsAddPortfolioLotAdd Portfolio LotAInspect
Record a user-confirmed purchase or sale in the caller's portfolio. Never infer or guess the instrument, quantity, price or date. For stock, pass ticker. For an option, pass both its underlying ticker and verified OCC symbol; unknown or expired contracts are rejected. quantity is signed: positive for long shares/contracts, negative for short stock or written options. costPerUnit is always the positive per-share price or option premium, never the per-contract total. Identical retries within the duplicate window return the existing lot instead of adding another.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional. A short note from the user about this lot, up to 256 characters. | |
| ticker | Yes | Stock ticker. For an option, the UNDERLYING ticker, e.g. AAPL. | |
| quantity | Yes | Signed size: shares for a stock, contracts for an option. Negative for a short sale or a written option. | |
| portfolio | Yes | The portfolio to add to, by name. | |
| costPerUnit | Yes | Price per share, always positive: paid for a long, received for a short. For an option, the premium per share (a $3.20 contract is 3.20, not 320). | |
| acquiredDate | Yes | The trade date, as yyyy-MM-dd. Cannot be in the future. | |
| optionContract | No | Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to record an option contract; omit it for shares. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate a non-read, non-destructive operation. The description adds substantial behavior: rejects unknown/expired contracts, requires verified OCC symbols for options, signed quantity semantics, positive costPerUnit, and idempotent retries within a duplicate window. This goes well beyond annotations and is critical for correct usage.
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 dense but each sentence adds unique value. It leads with purpose, then covers inference prohibition, instrument specifics, quantity/cost semantics, and idempotency in a logical order. No redundant or filler content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, 5 required) and no output schema, the description covers all critical usage constraints: instrument selection, signed quantity, cost semantics, rejection rules, and duplicate behavior. It doesn't mention prerequisites like portfolio existence, but that's a minor gap likely handled elsewhere. Overall, it's quite complete for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions, so the baseline is 3. The description adds meaningful cross-parameter context: that for options you must pass both the underlying ticker and the optionContract, and that costPerUnit is never the per-contract total. These relationships are not explicit in the schema, elevating the score.
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 first sentence states a specific verb ('Record') and resource ('a user-confirmed purchase or sale in the caller's portfolio'). It clearly indicates this is a write operation for adding lots, distinguishing it from siblings like UpdatePortfolioLot, RemovePortfolioLot, and GetMyPortfolio. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for instrument types (stock vs option), requires user confirmation ('Never infer or guess'), and explains idempotency for retries. It does not explicitly name alternative tools, but the context and sibling names make it obvious that this is for adding new lots. The guidance is solid but could be strengthened by explicitly saying 'use this to add a new lot, not to modify or close an existing one.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ClosePortfolioLotClose Portfolio LotAInspect
Record that the USER sold (or covered, or let expire) all or part of a lot, at a price and on a date. The lot moves out of the open positions and its realized profit is kept. Ask the user for the closing price and date; never guess them from a market quote.
Closing PART of a lot splits it: the closed part keeps the original cost basis and the rest stays open on that same basis, so a later sale is still priced against what was actually paid.
An option that expired worthless closes at a price of 0. An option that was exercised or assigned closes here too, and the resulting shares are a separate AddPortfolioLot.
| Name | Required | Description | Default |
|---|---|---|---|
| lotId | Yes | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. | |
| quantity | No | Optional. How much of the lot to close, as a positive size. Omit to close all of it. | |
| closeDate | Yes | The closing date, as yyyy-MM-dd. Cannot be in the future or before the lot was acquired. | |
| portfolio | Yes | The portfolio holding the lot, by name. | |
| closePrice | Yes | Price per share received (or paid, to cover a short). Zero for an option that expired worthless. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false (not destructive). The description adds valuable context: 'The lot moves out of the open positions and its realized profit is kept.' It explains partial close splitting behavior and how options work. This goes beyond annotations and provides necessary behavioral disclosure.
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: first paragraph states the primary action with a critical user instruction, second explains partial close behavior, third handles options edge cases. Every sentence adds value, no redundancy, and key information 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 tool's complexity (partial close, options handling) and the absence of an output schema, the description covers the recording action, user interaction requirement, splitting behavior, and connection to AddPortfolioLot. A brief note on the expected response (e.g., confirmation or updated portfolio) would make it fully complete, but the current level is strong.
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 meaning: clarifies that quantity is optional (omit to close all), closeDate cannot be future or before acquisition, and closePrice is per share received/paid (zero for expired worthless). This adds value beyond the schema's own descriptions, especially for the zero-price case and the partial close behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb 'Record that the USER sold (or covered, or let expire)' and the resource 'all or part of a lot'. It distinguishes from siblings by noting that options exercised/assigned require a separate AddPortfolioLot for resulting shares, and implies a difference from RemovePortfolioLot by focusing on recording a sale with price and date.
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: 'Ask the user for the closing price and date; never guess them from a market quote.' It explains how to handle options (expired worthless at price 0, exercised/assigned leads to AddPortfolioLot). While it does not explicitly list when not to use this tool versus RemovePortfolioLot or UpdatePortfolioLot, the context and examples are clear enough for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CompareFinancialFactCompare Financials Across CompaniesARead-onlyInspect
Compare one financial concept across several companies for the same fiscal period — peer comparison. Returns one row per ticker with the latest-restated value; tickers with no data for the period are listed separately. Fiscal year/period follow each company's OWN fiscal calendar (e.g. NVDA's fiscal 2025 ended January 2025), so peer rows can cover very different calendar months — check the Period End column.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted'. Call with an unknown value to list supported aliases. | |
| tickers | Yes | Ticker symbols to compare (max 25). | |
| fiscalYear | Yes | Fiscal year, e.g. 2023 | |
| fiscalPeriod | No | Fiscal period: 'FY' (default) or 'Q1'..'Q4' | FY |
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 correctly doesn't repeat that. It adds behavioral detail beyond those annotations: the return format (one row per ticker, latest-restated value, separate listing for tickers with no data) and the fiscal calendar alignment caveat. This enriches the agent's understanding of the tool's output without contradicting 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 two concise sentences: the first states the primary purpose and return behavior, the second provides a critical caveat about fiscal calendar variation. Every sentence earns its place, with the main purpose front-loaded and 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 read-only comparison tool with no output schema, the description adequately covers key operational details: the return row structure, treatment of missing data, and the fiscal calendar nuance. It even directs the agent to check the Period End column, which implies that column exists. This is sufficient for an agent to call the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds extra meaning by highlighting that fiscalYear/period refer to each company's own fiscal calendar, which is not explicitly stated in the schema descriptions but is crucial for interpreting results. This goes beyond the schema to clarify a potential source of confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: comparing a single financial concept across multiple companies for a given fiscal period, explicitly calling it 'peer comparison'. It also specifies the return structure ('one row per ticker...') and distinguishes itself from single-company tools like GetFinancialFact by its multi-company focus.
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 important usage context, notably that fiscal years follow each company's own calendar and that peer rows can cover different months, urging the agent to check the Period End column. However, it does not explicitly name alternative tools or specify when not to use it, though the peer-comparison purpose implies the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CompareInstitutionPortfoliosPortfolio Overlap Between InstitutionsARead-onlyInspect
Compare two institutions' 13F portfolios on their latest common report date. Returns Jaccard and dollar-weighted overlap, portfolio totals, and shared or unique positions. Resolve filer names with SearchInstitutions. For mutual-fund or ETF NPORT portfolios, use GetFundProfile.
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of stocks to return (default: 30, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the latest common quarter; an off-quarter date snaps to the nearest common report on or before it) | |
| institutionName1 | Yes | First institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) | |
| institutionName2 | Yes | Second institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds valuable context: that comparisons happen on the latest common report date, that filer names resolve via SearchInstitutions, and what metrics are returned. This goes beyond annotations but doesn't fully detail pagination or maxResults behavior, though those are in the schema.
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 pack the core purpose, output, and usage guidance with zero waste. The primary action is front-loaded, and the alternative tool is mentioned at the end in a natural 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?
The description clearly states what the tool returns (Jaccard and dollar-weighted overlap, totals, shared/unique positions), which is essential given no output schema. It also points to SearchInstitutions for name resolution and GetFundProfile for NPORT portfolios. Missing details like maxResults clamping are covered in the schema, so overall it's sufficiently 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 100%, so the schema already fully documents all four parameters (including name resolution and date snapping). The description doesn't add new parameter-level meaning beyond what's in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (compare two institutions' 13F portfolios), the timing (latest common report date), and the specific outputs (Jaccard and dollar-weighted overlap, portfolio totals, shared/unique positions). This distinguishes it from siblings like GetInstitutionPortfolio (single institution) and GetFundProfile (mutual funds/ETFs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use an alternative: 'For mutual-fund or ETF NPORT portfolios, use GetFundProfile' and tells users to resolve filer names via SearchInstitutions. This gives clear when-to-use and when-not-to-use guidance beyond the inherent 'compare two' purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CreateMyPortfolioCreate My PortfolioAInspect
Create a new, empty portfolio in the USER's own Equibles account, then add holdings to it with AddPortfolioLot. Ask the user before creating one, since it is their account. Names are unique within an account, and re-creating a name that already exists is rejected rather than merged.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A short name for the portfolio, e.g. Main or Retirement. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context: the portfolio is empty initially, holdings must be added separately via AddPortfolioLot, and duplicate names are rejected rather than merged. This provides useful behavioral detail 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?
Two sentences, front-loaded with purpose, no wasted words. Every sentence adds essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers creation, uniqueness, user consent, and follow-up actions. It is fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'name' parameter. The description adds value by explaining uniqueness constraints and rejection behavior, which are not in 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 creates a new empty portfolio in the user's account, and explicitly mentions the sibling tool AddPortfolioLot for adding holdings, distinguishing it from other 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 instructs the agent to ask the user before creating, providing explicit user consent guidance. It also notes uniqueness constraints and rejection behavior, though it does not explicitly list alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
DeleteMyPortfolioDelete My PortfolioADestructiveInspect
Permanently delete one of the USER's own portfolios and every lot in it, open and closed. This cannot be undone and it destroys the recorded cost basis and realized-profit history. ALWAYS confirm with the user first, naming the portfolio and how many lots it holds. Call GetMyPortfolio if you do not already know.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The exact name of the portfolio to delete. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint=true annotation by detailing exactly what is destroyed: 'every lot in it, open and closed', and what is lost: 'recorded cost basis and realized-profit history'. It emphasizes irreversibility. 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?
Three concise sentences, each substantive. First sentence states action and scope, second explains consequences and irreversibility, third provides safety guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, no output schema, and annotations are present, the description fully covers purpose, usage guidelines, behavioral transparency, and parameter context. The agent can confidently select and invoke this tool correctly after reading the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'name' has 100% schema description coverage, stating it requires 'The exact name of the portfolio to delete'. The description adds only contextual emphasis (confirming the name) but no new semantic details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'permanently delete one of the USER's own portfolios and every lot in it', specifying the resource (portfolio) and scope (including lots). It distinguishes this tool from sibling tools like RemovePortfolioLot or AddPortfolioLot by mentioning deletion of the entire portfolio.
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 the agent to 'ALWAYS confirm with the user first, naming the portfolio and how many lots it holds' and to call GetMyPortfolio if the number of lots is unknown. This provides clear contextual guidance on when and how to use the tool safely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetAtmProgramsAt-the-Market Offering ProgramsARead-onlyInspect
Get a company's at-the-market (ATM) equity offering programs — original agreement date and stated precision, latest amendment, money and/or share capacity, cumulative sales, remaining availability with per-figure as-of dates, expiry, derived exhausted/expired status, and source filings. Bare table figures are normalized only from an exact grounded filing scale header. ATM programs have no tagged XBRL equivalent, so figures come from verified extractions of the company's own 10-K, 10-Q and 8-K filings; only filings from roughly the last 13 months are scanned, so an empty result means no program was captured there — not proof the company runs no ATM program. Nothing is estimated.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation openWorldHint=false implies the tool returns complete results, while the description explicitly states that only the last ~13 months of filings are scanned and an empty result is not proof of absence. This is a direct contradiction, so per rubric transparency is 1. Despite extensive additional detail about normalization and estimation, the contradiction makes the description unreliable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value: return field list, normalization caveat, source/coverage limitation, and estimation disclaimer. It's front-loaded with the core purpose and logically structured, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex financial data tool with no output schema and minimal parameter schema, the description is exceptionally complete. It lists all output components, explains the source filings (10-K, 10-Q, 8-K), the time-window limitation, and the confidence level. The only minor gap is explicit response format, but it's not necessary given the field enumeration.
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 only parameter, ticker, is fully described in the schema with examples and 100% coverage. The description doesn't add parameter-level detail, but none is needed for this self-evident parameter. 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 'Get a company's at-the-market (ATM) equity offering programs' and enumerates specific returned fields (agreement date, capacity, sales, availability, status, source filings). This is a specific verb+resource statement that distinguishes it from sibling tools like GetBuybackPrograms by focusing on ATM offerings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, explaining the 13-month filing scan window and warning that an empty result does not prove the company runs no ATM program. It also explains the data source and XBRL limitation, helping an agent interpret results appropriately. However, it doesn't explicitly name alternative tools or state when-not-to-use, but the caveats are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetAverageTrueRangeAverage True Range (ATR)ARead-onlyInspect
Average True Range (ATR) for a stock. Wilder's volatility measure built from the True Range (max of high-low, |high-prev_close|, |low-prev_close|) and smoothed recursively. Higher ATR means wider daily moves; commonly used for position sizing and stop placement. ATR is denominated in the stock's price units (USD). The smoothing is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Smoothing window (default: 14) | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 6 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, and the description adds non-obvious behavior: the recursive smoothing is warmed up on price history before startDate, so output doesn't depend on the requested range's left edge. It also clarifies the unit (USD), which is useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each informative: definition, formula, use case, and behavior. No filler; the technical description 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?
No output schema exists, and the description doesn't explicitly state the return shape, but the maxResults parameter description covers record ordering and count. The description provides the essential interpretive and behavioral context (unit, warmup, volatility interpretation) needed to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining that period is a smoothing window used recursively and that startDate's left-edge warmup makes values stable; this goes beyond the schema's terse 'Start date in YYYY-MM-DD' 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 opens with 'Average True Range (ATR) for a stock' and unpacks the indicator with a precise formula (True Range max of high-low, |high-prev_close|, |low-prev_close|), distinguishing it from related indicators like Bollinger Bands or Stochastic Oscillator. The scope is clear: a volatility measure for a single stock, in USD.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states ATR is 'commonly used for position sizing and stop placement' and explains that higher ATR means wider daily moves, giving clear applied context. It doesn't explicitly name alternatives or when-not-to-use, but the domain is sufficiently specialized.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetBollingerBandsBollinger BandsARead-onlyInspect
Bollinger Bands for a stock. A middle band (simple moving average of close) with upper and lower bands set a number of standard deviations above and below it. Bands widen when volatility rises and contract when it falls; price touching the upper/lower band is a common overbought/oversold cue. Includes %B ((close-lower)/(upper-lower)) and bandwidth ((upper-lower)/middle) columns. The moving-average window is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Moving-average window (default: 20) | |
| stdDev | No | Standard deviations for the upper/lower bands (default: 2) | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 6 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses two important behaviors: the inclusion of %B and bandwidth columns, and the warm-up of the moving-average window on price history before startDate, which ensures values do not depend on the requested range's left edge. This adds significant context about data computation and edge-case handling that 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—three sentences that front-load the tool's purpose, then explain the calculation, interpretation, included columns, and a nontrivial edge-case behavior. Every sentence contributes meaningful information without waste 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?
Despite the absence of an output schema, the description adequately explains what the tool returns (BB bands, %B, bandwidth) and how the indicator behaves relative to the requested date range. It also covers the key formula components and the smoothing effect of the warm-up, providing enough detail for an agent to understand the tool's behavior without missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining how parameters affect the output: 'moving average of close' corresponds to period, 'standard deviations above and below' corresponds to stdDev, and the warm-up behavior clarifies startDate semantics. This is more than just restating the schema, though it does not delve into every parameter detail, hence a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Bollinger Bands for a stock', clearly identifying the tool's purpose. It provides specific details about the calculation (middle band, upper/lower bands, standard deviations), distinguishes it from sibling indicators like GetAverageTrueRange or GetStochasticOscillator, and mentions included columns (%B, bandwidth), making the tool's scope unmistakable.
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 provided through interpretive guidance: 'Bands widen when volatility rises and contract when it falls; price touching the upper/lower band is a common overbought/oversold cue.' This helps an agent decide when to use Bollinger Bands. However, it does not explicitly name alternatives or state when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetBuybackProgramsShare Repurchase ProgramsARead-onlyInspect
Get a company's share-repurchase (buyback) picture: tracked repurchase programs (announcement date, authorized total, remaining availability, expiry, source filings), the latest program-authorization figures, and the repurchase history — cash spent, shares repurchased, and average price per fiscal year and recent quarters. Figures come from the company's own XBRL facts plus verified extractions of filings' narrative text; nothing is estimated, and figures a company stopped restating carry an explicit staleness label. For the dilution mirror-image — at-the-market (ATM) equity offering programs — use GetAtmPrograms.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description aligns with these. It adds valuable context beyond the annotations: data sources (XBRL facts + verified filing extractions), the 'nothing is estimated' guarantee, and explicit staleness labeling for non-restated figures.
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 are used, and each earns its place: the first enumerates outputs, the second explains data provenance and staleness, and the third names the alternative tool. It is somewhat dense, but appropriately so for a complex data retrieval tool.
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?
Even without an output schema, the description thoroughly covers what the agent will receive: program details, authorization figures, history fields (cash spent, shares, average price), and data provenance. The staleness label and explicit sibling reference complete the picture for a single-ticker 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?
There is only one parameter, ticker, and the input schema already describes it clearly ('Stock ticker symbol (e.g., AAPL, MSFT)'), giving 100% schema coverage. The description does not add specific parameter-level semantics, but none are needed given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource: a company's share-repurchase picture, including tracked programs, authorization figures, and repurchase history. It explicitly differentiates from the sibling GetAtmPrograms by naming the at-the-market mirror image.
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 final sentence explicitly directs the agent to GetAtmPrograms when ATM equity offerings are the focus, providing a clear alternative. It also gives context that figures come from XBRL facts and document extractions, helping the agent judge when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetCftcPositioningCFTC Futures Positioning (COT)ARead-onlyInspect
Get Commitments of Traders (COT) positioning data for a specific futures contract. Shows commercial and non-commercial positions over time. Values are contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Use SearchCftcMarkets to find available market codes.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year ago) | |
| marketCode | Yes | CFTC market code, common contract name, or standard futures symbol (e.g., 067651, WTI, ES, Gold futures) | |
| maxResults | No | Maximum number of reports to return (default: 52, max: 500). When the range holds more reports the newest are kept; rows are always listed oldest to newest. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior. The description adds valuable context about the data source (legacy futures-only COT report), the reporting schedule (as of Tuesday, published Friday), and that values are contract counts, enhancing expectations 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, three sentences, with the purpose front-loaded in the first sentence. Every sentence adds value—purpose, data characteristics, and a pointer to a related tool—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?
Given the absence of an output schema, the description conveys the essential output characteristics (positions over time, contract counts, futures-only report). It could more explicitly describe the response format or number of reports returned, but the provided context is largely sufficient for a capable agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all four parameters with 100% coverage, so the description adds little beyond the structured data. It does suggest using SearchCftcMarkets to obtain marketCode values, which is a minor useful hint, but this aligns with the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves COT positioning data for a specific futures contract and explains it shows commercial and non-commercial positions over time. It does not explicitly differentiate from the sibling GetLatestCftcData, but the purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use this tool (historical COT positions for a specific contract) and explicitly directs users to SearchCftcMarkets for finding market codes. No exclusions are stated, but the intended use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetCompanyKpisCompany KPIsARead-onlyInspect
Get company-stated operational and non-GAAP KPIs extracted from written 8-K earnings releases and 10-K/10-Q MD&A, with period, filing date, source quote and exactly comparable year-over-year change. Omit metric for each series' latest reading; pass a company metric label for its full history. Values retain the company's stated scale. Earnings-call transcripts are not figure sources. A disclosed GAAP-to-non-GAAP reconciliation includes its stated bridge.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | Optional metric name to expand into its full history (e.g., 'subscribers', 'Adjusted EBITDA'). Matches the company's own metric labels case-insensitively; when the name matches several metrics the tool lists those candidates. Omit for the overview of every metric's latest reading. | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
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 safety profile is covered. The description adds valuable behavioral detail: values retain the company's stated scale, GAAP-to-non-GAAP reconciliation includes its stated bridge, and transcripts are not sources. These details explain what the tool does and does not return beyond the schema, enriching the agent's mental model 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 dense but efficient, with every sentence earning its place. It front-loads the core purpose, then details the parameter-dependent output, and ends with two important constraints (transcripts not sources, reconciliation bridge). There is zero fluff, and the structure leads with the most critical information for an agent deciding whether to use the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description must explain the return format. It does: 'period, filing date, source quote and exactly comparable year-over-year change.' It also specifies the scale handling and reconciliation behavior. While it doesn't mention pagination or limits, the tool is a read-only lookup with only two parameters and the description covers the essential facets an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the parameters, but the description goes further. It explains the metric parameter's behavior in detail: matching case-insensitively, listing candidates when multiple metrics match, and omitting for the latest reading. It also clarifies that values retain the company's stated scale, which is a semantic nuance not fully captured by the schema. This adds significant meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('company-stated operational and non-GAAP KPIs extracted from written 8-K earnings releases and 10-K/10-Q MD&A'), and details the output fields (period, filing date, source quote, YoY change). It also distinguishes itself from related tools by explicitly limiting sources to written filings, not transcripts or other data types, so an agent can separate it from siblings like GetEarningsCallTranscript or GetNonGaapBridge.
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 about when to use the tool (to get company-stated KPIs from written filings) and an explicit exclusion: 'Earnings-call transcripts are not figure sources.' It provides a 'when-not' but does not name specific alternative tools for transcript-based data, so it stops short of a full 5. The parameter usage guidance (omit metric for latest reading, pass metric for history) also informs when to call with or without the metric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetCongressionalTradesCongressional Trades by StockARead-onlyInspect
Get congressional securities transactions for a specific ticker (newest first, last year by default). Shows which members of Congress reported a purchase or sale, with transaction and filing dates; amounts are disclosed ranges, not exact values, and Asset identifies the filed instrument (such as stock, option, or bond). Use GetMemberTrades for one member's transactions across all tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT, NVDA) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to today) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year ago) | |
| maxResults | No | Maximum number of trades to return (default: 50, max: 500, newest first) | |
| transactionType | No | Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: results are newest first, date range defaults to one year, amounts are disclosed ranges rather than exact values, and Asset identifies the filed instrument type (stock, option, bond). This enriches the agent's understanding 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 with no fluff: the first sentence states the core function and defaults, the second clarifies data semantics, and the third directs to the sibling tool. All information is front-loaded and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately explains what the response contains: members, purchase/sale, transaction/filing dates, amount ranges, and instrument type. It also covers defaults and ordering. Given the tool's moderate complexity, the description is sufficiently complete for an agent to know what to expect and how to invoke 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 description coverage is 100%, so baseline is 3. The description adds value by clarifying semantic nuances not fully explicit in the schema: that amounts are ranges not exact values, that Asset identifies instrument type, and that transactions are reported by members of Congress. This supplements the parameter descriptions meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves congressional securities transactions for a specific ticker, with a scope qualifier ('newest first, last year by default'). It distinguishes itself from siblings by explicitly pointing to GetMemberTrades as the alternative for one member's transactions across tickers.
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 explicit: use for a specific ticker, and 'Use GetMemberTrades for one member's transactions across all tickers' directly names the alternative. This provides clear when-to-use guidance and prevents confusion with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetCustomDataSetGet Custom Data SetARead-onlyInspect
Get the latest independently verified stored result for one of the caller's custom data sets. This is read-only, never triggers a live run, and preserves the last good result after a newer failure. To create or manage a data set, tell the user to open the Equibles Portal and choose Dashboard → Custom Data Sets: https://www.equibles.com/CustomDataSets
| Name | Required | Description | Default |
|---|---|---|---|
| dataSet | Yes | The custom data-set name or full id shown by ListCustomDataSets. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explicitly says it is read-only, never triggers a live run, and preserves the last good result after a newer failure. This gives the agent important behavioral expectations that annotations alone do not convey.
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 concise sentences, each earning its place: the core purpose, the behavioral guarantee, and the management redirect. The description is front-loaded with the primary action and contains no redundant filler.
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 single-parameter read-only tool with no output schema, the description covers what is retrieved, the read-only and failure-preserving behavior, and where to manage data sets. Nothing essential is missing for an agent to call 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 description coverage is 100% and the dataSet parameter already explains that it accepts 'the custom data-set name or full id shown by ListCustomDataSets.' The tool description adds no additional parameter meaning, so the high-coverage baseline of 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 states a specific action ('Get'), an exact resource ('the latest independently verified stored result for one of the caller's custom data sets'), and the scope ('caller's'). This clearly distinguishes it from the many other Get* siblings, especially ListCustomDataSets.
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 solid context: use this tool to retrieve a stored result, not trigger a live run. It also explicitly redirects creation/management to the Equibles Portal. It does not explicitly name ListCustomDataSets as the sibling to list available data sets, but the parameter schema fills that in.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetCustomerConcentrationCustomer Concentration RiskARead-onlyInspect
Get a company's customer-concentration risk disclosure — statements like "one customer accounted for 31% of revenue": each disclosed figure's basis (revenue or receivables), customer count, percentage, and period, with the source filing. Untagged disclosures come from verified narrative extraction with a verbatim quote; issuers that tag ConcentrationRiskPercentage in structured XBRL (e.g. NVDA, AAPL) return those customer-specific dimensioned facts directly. A miss is never a statement of no risk. Pass maxFilings > 1 to also see earlier filings' disclosures (the concentration trend).
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). | |
| maxFilings | No | How many of the newest disclosing filings to return (default 1 — the latest; cap 10). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond the annotations: it explains the two data sources (XBRL-tagged vs narrative extraction with verbatim quotes), clarifies that a 'miss is never a statement of no risk,' and describes the trend functionality with maxFilings. This adds significant context that is not captured in the readOnlyHint or destructiveHint 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 at roughly 4 sentences, with no filler. It is front-loaded with the core purpose, then efficiently covers data sources, interpretation of results, and parameter guidance. Each sentence serves a distinct purpose 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 having no output schema, the description provides a comprehensive picture of what the tool returns: example of the disclosure, fields included (basis, customer count, percentage, period, source filing), and the difference between XBRL and narrative extraction. It also notes the important caveat about misses and the trend option. This is sufficient for an agent to understand 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?
Both parameters have descriptions in the schema (100% coverage). The description adds value by explaining the use case for maxFilings (>1 shows concentration trend), which goes beyond the schema's description of 'how many of the newest disclosing filings to return.' This extra context helps the agent decide when to adjust 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?
The description clearly states the tool retrieves a company's customer-concentration risk disclosure, specifying the types of data returned (percentage, basis, customer count, period, source filing). It distinguishes from siblings like GetFinancialFact by focusing on this specific risk and mentioning examples (NVDA, AAPL) and the use of XBRL vs narrative extraction.
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 for when to use the tool (to get customer concentration risk) and gives explicit guidance on the maxFilings parameter ('Pass maxFilings > 1 to also see earlier filings' disclosures'). However, it does not explicitly mention when not to use this tool or suggest alternative tools for related queries, such as GetFinancialFact for general financial data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetDividendHistoryDividend HistoryARead-onlyInspect
Get a company's stored declared cash dividends newest first. Each row gives the ex-dividend date, cash amount per share in USD, and source. Date filters apply to the ex-dividend date. Future ex-dates can appear after a dividend is declared. Dividend records are issuer-level and available only through the company's current primary ticker; a secondary share class is never assumed to have the same dividend.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of newest matching records to skip for pagination (default: 0). | |
| ticker | Yes | Current primary stock ticker (e.g., AAPL, MSFT). | |
| endDate | No | Optional latest ex-dividend date in YYYY-MM-DD format. | |
| startDate | No | Optional earliest ex-dividend date in YYYY-MM-DD format. | |
| maxResults | No | Maximum number of records to return (default: 20, max: 500). |
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 safety profile is covered. The description supplements this with ordering behavior, row fields, ex-date semantics, the possibility of future ex-dates, and the primary-ticker/issuer-level restriction—valuable 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 four dense sentences with no filler. The core action and result ordering are front-loaded, followed by only high-value caveats that an agent needs before calling the tool.
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?
Even without an output schema, the description tells the agent what each returned row contains, how results are ordered, how filters apply, and a critical ticker restriction. Combined with the schema's parameter documentation, this is complete enough 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 100%, so the baseline is 3. The description adds meaningful parameter semantics by stating that date filters apply to the ex-dividend date and that records are tied to the current primary ticker, clarifying startDate/endDate and ticker beyond their 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 states a specific verb and resource: 'Get a company's stored declared cash dividends newest first.' It clearly identifies the row contents, ordering, and the primary-ticker constraint, and no sibling tool covers dividend history, so an agent can distinguish it.
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 invocation context: date filters apply to the ex-dividend date, records are issuer-level, and only the current primary ticker is valid. It does not explicitly name alternatives or say when not to use this tool, but that is a minor gap given no sibling directly overlaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEarningsBriefEarnings BriefARead-onlyInspect
Get the AI 'Earnings Brief' for a company's recent earnings calls — a verifier-approved TL;DR, bullish and bearish points, and verbatim pull-quotes, plus a deterministic narrative shift against the immediately older available approved brief. When available, it also shows company guidance issued at the call, how that range changed from management's prior update, and the reported quarter versus the operative company guidance that preceded it. This is company guidance, not analyst consensus; actual comparisons use filed GAAP XBRL facts, never estimates. The shift is derived from approved bullets and is not separately verifier-approved. Newest quarter first. Only calls with an approved brief appear, so quarters can be missing from the sequence.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of quarterly briefs to return, newest first (default 2, max 8; values outside 1-8 are clamped) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| fiscalYear | No | Company fiscal year. Omit both period fields for newest briefs; year alone filters that fiscal year. | |
| fiscalQuarter | No | Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description discloses significant behavioral nuances: the narrative shift 'is derived from approved bullets and is not separately verifier-approved', comparisons 'use filed GAAP XBRL facts, never estimates', ordering is 'Newest quarter first', and quarters can be absent from the sequence because only approved briefs appear. These caveats prevent the agent from misinterpreting missing quarters or over-trusting the shift metric.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long (four sentences) but every sentence earns its place: each adds a disambiguating constraint ('not analyst consensus', 'not separately verifier-approved', 'quarters can be missing'). It is front-loaded with the core content definition before the caveats. The density is justified given the tool's complexity, though it could trim some redundancy around ordering.
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 retrieval tool with no output schema, the description lists the return elements (TL;DR, points, quotes, shift, guidance deltas, reported quarter vs guidance) plus all caveats (verification status, missing quarters, XBRL facts). Annotations already cover the read-only safety profile. The only gap is that the exact return structure/field naming isn't specified, but the content inventory is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — every parameter (ticker, limit, fiscalYear, fiscalQuarter) is already well-documented, including the clamp range for limit and the exact-period semantics for the fiscal fields. The description's 'Newest quarter first' and 'Omit both period fields for newest briefs' reinforce schema text but add little new meaning. Baseline 3 is appropriate since the structured schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Get the AI Earnings Brief for a company's recent earnings calls' — and enumerates the exact content: verifier-approved TL;DR, bullish/bearish points, verbatim pull-quotes, and a narrative shift. It also carves out the data provenance ('company guidance, not analyst consensus... filed GAAP XBRL facts, never estimates'), which sharply distinguishes it from siblings like GetGuidance, GetEarningsCallTranscript, and GetEarningsCallToneAndThemes without naming them.
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 rich context about what the tool returns and its data constraints ('Only calls with an approved brief appear, so quarters can be missing from the sequence', 'Newest quarter first'). However, it never explicitly names sibling alternatives or states when NOT to use this tool in favor of GetGuidance, GetEarningsCallTranscript, or GetFinancialStatement. Usage context is implied through content specificity, but no explicit routing or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEarningsCallEventEarnings Call EventARead-onlyInspect
Get the earnings-call event for a company's fiscal quarter — the single record that groups the quarter's call artefacts (audio, transcript, slide deck, and 8-K earnings release) under one event. Returns the event's id (usable with GetInvestorEventTranscript), title, call date, status, which of the four artefacts are available, the transcript and earnings-release document ids when linked, and the release's extracted guidance rows when the 8-K carries approved ones. When a transcript is available, read it with GetEarningsCallTranscript, or get the AI read via GetEarningsBrief / GetEarningsCallToneAndThemes. Use this to ask "what do we have for AAPL FY2025 Q3?" rather than chasing each artefact separately — or omit the fiscal period for the company's latest call.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| fiscalYear | No | Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year. | |
| fiscalQuarter | No | Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered; with annotations present the bar is lower. The description adds real behavioral context beyond that: the selection semantics (omit both period fields for the latest call; year alone selects the latest in that year; quarter alone selects the latest matching quarter) and the group-scope behavior that distinguishes this from single-artefact tools. It discloses what the call returns (status, artefact availability, linked document ids, guidance rows) without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose before moving to return content, sibling routing, and a concrete usage example. Every sentence earns its place — the return enumeration is useful given there is no output schema, and the sibling routing is essential. It is on the longer side (roughly 90 words) for a read-only getter, with slight redundancy between the artefact enumeration in sentence one and the return-content detail in sentence two, but it remains well organized and not wasteful.
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 nuanced nullable-period selection rules and the absence of an output schema, the description carries the full burden of explaining return values — and it does: id (usable with GetInvestorEventTranscript), title, call date, status, artefact availability, transcript/earnings-release document ids, and extracted guidance rows. It also covers the period-selection semantics and onward routing. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even with no parameter details in the description. The schema already documents ticker, and the nullability/defaults and omission rules for fiscalYear and fiscalQuarter. The description echoes the 'omit the fiscal period for the latest call' rule but does not add material syntax or format detail beyond the schema. Value added is marginal but not absent, so a defensible 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'Get the earnings-call event for a company's fiscal quarter — the single record that groups the quarter's call artefacts.' It clearly distinguishes itself from siblings by naming GetEarningsCallTranscript, GetEarningsBrief, GetEarningsCallToneAndThemes, and GetInvestorEventTranscript as the tools for the underlying artefacts rather than the grouping event. An agent can tell this apart from the adjacent investors-event and transcript tools without inspecting either schema.
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 direction is explicit and actionable: 'Use this to ask "what do we have for AAPL FY2025 Q3?" rather than chasing each artefact separately — or omit the fiscal period for the company's latest call.' It also routes onward behavior: 'When a transcript is available, read it with GetEarningsCallTranscript, or get the AI read via GetEarningsBrief / GetEarningsCallToneAndThemes.' When-to-use and alternatives are both spelled out, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEarningsCallToneAndThemesEarnings Call Tone and ThemesARead-onlyInspect
Get the AI-scored insights for a company's recent earnings calls — the management-tone read (a net tone score and a hedging score) and the call's key themes with their computed mention counts and per-theme tone. Newest call first. Verifier-approved — only scored and approved calls appear, so quarters can be missing from the sequence (a gap note flags non-consecutive quarters). Use it to gauge how confident or guarded management sounded and what they talked about most.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of scored calls to return, newest first (default 2, max 8; values outside 1-8 are clamped) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| fiscalYear | No | Company fiscal year. Omit both period fields for newest results; year alone filters that fiscal year. | |
| fiscalQuarter | No | Company fiscal quarter, 1-4. Quarter alone filters that quarter across fiscal years; both fields select an exact period. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond that: verifier-approved calls only, potential missing quarters with gap notes, and AI-scored nature of the data. It does not contradict annotations and enriches understanding of data quality and completeness.
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 compact—three sentences—with the primary purpose stated upfront, followed by key data quirks and a usage hint. Every sentence adds value and there is no redundancy or filler.
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 four parameters, full schema coverage, annotations covering safety, and a clear description of return content (tone scores, themes, mention counts), nothing essential is missing. The description even explains the gap-note behavior and ordering, making the tool fully navigable 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?
Schema description coverage is 100%, so all four parameters (ticker, limit, fiscalYear, fiscalQuarter) are already documented in the schema with meaningful descriptions. The tool description does not add any additional parameter-level detail beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the exact resource (company earnings calls), the specific outputs (net tone score, hedging score, key themes with mention counts and per-theme tone), and the ordering (newest first). It distinguishes itself from similar siblings like GetEarningsBrief and GetEarningsCallTranscript by focusing on AI-scored tone and themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use the tool ('to gauge how confident or guarded management sounded') and explains data availability quirks (verifier approval, gaps in quarters). However, it does not explicitly name alternative tools or state conditions for selecting this one over others, leaving some routing inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEarningsCallTranscriptEarnings Call TranscriptARead-onlyInspect
Get the speaker-labelled transcript of a company's earnings call for a fiscal quarter — every speaker turn in order, attributed to the real person (executive or sell-side analyst) with their role at the time. Identities appear only when the resolution is trusted (auto-resolved or human-reviewed); unverified voices show as a role label (e.g. Operator) or a neutral speaker number. Use GetEarningsCallEvent first to check a transcript exists.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped) | |
| offset | No | Number of leading speaker turns to skip, for paging through calls longer than the 200-turn cap (default 0) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| fiscalYear | No | Company fiscal year. Omit both period fields for the latest call; year alone selects the latest call in that fiscal year. | |
| fiscalQuarter | No | Company fiscal quarter, 1-4. Quarter alone selects the latest matching quarter across fiscal years; provide both fields for an exact period. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses when speaker identities appear (only trusted resolution) and how unverified voices are labelled (role or neutral number). This adds meaningful behavioral context about output reliability 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?
Two sentences with zero fluff. The core purpose is front-loaded, followed by behavioral nuance and a usage directive. 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?
For a tool with no output schema, the description explains the output format (ordered speaker turns with attribution) and the identity resolution rule. It also provides a prerequisite check. The agent has enough context to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the fiscal quarter focus but adds no new parameter details; the schema already documents each parameter adequately. No compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'speaker-labelled transcript of a company's earnings call', and the scope 'for a fiscal quarter'. It also distinguishes from GetEarningsCallEvent by implying that tool checks existence, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly directs the agent to 'Use GetEarningsCallEvent first to check a transcript exists', which is a clear alternative tool and an explicit precondition. This is a strong usage guideline that prevents failed calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEconomicCalendarEconomic Release CalendarARead-onlyInspect
Get the economic release calendar — scheduled (upcoming) and recent publication dates of US macro data releases, with the FRED series each release updates and an importance tier per release (High = the tier-1 scheduled market movers: CPI, PPI, Employment Situation, GDP, PCE, retail sales; Medium = other genuine scheduled prints; Low = daily rate/market levels like SOFR or VIX). FOMC meetings are NOT included — FRED's release feed has no real FOMC meeting dates; use the Federal Reserve's published meeting calendar for those. Defaults to the next 30 days. Use minImportance=high to see only the market movers, and GetEconomicIndicator to fetch a series' data after it prints.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to 30 days after the start date) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to today, UTC) | |
| maxResults | No | Maximum number of release dates to return (default: 100, max: 500, chronological) | |
| minImportance | No | Minimum importance tier to include: low, medium, or high (defaults to low = everything) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description adds rich behavioral context: it defines the importance tiers (High/Medium/Low) with specific examples, explains why FOMC meetings are excluded, and notes the default date range (next 30 days). These details help the agent understand the tool's limits and output semantics without needing to invoke it.
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 dense single paragraph but logically structured: it starts with the main purpose, then defines tiers, mentions exclusions, defaults, and usage tips. Every sentence adds value, but the density makes it slightly less scannable than bulleted sections; still, it is concise and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description carries the burden of explaining behavior. It covers data coverage, tier filtering, exclusions, defaults, and related tools, which is sufficient for correct invocation. It doesn't describe the exact return format (e.g., array of objects with fields), but the calendar concept is straightforward enough that this is a minor gap.
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% for all four parameters, so the baseline is 3. However, the description adds meaningful semantics: it defines the minImportance tier values (low/medium/high) and explains the default date behavior ('Defaults to the next 30 days'), clarifying startDate/endDate usage. It doesn't add much for maxResults beyond the schema's 'chronological' note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the economic release calendar — scheduled (upcoming) and recent publication dates of US macro data releases', which clearly states the verb, resource, and scope. It distinguishes itself from sibling tools by specifying US macro data and explicitly excluding FOMC meetings, setting it apart from GetMarketCalendar and GetEconomicIndicator.
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 alternatives: 'FOMC meetings are NOT included ... use the Federal Reserve's published meeting calendar for those' and 'use GetEconomicIndicator to fetch a series' data after it prints.' It also gives usage advice with 'Use minImportance=high to see only the market movers' and states defaults, making when-to-use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetEconomicIndicatorEconomic Indicator HistoryARead-onlyInspect
Get time series data for a FRED economic indicator. Returns historical observations for indicators like FEDFUNDS (fed funds rate), CPIAUCSL (CPI inflation), UNRATE (unemployment), GDP, T10Y2Y (yield spread), VIXCLS (VIX), SP500, MORTGAGE30US, M2SL (money supply), and more. Covers the curated ~40-series set Equibles tracks, not the full FRED catalog — use SearchEconomicIndicators to find available series.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| seriesId | Yes | FRED series ID or standard indicator name (e.g., FEDFUNDS, fed funds rate, core CPI, jobless claims) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year before the end date) | |
| maxResults | No | Maximum number of observations to return (default: 100, max: 500). When the range holds more, the newest maxResults are kept; rows are always listed in ascending date order. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds useful behavioral context by emphasizing the tool only covers a curated set (not all of FRED) and returns historical observations. 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 three sentences and front-loaded with the primary purpose. Each sentence adds essential information: what it does, examples, and scope limitation with a pointer to SearchEconomicIndicators. No filler or repetition.
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 4 parameters, no output schema, and annotations, the description provides key context: historical observations, a curated series set, and where to search for more. However, it does not describe the return format or observation frequency, which would be helpful since there is no 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?
The input schema already documents all parameters with 100% coverage, so baseline is 3. The description adds value by listing concrete example series IDs (FEDFUNDS, CPIAUCSL, UNRATE, etc.) and noting that seriesId accepts standard indicator names in addition to FRED IDs, enriching the schema's 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?
Description uses a specific verb ('Get time series data') and identifies the unique resource (FRED economic indicators). It clearly distinguishes itself from siblings by noting this covers only a curated ~40-series set, not the full FRED catalog.
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 on when to use this tool: for historical time series of specific FRED indicators. It explicitly names SearchEconomicIndicators as the alternative to discover available series, and clarifies the curated scope, helping the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetExecutiveChangesExecutive and Board ChangesARead-onlyInspect
Get a company's executive and director changes — CEO/CFO/officer/board appointments, resignations, terminations, and retirements — as disclosed in its 8-K Item 5.02 filings, newest filing first. Each change carries the person's name, the role text exactly as filed, a separate normalized role classification, the action, the effective date when stated, the verbatim disclosure, and the source filing (form + link). Changes are extracted from the filings' narrative text and verified before publication. Coverage is still back-filling: the output names the oldest covered filing date, and an empty answer distinguishes 'covered filings disclose no changes' from 'filings not yet processed'.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Optional action filter: Appointed, Resigned, Terminated, or Retired. | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). | |
| endDate | No | Optional newest filed date, YYYY-MM-DD. | |
| startDate | No | Optional oldest filed date, YYYY-MM-DD. | |
| maxResults | No | Maximum changes to return (default 25, cap 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds valuable behavioral context: extraction from narrative text, verification before publication, newest-first ordering, and a back-filling coverage caveat that explains empty results. 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 front-loaded with the core purpose, then details return fields, source, and coverage caveat. Every sentence earns its place, and the length is justified by the lack of an output schema and the need to explain empty-result semantics.
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 no output schema, the description fully compensates by enumerating returned fields (person, role text, normalized role, action, effective date, verbatim disclosure, source filing) and clarifying ordering and coverage limitations. It is sufficiently complete for an agent to invoke and interpret results 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?
Input schema covers all 5 parameters with descriptions at 100% coverage, so the description need not repeat parameter details. It mentions action filter values and date fields contextually but adds no new syntax or semantics beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Get') with a clearly defined resource ('executive and director changes') and narrows scope via '8-K Item 5.02 filings' and 'newest filing first'. This distinguishes it from sibling tools like GetExecutiveCompensation.
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 sets clear expectations about the data source, ordering, and coverage caveat, which helps an agent decide when to use it. It does not explicitly name alternatives or state exclusions, but the purpose is specific enough to imply appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetExecutiveCompensationExecutive CompensationARead-onlyInspect
Get a company's named-executive compensation as disclosed in its DEF 14A proxy statements' Summary Compensation Table — salary, bonus, stock and option awards, non-equity incentive, other compensation, and the company-reported total per executive per fiscal year, newest year first. Figures are exactly as the company disclosed them; Total is the filer's own figure, never a recomputation. Coverage is limited to US DEF 14A filers (foreign private issuers file 20-F and are not covered) and is still back-filling: the output states the newest proxy on file next to the newest imported year, so stale coverage is visible.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). | |
| maxYears | No | Optional cap on how many of the newest fiscal years to return (default 0 = all imported years). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/destructive annotations, the description adds substantial transparency about data integrity: figures are exactly as disclosed, Total is the filer's own figure (never recomputed), and the tool states the newest proxy on file to surface stale coverage. This goes well 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 but information-dense, with three well-structured sentences. Each sentence adds value: output specification, data integrity caveat, and coverage limitations. No filler 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?
With no output schema, the description fully explains the return content (salary, bonus, awards, etc., per executive per fiscal year, newest first). It also covers coverage limitations and data quality indicators, making it complete for a 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% (ticker and maxYears are both documented). The description adds some context about year ordering and the 'newest year first' behavior, which aligns with maxYears, but it does not significantly enhance the parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves named-executive compensation from DEF 14A proxy statements' Summary Compensation Table, listing components and per-executive/per-year granularity. It distinguishes itself from siblings like GetExecutiveChanges, which deals with changes rather than compensation.
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 important usage context by specifying coverage is limited to US DEF 14A filers and noting the data is back-filling, which guides when to use it. It also implies the tool is for compensation data, not other executive-related data, though it does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFailsToDeliverFails-to-Deliver DataARead-onlyInspect
Get fails-to-deliver (FTD) data for a stock from the SEC's twice-monthly FTD files. Quantity is the aggregate net fail-to-deliver position OUTSTANDING on each settlement date — a balance, not that day's new fails, so never sum Quantity across dates. Price is the previous trading day's closing price (SEC file convention, not a settlement price) and Value = Quantity × Price. Within the covered window (the output names the earliest fully covered settlement date), dates absent from the table had no reported fails; earlier dates are only partially covered, so their absence is not evidence of no fails. The SEC publishes each half-month batch with roughly a two-week lag, so the newest rows trail today. High or persistent FTD balances may indicate naked short selling or settlement issues.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, GME, AMC) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 3 months ago) | |
| maxResults | No | Maximum number of records to return — keeps the most recent N settlement dates in the range, displayed oldest to newest (default: 90, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly and destructive hints by disclosing crucial behavioral quirks: Quantity is a balance not daily new fails and should never be summed; Price is the previous trading day's closing price per SEC convention; the coverage window and partial-coverage caveat; the two-week publication lag; and the interpretation of high/persistent balances. This is exemplary transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than a simple one-liner, but every sentence earns its place by disclosing a necessary caveat or convention. It starts with a clear purpose statement and then expands with critical usage details. It is well-structured and not bloated, though it could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description fully explains the return semantics: Quantity, Price, Value, coverage windows, missing dates, publication lag, and interpretation. It covers all aspects an agent needs to correctly use the tool and interpret its results, making it highly 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 100%, so the baseline is 3. The description does not directly explain parameters further but adds context about output semantics (e.g., missing dates, lag) that indirectly affects parameter interpretation (e.g., endDate default trails today). This is marginal value, not enough to raise the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get fails-to-deliver (FTD) data for a stock from the SEC's twice-monthly FTD files.' It clearly differentiates this from siblings like short interest or short volume by focusing on FTD specifically. The scope and source are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when this tool is relevant, noting that 'High or persistent FTD balances may indicate naked short selling or settlement issues.' While it doesn't explicitly name alternative tools or exclude them, the context is sufficient for an agent to infer appropriate use cases. It stops short of explicit when-to-use vs. alternatives guidance, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFdaAdvisoryCommitteeMeetingsFDA Advisory Committee CalendarARead-onlyInspect
Get scheduled FDA advisory-committee (AdComm) meetings, sourced from the FDA.gov advisory-committee calendar, each with a link to its FDA meeting page. Defaults to meetings in the next 90 days; pass a date range to look further ahead. This is a forward-looking calendar of announced meetings, not a historical archive — coverage starts in late 2025 — and entries are the FDA's own listings, not linked to stock tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to 90 days after the start) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to today) | |
| maxResults | No | Maximum number of meetings to return (default: 60, soonest first) |
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 safety profile is covered. The description adds valuable behavioral context: it returns links to FDA meeting pages, defaults to a 90-day window, and has limited historical coverage starting late 2025. This exceeds the annotation information without contradicting it.
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 compact (three sentences) and front-loaded: the first sentence states the core function, the second clarifies defaults, and the third clarifies limitations and scope. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only calendar tool with no output schema, the description covers the essentials: what is returned, the source, defaults, coverage limitations, and what it is not. It does not detail the exact output fields, but that is not critical given the simplicity and the provided link. It is complete enough for an agent to decide when and how to call 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?
The schema already fully describes all three parameters with defaults and formats (100% coverage). The description's mention of 'next 90 days' and 'date range' echoes the schema without adding new meaning. Thus the description adds no significant value for parameter understanding, though it is consistent with 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's purpose: retrieving scheduled FDA advisory-committee meetings from the FDA.gov calendar, each with a link to its meeting page. It also specifies the scope (forward-looking, not historical) and the coverage start date, which distinguishes it from other calendar tools in the sibling list like GetEconomicCalendar or GetMarketHolidayCalendar.
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 usage context: it is for forward-looking FDA advisory-committee meetings, not a historical archive, and coverage starts in late 2025. It also notes entries are not linked to stock tickers, indicating it is not for market-impact analysis. While it does not name specific sibling tools, it clearly frames when this tool is appropriate and when it is not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFinancialFactFinancial Concept LookupARead-onlyInspect
Get a single financial concept (e.g. revenue, net income, diluted EPS, total assets, operating cash flow) over time for a company, sourced from SEC Company Facts (structured XBRL). Returns a time series, one row per fiscal period, using the latest restated value unless asOriginallyReported is set. Each row carries its actual period start/end; fiscal years/quarters follow the company's own fiscal calendar. Warns when the selected alias ends materially before the company's other structured facts, which can indicate an XBRL tag change. Dimensioned disclosures such as customer concentration are outside this consolidated-series tool. For a full statement use GetFinancialStatement; to compare peers use CompareFinancialFact.
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | Optional SEC form filter, e.g. '10-K' or '10-Q' | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT) | |
| toDate | No | Optional latest period-end date, YYYY-MM-DD | |
| concept | Yes | Concept alias, e.g. 'revenue', 'net-income', 'eps-diluted', 'total-assets', 'operating-cash-flow'. Call with an unknown value to list supported aliases. | |
| fromDate | No | Optional earliest period-end date, YYYY-MM-DD | |
| maxResults | No | Maximum periods to return, newest first (default 40, max 200) | |
| fiscalPeriod | No | Optional fiscal-period filter: 'FY' (annual only) or 'Q1'..'Q4'. Note that discrete Q4 rows exist only where the filer reported a discrete fourth quarter (most large filers stopped after ~2021). | |
| asOriginallyReported | No | When true, show the earliest canonical periodic filing instead of the latest restatement within that source priority. Default false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds valuable behavioral context: returns a time series with latest restated values unless asOriginallyReported is set, each row includes actual period start/end, fiscal periods follow the company's own calendar, and a warning is raised when the selected alias ends materially before other facts (indicating a possible XBRL tag change). 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 a single dense paragraph that efficiently conveys purpose, usage, and behavioral details. It front-loads the core action and then adds specifics. While it could be slightly more structured (e.g., bullet points for the warning or parameter clarifications), it is not overly long and 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 8 parameters, no output schema, and moderate complexity, the description is highly complete. It explains the return type (time series, one row per fiscal period with period start/end), the default data treatment (latest restated), the warning mechanism, and scope exclusions. No output schema is needed because the description sufficiently describes the output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning beyond the schema: it explains the default behavior of asOriginallyReported, mentions that calling concept with an unknown value lists supported aliases, and clarifies the fiscalPeriod note about discrete Q4 rows. This pushes the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving a single financial concept over time for a company from SEC XBRL data, naming example concepts. It explicitly distinguishes from sibling tools (GetFinancialStatement for full statements, CompareFinancialFact for peer comparison) and mentions that dimensioned disclosures are out of 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 provides explicit guidance on when to use this tool versus alternatives: 'For a full statement use GetFinancialStatement; to compare peers use CompareFinancialFact.' It also notes that dimensioned disclosures (e.g., customer concentration) are outside this tool, and instructs calling with an unknown concept to list supported aliases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFinancialStatementFinancial StatementsARead-onlyInspect
Get a company's income statement, balance sheet, or cash-flow statement for a given fiscal year and period, sourced from SEC Company Facts (structured XBRL). Returns the standard line items (e.g. revenue, net income, total assets, operating cash flow) with the latest-restated value for one exact statement period end. Quarterly flow rows are always discrete quarters: when the filer reports only cumulative year-to-date USD values, the quarter is derived by exact subtraction from the preceding cumulative period and marked Derived. Company-specific dimensional facts (e.g. product-segment revenue) are not included — use GetRevenueBreakdown for segment/geographic revenue, and GetFinancialFact or CompareFinancialFact for one line item across periods or across companies.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Fiscal year, e.g. 2023. Defaults to the latest reported year. | |
| period | No | Fiscal period: 'FY' (annual) or 'Q1'..'Q4'. Defaults to the latest reported period. Most filers report no discrete Q4 income/cash-flow facts in XBRL (the fourth quarter is embedded in the full-year figure) — use 'FY' for annual figures. | |
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT, GME) | |
| statement | No | Statement: 'income' (income statement), 'balance' (balance sheet), or 'cashflow' (cash-flow statement); the aliases 'is'/'p&l', 'bs' and 'cf' also work. Defaults to income. | income |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as read-only and non-destructive, and the description adds meaningful behavioral detail beyond that: it returns latest-restated values, targets one exact period end, derives discrete quarterly flow rows from cumulative YTD values when necessary, and marks those rows as Derived. This gives the agent a clear picture of what the tool actually does at runtime.
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 longer than average but every sentence earns its place: scope, output behavior, derived-quarter caveat, and sibling routing are all covered without redundancy. It is front-loaded with the core purpose and then layers in necessary constraint 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?
With no output schema, the description carries the responsibility for explaining return semantics, and it does so: standard line items, latest-restated value, one exact period end, discrete quarterly rows, and the Derived flag are all disclosed. It also covers source provenance, exclusions, and alternatives, making it complete for an agent to select and invoke this 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 description coverage is 100%, so the description is not burdened with compensating for undocumented parameters. It restates the statement types and period concept already covered by the schema, and the Q4 caveat is already present in the period parameter description. It adds little parameter-level meaning beyond the structured 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 names a specific action and resource: get a company's income statement, balance sheet, or cash-flow statement for a fiscal year and period. It also differentiates itself from siblings by explicitly excluding dimensional facts and naming GetRevenueBreakdown, GetFinancialFact, and CompareFinancialFact as the alternatives for those cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance, including the note that most filers do not report discrete Q4 income/cash-flow facts and that 'FY' should be used for annual figures. It also tells the agent exactly when to prefer sibling tools such as GetRevenueBreakdown and GetFinancialFact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetForm144ProposedSalesProposed Insider Sales (Form 144)ARead-onlyInspect
Get recent proposed insider sales for a stock from SEC Form 144 notices. Each Form 144 is an affiliate's declaration of intent to sell restricted or control securities, showing the seller, their relationship to the company, the number of shares and aggregate market value to be sold, the proposed sale as a share of the issuer's current shares outstanding, the approximate sale date, the broker, and the filer's remarks (including any stated 10b5-1 plan). Results are the most recent notices first and a note flags when more exist than were returned; use fromDate/toDate to scope a period (heavy 10b5-1 filers can flood the recency window with small daily notices). A proposal may never execute; a completed sale may later appear on Form 4 or 5 only when it is reportable there.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| toDate | No | Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-12-31) | |
| fromDate | No | Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-01-01) | |
| maxResults | No | Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description does not contradict these. The description adds valuable behavioral context: results are sorted by recency, a note flags when more results exist than returned, and crucial caveats that proposals may never execute and completed sales may appear later on Form 4/5. This goes beyond the annotation coverage.
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 comprehensive yet efficiently structured, starting with the core purpose, then detailing notice contents, then ordering and scoping advice, and finally an important execution caveat. Every sentence contributes information, with no repetition or filler. It is front-loaded with the primary 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?
Despite lacking an output schema, the description thoroughly explains what each notice contains (seller, relationship, shares, market value, sale date, broker, remarks, 10b5-1 plans), result ordering, the existence flag for more results, and the caveat that proposals may not execute. This gives an agent enough context to correctly interpret the response and decide when to use the tool, completing the picture for a read-only data fetch.
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 already provides 100% coverage for all four parameters with clear descriptions (ticker, toDate, fromDate, maxResults). The description adds rationale for using date parameters (avoid flooding) but does not introduce new parameter semantics beyond what the schema specifies. Per the baseline rule, a score of 3 is appropriate when schema covers 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 tool retrieves proposed insider sales from SEC Form 144 notices, with a specific verb ('Get') and resource ('proposed insider sales'), and details the content of each notice. It stands apart from siblings like GetInsiderTransactions or GetInsiderOwnership by focusing on Form 144 proposals, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance on when to use fromDate/toDate, noting that heavy 10b5-1 filers can flood the recency window, and explains results are ordered most-recent-first with a flag for additional data. It does not explicitly name alternative tools for different use cases, but the context implies this is for proposed sales rather than completed transactions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFormDOfferingsExempt Offerings (Form D)ARead-onlyInspect
Get recent exempt securities offerings (private placements) for a company from SEC Form D notices. Each Form D reports a Regulation D offering, showing the issuer, the date of first sale, the total offering amount (a dollar figure or "Indefinite"), the amounts sold and remaining, the minimum investment, the number of investors, the claimed exemptions, whether the notice is an amendment (D/A), and its SEC accession number. Ongoing offerings are re-noticed through D/A amendments that RESTATE the same offering — group rows by first-sale date and offering amount and use only the latest notice of each chain, or capital raised will be counted several times over. Use this to track how a company is raising private capital alongside its public filings.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| toDate | No | Optional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-12-31) | |
| fromDate | No | Optional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-01-01) | |
| maxResults | No | Maximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description goes beyond this by explaining the behavioral quirks of Form D data—how ongoing offerings are re-noticed via D/A amendments and the need to group by first-sale date and offering amount. This adds substantial context about data semantics and potential aggregation pitfalls that annotations do not convey.
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 longer than average but every sentence adds value: it defines the resource, lists key fields, warns about a data quirk, and gives a use case. The most critical information (purpose and D/A warning) is front-loaded, and there is no filler. It could be slightly trimmed, but it is well-structured and efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by enumerating the fields returned (issuer, first sale date, offering amount, etc.) and the amendment behavior. It covers the main data aspects an agent needs to interpret results. It omits minor details like error handling or pagination behavior, but these are either in the schema (maxResults) or not critical for a read-only tool. Overall, it is sufficiently 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 100%, so all parameters (ticker, toDate, fromDate, maxResults) are already documented with types and descriptions. The description does not add extra meaning about parameter syntax or format beyond what the schema provides, so the baseline of 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 states a specific verb ('Get'), a clear resource ('SEC Form D notices'), and the scope ('recent exempt securities offerings for a company'). It explicitly distinguishes itself from sibling tools like GetForm144ProposedSales by focusing on private placements and Form D, making selection obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case ('track how a company is raising private capital alongside its public filings') and gives important operational guidance about D/A amendments and grouping to avoid double-counting. It does not name explicit alternatives, but the specificity of the tool makes the intended usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFundNcenReportsFund Operations (Form N-CEN)ARead-onlyInspect
Get operational data for a registered investment company from its SEC Form N-CEN annual reports. Accepts an exchange-listed ticker or an exact fund identifier from SearchFunds, including a profile id, SEC series id, stored series ticker, or verified share-class alias. Each N-CEN shows the registrant's classification, Investment Company Act file number, reporting period, first/last-filing flags, latest service providers, and an exact filed-name provider history. N-CEN is filed at registrant level; this dataset currently ingests it through tracked issuer feeds, so a series inside an untracked multi-series trust can resolve correctly but still have no N-CEN report on record. Only registered funds file N-CEN; operating companies return no data.
| Name | Required | Description | Default |
|---|---|---|---|
| fund | Yes | Fund or ETF ticker, profile id, SEC series id, or verified share-class alias (e.g., MXF, IVV, S000004344, VOO) | |
| maxResults | No | Maximum number of annual reports to return (default: 10, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: N-CEN is filed at registrant level, ingestion happens through tracked issuer feeds, and a series in an untracked multi-series trust may have no record. It also clarifies the 'operating companies return no data' boundary. No contradiction with annotations, and it enriches beyond the structured 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, well-structured paragraph. It leads with the purpose, then details accepted inputs, the data returned, and important caveats about data availability and filing scope. Every sentence adds value without redundancy. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with two parameters and no output schema, the description covers the essential usage context: accepted identifiers, report contents, data availability limitations, and filing eligibility. It does not explicitly describe the return format (e.g., list vs. single record) or pagination behavior for maxResults, but maxResults is self-explanatory and the listed fields imply a structured response. Minor gaps exist but are not critical.
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 covers 100% of parameters with descriptions and examples. The description adds meaning by specifying that identifiers come from SearchFunds and detailing the accepted identifier types (profile id, SEC series id, stored series ticker, verified share-class alias). This goes slightly beyond the schema's generic 'Fund or ETF ticker' and clarifies the data source relationship.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get operational data for a registered investment company from its SEC Form N-CEN annual reports.' It clearly distinguishes from sibling tools like GetFundProfile by focusing on N-CEN filings, and it enumerates the data fields returned. No ambiguity or tautology.
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: it accepts tickers or identifiers from SearchFunds, and notes that only registered funds file N-CEN, with operating companies returning no data. It implies when to use this tool, but does not explicitly name alternative tools or state when not to use it. The guidance is solid but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFundProfileFund Profile and Top HoldingsARead-onlyInspect
Get a registered fund's profile and largest stored holdings from its latest SEC Form NPORT-P report. Accepts a profile ID, SEC series ID, stored ticker, or verified alias from SearchFunds. Returns registrant, series, assets, reported and stored holding counts, and the largest stored positions. Some multi-series trusts store only tracked-stock positions; reported counts and asset totals still describe the full filing. Use GetFundsHoldingStock for the inverse lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| fund | Yes | Fund profile id, SEC series id, stored series ticker, or verified share-class alias from SearchFunds (e.g., 'ishares-russell-2000-etf-s000004344', 'S000004344', 'IWM', or 'VOO'). | |
| maxResults | No | Maximum number of holdings to return, largest first (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable nuance: it mentions the multi-series trust caveat (only tracked-stock positions stored) and clarifies that reported counts still reflect the full filing. This goes beyond what annotations provide without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and then details, caveat, and alternative. It is slightly dense but every sentence adds value. It avoids fluff and is appropriately sized for a tool that returns a profile plus holdings.
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?
While there is no output schema, the description lists the returned fields (registrant, series, assets, holding counts, largest positions) and notes the multi-series trust caveat. It also references the inverse tool. For an agent, this is sufficient to understand return expectations and when to use the tool, though it does not mention error cases or pagination beyond maxResults.
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 covers both parameters with descriptions, and the tool description adds extra meaning by explaining the accepted identifier types and giving examples (e.g., 'S000004344', 'IWM'). The maxResults description is also clear with default and max. The description enriches the schema rather than merely repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a registered fund's profile and largest stored holdings') and clearly distinguishes it from the inverse lookup tool GetFundsHoldingStock. It leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It details acceptable input types (profile ID, SEC series ID, ticker, alias) and references SearchFunds for verified aliases. It points to GetFundsHoldingStock for the inverse lookup, but doesn't explicitly state conditions for choosing alternative tools beyond that. This is clear context, though a short 'use when' clause would strengthen it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetFundsHoldingStockFunds Holding a StockARead-onlyInspect
Get the registered investment companies (mutual funds and ETFs) holding a given stock, from SEC Form NPORT-P portfolio reports. The stock's CUSIP is matched against the holding rows on each fund series' most recent report (series that stopped filing more than 18 months ago are excluded), so an exited position never shows as current. Returns the fund's registrant and series, the reporting period, the position size, its U.S.-dollar value, its share of the fund's net assets and the payoff profile (Long/Short), largest positions first. Report dates differ per fund series (each files on its own fiscal quarter), so values are as of each row's report date and cross-row totals mix as-of dates. Use this to see which funds and ETFs own a stock and how concentrated each position is.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT) | |
| maxResults | No | Maximum number of fund positions to return, largest first (default: 20, clamped to 1-500) | |
| registrantOrSeries | No | Optional registrant or series name filter (case-insensitive contains, e.g. 'Vanguard') — reaches positions beyond the largest 500 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly discloses behavioral traits beyond the readOnlyHint annotation: CUSIP matching against each fund series' most recent report, exclusion of series that stopped filing more than 18 months ago, no exited positions shown, and per-report as-of dates. It also enumerates return fields since no output schema exists.
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 appropriately sized for a complex tool, with each sentence providing substantive value: source, matching logic, output fields, ordering, as-of-date caveat, and use case. There is no redundancy or vague language.
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 lacking an output schema, the description fully enumerates the returned fields (registrant, series, period, position size, value, share of net assets, payoff profile), explains the as-of-date mixing nuance, and states the use case. This provides complete guidance for an agent to invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the baseline is 3. The description adds minimal extra semantics—it reiterates ordering ('largest positions first') and the registrantOrSeries filter's purpose, but these are already well documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's function with a specific verb ('Get') and resource ('registered investment companies holding a given stock'), and identifies the data source (SEC Form NPORT-P). It clearly differentiates from the sibling GetFundHoldings by focusing on the inverse direction—funds holding a stock rather than a fund's holdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Use this to see which funds and ETFs own a stock and how concentrated each position is.' It does not explicitly mention alternative tools or exclusion criteria, but the directionality and purpose are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetGoingConcernStatusGoing-Concern Doubt StatusARead-onlyInspect
Get a company's going-concern doubt status: whether its latest examined SEC filing states substantial doubt about the company's ability to continue as a going concern, with the verbatim disclosure, the filing it came from, and the history of examined filings showing when doubt appeared, was alleviated, or cleared. Flags are extracted from each company's newest 10-K/10-Q narrative text and verified before publication; a filing without going-concern language counts as no doubt. Coverage starts when the extraction lane first examined the company — earlier filings are not analyzed, so absence from the history does not rule out prior doubt episodes.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description enriches the annotations substantially by disclosing the extraction methodology (from newest 10-K/10-Q narrative, verified before publication), the semantic of 'no doubt' when language is absent, and the coverage boundary. This goes well beyond the readOnlyHint and destructiveHint 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 packed into two dense sentences, front-loaded with the main purpose. The first sentence is long but every clause adds value—scope, output, and history. The second sentence clarifies coverage limitations. No wasted words, though slightly complex sentence structure prevents a perfect 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?
Even without an output schema, the description fully explains what the agent will receive: verbatim disclosure, filing identifier, and history of doubt episodes. It also explains methodology and coverage limits, making it complete for a one-parameter 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?
The input schema covers ticker with a clear description (e.g., AAPL, MSFT), and schema coverage is 100%. The description does not add any parameter-specific semantics beyond the tool's overall purpose, so the baseline of 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 states exactly what the tool does with a specific verb and resource: it retrieves a company's going-concern doubt status from its latest examined SEC filing, including verbatim disclosure, filing source, and history of doubt episodes. This clearly distinguishes it from sibling tools like GetFdaCatalysts or GetEarningsBrief.
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?
While no alternative tools are explicitly named, the narrow purpose makes the intended use obvious. The description adds important context about coverage limitations (examined filings only, with no analysis of earlier periods), which helps an agent know when the data may be incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetGovernmentContractsFederal Contracts by CompanyARead-onlyInspect
Get federal government contract awards (from USAspending.gov) won by a specific public company. Shows the award (action) date, recipient named by the government, awarding agency, total value (obligated dollars plus unexercised ceiling — not revenue received), outlays when reported, period-of-performance end date, and description. Coverage: only prime contract awards of $1M or more that resolve to a listed company are included, so sums understate total federal revenue. Useful for gauging a company's reliance on federal spending; use GetTopGovernmentContractors to rank companies market-wide.
| Name | Required | Description | Default |
|---|---|---|---|
| agency | No | Optional case-insensitive substring filter on the awarding agency (e.g., 'Defense') | |
| sortBy | No | Sort order: 'amount' (largest total value first, default) or 'date' (most recent award first) | amount |
| ticker | Yes | Stock ticker symbol (e.g., LMT, RTX, BA) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to today) | |
| startDate | No | Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago) | |
| maxResults | No | Maximum number of awards to return (default: 50) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds non-obvious behavioral context: 'total value (obligated dollars plus unexercised ceiling — not revenue received)', 'outlays when reported', and coverage limitations ('only prime contract awards of $1M or more... sums understate total federal revenue'). This goes well beyond structured 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 dense but every sentence earns its place: purpose, key fields, data coverage caveats, and sibling alternative are all covered in a compact paragraph. It is front-loaded with the primary action and avoids filler.
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 no output schema, the description carries the burden of explaining return values, and it does: award date, recipient, agency, total value, outlays, period-of-performance end date, and description. It also addresses data source, coverage thresholds, and how to interpret understatement, making it complete for a tool of this 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 description coverage is 100%, with each of the 6 parameters already well-described. The tool description itself does not add parameter-specific semantics beyond what the schema provides, so the baseline 3 is appropriate. It does contextualize the meaning of 'total value' but that is an output field, not a parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get federal government contract awards (from USAspending.gov) won by a specific public company.' It clearly identifies the target (specific public company) and differentiates from sibling GetTopGovernmentContractors by noting 'use GetTopGovernmentContractors to rank companies market-wide.'
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: 'Useful for gauging a company's reliance on federal spending; use GetTopGovernmentContractors to rank companies market-wide.' It also clarifies coverage limitations (prime awards ≥ $1M) that help the agent decide when this tool is appropriate versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetGuidanceCompany GuidanceARead-onlyInspect
Get company guidance from written Item 2.02 earnings releases and earnings-call transcripts, newest release first, with range, unit, GAAP basis, fiscal period and source provenance. Closed target periods are marked ended. Revenue and diluted-EPS guidance includes the reported actual and verdict once comparable XBRL facts exist; non-GAAP guidance is never compared with GAAP actuals. Coverage notes distinguish unprocessed documents from sources that state no guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint, openWorldHint, and destructiveHint, but the description adds rich behavioral detail: how closed periods are marked, how revenue/EPS guidance includes actuals once comparable XBRL facts exist, the non-GAAP comparison rule, and coverage notes distinguishing unprocessed documents. This transparency goes well beyond the structured 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 compact yet information-dense, front-loading the primary purpose and then efficiently covering ordering, period marking, comparison rules, and coverage notes. No redundant sentences; each clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and read-only annotations, the description provides a thorough explanation of the returned content: source types, ordering, period status, comparison behavior, and coverage classification. This suffices for an agent to invoke correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the only parameter 'ticker' with an example and type, achieving 100% schema description coverage. The description does not add extra parameter-level detail, which is unnecessary given the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves company guidance from Item 2.02 earnings releases and transcripts, newest first, with specific attributes like range, unit, GAAP basis, fiscal period, and provenance. This specific verb+resource combination distinguishes it from siblings such as GetEarningsBrief or GetFinancialFact.
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 tool is for guidance data from written earnings releases and call transcripts, and notes nuances like non-GAAP never being compared to GAAP actuals. However, it does not explicitly name alternative tools or conditions for when not to use it, relying on the detailed purpose to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetIndexChangesIndex Additions and DeletionsARead-onlyInspect
Get the companies that have joined or left a major US stock index, newest first. Changes are derived by comparing consecutive constituent lists from the funds that track the index, so each one is dated to the window between two reports rather than to an announcement: a daily holdings file dates a change to a day, a quarterly filing only to a quarter. Several funds track the same index and each records a change separately, so records for the same company and direction over overlapping windows are collapsed into the single event a reader should see, keeping the narrowest window. This is observed membership, not an announcement feed, so a change appears once a tracking fund has actually reported it.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000". | |
| maxResults | No | Maximum changes to return, newest first (default 25, max 500). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as read-only and non-destructive, and the description adds substantial behavioral transparency beyond that: it explains window-based dating, collapse of duplicate records across funds, and the reporting lag. These are exactly the non-obvious traits an agent needs to interpret results correctly.
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 first sentence is a clear front-loaded purpose statement, and every subsequent sentence adds necessary nuance about derivation, timing, deduplication, and reporting behavior. It is longer than the minimal case, but the complexity of the tool justifies each sentence with no filler.
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 two-parameter read-only list tool with no nested objects and no output schema, the description is unusually complete. It covers what the tool returns conceptually, the meaning of the returned events, the data source derivation, and key caveats such as window granularity and deduplication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both "index" and "maxResults" are already documented with examples and defaults. The description adds context about index change events but does not need to repeat parameter mechanics; the baseline of 3 is appropriate because the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Get the companies that have joined or left a major US stock index, newest first." It clearly identifies this as a change-history tool for index constituents and distinguishes it from related index tools by emphasizing observed membership rather than an announcement feed.
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 for when the data is available: changes appear only after a tracking fund has reported them, and overlapping fund reports are collapsed. It also explicitly frames the tool as "observed membership, not an announcement feed," which is a useful exclusion, though it does not name alternative tools such as GetIndexComposition or GetIndexForecast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetIndexCompositionIndex ConstituentsARead-onlyInspect
Get the current constituent list of a major US stock index: S&P 500, S&P MidCap 400, S&P SmallCap 600, Nasdaq-100, Russell 1000, Russell 2000, or the Dow Jones Industrial Average. Each row carries the company's rank by weight, its ticker, and its share of the index. The list is a full-replication tracking fund's own disclosed holdings, taken from an SEC Form N-PORT filing or from the holdings file the fund publishes daily, and the answer names which fund and which date it came from. A list is only published once a fund's filing reaches us whole, so a partial filing is never served as a shrunken index. Rows that could not be matched to a tracked company are listed under the name the fund reported rather than dropped, because a dropped row would make the index look shorter than it is. Use GetIndexChanges for what has joined or left, and GetIndexForecast for who the published rules point to next.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index name or slug, for example "S&P 500", "sp-500", "nasdaq-100" or "Russell 2000". | |
| offset | No | Rows to skip before returning, for paging through a full list (default 0). | |
| maxResults | No | Maximum constituents to return, heaviest first (default 100, max 500). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, but the description goes far beyond that: it reveals the data provenance (SEC Form N-PORT or daily holdings file), the fact that the fund name and date are returned, that partial filings are never served, and that unmatched rows are preserved under their reported names rather than dropped. These are significant behavioral traits that an agent needs to know and are not present in 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 long but every clause earns its place: it states the purpose, lists supported indices, explains data source, notes handling of partial filings and unmatched rows, and gives explicit alternatives—all in a logical flow. It is front-loaded with the key action and scope, and there is no redundant or filler wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only three parameters, no output schema, and no nested objects, yet the description provides a thorough account of the response structure (rank, ticker, share), data provenance, and edge-case behavior (unmatched rows, partial filings). It even covers what the tool does not do via pointers to sibling tools. For a simple read-only list tool, this is complete and exceeds what is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters (index, offset, maxResults), and the schema already includes defaults and explanations such as 'heaviest first' for maxResults. The description does not add any new information about the parameters themselves; it only describes output structure and behavior, which is not the focus of this dimension. Thus, a baseline score of 3 is appropriate because the schema handles parameter semantics well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the current constituent list of a major US stock index' and enumerates seven concrete indices, immediately making the tool's scope clear. It also distinguishes itself from siblings by referencing GetIndexChanges and GetIndexForecast as alternatives for different queries, which prevents confusion.
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 usage guidance is provided: 'Use GetIndexChanges for what has joined or left, and GetIndexForecast for who the published rules point to next.' This tells the agent when not to use this tool and names the alternatives. The description also explains the data source (fund filings) and the guarantee about complete listings, offering clear context for when to rely on this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetIndexForecastIndex Rebalance ForecastARead-onlyInspect
Apply an index's published entry rules and return candidates with rule-by-rule evidence. S&P results are SCREENS because a committee chooses additions; the S&P 500 adds versioned 90-day empirical join probabilities for eligible candidates and exit probabilities for every member. They are estimates, not guarantees. Russell and Nasdaq-100 are PROJECTIONS decided by published rankings. A non-member with a missing figure has no entry verdict. An unmeasured member stays out of deterministic departure buckets, while the S&P 500 gives it the neutral exit baseline. The Dow has no quantitative rule or forecast. Each model revision is immutable. A model-version change may append a higher revision for the same trading day, and readers use the highest revision.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | Index name or slug, for example "S&P 500", "nasdaq-100" or "Russell 2000". The Dow is not forecastable. | |
| maxResults | No | Maximum companies to return per bucket (default 25, max 1000). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only establish read-only and non-destructive behavior. The description adds essential behavioral detail: estimates are not guarantees, missing figures produce no entry verdict, unmeasured members are handled differently across indices, and model revisions are immutable with a highest-revision rule. This materially changes how an agent should interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and then organized by index family, edge cases, and revision semantics. Although dense, every sentence contributes a distinct and material constraint; there is no redundant filler.
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?
This is a complex endpoint with no output schema, yet the description covers the output form (candidates with evidence, probabilities, departure buckets), index-specific forecast certainty, edge-case behavior, and versioning. That is sufficient for an agent to invoke and interpret 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 already documents both parameters with 100% coverage, including accepted index forms, the Dow limitation, and maxResults bounds. The description reinforces index-level semantics but does not add new parameter syntax or formatting details, so the 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 first sentence states a specific verb ('Apply'), a resource ('an index's published entry rules'), and a concrete deliverable ('return candidates with rule-by-rule evidence'). It also distinguishes this from sibling tools by framing it clearly as a forecast rather than a historical change report.
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 explicit guidance on when results are SCREENS vs PROJECTIONS and states that the Dow has no forecast, so an agent knows where the tool applies and where it does not. It does not explicitly name alternative sibling tools for actual index changes, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInsiderOwnershipInsider Ownership SummaryARead-onlyInspect
Get a summary of insider ownership for a stock, ranked by total shares held. Shares come from each insider's most recent SEC Form 3/4/5 filing: the filing's closing balance per security and ownership bucket (actual shares only — options and other derivative holdings are excluded), summed into Direct and Indirect columns and restated onto today's split basis, so they can differ from the raw figures in older filings. Indirect can understate an insider holding through several vehicles, because a filing reports one balance per vehicle and only the last is kept. Former insiders may linger with stale dates or zero shares. Returns at most maxResults insiders (default 30). Use this to understand the insider ownership structure of a company; use GetInsiderTransactions for the underlying trades.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of ranked insiders to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| maxResults | No | Maximum number of insiders to return (default: 30, max: 500; values outside 1-500 are clamped) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the annotations: shares come only from the most recent Form 3/4/5 filing, options and derivatives are excluded, figures are restated onto today's split basis, Indirect can understate because only the last vehicle balance is kept, and former insiders may show stale dates or zero shares. These nuances materially affect how an agent interprets results.
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 dense but efficient: it front-loads the core purpose, then packs several important caveats into compact sentences, ending with clear usage guidance. Every sentence contributes meaningful information about behavior or usage, with no filler or tautology.
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 no output schema, the description carries the responsibility of explaining what the result contains, and it does so thoroughly: source filings, ownership buckets, split adjustment, exclusions, indirect holding limitations, max results, and ranking order. An agent has enough context to call the tool and correctly interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds useful contextual semantics like the maxResults default and implicit ranking by total shares, but it does not significantly extend the meaning of individual parameters beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact verb and resource ('Get a summary of insider ownership for a stock'), specifies the ranking basis ('ranked by total shares held'), and clearly differentiates itself from sibling tools like GetInsiderTransactions and GetInsiderSentimentScores. It is unambiguous about what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Use this to understand the insider ownership structure of a company') and names the alternative for the underlying trades ('use GetInsiderTransactions'). This gives an agent clear routing guidance without needing to infer usage from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInsiderSentimentScoresInsider Sentiment ScoresARead-onlyInspect
Rank stocks by a peer-relative 0-100 insider-accumulation score over 90 days: net buyers, net shares bought as a percent of shares outstanding, and net buy value. It uses qualifying open-market Forms 4/5 purchases and sales; Form 3 establishes initial ownership, and disclosed Rule 10b5-1 trades are excluded. Filter for cluster buys or liquidity, request the bottom ranking for distribution, or pass ticker for one stock's factors and universe rank. Filters never renumber the universe rank. Use GetInsiderTransactions for the filings.
| Name | Required | Description | Default |
|---|---|---|---|
| bottom | No | Return the LOWEST-scored stocks instead — the heaviest peer-relative net insider selling — lowest score first. | |
| ticker | No | Optional stock ticker (e.g. NVDA): returns that one stock's score, factor breakdown, and rank within the scored universe instead of the leaderboard. The other filters do not apply to a single-ticker lookup. | |
| maxResults | No | Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200). | |
| minMarketCap | No | Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set. | |
| minSharePrice | No | Minimum share price in US dollars (e.g. 5 = $5; default 0 = no floor). Stocks with an unknown price are excluded when set. | |
| clusterBuysOnly | No | Return only stocks flagged as cluster buys (three or more distinct insiders buying in the window). | |
| minDollarVolume | No | Minimum trailing 3-month average daily dollar volume in US dollars (e.g. 5000000 = $5M/day; default 0 = no floor). Stocks with unknown volume are excluded when set. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds significant behavioral context: it defines the scoring components (net buyers, shares bought as % of outstanding, net buy value), explains the data source (Forms 4/5, excluding 10b5-1) and crucially states 'Filters never renumber the universe rank' — essential for interpreting results. Goes well 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?
Three sentences, front-loaded with the core purpose, then methodology, then usage options. No wasted words; every sentence contributes value. The structure flows logically from what to how to when.
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?
Even without an output schema, the description conveys key output components (score, factors, rank, net buyers, shares bought, buy value) and behavior (filters don't renumber rank). It also cross-references GetInsiderTransactions for raw filings. An agent can understand what to expect and how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have individual descriptions. The tool description adds contextual usage semantics: 'pass ticker for one stock's factors and universe rank' and 'request the bottom ranking for distribution' clarify how bottom and ticker interact with filters. This adds meaning beyond the schema, though not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rank) and resource (stocks) with a precise definition: 'peer-relative 0-100 insider-accumulation score over 90 days'. It also outlines the methodology (Form 4/5, excluding 10b5-1) and differentiates from siblings by pointing to GetInsiderTransactions for filings. Clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use: for ranking by insider sentiment, with options for cluster buys, liquidity, bottom ranking, or single-ticker lookup. It explicitly directs to GetInsiderTransactions for raw filings, but does not contrast with all alternative scoring tools (e.g., GetInsiderOwnership). Still, usage scenarios are well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInsiderTransactionsInsider Transactions (Forms 4/5)ARead-onlyInspect
Get recent insider trading transactions for a stock from SEC Forms 4 and 5, newest first. Form 3 supplies initial ownership rather than a transaction. The Type column carries the SEC transaction code meaning: 'Buy'/'Sell' are open-market purchases/sales only, while Award, Conversion, Exercise, Tax Payment, Expiration, Gift, Inheritance, Discretionary and Other are compensation or derivative mechanics — not conviction trades. The 10b5-1 column marks trades made under a pre-arranged Rule 10b5-1 plan ('-' = filing predates the 2023 checkbox). Per-row Shares/Price/Value are as filed; Owned After is the post-transaction balance restated onto today's split basis, tracked per security kind and ownership form. Supports optional date-range, transaction-type and insider-name filters to reach history beyond the newest rows. Use this to understand insider buying/selling activity.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| toDate | No | Only include transactions on or before this date, format yyyy-MM-dd (optional) | |
| fromDate | No | Only include transactions on or after this date, format yyyy-MM-dd (optional) | |
| maxResults | No | Maximum number of transactions to return (default: 50, max: 500; values outside 1-500 are clamped) | |
| insiderName | No | Only include transactions by insiders whose SEC-filed name contains every word of this value, case-insensitive (e.g. 'Huang') (optional) | |
| transactionType | No | Only include one transaction type: Buy, Sell, Award, Conversion, Exercise, TaxPayment, Expiration, Gift, Inheritance, Discretionary or Other (optional) |
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 safety profile is covered. The description adds valuable behavioral context about the 'Owned After' split basis, per-security and ownership-form restatement, and the '-' for pre-2023 10b5-1 filings. It doesn't mention pagination or rate limits, but this is a read-only data fetch with thorough column semantics, so a 4 is fair.
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, information-dense paragraph. It front-loads the core purpose and then adds semantic details about the columns and filters. Slightly long but every sentence adds value; for a complex SEC data tool this is acceptable.
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 no output schema, the description explains the key columns (Type, 10b5-1, Shares/Price/Value, Owned After) and their meanings, plus date-range and filter support. It doesn't explicitly state the response ordering beyond 'newest first', which is covered. For a 6-param tool with no output schema, this is quite complete, though it could note that maxResults clamping behavior is in the schema already.
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 params are documented in the schema. The description adds meaning beyond the schema by explaining the transactionType semantics (Buy/Sell vs Award/Conversion etc.), and the insiderName matching behavior ('contains every word, case-insensitive'), which is not in the schema. This compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource statement: 'Get recent insider trading transactions for a stock from SEC Forms 4 and 5, newest first.' It clearly distinguishes from siblings like GetInsiderOwnership, GetInsiderSentimentScores, and GetCongressionalTrades by focusing on Forms 4/5 transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'Use this to understand insider buying/selling activity' and distinguishes Form 3 as 'initial ownership rather than a transaction.' It explicitly cautions that Buy/Sell are only open-market trades, versus compensation/derivative mechanics, and explains the 10b5-1 column meaning, which guides the agent on what this tool is good for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionalOwnershipHistoryInstitutional Ownership HistoryARead-onlyInspect
Get the historical trend of institutional ownership for a stock across multiple quarters. Shows how total institutional shares, market value, and number of institutional holders have changed over time based on SEC 13F-HR filings. While the newest quarter's 13F filing window is open, that quarter is a provisional combined view (funds that have not filed yet carry their prior-quarter positions — flagged in the output). Use this to understand whether institutional interest in a company is growing or declining.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| maxPeriods | No | Maximum number of quarterly periods to return (default: 8, clamped to 1-500) |
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 safety profile is covered. The description adds valuable behavioral context beyond these: it explains the provisional combined view during the newest quarter's filing window, including the carry-forward of prior-quarter positions and that this is flagged in the output. This is exactly the kind of nuance an agent needs to interpret the data correctly. 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 three sentences, each adding value: the purpose and output, the provisional-quarter behavior, and the intended use case. It is front-loaded with the primary action and resource. It is efficient with no filler, though it could be tightened slightly if desired. Deserves a 4 for good structure without 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?
For a read-only tool with two parameters and no output schema, the description covers the essential context: what data is returned, the time dimension, and the special provisional-quarter caveat. It does not specify the exact response format, but given the tool's simplicity and the presence of annotations for safety, this is adequate. Missing a few details like specific output fields (though some are mentioned) keeps it from a 5, but it is otherwise 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?
The input schema provides full descriptions for both parameters: ticker (example usage) and maxPeriods (default and clamp range). Since schema description coverage is 100%, the description does not need to re-explain these and indeed does not add any additional meaning. The baseline of 3 is appropriate because the description adds nothing 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 retrieves the historical trend of institutional ownership across multiple quarters, specifying the resource (institutional ownership) and the dimension (trend over time). It also lists the key output fields (total shares, market value, holder count). However, it does not explicitly name sibling tools or differentiate from them by name, though the 'historical trend' scope distinguishes it from related tools like GetInstitutionQuarterlyActivity or GetTopHolders. Missing explicit sibling differentiation keeps it at 4 rather than 5.
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 a clear use case: 'Use this to understand whether institutional interest in a company is growing or declining.' This tells the agent when the tool is appropriate. It does not mention explicit alternatives or exclusions (e.g., 'for a single quarter use X'), so it lacks the when-not-to-use guidance that would earn a 5. The context is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionCloneBacktest13F Portfolio Clone BacktestARead-onlyInspect
Backtest how cloning an institutional filer's reported 13F portfolio would have performed against a market benchmark, either over a trailing window (windowYears) or an explicit fromDate/toDate range. Reconstructs the filer's portfolio at each quarterly 13F snapshot, rebalances on the SEC filing lag, and values each exact listed security on raw closing prices. Returns price return (dividends excluded), CAGR, and max drawdown for the clone and benchmark, plus price-return alpha. Usable captured split ratios restate closes onto one basis; an unusable ratio can exclude that listing's earlier closes.
| Name | Required | Description | Default |
|---|---|---|---|
| toDate | No | Optional window end in YYYY-MM-DD format (defaults to today when only fromDate is given) | |
| fromDate | No | Optional window start in YYYY-MM-DD format for an anchored historical backtest (e.g. 2015-01-01); overrides windowYears | |
| benchmark | No | Benchmark ticker to compare against (default: SPY) | SPY |
| institution | Yes | Institution name or SEC CIK (e.g., 'Berkshire Hathaway', '1067983', or zero-padded '0001067983'). Unique partials and verified aliases resolve; ambiguous partials return candidate CIKs. | |
| windowYears | No | Trailing window length in years anchored at today (default: 3, clamped to 1-20; ignored when fromDate/toDate are supplied) |
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 safety is covered. The description adds meaningful behavioral details beyond these: dividends are excluded from returns, split ratios are handled with a fallback to exclude earlier closes when unusable, and the valuation uses raw closing prices. These are non-obvious behaviors that materially affect results and are not inferable from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single verbose paragraph, but every sentence earns its place—purpose, mode selection, reconstruction/rebalancing details, return metrics, and split handling are all packed in. It is front-loaded with the core purpose. While it could be broken into bullet points for readability, it is not bloated and remains efficient for its complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (backtest logic, snapshot reconstruction, split handling) and the absence of an output schema, the description does a thorough job. It specifies the exact return metrics (price return, CAGR, max drawdown, alpha), explains the date range logic, institution resolution, and benchmark default. An agent has enough information to invoke the tool correctly without ambiguity about inputs or expected outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter has a description. The tool description adds value by clarifying interactions: fromDate overrides windowYears, windowYears is clamped to 1-20, and institution accepts names/CIKs with resolution behavior (unique partials, aliases, ambiguous partials return candidates). This enriches the schema descriptions without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with the specific verb 'Backtest' and a precise object: how cloning an institutional filer's reported 13F portfolio would perform against a market benchmark. It clearly distinguishes this from the many other institution-related tools (e.g., GetInstitutionPortfolio, GetInstitutionQuarterlyActivity) by focusing on backtest performance, not holdings or activity. The first sentence alone fully defines the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains the two modes of operation (trailing window via windowYears, or explicit fromDate/toDate range) and notes that fromDate overrides windowYears when both are supplied. It also mentions the rebalancing on the SEC filing lag, giving context for how results are produced. However, it does not explicitly contrast with alternative tools (e.g., 'use this instead of X when...'), though given the unique purpose, this is a minor omission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionConsensusHoldingsConsensus Holdings Across InstitutionsARead-onlyInspect
Combine 2-25 institutions' 13F portfolios on their latest common report date. Ranks stocks by holder count, then combined value. Set minInstitutions to 2 or more for positions shared by multiple filers.
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of stocks to return (default: 30, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the latest common quarter; an off-quarter date snaps to the nearest common report on or before it) | |
| minInstitutions | No | Minimum number of institutions that must hold a stock (default: 1; set 2 or more for shared positions) | |
| institutionNames | Yes | Institution names or CIKs (2-25). Unique partial names and verified aliases resolve; ambiguous partials return candidate CIKs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so no contradiction. The description adds value beyond annotations by disclosing the ranking behavior, the 2-25 institution range constraint, the snapping behavior of reportDate implied by 'latest common quarter', and the partial-name resolution semantics. These are behavioral traits not present in 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?
Two sentences with no filler. The primary function and ranking logic are front-loaded, and the minInstitutions usage tip is placed at the end as practical guidance. 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 read-only aggregation tool with 100% parameter schema coverage and no output schema, the description covers the purpose, ranking, key constraint (2-25), and parameter intent. It omits explicit mention of return format, but without an output schema that is a minor gap given the tool's straightforward list-oriented nature.
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 adds meaning beyond the schema by explaining the purpose of minInstitutions in the ranking context ('shared by multiple filers') and by framing institutionNames as supporting partial names and CIKs with ambiguity resolution. This enriches but does not reinvent 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 verb ('Combine'), resource (institutions' 13F portfolios), and ranking logic (holder count, then combined value). It distinguishes itself from single-institution tools by emphasizing multi-institution consensus, though it does not explicitly name sibling alternatives like GetFundsHoldingStock or GetTopHolders.
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 context via 'latest common report date' and 'positions shared by multiple filers', and gives a concrete tip (set minInstitutions to 2+ for shared positions). However, it does not explicitly state when to prefer this over similar tools (e.g., GetInstitutionPortfolio, GetFundsHoldingStock) or when NOT to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionPortfolioInstitution Portfolio (13F)ARead-onlyInspect
View the stock portfolio of a specific institutional investor (fund manager) from their SEC 13F-HR filing. Shows the institution's largest tracked holdings by market value (default 20, max 500) with share counts, market values, and percent of the 13F-reported portfolio, plus the portfolio's total value and position count. Use this to understand what stocks a particular fund manager or institution is investing in; use SearchInstitutions first when the name is ambiguous.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of ranked holding rows to skip before returning rows — pass the previous call's last row number to page past the maxResults cap (default: 0) | |
| maxResults | No | Maximum number of holdings to return (default: 20, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it) | |
| institutionName | Yes | Institution name or SEC CIK. A unique partial name resolves; an ambiguous partial returns candidate CIKs instead of selecting silently. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description adds beyond that: it discloses the output structure (largest holdings, share counts, market values, percent of portfolio, total value, position count), default/max results, and the ambiguity handling behavior ('ambiguous partial returns candidate CIKs instead of selecting silently'). This is useful context not available from annotations or schema.
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 consists of two well-structured sentences. The first sentence defines the tool's function and outputs; the second provides usage guidance. Every phrase contributes essential information—no filler, no redundancy, and the most critical details are 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 no output schema, the description carries the burden of explaining returns, and it does so thoroughly: it lists the specific data included (share counts, market values, percent of portfolio, total value, position count). It also covers defaults (20, max 500), ambiguity resolution, and the predecessor tool. For a read-only tool with four well-documented parameters, this is contextually 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?
The schema descriptions cover all four parameters (100% coverage), providing clear field-level details. The main description adds contextual meaning around the 'largest tracked holdings' concept and confirms default/max limits, which helps understand the offset/maxResults parameters without duplicating schema text. It adds value beyond the schema rather than merely restating it.
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 'View the stock portfolio of a specific institutional investor (fund manager) from their SEC 13F-HR filing,' with a specific verb and resource. It enumerates the output scope (largest holdings, share counts, market values, portfolio total) and distinguishes itself from search tools like SearchInstitutions by pointing users to resolve ambiguous names first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells users when to use this tool ('Use this to understand what stocks a particular fund manager or institution is investing in') and instructs them to use SearchInstitutions first when the name is ambiguous. While it does not mention alternatives like GetFundHoldings or GetTopHolders, the provided guidance is clear and actionable for common scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionQuarterlyActivityInstitution Quarterly ActivityARead-onlyInspect
Get an institution's quarterly position-change activity — Initiated / Increased / Reduced / Exited stocks diffed against the immediately prior quarter. Returns the buckets as one markdown section per bucket, sorted by absolute Δ market-value desc (Δ Value includes price movement, not just trading). Use bucket to filter to a single bucket. Use this to answer 'what did this fund do this quarter?'
| Name | Required | Description | Default |
|---|---|---|---|
| bucket | No | Filter to a single bucket: initiated, increased, reduced, exited (omit for all four) | |
| maxResults | No | Maximum number of stocks to return per bucket (default: 20, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it) | |
| institutionName | Yes | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds valuable behavioral details: it returns one markdown section per bucket, sorts by absolute Δ market-value descending, and clarifies that Δ Value includes price movement, not just trading. It also explains the diffing logic against the prior quarter, giving the agent a clear picture of the output and interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and every clause contributes value. It efficiently conveys the core functionality, return format, sorting, and a usage example with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the 100% schema coverage, and the read-only annotations, the description is fully complete. It explains the return format (markdown sections), sorting rationale, the meaning of Δ Value, and the applicable question it answers. No output schema exists, but the description sufficiently covers expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all four parameters with detailed descriptions (bucket values, default maxResults, date snapping, and institution name resolution). The description does not add new parameter-level semantics beyond what is already present in the schema, so the baseline of 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 specifies the verb ('Get') and resource ('institution's quarterly position-change activity'), and enumerates the exact buckets (Initiated / Increased / Reduced / Exited) and the temporal comparison (vs. immediately prior quarter). This distinctly separates it from sibling tools like GetInstitutionPortfolio and GetFundHoldings, which focus on current holdings rather than changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use case: 'Use this to answer "what did this fund do this quarter?"' and explains how to filter with the `bucket` parameter. However, it does not explicitly name alternatives or state when NOT to use this tool, such as when a user needs a current holdings snapshot rather than change activity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionSectorAllocationInstitution Sector AllocationARead-onlyInspect
Get an institution's 13F portfolio allocation for a given report quarter (defaults to the latest), grouped by fine-grained industry (default) or rolled up by sector via groupBy. Returns a markdown table sorted by % of portfolio descending, with stocks lacking a classification collapsed into a single 'Unclassified' row at the end. Use SearchInstitutions for an exact CIK; ambiguous partial names return candidates instead of selecting silently.
| Name | Required | Description | Default |
|---|---|---|---|
| groupBy | No | Grouping level: 'industry' (default, fine-grained) or 'sector' (broad rollup) | industry |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it) | |
| institutionName | Yes | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds substantial behavioral details: defaults to the latest quarter, grouping via groupBy, markdown table output sorted by % descending, unclassified stocks collapsed into a single row, and ambiguous partial names returning candidates instead of silent selection. This enriches the agent's understanding of what the tool actually does.
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 three sentences long, each earning its place: the first states the main function and grouping options, the second describes the output format and sorting, and the third gives a crucial usage hint about name resolution. It is front-loaded with the core purpose and contains 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?
There is no output schema, so the description properly explains the return format (markdown table, sorted by % of portfolio, unclassified row at the end). It also documents defaults for reportDate and groupBy, and warns about ambiguous name behavior. For a tool with 3 parameters and no output schema, this covers all essential aspects an agent needs to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 is appropriate. The description does not add significant new meaning to the parameters beyond the schema: groupBy's meanings and reportDate's snapping behavior are already in the schema, and institutionName's ambiguous partial handling is also in the schema. The only slight addition is the usage guideline to use SearchInstitutions for exact CIKs, which is more of a usage guideline than a semantic enrichment.
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 function: getting an institution's 13F portfolio allocation for a given report quarter, grouped by industry or sector. It uses a specific verb ('Get') and identifies the resource ('institution's 13F portfolio allocation') with clear scope (grouping levels). This distinguishes it from sibling tools like GetInstitutionPortfolio or GetFundHoldings by emphasizing the sector/industry rollup.
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 an explicit alternative: 'Use SearchInstitutions for an exact CIK' and warns that ambiguous partial names return candidates. This gives clear guidance for the institutionName parameter. However, it does not explicitly contrast with other allocation tools (e.g., GetInstitutionPortfolio), so it lacks a full when-to-use vs. alternatives discussion, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInstitutionSummaryInstitution Portfolio SummaryARead-onlyInspect
Get the portfolio summary header for an institutional 13F filer — 13F reported value (long U.S. positions only, not total firm AUM), position count, top-10 / top-25 concentration, QoQ turnover, and the latest / prior report dates with the count of quarters tracked in this database. Resolve exact CIKs with SearchInstitutions; ambiguous partial names return candidates rather than selecting a filer silently.
| Name | Required | Description | Default |
|---|---|---|---|
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format (defaults to the holder's latest; an off-quarter date snaps to the nearest report on or before it) | |
| institutionName | Yes | Institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior, so the safety is known. The description adds valuable context: it reports 13F value for long U.S. positions only (not total AUM) and highlights that ambiguous partial names yield candidate CIKs rather than an implicit pick. These are non-obvious behaviors that help the agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence packs a dense list of returned fields; the second succinctly gives resolution guidance. Every phrase 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 2-parameter, read-only tool with full schema coverage, the description conveys the scope, key output fields, and edge-case behavior (ambiguous names). The schema already handles reportDate snapping, so nothing crucial is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both parameters have clear descriptions (institutionName resolution rules, reportDate default and snapping behavior). The tool description does not add any parameter-level detail beyond the schema, so the baseline score applies.
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 portfolio summary header for institutional 13F filers, enumerating specific metrics (13F value, position count, concentration, turnover, dates, quarters tracked). This distinguishes it from sibling tools like GetInstitutionPortfolio or GetInstitutionQuarterlyActivity by positioning it as the summary-level view.
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 explicit guidance to resolve CIKs using SearchInstitutions and notes that ambiguous names return candidates rather than being silently resolved, which is a clear usage hint. It also clarifies scope ('not total firm AUM'), but does not explicitly tell the agent when to choose this tool over other institution-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInvestmentAdviserInvestment Adviser Profile (Form ADV)ARead-onlyInspect
Get the full Form ADV profile for a single SEC-registered investment adviser by its Organization CRD number: legal and business names, SEC file number, main office, website, regulatory assets under management (discretionary, non-discretionary and total), employee count, and how the firm is compensated (fee structure). Find CRD numbers with SearchInvestmentAdvisers.
| Name | Required | Description | Default |
|---|---|---|---|
| crd | Yes | The adviser's Organization CRD number (e.g., 231) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds behavioral context by enumerating the specific data fields returned (legal/business names, SEC file number, etc.), which gives the agent a better sense of what the response contains. It does not discuss error handling or rate limits, but this is a simple read operation.
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: the first packs the scope and all key fields in a list, the second gives a pointer to the search tool. No redundant words, no repetition of schema content, and the most important detail (Form ADV profile by CRD number) 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?
For a single-parameter read-only tool with no output schema, the description is highly complete. It specifies the input (CRD number), the exact domain (Form ADV), the list of fields returned, and how to obtain the necessary input via SearchInvestmentAdvisers. The only minor omission is error handling, but this is not essential for a simple getter and the annotations cover safety concerns.
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 covers the parameter with type and description (100% coverage), but the tool description adds semantic detail by specifying it is for 'SEC-registered' advisers and that it is the 'Organization' CRD number, distinguishing from other possible identifiers. It also explains how to find the CRD value via the sibling tool, 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 uses a specific verb 'Get' with a precise resource, 'full Form ADV profile', and identifiers it by 'Organization CRD number'. It clearly distinguishes from the sibling SearchInvestmentAdvisers by explicitly noting that CRD numbers can be found with 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 gives explicit guidance on when to use this versus the alternative: 'Find CRD numbers with SearchInvestmentAdvisers' implies you need a CRD number to use this tool and should use the search tool if you lack one. No exclusions are stated, but the prerequisite and an alternative are clearly named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInvestorEventSlideMetadataInvestor Event Slide MetadataARead-onlyInspect
Get metadata and access links for a captured investor-event slide deck by event id. Returns the same deck metadata as REST: event and ticker, call date, deck title and source, PDF versus image-slideshow kind, page count, capture time, MIME type, and either the PDF API path or ordered slide-image API paths. The binary PDF/image contents are not embedded in the response. Get the event id from ListInvestorEvents or GetEarningsCallEvent.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The investor event id (from ListInvestorEvents or GetEarningsCallEvent) |
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 read-only nature is given. The description adds valuable behavioral detail: it returns metadata and access paths, not the binary contents, and explicitly lists the response fields including the distinction between PDF and image-slideshow paths. This goes beyond annotations by explaining what the response contains and what it does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the purpose and then details the return fields. It avoids redundancy and each clause adds information, but it is slightly longer than necessary and uses a semicolon-heavy structure. Still, it is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description compensates by listing all returned metadata fields and the two possible path types. It also clarifies that binary content is not embedded, which prevents an agent from expecting it. The prerequisite for the id is explicitly stated. This is complete for an agent to call 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 single parameter eventId is fully described in the schema with the same source guidance ('from ListInvestorEvents or GetEarningsCallEvent'). Since schema description coverage is 100%, the baseline is 3; the description does not add additional 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 it 'Get[s] metadata and access links for a captured investor-event slide deck by event id,' specifying the resource and action. It distinguishes itself from sibling tools like GetInvestorEventTranscript by detailing the exact fields returned (deck metadata, PDF vs. image-slideshow kind, page count, etc.) and by noting that binary content is not embedded, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to obtain the required event id ('Get the event id from ListInvestorEvents or GetEarningsCallEvent'), which serves as a prerequisite. It implies this tool is the one for slide-deck metadata, distinct from transcript tools, though it does not explicitly list alternatives or exclusions. This is clear contextual guidance without explicit 'when not to use' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInvestorEventTranscriptInvestor Event TranscriptARead-onlyInspect
Get the speaker-labelled transcript of a specific investor event (earnings call, conference, investor day) by its event id — every speaker turn in order, attributed to the real person (executive or analyst) with their role when the resolution is trusted; unverified voices show as a role label (e.g. Operator) or a neutral speaker number. Get the event id from ListInvestorEvents. Use this for conferences and other non-earnings events, which have no fiscal quarter to key on.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped) | |
| offset | No | Number of leading speaker turns to skip, for paging through events longer than the 200-turn cap (default 0) | |
| eventId | Yes | The investor event id (from ListInvestorEvents) |
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 safety profile is covered. The description adds valuable behavioral context about speaker resolution: 'every speaker turn in order, attributed to the real person... when the resolution is trusted; unverified voices show as a role label... or a neutral speaker number.' This explains the output's trustworthiness and fallback behavior, which is beyond the annotation. A 4 is appropriate because it enriches understanding without redundancy.
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 compact and front-loaded: it starts with the core function, then details output attributes, then gives usage context. Each clause carries useful information—no filler. It is slightly dense due to the speaker-resolution details, but that is directly relevant to the tool's purpose. Overall, it is well-structured for its length.
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 read-only tool with one required parameter and well-documented schema, the description covers the output format (speaker turns, attribution), the source of the id, and the scope (non-earnings events). It does not discuss error cases or edge behavior, but those are not critical given the read-only nature and existing pagination notes in the schema. The tool is sufficiently contextualized among its 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?
Schema coverage is 100%: each parameter (eventId, limit, offset) has a description, including the clamping range for limit and paging purpose for offset. The description only adds a sourcing hint for eventId ('Get the event id from ListInvestorEvents'), which already appears in the schema's eventId description. Since the schema does the heavy lifting, the description adds little extra meaning, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a clear resource ('speaker-labelled transcript of a specific investor event'), and the means of identification ('by its event id'). It explicitly contrasts with earnings calls, distinguishing it from the sibling GetEarningsCallTranscript, so an agent can immediately tell them apart without reading schemas.
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 explicit guidance: 'Use this for conferences and other non-earnings events, which have no fiscal quarter to key on,' which tells when to use this tool and implies when not to (earnings calls). It also directs the agent to obtain the event id from ListInvestorEvents, providing a clear prerequisite. This is nearly complete usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetInvestorRelationsNewsInvestor Relations NewsARead-onlyInspect
Get recent investor-relations press releases for a stock, scraped from the company's IR website. Returns the most recent news items (headline, publish date, summary when the source provides one, and link) in reverse-chronological order. Use this to see a company's latest official announcements straight from its IR page, distinct from third-party news. Coverage is partial — only companies whose IR page has been discovered and content-scraped have items, so an empty answer may be a coverage gap rather than corporate silence; the response says which case applies.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Optional earliest publish date, strict yyyy-MM-dd (UTC). Only items published on or after this date are returned. | |
| ticker | Yes | Company ticker symbol (e.g., NVDA) | |
| maxResults | No | Maximum number of news items to return (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false. The description goes beyond by detailing the return structure (headline, publish date, summary, link), reverse-chronological order, and crucially the partial coverage caveat that an empty result may be a coverage gap, with the response indicating which case. 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 about four sentences, all substantive: main purpose, return format, usage guidance, coverage caveat. 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?
For a simple read-only list tool with no output schema, the description covers what the tool returns, ordering, and the important edge case of empty results. Combined with the schema and annotations, the user has enough 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?
Schema coverage is 100%, with clear descriptions for 'since' and 'maxResults'. The description doesn't add additional parameter semantics beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('investor-relations press releases... from the company's IR website'), clearly distinguishing this from sibling tools like GetInvestorRelationsEvents and third-party news sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the user when to use it: 'Use this to see a company's latest official announcements straight from its IR page, and notes it is 'distinct from third-party news.' However, it doesn't name specific alternative tools or exclusion cases, so a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetIpoDetailsIPO Registration DetailsARead-onlyInspect
Get one S-1/F-1 registration's full picture by the filer's SEC CIK (as listed by GetIpoFeed): lifecycle status, verified offering classification, effective-prospectus accession and EDGAR link, proposed ticker and exchange, the offer price range and shares offered with their verbatim prospectus quotes, what the company does, how it will use the proceeds, the underwriting banks in cover order, the key summary risk factors (each with its verbatim prospectus sentence), the annual pre-IPO financials from the filer's own XBRL-tagged statements, and the complete S-1/amendment/prospectus filing chain with EDGAR links. Underwriter and risk-factor availability distinguishes pending/rejected extraction from a completed read that stated none. Everything extracted is verified against the filing text and never estimated.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | The filer's SEC CIK, with or without leading zeros (e.g. 1995137). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable interpretive context: that missing underwriters/risk factors distinguish pending/rejected extractions, and that all data is 'verified against the filing text and never estimated.' This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with a long semicolon-separated list. It front-loads the main action but would benefit from bullet points or shorter sentences for readability. Every item is informative, but the structure is not optimized for quick comprehension.
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?
There is no output schema, so the description correctly carries the burden of explaining return values. It inventories all major data groups (lifecycle, offering, prospectus, risk factors, financials, filing chain) and even clarifies interpretation of missing fields. The tool is simple (one input), so this seems sufficiently 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?
The only parameter, cik, is fully described in the schema (CIK with or without leading zeros). The description adds a minor contextual note that the CIK comes from GetIpoFeed, but this does not alter the schema's meaning. Since schema coverage is 100%, 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 opens with 'Get one S-1/F-1 registration's full picture by the filer's SEC CIK (as listed by GetIpoFeed)', which clearly specifies the verb, resource, and differentiation from the list-oriented GetIpoFeed. The enumerated output categories (lifecycle status, offering classification, financials, filing chain) make the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly references GetIpoFeed as the origin of the CIK, implying the intended workflow of listing IPOs first and then retrieving details for a specific filer. While it does not state 'use this instead of X' or provide exclusions, the context is clear enough for an agent to understand when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetIpoFeedIPO FeedARead-onlyInspect
Get the US S-1/F-1 registration pipeline, newest filing activity first. Rows distinguish Primary, Resale, DirectListing, NonOffering and Unknown transactions; terms come from the newest effective prospectus or latest filing and never a superseded document. Results include lifecycle, proposed listing, applicable offer terms and latest annual XBRL financials in the filer's currency. Filter lifecycle or SEC-classified SPAC versus operating filers. Use a row's CIK with GetIpoDetails for the filing chain and extracted detail.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum registrations to return, newest filing activity first (default 25). | |
| status | No | Optional lifecycle filter: Filed, Priced, Listed, or Withdrawn. Omit for all. | |
| filerType | No | Optional company-type filter: Operating (non-SPAC) or Spac (SIC 6770 blank checks). Omit for all. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, so the description doesn't need to cover safety. It adds valuable behavioral context by explaining that terms come from the newest effective prospectus or latest filing and never a superseded document, and by listing result contents (lifecycle, proposed listing, offer terms, XBRL financials). This goes beyond what annotations provide, though it doesn't mention operational limits like rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and each sentence contributes new information. It is dense but not verbose, effectively covering scope, data provenance, result contents, filtering, and sibling routing without redundancy. It earns a 4 for good structure and 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 there is no output schema, the description sufficiently describes the result content (lifecycle, proposed listing, offer terms, financials) and provides filtering guidance, plus routing to GetIpoDetails. For a read-only tool with three optional parameters, this covers what an agent needs to call it correctly, including data selection logic and output variety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (limit, status, filerType) already documented. The description adds minimal parameter-specific detail—it mentions filtering by lifecycle and SPAC vs operating, which aligns with status and filerType, but doesn't elaborate on allowed values or formats beyond the schema. With full schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting the US S-1/F-1 registration pipeline with newest filing activity first. It specifies the resource (US S-1/F-1 registrations), the verb (Get), and differentiates from the sibling GetIpoDetails by explicitly routing users to it for filing chains. The scope and unique behavior are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells users when to use this tool (to obtain the registration pipeline) and explicitly directs them to GetIpoDetails for detailed filing chains using a CIK from this tool. It also notes filtering options (lifecycle, SPAC vs operating), giving clear context for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetLargestShortVolumeLargest Short Volume by DayARead-onlyInspect
Get the stocks with the largest daily short sale volume for a single trading day (defaults to the latest available), from FINRA's daily short sale volume files, sorted by short volume descending. Short % is the share of that day's FINRA-facility (off-exchange/TRF) volume sold short — 40-50% is a normal market-making baseline — NOT short interest (the open short position; use GetShortInterest/GetShortInterestSnapshot for positions and GetShortSqueezeScores for squeeze candidates; use GetShortVolume for one stock's daily history). Pass sortBy=shortPercent with a minTotalVolume floor to rank by short intensity instead of raw size.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Trading day in YYYY-MM-DD format (defaults to the latest available day) | |
| offset | No | Number of ranked results to skip before returning rows — pass the previous call's last row number to page past the maxResults cap (default: 0) | |
| sortBy | No | Sort key: shortVolume (default) or shortPercent — with shortPercent set a minTotalVolume floor, otherwise illiquid names dominate | shortVolume |
| maxResults | No | Maximum number of results to return (default: 50, max: 500) | |
| minShortVolume | No | Minimum short volume filter (default: 0) | |
| minTotalVolume | No | Minimum total FINRA-reported volume filter, in shares (default: 0 = no floor) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains semantic nuances beyond the readOnlyHint/destructiveHint annotations: what 'Short %' means, a normal market-making baseline (40-50%), and clarifies that this is not short interest. It also discloses the default date behavior, sort order, and data source. 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?
Three information-dense sentences cover the core purpose, clarify a potentially confusing metric (short % vs short interest), and provide usage guidance. The main action is front-loaded, and every clause 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 read-only ranked list tool, the description is complete: it states the data source, default date, sort ordering, output semantics, and when to use alternatives. No output schema is present, but the description sufficiently implies the return shape (a sorted list of stocks with volume/short % metrics) for reliable 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 description coverage is 100%, so the parameters are already well-documented. The description adds contextual guidance for sortBy and minTotalVolume (e.g., the need for a floor when using shortPercent), but it does not deeply elaborate on each parameter beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource: stocks with the largest daily short sale volume for a single trading day, sourced from FINRA. It explicitly distinguishes this from sibling tools like GetShortVolume and GetShortInterest, making the tool's unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives, naming GetShortInterest/GetShortInterestSnapshot for positions, GetShortSqueezeScores for squeeze candidates, and GetShortVolume for single-stock history. It also gives a concrete usage tip for ranking by shortPercent with a minTotalVolume floor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetLatestCftcPositioningLatest CFTC Positioning SnapshotARead-onlyInspect
Get the latest COT positioning snapshot across all tracked futures contracts, grouped by category (Agriculture, Energy, Metals, Equity Indices, Interest Rates, Currencies). Shows commercial and non-commercial net positions in contract counts from the legacy futures-only COT report (positions as of each Tuesday, published Friday). Each row carries the market code accepted by GetCftcPositioning.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all) |
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 safety profile is known. The description adds meaningful behavioral context: it specifies the report is the legacy futures-only COT report, the data timing (as of Tuesday, published Friday), and the grouping by category. This goes beyond annotations and gives agents a clearer picture of what the data represents, though it does not discuss pagination or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The main purpose is front-loaded ('Get the latest COT positioning snapshot'), and the subsequent sentence provides essential details (data type, source, timing, and cross-reference to a sibling). Every clause 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 tool with one optional parameter and no output schema, the description covers the core aspects: what data is returned (net positions), grouping, the report vintage, and a cross-reference to the market code. It does not describe the exact row structure or whether all rows are returned, but given the simplicity of the tool and existing annotations, the information is sufficient for an agent to call 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?
The single parameter (category) is fully documented in the schema (100% coverage), so the description adds no additional semantic value beyond the schema. The listing of categories in the description is redundant with the schema's enum-like list, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the latest COT positioning snapshot across all tracked futures contracts, grouped by category, and specifies the data type (commercial/non-commercial net positions). It implicitly differentiates from GetCftcPositioning by referencing the market code accepted by that tool, but does not explicitly state the boundary (e.g., 'this returns all; GetCftcPositioning returns a specific market').
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 useful context (latest, weekly, categories) but does not explicitly state when to use this tool versus GetCftcPositioning or SearchCftcMarkets. The mention of 'market code accepted by GetCftcPositioning' hints at a relationship but stops short of clear routing guidance or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetLatestClosingPricesLatest Closing PricesARead-onlyInspect
Get each ticker's newest traded, settled daily close in USD, with one-session change, volume, and trailing 52-week closing range. Rows can have different dates while a session settles; use the Date column. Change is omitted when the immediately prior trading session is absent. Split-limited or partial 52-week ranges are marked in the response. This is settled history, not an intraday quote.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Ticker symbols (max 25). Class shares may use BRK-B or BRK.B. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses three non-obvious behaviors: rows can carry different dates while a session settles and the Date column should be used, change is omitted when the immediately prior trading session is absent, and split-limited or partial 52-week ranges are marked. These edge cases materially affect interpretation and are invisible in the schema. The description is consistent with readOnlyHint=true, so no contradiction exists.
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?
Five sentences, each earning its place: the core return contract is front-loaded in sentence one, followed by the date-alignment caveat, the conditional omission rule, the quality-marker note, and the semantic scope disclaimer. There is no redundant or filler 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 no output schema present, the description serves as the response contract: it enumerates the returned fields (close, change, volume, trailing 52-week range) and covers the edge cases that affect interpretation. For a single-parameter, read-only data-fetch tool, nothing essential is missing for correct invocation or result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the tickers parameter is fully documented as an array of strings with a max of 25 and accepted class-share formats (BRK-B or BRK.B). The description adds no parameter-level detail beyond what the schema already provides, so the baseline of 3 applies.
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 first sentence names a specific verb and resource: 'Get each ticker's newest traded, settled daily close in USD, with one-session change, volume, and trailing 52-week closing range.' It enumerates the exact fields returned and closes with 'This is settled history, not an intraday quote,' which differentiates it from siblings like GetLiveQuote and GetStockPrices.
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 closing statement 'This is settled history, not an intraday quote' gives agents a clear boundary for when this tool is appropriate versus when it is not. However, it stops short of naming the explicit alternative (GetLiveQuote) for live intraday needs, so the routing is clear but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetLatestEconomicIndicatorsLatest Economic IndicatorsARead-onlyInspect
Get the latest values for key economic indicators across categories: interest rates, yield spreads, inflation, employment, GDP, money supply, sentiment, housing, exchange rates, and market indicators. Each row shows a series' latest stored observation with its date, plus the previous observation and the change between them for direction — check the Latest Date column for freshness. Returns a snapshot of current macro conditions.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all) |
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 safety profile is covered. The description adds genuine value on top: it discloses the return structure (latest observation, previous observation, change between them), states that rows carry dates, and flags the freshness caveat — advising the agent to 'check the Latest Date column'. 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?
Three sentences with no filler. The category enumeration is long but purposeful since it defines the tool's scope. The practical freshness note ('check the Latest Date column') is useful but placed at the end; a reader must parse a long category list before reaching the behavioral guidance. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Reasonably complete for a single optional-parameter, read-only snapshot tool with full schema coverage. The description explains what each row contains and the freshness caveat, which covers the main call-eligibility question. It does not mention pagination, result limits, or how it differs from the sibling indicator/calendar tools, but nothing an agent strictly needs to invoke it correctly is missing.
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 category parameter is fully documented with its allowed enum-like values and default of 'all'. The description lists the same categories again, adding marginal value by reinforcing scope but not providing syntax, format, or value-behavior details beyond the schema. With full schema coverage, the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('latest values for key economic indicators'), enumerates the covered categories, and frames the output as a snapshot of current macro conditions. It does not explicitly name or differentiate against closely related siblings like GetEconomicIndicator, GetEconomicCalendar, or SearchEconomicIndicators, though the 'latest'/'snapshot' framing makes the contrast implicit.
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 when to use it — when you need a current macro snapshot across categories — via the 'Returns a snapshot of current macro conditions' closing sentence. However, it gives no explicit guidance on when NOT to use it, no exclusions, and no named alternatives such as GetEconomicIndicator for a single series or GetEconomicCalendar for dated events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetLiveQuoteLive Stock QuoteARead-onlyInspect
Get the latest available intraday reading for active U.S. listings, including last trade, UTC timestamp, session freshness, and bid/ask when available. The live service checks its current in-memory snapshot first and may make a bounded provider latest-trade request for a missing ticker. Stale=true means the returned trade predates the expected market session and must not be reported as current. This tool does not backfill historical intraday bars after hours. Missing readings are listed explicitly. Use GetLatestClosingPrices or GetStockPrices for settled daily bars.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | Ticker symbols (max 25). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by explaining internal behavior: checking the in-memory snapshot first, making a bounded provider request for missing tickers, and using stale=true to indicate non-current trades. It also clearly warns that stale readings must not be reported as current, adding important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet information-dense, with each sentence serving a distinct purpose: scope, data freshness behavior, stale semantics, limitation, and alternative routing. The primary purpose is front-loaded, and there is no wasted wording.
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 lacking an output schema, the description covers what the agent needs to know: returned data elements, freshness semantics, stale handling, missing readings, after-hours limitations, and alternatives. It is complete for a simple single-parameter read-only tool and provides clear behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single tickers parameter already documented as an array of ticker symbols with a max of 25. The description adds minor context about active U.S. listings and missing-ticker behavior, but does not substantially enhance parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: getting the latest available intraday reading for active U.S. listings, listing specific data points like last trade and bid/ask. It also explicitly distinguishes itself from sibling tools by directing users to GetLatestClosingPrices or GetStockPrices for settled daily bars.
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 context for when the tool is appropriate: for live intraday quotes, not historical or settled daily data. It explicitly names the alternative tools for daily bars and notes the tool does not backfill after hours, giving clear exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMarketHolidayCalendarUS Market Holiday CalendarARead-onlyInspect
List the US equity market holidays and early-close (1:00 p.m. ET) half days for a calendar year (NYSE/Nasdaq). Defaults to the current year. The calendar is curated for 2025 through 2027; a year outside that range reports so rather than guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Calendar year, e.g. 2026. Defaults to the current year. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the important curation-range constraint and the honest behavior for out-of-range years (reports so rather than guessing). This gives the agent accurate expectations about data availability and error handling, 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?
Three short sentences, each earns its place: core purpose, default behavior, and coverage limitation. No filler or redundant restatements of the name. Front-loaded with the most important information about what the tool returns.
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 a single optional parameter, no output schema, and read-only annotations, the description is fully sufficient. It tells the agent what data is returned, the default, and the valid year range. An agent can invoke it correctly without needing further clarification.
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 covers 100% of the single parameter, including its default. The description adds the meaningful constraint that only 2025–2027 are curated, which is not in the schema. This added context helps the agent validate the year input before calling, raising the value beyond the baseline for full 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 uses a specific verb ('List') + resource ('US equity market holidays and early-close half days') and names the specific exchanges (NYSE/Nasdaq). It clearly distinguishes this from sibling tools like GetEconomicCalendar or GetMarketStatus, leaving no ambiguity about what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the default behavior (current year) and the coverage range (2025–2027), which informs when to call it. It does not explicitly name alternatives or exclusions, but the purpose is specific enough that an agent knows to use this for market holiday calendars, not for general economic events or market status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMarketStatusUS Market StatusARead-onlyInspect
Get the current US equity market status (NYSE/Nasdaq), evaluated in America/New_York: whether the market is open, the current session (pre-market, regular, after-hours, or closed), whether today is a full-day holiday or a 1:00 p.m. ET early close, today's regular and extended (pre-market/after-hours) trading hours, and the next open and next close. Backed by the exchange's curated holiday and early-close calendar, not a heuristic.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable context: it is based on the exchange's curated holiday/early-close calendar rather than heuristics, and specifies timezone evaluation. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is information-dense, enumerating all output fields without verbose embellishment. It is front-loaded with the main purpose and every clause provides useful detail, though the long list of outputs makes it slightly dense rather than crisp.
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 lacking an output schema, the description explicitly enumerates the return fields: open status, current session, holiday/early-close indicator, trading hours, and next open/close. This fully sets expectations for a parameterless, read-only tool, making it self-contained 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?
Tool has 0 parameters, so schema coverage is complete and the description adds no parameter-level information. The baseline for 0 params is 4, and nothing in the description reduces this, though it also doesn't need to add semantics for nonexistent 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 tool gets current US equity market status, listing specific attributes like session, holiday/early close, and trading hours. It uses a specific verb and resource, and clearly distinguishes from siblings like GetMarketCalendar or GetLiveQuote.
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 context by detailing the exact information returned (open status, session, hours), making it obvious when to use this tool for current market state. However, it does not explicitly mention alternatives or exclusions, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMarketWide13FActivityMarket-Wide 13F ActivityARead-onlyInspect
Get the market-wide 13F leaderboards for a given quarter — which stocks were most bought, most sold, most initiated, or most exited across all 13F filers vs the prior quarter. The bucket argument selects one of: top-buys (Δ shares > 0 ranked by Δ value desc), top-sells (Δ shares < 0 ranked by Δ value asc), new-positions (stocks ranked by count of filers initiating a position), sold-out-positions (stocks ranked by count of filers exiting). Δ Value is the change in stored quarter-end position value and includes the quarter's price move on held shares, so use Δ Shares to read the position change itself. The output publishes the first complete 13F report quarter and refuses comparisons that cross that corpus boundary. Use this to answer 'what's the consensus 13F move this quarter?'
| Name | Required | Description | Default |
|---|---|---|---|
| bucket | Yes | Bucket: top-buys, top-sells, new-positions, or sold-out-positions | |
| maxResults | No | Maximum number of stocks to return (default: 20, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available 13F quarter; an off-quarter date snaps to the nearest report on or before it) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context beyond that: it clarifies that Δ Value includes the quarter's price move on held shares, advises using Δ Shares to read the position change itself, and discloses that the output starts from the first complete 13F quarter and refuses comparisons crossing that boundary. This adds valuable nuance about output semantics and data limitations.
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 four sentences long, each carrying substantive information: the main definition, bucket mechanics, the Δ Value caveat, and the corpus boundary. It avoids filler and front-loads the primary action, though it could be slightly more structured with lists or breaks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with four distinct modes and a subtle data caveat. The description covers all modes, the caveat, and the boundary condition, and it provides a concrete use case. With no output schema, it would benefit from a brief note on output structure, but the expected leaderboard format is reasonably implied.
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 already describes all three parameters with details such as bucket enum values, maxResults default (20) and clamp (1-500), and reportDate snapping behavior. With 100% schema coverage, the description need not repeat these; it only adds bucket ranking context, which is helpful but not critical. 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 opens with a specific action: 'Get the market-wide 13F leaderboards for a given quarter' and enumerates the four bucket types (top-buys, top-sells, new-positions, sold-out-positions). It explicitly differentiates from siblings by scoping to 'across all 13F filers' and by naming 'market-wide' versus tools like GetTopBuyersSellers or GetMarketWideCongressionalActivity.
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 an explicit use case: 'Use this to answer "what's the consensus 13F move this quarter?"' It also explains the available buckets and the boundary behavior, providing clear context. However, it does not name alternative tools or state when not to use it, so it falls short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMarketWideCongressionalActivityMarket-Wide Congressional ActivityARead-onlyInspect
Get the stocks members of Congress traded most over a trailing window, aggregated across EVERY member and ticker — 'what did Congress buy this week' without needing a ticker or a member name. The window is anchored on the DISCLOSURE (filing) date because the STOCK Act's general outside filing deadline is 45 days after a trade; late or amended records can arrive later. Each row aggregates one stock's disclosed trades: distinct members buying and selling, trade counts, estimated dollar flow per direction (each disclosed amount range's midpoint — members disclose a band, not an exact figure), the largest participants, and the latest filing and transaction dates. direction=buys ranks by estimated net buying, direction=sells by estimated net selling; chamber=senate/house narrows to one chamber. Use GetCongressionalTrades for one stock's underlying disclosures and GetMemberTrades for one member's.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Trailing disclosure window in days (default: 30, max: 365). | |
| chamber | No | Filter by chamber: 'senate' or 'house' (defaults to both). | |
| direction | No | Ranking direction: 'buys' (most net congressional buying first, default) or 'sells' (most net selling first). | buys |
| maxResults | No | Maximum number of stocks to return (default: 25, max: 200). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with readOnlyHint=true and destructiveHint=false already present, the description adds substantial behavioral context: the disclosure-date anchoring and STOCK Act 45-day filing deadline, the aggregation logic (midpoint of disclosed ranges, distinct member counts), and the ranking semantics for direction. 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 moderately long but every sentence carries essential information: purpose, date anchoring rationale, aggregation detail, parameter behavior, and sibling differentiation. It is front-loaded with the primary use case and structured logically 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?
With no output schema, the description fully compensates by describing each row's contents (aggregated trades, distinct members, counts, estimated dollar flow, largest participants, latest dates). It also covers the key nuance of disclosure-date anchoring, making the tool's behavior and return shape clear enough 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?
Although schema coverage is 100%, the description enriches parameter meaning by explaining the behavioral effect of each: direction ranks by estimated net buying/selling, chamber narrows to one chamber, and days references a trailing disclosure window anchored on filing dates. This adds value beyond the schema's terse field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get the stocks members of Congress traded most over a trailing window, aggregated across EVERY member and ticker'), clearly distinguishing it from sibling tools. It explicitly contrasts with alternatives: 'without needing a ticker or a member name' and later names GetCongressionalTrades and GetMemberTrades for other granularities.
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 guidance ('what did Congress buy this week') and names exact alternatives for other scopes ('Use GetCongressionalTrades for one stock's underlying disclosures and GetMemberTrades for one member's'). This gives the agent clear decision criteria for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMemberNetWorthCongress Member Net WorthARead-onlyInspect
Get a congress member's net worth history from their annual financial disclosures. Disclosed values are ranges, so every year is a band (minimum-maximum), never a point estimate. Only electronically filed reports are read: a missing year means no electronic filing, not zero net worth. Use SearchCongressMembers to find member names.
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of years to return (default: 20, max: 500, newest first) | |
| memberName | Yes | Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Marsha Blackburn'); use SearchCongressMembers to find the exact name |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, but the description adds valuable behavioral details beyond that: values are always ranges (minimum-maximum), a missing year means no electronic filing rather than zero net worth, and only electronically filed reports are read. This helps set expectations for output and missing data.
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 concise sentences: first states the purpose, second clarifies the output format, third discloses data limitations and search prerequisite. No filler or redundancy; every sentence contributes unique information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully compensates by explaining that each year is a band (min-max) and that missing years have a specific interpretation. It also covers the input prerequisite and data-source limitation, making it complete for a two-parameter 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 100%, so parameters are well documented. The description adds extra value by pointing to SearchCongressMembers for memberName lookup and by explaining that the tool returns ranges, which informs how to interpret results. However, it doesn't add much more 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 begins with a specific verb+resource: 'Get a congress member's net worth history from their annual financial disclosures.' It clearly distinguishes from sibling tools like GetMemberTrades by focusing on net worth rather than trades, and adds unique nuances about range-based values.
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 clear context on when to use: for net worth history from financial disclosures. It also gives a key prerequisite by directing users to SearchCongressMembers for member names, and explains a data-coverage limitation (only electronic filings). However, it does not explicitly name alternative tools to use instead, such as GetMemberTrades.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMemberTradesTrades by Congress MemberARead-onlyInspect
Get a congress member's disclosed securities transactions (newest first, last year by default). Shows tickers, transaction and filing dates, disclosed amount ranges, and the filed Asset identifying the instrument (such as stock, option, or bond). Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of trades to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to today) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year ago) | |
| maxResults | No | Maximum number of trades to return (default: 50, max: 500, newest first) | |
| memberName | Yes | Congress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Dan Crenshaw'); use SearchCongressMembers to find the exact name | |
| transactionType | No | Filter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds contextual behavior: defaults (last year), ordering (newest first), and output fields (tickers, dates, amounts, asset type). This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, each earning its place: purpose, output details, and usage guidance. It is front-loaded with the main action and contains no filler.
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 output schema, the description adequately explains the return content and tool behavior. It covers defaults, ordering, and even points to related tools, making it complete for a read-only, well-annotated 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 100%, and each parameter is well-documented in the schema. The description reinforces these details (e.g., default date range) but does not add substantial new 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 identifies the tool's purpose: fetching a congress member's disclosed securities transactions. It specifies key behaviors like 'newest first, last year by default' and the data fields returned. It also distinguishes from sibling tools by referencing SearchCongressMembers and GetCongressionalTrades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives: 'Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.' This effectively clarifies the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMostHeldStocksMost Widely Held StocksARead-onlyInspect
Get the cross-sectional ranking of stocks by institutional 13F breadth for a given quarter. Returns the stocks ranked by number of 13F filers reporting them as a holding (default), by quarter-over-quarter change in filer count (warming names — 'filersDelta' — or cooling names — 'filersDeltaAsc'), or by total reported dollar value. Includes Δ filers vs the prior quarter, total value, Δ value, and the stock's share of the 13F universe. The output publishes the first complete 13F report quarter; earlier rankings are unavailable, and boundary-quarter deltas are withheld. Only currently-held stocks rank; fully-sold-out names live in GetMarketWide13FActivity's sold-out-positions bucket. While the newest quarter's filing window is open, funds that have not filed yet are carried at their prior-quarter positions (noted in the output). Use this to answer 'which stocks are most owned by institutions right now, and is breadth expanding or contracting?'
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort by: 'filers' (default, # of 13F filers desc), 'filersDelta' (QoQ filer-count delta desc — warming names), 'filersDeltaAsc' (QoQ filer-count delta asc — cooling names), or 'value' (current total reported $ value desc) | filers |
| maxResults | No | Maximum number of stocks to return (default: 25, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available 13F quarter; an off-quarter date snaps to the nearest report on or before it) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, the description reveals important data behaviors: unfiled funds are carried at prior-quarter positions during open filing windows, boundary-quarter deltas are withheld, and only currently-held stocks are ranked. These are non-obvious quirks an agent must know for correct interpretation.
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 for the tool's complexity: each of its seven sentences adds distinct information (purpose, sort modes, output fields, data lag, sibling differentiation, use case). No redundant or filler 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 no output schema, the description enumerates output fields (Δ filers, total value, Δ value, share) and explains edge cases. It also clarifies how this tool relates to GetMarketWide13FActivity, making it self-sufficient for an agent to understand capabilities and limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all three parameters, but the description adds meaningful interpretation: 'filersDelta' is explained as warming names and 'filersDeltaAsc' as cooling names. It also clarifies the reportDate's practical behavior by noting earliest available quarter and delta withholding, adding 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 opens with a specific verb and resource: 'Get the cross-sectional ranking of stocks by institutional 13F breadth for a given quarter.' It clearly distinguishes itself from siblings by listing distinct sort modes (filers, filersDelta, filersDeltaAsc, value) and explicitly referencing GetMarketWide13FActivity for sold-out names.
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 an explicit use-case question ('which stocks are most owned by institutions right now...'), names an alternative tool for sold-out positions, and states availability constraints (first complete quarter, withheld boundary deltas). This tells the agent exactly when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetMyPortfolioMy PortfolioARead-onlyInspect
Get the caller's saved personal portfolios, including stock and option lots, cost basis, realized and unrealized profit, and watched instruments. Omit portfolio to list portfolios; if exactly one exists it is returned in full. Pass its name to select one. Quantities are signed; costs are the owner's per-share inputs and are never split-restated. Every mark names its session. Unpriceable and expired positions have unknown value, never zero. Watched instruments are not positions and must not be counted as exposure. Returned lot ids address the update, close and remove tools. Use GetInstitutionPortfolio for 13F holdings.
| Name | Required | Description | Default |
|---|---|---|---|
| portfolio | No | Optional. The portfolio's name. Omit to list the account's portfolios. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive, but the description adds substantial behavioral detail beyond that: signed quantities, owner-cost basis never split-restated, session-marked lots, unknown (never zero) values for unpriceable/expired positions, and the role of returned lot ids in update/close/remove tools. This gives the agent a clear model of how results behave.
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?
Every sentence in the description earns its place: core purpose, parameter usage, data semantics, edge cases, and sibling differentiation. The text is dense but not verbose, and the most critical usage guidance appears near the front.
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 no output schema, the description carries the burden of explaining return content Key fields are named (lots, cost basis, profits, watched instruments), and special value semantics are clarified. For a single-optional-parameter read-only tool, this is complete enough for an agent to invoke it and interpret results 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?
Although the schema already documents the portfolio parameter as optional and says to omit it to list portfolios, the description adds the crucial exact-one-returned-in-full behavior and explicitly states that passing a name selects a portfolio. This goes beyond the schema's basic description and gives the agent actionable semantics for the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Get the caller's saved personal portfolios,' and enumerates the included data (lots, cost basis, realized/unrealized profit, watched instruments). It also explicitly differentiates itself from GetInstitutionPortfolio by directing 13F holdings queries to that sibling, making the tool's purpose unmistakable.
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 precise call guidance: omit portfolio to list portfolios, with the edge case that a single existing portfolio is returned in full, and pass the name to select one. It also names the alternative tool (GetInstitutionPortfolio) and clarifies that watched instruments are not positions, which prevents misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetNonGaapBridgeNon-GAAP to GAAP BridgeARead-onlyInspect
Get a company's non-GAAP-to-GAAP reconciliations ('bridges') as extracted from its earnings releases and 10-K/10-Q periodic reports: for each stated non-GAAP measure (Adjusted EBITDA, adjusted EPS, adjusted operating income, FFO/AFFO, ...), the GAAP starting line, each stated adjustment in order, and the non-GAAP result, with the period, unit and the verbatim source quote. Verifier-approved, newest filing first. Use this to see exactly how a company builds its adjusted numbers; GetCompanyKpis carries the same bridge inline with a metric, this returns the reconciliations on their own.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of source filings to read, newest first (default 6, valid 1-20; out-of-range values are clamped) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/destructiveHint annotations, the description discloses sourcing (earnings releases and 10-K/10-Q), ordering ('newest filing first'), verification ('Verifier-approved'), and the detailed structure of the output including source quotes. This adds substantial 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 dense but each sentence contributes value: it defines the resource, details output components, notes ordering/verification, and provides usage guidance. Slightly long but structured with semicolons and clear clauses.
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 no output schema, the description adequately explains the return shape (GAAP starting line, adjustments in order, non-GAAP result, period, unit, verbatim quote). It also covers source and ordering, making the tool's behavior fully clear 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?
The input schema fully covers both parameters (ticker and limit) with descriptions and constraints, so schema coverage is 100%. The description itself does not add any additional parameter-level semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves non-GAAP-to-GAAP reconciliations from earnings releases and periodic reports, with a specific verb and resource. It also explicitly differentiates from the sibling GetCompanyKpis by noting this tool returns standalone reconciliations whereas the sibling carries them inline with a metric.
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: 'Use this to see exactly how a company builds its adjusted numbers' and names the alternative GetCompanyKpis. This tells the agent when to choose this tool over its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetOffExchangeVolumeOff-Exchange (Dark Pool) VolumeARead-onlyInspect
Get weekly off-exchange (dark pool / OTC) trading volume for a stock from the FINRA OTC/ATS Transparency data. Each week shows ATS (alternative trading system / dark pool) volume and trade count, non-ATS OTC volume and trade count, and the total off-exchange volume (ATS + non-ATS OTC). The FINRA file does not include consolidated tape volume, so the off-exchange share of total market volume is not reported here; compute that share elsewhere against a consolidated-volume source. Weeks before 2025-08-11 may include volume from a case-variant sibling security because they predate the ordinal FINRA symbol-map fix and can no longer be re-imported from FINRA's rolling source window. FINRA publishes each week on a delay (2 weeks for Tier 1 NMS stocks, longer for other tiers), so the latest week lags today.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, GME, TSLA) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 6 months ago) | |
| maxResults | No | Maximum number of weeks to return — keeps the most recent N weeks in the range, displayed oldest to newest (default: 26, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive, but the description goes far beyond that with valuable behavioral details: it discloses the data source, excludes consolidated tape volume, flags a pre-2025-08-11 data quality issue involving case-variant sibling securities, and explains FINRA's publication delay. No contradictions with annotations exist.
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?
Every sentence adds value: the first front-loads the core purpose, then the description details output composition, explains a data limitation, highlights a historical data quality caveat, and clarifies the lag. Despite its length, no filler or redundant text exists.
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 read-only data retrieval tool with no output schema, the description covers the essential context: data source, what each record includes, important caveats, and timing. Parameter details are fully handled by the schema. It does not mention edge cases like missing data or invalid tickers, but that is not critical for this tool's 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?
The input schema has 100% description coverage for all four parameters, so the description does not need to repeat parameter details. It adds interpretive meaning about the returned breakdown (ATS + non-ATS OTC) but does not elaborate on parameter formatting beyond what the schema already provides. This matches the baseline for well-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Get weekly off-exchange (dark pool / OTC) trading volume for a stock' from FINRA OTC/ATS data. It names concrete output components (ATS volume/trade count, non-ATS OTC volume/trade count, total off-exchange volume), distinguishing it from sibling tools that cover other volume data like short volume or on-balance volume.
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 for when this tool is appropriate: to retrieve off-exchange volume data and to understand its weekly publication lag. It explicitly advises not to derive market share from this data because consolidated tape volume is absent, directing the agent to compute that elsewhere. It does not name specific alternative sibling tools, so there is no explicit 'use X instead' statement, but the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetOnBalanceVolumeOn-Balance Volume (OBV)ARead-onlyInspect
On-Balance Volume (OBV) for a stock. Running cumulative volume that adds the bar's volume on up-closes, subtracts on down-closes, and stays flat on equal closes. Useful for confirming or diverging from price trends with volume flow. OBV is anchored at 0 on the first bar of the requested range, so absolute values shift with startDate and are not comparable across calls - read the slope and divergences, not the level.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 6 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, destructiveHint), the description explains the cumulative calculation, the fact that OBV is anchored at 0 on the first bar, that absolute values shift with startDate, and warns that values are not comparable across calls. This is significant context about behavior and interpretation.
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 three sentences, each earning its place: definition, usage, and a critical interpretation caveat. It is front-loaded with the purpose and avoids 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 technical indicator with no output schema, the description covers the core concept, calculation, usage, and a key pitfall. Combined with the rich input schema and safety annotations, it provides sufficient context 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?
Schema coverage is 100%, so baseline is 3. The description adds valuable nuance about startDate affecting the anchoring and comparability of values, which is not in the schema. This extra insight elevates the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is 'On-Balance Volume (OBV) for a stock' and explains the calculation logic. This specific verb-resource pairing distinguishes it from sibling indicator tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions 'Useful for confirming or diverging from price trends with volume flow,' providing an implied use case. However, it does not explicitly state when to choose OBV over other indicators or when not to use it, so there is no direct alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetOptionChainOption ChainARead-onlyInspect
Get the option chain (calls and puts) for a stock for ONE expiration: strike, greeks (delta/gamma/theta/vega), implied volatility, open interest, and the latest daily price. Defaults to the nearest upcoming expiration; pass expiration=YYYY-MM-DD to pick another (use GetOptionExpirations to list them). When the chain is larger than maxResults the contracts nearest the money are returned, so an unfiltered call already lands where strategies trade. Narrow with minStrike/maxStrike and type (call/put) to reach the wings. Each row attributes its last price, day range and volume to its provider-stamped session, or marks the session unknown; implied volatility and greeks are the provider's model values computed at fetch time, so repeated calls can return different values. These are not live quotes. Bid/ask are 15-minute delayed and are omitted on the current plan.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Contract type: call or put (default: both) | |
| ticker | Yes | Stock ticker, e.g. AAPL | |
| maxStrike | No | Only include strikes at or below this price | |
| minStrike | No | Only include strikes at or above this price | |
| expiration | No | Expiration date in YYYY-MM-DD format (default: nearest upcoming) | |
| maxResults | No | Maximum contracts to return (default: 60, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint/openWorldHint/destructiveHint are all safe, so the description carries the meaningful behavioral disclosure — and it does so richly: truncated results go to the nearest-the-money contracts, IV/greeks are model values computed at fetch time so repeated calls differ, bid/ask are 15-minute delayed and omitted on the current plan, and 'these are not live quotes'. It also explains session provenance and the 'session unknown' marker. This is far beyond what annotations offer.
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?
Around 170 words and front-loaded: the first sentence states purpose and each subsequent clause adds a distinct, useful fact (expiration default, sibling route, truncation behavior, wing narrowing, data provenance, staleness, plan limits). Slightly long, but no sentence is padding or tautological — every clause 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 no output schema, the description fully compensates by naming the return fields (strike, greeks, IV, open interest, last price, day range, volume, bid/ask) and by covering defaults, filtering, data limits and plan-specific omissions. There is no obvious gap an agent would need to contact before calling this 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 100%, so parameter basics are already documented; baseline is 3. The description adds value by explaining the maxResults truncation behavior ('when the chain is larger than maxResults the contracts nearest the money are returned') and by framing minStrike/maxStrike/type as concrete tools to reach the wings. It doesn't add syntax or unit details — the schema already has those — but the interaction/behavior hints justify a small uplift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb+resource: 'Get the option chain (calls and puts) for a stock for ONE expiration,' and enumerates exactly what is returned (strike, greeks, IV, open interest, last price). The 'ONE expiration' constraint disambiguates it from sibling tools like GetOptionExpirations and GetOptionContract, making the tool's niche unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit routing guidance by naming the alternative: 'pass expiration=YYYY-MM-DD to pick another (use GetOptionExpirations to list them)'. It also explains when to use the default mode versus when to narrow: an unfiltered call already lands near the money where strategies trade, and minStrike/maxStrike/type reach the wings. This gives an agent clear selection and invocation direction, not just a purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetOptionContractOption ContractARead-onlyInspect
Get the full snapshot for ONE option contract by its OCC symbol (e.g. O:AAPL260724C00110000): greeks, implied volatility, open interest, the latest daily price, and bid/ask when the plan entitles quotes. Last, day range and volume name the provider's trading-session timestamp when supplied and otherwise mark it unknown; implied volatility and greeks are the provider's model values computed at fetch time and can differ slightly from a chain response. Bid/ask are 15-minute delayed.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker, e.g. AAPL | |
| contract | Yes | OCC option symbol, e.g. O:AAPL260724C00110000 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds meaningful behavioral context: bid/ask are 15-minute delayed, quote availability depends on the user's plan, timestamps may be unknown, and greeks/IV are provider model values computed at fetch time. These are exactly the kind of non-obvious traits an agent needs to correctly interpret results.
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 primary purpose is front-loaded in the first sentence. Every subsequent clause earns its place by explaining a real data-quality nuance, such as delayed quotes, provider timestamps, or model-calculated greeks. There is no filler or repeated schema 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?
Even though there is no output schema, the description explicitly enumerates the returned fields and the conditionality and caveats that affect them. For a single-contract snapshot tool with read-only behavior, this gives an agent enough context to invoke it and interpret its response without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'ticker' and 'contract' already documented and paired with concrete examples. The description does not add material parameter-level meaning beyond what the schema already provides, so the baseline score of 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 opens with a specific verb and resource: 'Get the full snapshot for ONE option contract by its OCC symbol'. It identifies what the snapshot contains (greeks, implied volatility, open interest, latest daily price, bid/ask) and is clearly distinct from chain-level tools by emphasizing 'ONE' contract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description communicates the right context: this tool is for a single OCC-symbol lookup, not an option chain. It also notes values 'can differ slightly from a chain response', which warns against using it when users expect chain-consistent values. However, it never explicitly names GetOptionChain or states when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetOptionExpirationsOption ExpirationsARead-onlyInspect
List the available option expiration dates for a stock, with the contract count at each. Use this to pick an expiration for GetOptionChain.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker, e.g. AAPL |
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 safe read-only nature is covered. The description adds that the tool returns expiration dates with contract counts, which is useful context beyond the annotations, but does not disclose other behaviors like sorting or whether expired expirations are included. Still, it adds meaningful 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?
The description is two sentences, front-loaded with the primary verb and resource. Every sentence earns its place: first states what it does, second states how to use it. 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 simple single-parameter tool with no output schema, the description fully covers what it returns (expiration dates with contract counts) and how to use the result. Nothing more is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the ticker parameter already described with an example ('e.g. AAPL'). The description does not add any additional parameter semantics beyond what the schema provides, so the baseline of 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 uses specific verb 'List' and clearly identifies the resource as 'available option expiration dates for a stock', adding the detail that contract counts are included. This distinguishes it from sibling tools like GetOptionChain, which retrieves contract data for a specific expiration.
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 final sentence explicitly instructs the agent to use this tool to pick an expiration for GetOptionChain, providing clear guidance on when to use it and which downstream tool to use. This is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetPutCallRatiosCBOE Put/Call RatiosARead-onlyInspect
Get CBOE put/call ratio data showing market sentiment. Available types: Total (all exchange), Equity, Index, Vix, Etp. High ratios (>1.0) indicate bearish sentiment; low ratios (<0.7) indicate bullish sentiment. Volumes are contract counts. Data available from November 2006 to present (the Vix type from October 2019); pre-2013 history is sampled roughly weekly rather than daily.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Ratio type: Total, Equity, Index, Vix, Etp (default: Equity) | Equity |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 3 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds substantive behavioral caveats: data availability from November 2006, the Vix type only from October 2019, and pre-2013 data being sampled roughly weekly rather than daily. It also clarifies that volumes are contract counts, which is valuable for correct interpretation of results.
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 compact: three sentences each earning their place. The first states the purpose, the second provides sentiment interpretation, and the third gives data-availability caveats. It is front-loaded and free of 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 data-retrieval tool with moderate complexity and no output schema, the description covers the essential context: what data is returned, how to interpret it, units, and historical availability. It does not describe the exact response record format, but the combination of sentiment thresholds, type list, and data-range caveats is sufficient for correct invocation and basic interpretation.
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 already documents all four parameters with 100% coverage, so the description does not need to repeat parameter syntax. It adds interpretive thresholds and historical context, but does not introduce new parameter-specific semantics beyond what the schema provides. This aligns with the baseline of 3 for high 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 opens with a specific verb+resource pair ('Get CBOE put/call ratio data') and immediately frames the purpose as showing market sentiment, making it easy to distinguish from the many sibling Get* tools. It enumerates the available data types, further clarifying the exact scope of the 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 gives clear context for when to use this tool: when CBOE put/call ratio data is needed, with specific available types and historical coverage. It does not explicitly name alternatives or exclusions, but the 'showing market sentiment' framing and the type list provide sufficient orientation among the large set of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetRevenueBreakdownRevenue Breakdown by SegmentARead-onlyInspect
Get a company's revenue disaggregated by business segment, geography and product/service — plus operating income by segment when the issuer tags it, so segment profitability and margins are answerable — from the dimensional XBRL facts the issuer tags in its own filings. Annual fiscal years only, latest restated values, one table per axis the company reports; source values are as-reported and never estimated, while segment operating margin is derived as operating income divided by revenue for the same folded raw member QName and exact period. Rows within one table can OVERLAP when the issuer tags several granularities on the same axis (a parent segment alongside its components), so never sum rows to derive total revenue — use the consolidated total row each table carries. For consolidated figures use GetFinancialStatement or GetFinancialFact.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT) | |
| maxYears | No | Most recent fiscal years to include (default 8, max 12) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context: data comes from dimensional XBRL facts, source values are as-reported and never estimated, segment operating margin is derived, and rows can overlap (warning never to sum rows). This goes beyond annotations and helps the agent predict output quirks.
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 longer than average but every sentence carries information: purpose, data source, period/restatement rules, derivation method, overlap warning, and alternative tools. It is front-loaded with the main purpose and then details. Some jargon ('folded raw member QName') is dense but purposeful.
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 no output schema, the description must explain return structure, and it does: one table per axis, total row included, rows can overlap, and derived margin definition. It also covers data provenance, period constraints, and explicit alternatives. This is complete for an agent to invoke and interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the input schema already documents ticker and maxYears with descriptions and defaults. The description adds context like annual fiscal years only, which affects maxYears interpretation, but it doesn't add per-parameter syntax or constraints beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a company's revenue disaggregated by segment, geography, and product/service, plus operating income when tagged. This specific verb+resource+dimensions structure distinguishes it from sibling tools like GetFinancialStatement and GetFinancialFact, which are explicitly referenced for consolidated figures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage rules: annual fiscal years only, latest restated values, one table per axis, and warnings about overlapping rows. It explicitly directs users to GetFinancialStatement or GetFinancialFact for consolidated revenue, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetShortInterestShort Interest HistoryARead-onlyInspect
Get bi-monthly short interest history for a stock from FINRA. Shows the reported short position, change from the previous settlement, average daily volume, and days to cover per settlement date. Share counts are restated onto today's split basis so the series stays continuous across stock splits; days to cover is as reported (FINRA caps it at 999.99). High days-to-cover (>5) suggests a potential short squeeze — for short interest as a % of shares outstanding and an actual squeeze-candidate ranking use GetShortSqueezeScores; for the market-wide latest settlement use GetShortInterestSnapshot. FINRA publishes each file weeks after it measures the position, so the answer may also carry an estimate of the settlement that has not been reported yet — it appears BELOW the table, labelled as an estimate, and is a model prediction rather than reported data; never present it as a FINRA figure.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, GME, TSLA) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year ago) | |
| maxResults | No | Maximum number of records to return — keeps the most recent N settlements in the range, displayed oldest to newest (default: 24, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/destructiveHint annotations, the description discloses critical data behaviors: share counts are restated onto today's split basis, days to cover is capped at 999.99, FINRA publishes weeks later, and the estimate for un-reported settlements is a model prediction that must not be presented as FINRA data. This is rich, non-obvious 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 longer than a typical two-sentence definition, but every sentence provides meaningful caveats or alternatives. It is front-loaded with the core purpose and then details important data quirks. Slightly verbose but earns its length.
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 no output schema, the description compensates by enumerating the returned columns (short position, change, average daily volume, days to cover) and explaining the estimate placement. It also covers the reporting lag and split adjustment, making the tool's behavior fully understandable without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra parameter-level semantics beyond the schema; it focuses on data interpretation rather than parameter syntax. No deduction is warranted, but no bonus either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get bi-monthly short interest history for a stock from FINRA.' It clearly distinguishes the tool from siblings by naming GetShortSqueezeScores and GetShortInterestSnapshot, making the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: high days-to-cover suggests a short squeeze, and the description directly states which sibling tool to use for alternative metrics ('use GetShortSqueezeScores; ... use GetShortInterestSnapshot'). This gives clear when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetShortInterestSnapshotMarket-Wide Short Interest SnapshotARead-onlyInspect
Market-wide snapshot of the latest FINRA bi-monthly short interest settlement — one row per stock, sorted by days to cover (descending) by default. FINRA caps days to cover at 999.99: capped rows are a sentinel (almost always illiquid names with a tiny average-daily-volume denominator) and are ranked after real readings; pass minAvgDailyVolume (e.g. 100000) to drop illiquid names entirely. This is the raw FINRA snapshot — for genuine short-squeeze candidate ranking use GetShortSqueezeScores; for one stock's history use GetShortInterest; for daily short-sale flow use GetShortVolume/GetLargestShortVolume.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of ranked results to skip before returning rows — pass the previous call's last row number to page past the maxResults cap (default: 0) | |
| sortBy | No | Sort key: daysToCover (default; FINRA-capped 999.99 sentinel rows ranked last), shortPosition, or change (largest increase in short position first) | daysToCover |
| maxResults | No | Maximum number of results to return (default: 50, max: 500) | |
| minDaysToCover | No | Minimum days to cover filter (default: 0) | |
| minAvgDailyVolume | No | Minimum average daily share volume — set a floor (e.g. 100000) to drop illiquid names whose days-to-cover is inflated by a tiny volume denominator (default: 0 = no floor) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds significant behavioral context: FINRA caps days to cover at 999.99, capped rows are sentinel and ranked after real readings, default sort order, and the rationale behind the minAvgDailyVolume filter. 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?
Two sentences, ~70 words. Front-loaded with purpose, then sentinel caveat, then filtering tip, then sibling alternatives. Every sentence earns its place; no redundancy or 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?
Despite having no output schema, the description provides enough context: data source (FINRA bi-monthly), row granularity (one per stock), default sort, sentinel behavior, filter recommendation, and alternative tools. An agent can confidently select and invoke the tool without further clarification.
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 all 5 parameters, so baseline is 3. The description adds interpretive meaning for minAvgDailyVolume (drop illiquid names with inflated days-to-cover) and explains the sentinel cap affecting sortBy/default behavior. It doesn't explicitly discuss offset/maxResults semantics, but the schema descriptions already cover those, making the extra description a bonus.
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?
Opens with 'Market-wide snapshot of the latest FINRA bi-monthly short interest settlement' — a specific resource and scope. Distinguishes from siblings by explicitly naming GetShortSqueezeScores, GetShortInterest, GetShortVolume, and GetLargestShortVolume as alternatives for different use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use/not-use guidance: 'for genuine short-squeeze candidate ranking use GetShortSqueezeScores; for one stock's history use GetShortInterest; for daily short-sale flow use GetShortVolume/GetLargestShortVolume.' Also advises passing minAvgDailyVolume to drop illiquid names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetShortSqueezeScoresShort Squeeze ScoresARead-onlyInspect
Rank stocks by a peer-relative 0-100 short-squeeze score using short interest, capped days to cover, price versus trailing VWAP, short-volume trend, short-interest change, fails-to-deliver pressure, and bounded price/volume/earnings catalyst boosts. Optional liquidity floors filter the board without changing scores. Pass ticker for one stock's factor breakdown and universe rank. Exchange-traded commodity and currency trusts are excluded; use GetShortInterest for the underlying FINRA series.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Number of ranked results to skip before returning rows — pass the previous call's last rank to page past the maxResults cap (default: 0; ignored for a single-ticker lookup) | |
| ticker | No | Optional stock ticker (e.g. GME): returns that one stock's score, factor breakdown, and rank within the scored universe instead of the board. The liquidity floors do not apply to a single-ticker lookup. | |
| maxResults | No | Maximum number of stocks to return (default: 25, highest score first; clamped to 1-200). | |
| minMarketCap | No | Minimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set. | |
| minDollarVolume | No | Minimum average daily dollar volume in US dollars, approximated as the FINRA average daily share volume times the market-cap-implied share price (e.g. 5000000 = $5M/day; default 0 = no floor). Stocks with unknown volume or market cap are excluded when set. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only and non-destructive safety, but the description adds valuable behavioral context: the score's peer-relative nature, that liquidity floors filter without altering scores, the exclusion of certain trusts, and that single-ticker lookups ignore floors. It also describes the factor composition, giving the agent insight into what drives results.
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 three sentences, with the core purpose front-loaded, the single-ticker exception stated, and the excluded instruments and alternative named. Every sentence carries substantive information; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-factor scoring, optional filters, two modes), the description covers the essential usage and exclusions. A minor gap is the lack of explicit statement about the board response format (e.g., fields returned), but the output schema is absent and the description implies ranked stocks with score and ticker. Overall, it is sufficiently complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter. The description adds extra value by linking parameters to behavior (e.g., floors don't apply to single-ticker mode, approximation of volume) and clarifying the clamping of maxResults. It does not fully explain edge cases like how unknown market cap interacts with minDollarVolume, but it goes beyond mere restatement.
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 ranks stocks by a peer-relative 0-100 short-squeeze score, enumerating the specific factors used. It distinguishes between board ranking and single-ticker lookups, and explicitly names alternatives like GetShortInterest for excluded instruments, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use it (ranking stocks by squeeze risk) and when not to (excluded trusts, pointing to GetShortInterest). It also explains the two operating modes (board vs. single-ticker) and clarifies that liquidity floors only apply to the board, providing clear decision rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetShortVolumeDaily Short Sale VolumeARead-onlyInspect
Get daily short sale volume history for a stock from FINRA's short sale volume files. Shows short volume, short-exempt volume, total volume, and short volume percentage per trading day. Volumes cover trades reported to FINRA facilities (off-exchange/TRF) only — NOT consolidated tape volume — and a 40-50% Short % is the normal baseline from market-maker liquidity provision, so it must not be quoted as a share of the stock's total traded volume. This daily flow metric is distinct from bi-monthly short interest positions: use GetShortInterest for positions, GetLargestShortVolume for a market-wide single-day ranking, and GetShortSqueezeScores for squeeze candidates.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, GME, AMC) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 3 months ago) | |
| maxResults | No | Maximum number of records to return — keeps the most recent N trading days in the range, displayed oldest to newest (default: 90, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring readOnlyHint=true and destructiveHint=false, the description adds critical behavioral context: volumes cover only FINRA facilities (off-exchange/TRF), not consolidated tape, and the 40-50% Short % baseline from market-maker liquidity must not be quoted as a share of total volume. This goes far beyond annotations and prevents misinterpretation.
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?
Four sentences deliver high density of useful information: source, output fields, scope, interpretation caveat, and sibling distinctions. Every sentence earns its place with no repetition or filler.
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 no output schema, the description carries the full burden of explaining return values, and it does: it lists the four fields. It also covers data source, scope limitations, and a misuse warning. For a moderately complex read-only tool, this is comprehensive.
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% (4 params with descriptions), so the baseline is 3. The description does not add parameter-specific details beyond the schema; it focuses on output semantics and scope. It implicitly mentions daily trading days but doesn't elaborate on parameter formats or behaviors already documented in 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 opens with a specific verb+resource: 'Get daily short sale volume history for a stock from FINRA's short sale volume files.' It then lists the exact output fields (short volume, short-exempt volume, total volume, short volume percentage) and explicitly distinguishes from sibling tools like GetShortInterest, GetLargestShortVolume, and GetShortSqueezeScores.
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 when-to-use guidance by stating 'This daily flow metric is distinct from bi-monthly short interest positions: use GetShortInterest for positions, GetLargestShortVolume for a market-wide single-day ranking, and GetShortSqueezeScores for squeeze candidates.' This names alternatives and clarifies the tool's unique role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetStochasticOscillatorStochastic OscillatorARead-onlyInspect
Stochastic Oscillator (%K and %D) for a stock. %K measures the close relative to the high/low range over the lookback window; %D is the smoothed signal line (simple moving average of %K). Useful for spotting overbought (>80) and oversold (<20) conditions. The lookback window is warmed up on price history fetched before startDate, so values do not depend on the requested range's left edge.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. | |
| dPeriod | No | Smoothing window for %D (default: 3) | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| kPeriod | No | Lookback window for %K (default: 14) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 6 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first. |
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 safety profile is clear. The description adds valuable behavioral context beyond annotations: the lookback window is warmed up on price history before startDate, so values don't depend on the range's left edge. This helps agents understand why results may differ from naive computation. It doesn't disclose return format, but for a read-only indicator with no output schema, this is solid.
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 four sentences of high-density information: what it is, formula components, use case, and a key computation nuance. Every sentence earns its place with no redundancy. It is front-loaded and easy to scan.
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 technical indicator with configurable parameters, the description covers the core semantics, usage, and a critical warm-up behavior. The absence of an output schema is mitigated by explaining the indicator's components. It could mention the return rows (e.g., date, %K, %D) or percentages, but overall it 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?
Schema coverage is 100%, so the description doesn't need to explain each parameter. The description does add conceptual meaning by defining %K and %D in terms of the lookback window and smoothing, which relates to kPeriod and dPeriod, but it doesn't directly enrich parameter syntax or constraints. 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 opens with 'Stochastic Oscillator (%K and %D) for a stock,' clearly identifying the tool as a specific technical indicator. It then explains what %K and %D measure, distinguishing it from other indicator tools like GetAverageTrueRange or GetBollingerBands. The purpose is concrete and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Useful for spotting overbought (>80) and oversold (<20) conditions,' providing clear guidance on when the tool is appropriate. It does not explicitly mention alternatives or exclusions, but the use case is well-defined, earning a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetStockPricesDaily Price HistoryARead-onlyInspect
Get daily OHLCV (Open, High, Low, Close, Volume) price history for a stock. Useful for technical analysis, charting, and price trend analysis. Prices are in USD. An Adj Close column shows the provider's split- and cash-dividend-adjusted close when it differs from Close. Captured corporate-action changes trigger a full-history refresh of the exact listed series, but the stored rows do not certify which split basis the provider returned. Do not treat reconciliation status alone as proof that a window is a consistent total-return series. Zero-volume carry-forward candles are excluded because they do not establish a traded market price.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT, TSLA). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted. | |
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 1 year ago) | |
| maxResults | No | Maximum number of records to return (default: 260, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the readOnlyHint annotation by disclosing key data behaviors: prices are in USD, Adj Close column handling, corporate-action refresh caveats with a warning about split basis and reconciliation status, and the exclusion of zero-volume carry-forward candles. This is rich, non-obvious context that is crucial for correct interpretation.
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 appropriately sized and front-loaded with the core purpose. Each sentence adds value (fields, use cases, currency, adjustment behavior, caveats), though the cautionary sentences about corporate actions add complexity. No redundancy; a tight but information-dense description.
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 output schema, the description partially covers the return format by naming columns (OHLCV, Adj Close) and exclusions. It does not explicitly state the array structure or date range behavior beyond the schema, but the combination of schema and description is sufficiently complete for a read-only history 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 input schema already provides full descriptions for all four parameters, so the description adds no extra parameter-level meaning. Baseline of 3 applies per guidelines for high 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 explicitly names the action ('Get') and the resource ('daily OHLCV price history for a stock'), with the data fields (Open, High, Low, Close, Volume) spelled out. It clearly distinguishes from sibling tools like GetLatestPrices or GetLiveQuote by focusing on historical daily data, and it mentions use cases (technical analysis, charting).
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 clear context by stating it is 'useful for technical analysis, charting, and price trend analysis,' and additionally flags that zero-volume candles are excluded, which helps set expectations. However, it does not explicitly mention alternatives or when not to use, so it misses the explicit exclusion/alternative criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetSuperInvestorsSuperinvestor DirectoryARead-onlyInspect
Get the curated superinvestor directory — a hand-picked list of well-known value investors and fund managers (Buffett, Ackman, Burry, Klarman and more), each with their 13F filer CIK and latest reported portfolio value, position count, quarter-over-quarter change, and report date. Portfolio value covers long US-listed 13F positions only, not total firm AUM; as-of dates vary by filer, and rows lagging the group's latest quarter are marked (stale). Use the returned CIK with GetInstitutionPortfolio for a manager's full holdings, or GetInstitutionQuarterlyActivity for their latest buys and sells.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, destructiveHint), the description discloses important nuances: portfolio value covers only long US-listed 13F positions, not total AUM; as-of dates vary; stale rows are marked. This adds real behavioral context that annotations alone would not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), front-loaded with the main purpose, and packs in necessary caveats and follow-up guidance without fluff. 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 parameterless, no-output-schema tool, the description is remarkably complete. It explains what data is included, its scope, quality caveats, and how to leverage the results with other tools, giving an agent everything needed to invoke and 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?
The tool has zero parameters and the schema is empty, so there are no parameter semantics to explain. The description appropriately focuses on output semantics instead, which is sufficient for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting a curated superinvestor directory with specific data fields (CIK, portfolio value, position count, etc.). It distinguishes itself from sibling tools by explicitly mentioning follow-up tools like GetInstitutionPortfolio and GetInstitutionQuarterlyActivity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool and what to do with the results, naming specific alternatives for deeper dives (GetInstitutionPortfolio for full holdings, GetInstitutionQuarterlyActivity for buys/sells). This clearly frames the tool as the entry point for superinvestor data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetTopGovernmentContractorsTop Federal ContractorsARead-onlyInspect
Rank public companies by total federal contract dollars awarded over a date range (from USAspending.gov). Sums the total award value (obligated dollars plus unexercised ceiling) of prime contract awards of $1M or more that resolve to a listed company; smaller awards and unlisted recipients are excluded. Answers questions like 'which public companies won the most federal contracts last quarter'. Use GetGovernmentContracts for one company's individual awards.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to today) | |
| startDate | No | Start date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago) | |
| maxResults | No | Maximum number of companies to return (default: 25, largest first) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond this: it sums 'obligated dollars plus unexercised ceiling' and excludes smaller/unlisted recipients, disclosing how the ranking is computed. This enriches the agent's understanding of the operation, though it doesn't explain the 'resolve to a listed company' mapping in depth.
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 four sentences, front-loaded with the primary purpose, followed by essential methodology and a usage example. There is no redundant filler, and each sentence adds value, though it could be tightened slightly without losing 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 no output schema, the description explains the tool's scope and ranking logic but does not explicitly state the return fields (e.g., company name, ticker, total amount). It covers the main use cases and limitations reasonably well, making it mostly complete for an agent to select 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 coverage is 100%, with each parameter (endDate, startDate, maxResults) already described clearly. The description references the date range and 'largest first' ordering, but it does not add new semantic meaning beyond what the schema provides. Baseline 3 is appropriate because the schema does the heavy lifting.
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 ranks public companies by total federal contract dollars over a date range, explicitly naming the data source (USAspending.gov), the inclusion threshold ($1M+ prime awards), and the exclusion criteria. It distinguishes itself from the sibling tool GetGovernmentContracts by directing users to that tool for individual company awards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit example question ('which public companies won the most federal contracts last quarter') and gives an alternative tool with the line 'Use GetGovernmentContracts for one company's individual awards.' This gives clear when-to-use and when-not-to-use guidance, exceeding what is typically seen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetTopHoldersTop Institutional HoldersARead-onlyInspect
Get the top institutional holders (fund managers) of a stock from SEC 13F-HR filings. Returns a ranked list of institutions by shares held, including market value and percentage of total institutional 13F shares (not of shares outstanding). Data is sourced from quarterly 13F filings that large investment managers are required to file with the SEC; while the newest quarter's filing window is open, funds that have not filed yet are carried at their prior-quarter positions (noted in the output). Use this to understand who the major institutional investors in a company are.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| maxResults | No | Maximum number of holders to return (default: 20, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available; an off-quarter date snaps to the nearest report on or before it) |
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 safety profile is known. The description adds meaningful behavioral context: data comes from quarterly 13F filings, funds not yet filed for the newest quarter are carried at prior-quarter positions (noted in output), and the percentage is relative to total institutional 13F shares, not shares outstanding. This goes beyond basic read/write disclosure.
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 three sentences and efficiently communicates the core function, data source, a key caveat, and a usage note. It is front-loaded with the primary purpose and avoids fluff. It is slightly verbose in the middle sentence but every clause adds information, so it earns a 4 rather than 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?
Without an output schema, the description appropriately covers what the return list includes (ranked institutions, shares held, market value, percentage) and highlights the data freshness caveat. The parameter schema handles input details. For a read-only data retrieval tool, this is sufficiently complete, though it does not mention pagination or count limits beyond the schema's maxResults clamp.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (ticker, maxResults, reportDate) are already documented. The description itself does not add parameter-level detail beyond what the schema provides; it only subtly contextualizes reportDate through the 13F quarterly filing note. This matches the baseline of 3 for high 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 explicitly states the tool gets top institutional holders from SEC 13F-HR filings, with a specific verb and resource. It distinguishes itself from siblings like GetFundsHoldingStock by emphasizing 'top institutional holders (fund managers)' and the 13F data source. The return content (ranked list, market value, percentage) is also clearly specified.
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 for when to use the tool ('Use this to understand who the major institutional investors in a company are'), but does not explicitly mention when not to use it or direct to alternative tools. Since it names a specific use case, it earns a 4 rather than a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetTopInstitutionalBuyersSellersTop Institutional Buyers and SellersARead-onlyInspect
Get the institutions that moved the needle the most on a stock this quarter — biggest absolute share additions (Top Buyers) and biggest absolute share reductions (Top Sellers) versus the previous 13F report date. Includes new positions (Δ = full position) and sold-out positions (Δ = −prior position); a previous holder counts as a seller only if it filed a 13F for the target quarter, so a fund that stopped filing (CIK migration, deregistration) is not shown as a mass seller. While the newest quarter's filing window is open, results cover only the funds that have already filed (noted in the output). Returns a markdown table with two sections. Use this to surface the most actionable quarterly signal from 13F filings.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| maxResults | No | Maximum number of buyers and sellers to return per section (default: 10, clamped to 1-500) | |
| reportDate | No | Quarter-end 13F report date in YYYY-MM-DD format, e.g. 2026-03-31 (defaults to the latest available; an off-quarter date snaps to the nearest report on or before it) |
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 safety is covered. The description adds substantial behavioral detail: the delta calculation, inclusion of new and sold-out positions, the condition that a previous holder only counts if it filed for the target quarter (with CIK migration/deregistration caveat), the open-window limitation, and the markdown table output with two sections. This goes well 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 dense but well-organized: core purpose first, then the mechanics of how the data is computed, then edge cases, then output format, and finally usage guidance. Every sentence earns its place, and there is no redundancy or filler. It reads naturally and front-loads the most important 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?
The tool involves quarterly comparison logic and edge cases (filing windows, CIK migration), and the description covers these thoroughly, including the output format (markdown table with two sections). However, it does not specify the exact columns or structure of the returned table, which might be needed for downstream processing. Given the lack of an output schema, this is a minor omission but not critical for selecting 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?
All three parameters (ticker, maxResults, reportDate) have descriptions in the schema, achieving 100% coverage. The description does not add any additional parameter-specific semantics; it only mentions reportDate snapping indirectly through the description's mention of quarter-end dates, but that's already in the schema. With high schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving the top institutional buyers and sellers for a stock based on absolute share changes versus the prior 13F report. It uses a specific verb ('Get') and resource ('institutions'), and differentiates itself from related tools by emphasizing 'moved the needle the most' and the quarterly comparison. The purpose is unambiguous and distinct from siblings like GetInstitutionQuarterlyActivity or GetTopHolders.
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 usage guidance with 'Use this to surface the most actionable quarterly signal from 13F filings,' and it explains when results may be incomplete (open filing window) and the handling of funds that stopped filing. However, it does not explicitly contrast with alternative tools or state when not to use it, so it stops short of full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetUpcomingInvestorEventsUpcoming Investor EventsARead-onlyInspect
Get upcoming investor-relations events for a stock — earnings webcasts, conference appearances, presentations, and shareholder meetings — scraped from the company's IR website. Returns events scheduled from now onward, soonest first, optionally filtered by event type. Coverage is partial — an empty answer distinguishes a coverage gap from a genuinely empty calendar. Only future events are returned; for past events and their transcripts use ListInvestorEvents / GetInvestorEventTranscript.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Company ticker symbol (e.g., NVDA, AAPL) | |
| eventType | No | Optional event-type filter: EarningsCall, Conference, Presentation, ShareholderMeeting, or Webcast. Omit for all types. Events whose source label could not be classified carry the generic type 'Event' and only appear when no filter is set. | |
| maxResults | No | Maximum number of events to return (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds crucial behavioral context: partial coverage, the interpretation of empty results, the scraping source, and that only future events are returned. It also states the ordering. None of this contradicts the annotations, and it meaningfully enriches the agent's understanding of what the tool does and what the results mean.
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, dense paragraph with no filler. It front-loads the core purpose, then adds filtering, ordering, coverage caveat, and routing to alternatives—each sentence earns its place. The structure is highly efficient for an agent scanning for decision-useful 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?
The description covers the essential decision points: what is returned (future events), ordering, optional filter, coverage caveat, and where to go for past events. However, it does not specify the exact structure of the returned event objects (e.g., fields like date, type, URL), and there is no output schema to fill that gap. This leaves a minor ambiguity for an agent that needs to parse the result programmatically, though it is sufficient 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?
The input schema already provides 100% coverage on all three parameters (ticker, eventType, maxResults) with detailed descriptions, defaults, and the note about the 'Event' generic type. The tool description adds little beyond that, merely echoing optional filtering and the future-only scope. Since the schema carries the full parameter meaning, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('upcoming investor-relations events'), enumerates concrete event types (earnings webcasts, conference appearances, presentations, shareholder meetings), and names the data source (company IR website). It also differentiates from siblings by explicitly noting that past events and transcripts are handled by ListInvestorEvents / GetInvestorEventTranscript, leaving no ambiguity about what this tool covers.
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 explicit when-to-use guidance: 'Only future events are returned; for past events and their transcripts use ListInvestorEvents / GetInvestorEventTranscript.' It also clarifies the optional eventType filter, the ordering (soonest first), and the coverage caveat—an empty answer means a coverage gap, not an empty calendar. This is complete routing and expectation-setting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetValuationMultiplesValuation MultiplesARead-onlyInspect
Get current EV/Revenue, EV/EBIT and P/E with peer median, quartiles and sample size; REITs also include verified company-stated P/FFO and P/AFFO, and any filer with a verified reconciliation also includes EV over its own stated Adjusted EBITDA, when available. TTM values use four discrete fiscal quarters. Enterprise value uses same-date reported debt, cash and tagged short-term investments. Inputs must reconcile, share one effective split basis and be stated in USD; missing inputs are never estimated. The company is excluded from its peer cohort, which uses similar-size industry peers when sufficient and the full industry otherwise. The response names every figure's date and cohort basis. Use GetValuationMultiplesHistory for point-in-time history.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations already mark this as read-only and non-destructive, the description adds substantial behavior: TTM uses four discrete fiscal quarters, EV uses same-date components, inputs must reconcile, missing inputs are never estimated, and the company is excluded from its peer cohort. It also discloses that the response names each figure's date and cohort basis.
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 dense but every sentence earns its place: core metrics first, then methodology, scope constraints, output behavior, and a pointer to the historical alternative. It is front-loaded and contains no filler.
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 single-parameter read-only tool with no output schema, the description is complete. It covers what multiples are returned, peer-cohort construction, valuation methodology, data constraints, output transparency, and the relevant sibling 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 100% and the ticker parameter is already documented in the schema. The description does not add significant parameter-level semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb plus resource: 'Get current EV/Revenue, EV/EBIT and P/E with peer median, quartiles and sample size'. It clearly identifies what is retrieved and contrasts with GetValuationMultiplesHistory, so an agent can distinguish this tool from its nearest sibling.
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 states the temporal scope ('current') and explicitly directs the agent to 'Use GetValuationMultiplesHistory for point-in-time history.' This gives a clear when-to-use versus when-not-to-use rule with the alternative named directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetValuationMultiplesHistoryValuation Multiples HistoryARead-onlyInspect
Get up to ~10 years of quarterly EV/Revenue, EV/EBIT, EV/EBITDA and P/E, with P/FFO and P/AFFO for REITs and EV/Adjusted EBITDA for verified filers. Each row is recomputed at its filing date from facts then available and that day's raw close; non-GAAP cells name their TTM or fiscal-year basis. Completed exact-primary split reconciliation preserves older samples; anchors before an unresolved split are omitted. The reply reports omissions and missing EV inputs by cause. Uses the strict USD-only TTM/EV methodology of GetValuationMultiples on one effective split basis. Missing or unproved inputs are dashes, never estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker symbol (e.g., AAPL, MSFT). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is already known. The description adds substantial behavioral detail: rows are recomputed at filing date using facts then available and that day's raw close; split reconciliation affects sample preservation; anchors before unresolved splits are omitted; omissions and missing EV inputs are reported; and missing values are dashes, never estimates. This far exceeds the annotation coverage and gives agents realistic expectations for edge cases.
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 dense but every sentence carries essential specificity: time range, metrics, recomputation behavior, split handling, output reporting, and missing-value policy. There is no filler or repetition. The most important identifying information is front-loaded in the first sentence, with caveats following in a logical order.
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 one parameter and no output schema, the description covers what the response contains: quarterly rows, metric set, basis labels, split reconciliation effects, omission reporting, and dashed missing values. It also clarifies which sub-populations get special metrics (REITs, verified filers). Nothing essential for an agent to call and interpret the tool is missing.
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 already fully documents the single ticker parameter with 100% coverage and examples, so the baseline is 3. The description does not add any ticker-specific semantics beyond what the schema provides, but none are needed for a single well-known parameter. There is no gap for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieving up to ~10 years of quarterly valuation multiples. It enumerates the exact metrics (EV/Revenue, EV/EBIT, EV/EBITDA, P/E, plus REIT and verified-filer variants), which clearly differentiates it from the point-in-time sibling GetValuationMultiples. The name and content together leave no ambiguity about what the tool returns.
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 use case: historical quarterly multiples with a recomputed-at-filing methodology, and it explicitly references the methodology of sibling GetValuationMultiples. It does not explicitly state 'use this for history, use GetValuationMultiples for current,' but the relationship is clear enough from the name and methodology reference. A short when-to-use/when-not-to-use contrast would fully satisfy this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GetVixHistoryVIX Volatility Index HistoryARead-onlyInspect
Get CBOE Volatility Index (VIX) historical daily OHLC data. VIX measures expected 30-day S&P 500 volatility. Below 15 = low volatility/complacency, above 30 = high fear/uncertainty. Data available from 1990 to present.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date in YYYY-MM-DD format (defaults to latest available) | |
| startDate | No | Start date in YYYY-MM-DD format (defaults to 3 months ago) | |
| maxResults | No | Maximum number of records to return (default: 60, max: 500). When the range holds more rows the newest are kept; rows are always listed oldest to newest. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive. The description adds the availability window ('1990 to present') and OHLC format, but omits pagination, error behavior, or response details. It meets the lowered bar but adds no deeper operational 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?
Two sentences total: the first is the purpose, the second offers actionable market context. 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?
For a read-only historical data tool with a fully described schema, the description plus schema give an agent all needed info: data type, date range, parameters, and ordering. The OHLC designation implies return fields even without an 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 covers all 3 parameters with descriptions (100%), including defaults and maxResults ordering. The main description adds no parameter-specific meaning, so the baseline 3 applies.
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 'Get CBOE Volatility Index (VIX) historical daily OHLC data,' identifying the exact resource (VIX) and data type (OHLC). This distinguishes it from sibling price tools like GetStockPrices.
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 VIX historical analysis but doesn't explicitly compare to alternatives or state when not to use. The VIX level interpretation ('Below 15... above 30') provides context but no direct selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ListCustomDataSetsList Custom Data SetsARead-onlyInspect
List the caller's own recurring custom data sets, schedule, state, and most recent run. This is read-only and never contacts a source website. To create or manage one, tell the user to open the Equibles Portal and choose Dashboard → Custom Data Sets: https://www.equibles.com/CustomDataSets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral context: 'This is read-only and never contacts a source website.' This goes beyond the annotation by ruling out external network access and reinforces the safety profile. There is no contradiction between description and 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, each earning its place: the core action, the read-only/no-external-contact behavior, and the portal redirect for create/manage. The most important information 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?
For a zero-parameter, read-only list tool with no output schema, the description covers what is returned (schedule, state, most recent run), the scope (caller's own), the safety behavior (read-only, no source website), and the off-ramp to the portal for management. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description adds no parameter details because none exist; it correctly focuses on what is listed rather than possible arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List the caller's own recurring custom data sets, schedule, state, and most recent run.' This is clear and distinguishes from GetCustomDataSet by focusing on the caller's own metadata and the plural 'data sets.' However, it does not explicitly name or contrast any sibling tool, so it stops short of full differentiation.
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 create/manage: 'To create or manage one, tell the user to open the Equibles Portal.' This gives a clear when-not-to-use and points to an alternative. It does not mention GetCustomDataSet as an alternative for retrieving a single custom data set, which would make the guidance more complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ListFilingsList FilingsARead-onlyInspect
List stored SEC filings and earnings-call transcripts newest first. Omit ticker for a market-wide feed or provide one ticker for a company-specific list. Returns company identity, document IDs, types, filing and reporting dates, SEC item numbers, line counts, and page totals. Supports date, document-type, and exact SEC item-number filters. Hidden document types remain excluded unless explicitly requested. Pass a returned ID to SearchDocument or ReadDocumentLines.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| ticker | No | Optional company ticker symbol (e.g., AAPL, MSFT). Omit for all companies. | |
| endDate | No | Optional end date filter in YYYY-MM-DD format | |
| maxItems | No | Maximum number of documents per page (default: 10) | |
| startDate | No | Optional start date filter in YYYY-MM-DD format | |
| itemNumber | No | Optional exact SEC current-report item number, e.g. 2.02, 5.02, or 1.01. | |
| documentType | No | Document type filter. Accepts a registered type value — 'TenK', 'TenQ', 'EightK', 'TenKa', 'TenQa', 'EightKa', 'TwentyF', 'SixK', 'FortyF', 'TwentyFa', 'SixKa', or 'FortyFa' — or its display name (e.g. '10-K', '20-F/A'), plus any deployment-registered type, such as EarningsCallTranscript (display name: Earnings Call) for earnings-call transcripts where available. An unrecognized value returns an error listing every accepted value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description reveals meaningful behavior: results are sorted newest-first, hidden document types stay excluded unless explicitly requested, and the response includes specific metadata fields. This gives the agent a strong behavioral model of the call.
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 compact yet information-dense: every sentence conveys a distinct fact—ordering, ticker behavior, return fields, filters, hidden-type behavior, and downstream usage. Key behavioral details are 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 read-only listing tool with no output schema, the description covers what the tool returns, how to paginate conceptually via maxItems/page, how to filter, and what to do with returned IDs. No critical information for invoking it correctly appears missing.
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 adds useful context beyond parameter names by explaining the ticker omission behavior, filter categories, and the hidden-document-type exclusion rule, which clarifies how documentType behaves in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('stored SEC filings and earnings-call transcripts'), and clarifies ordering ('newest first') and output contents. It also distinguishes itself from downstream tools like SearchDocument and ReadDocumentLines by noting the ID-passing relationship.
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 usage context: omit ticker for market-wide feed, provide one ticker for company-specific list, and chain returned IDs into SearchDocument or ReadDocumentLines. It does not explicitly contrast with SearchDocuments or other list-type siblings, so it stops just short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ListInvestorEventsBrowse Investor EventsARead-onlyInspect
List a company's recent investor events — earnings calls AND the other events it webcasts (conferences, investor/analyst days, shareholder meetings) — newest first. Each row gives the event id, type, the UTC start (time shown when one was reported), the event title, fiscal period (earnings calls only), status, and whether a transcript, audio and slide deck are on file. Conferences have no fiscal quarter, so use the event id with GetInvestorEventTranscript to read one rather than GetEarningsCallEvent (which is keyed by fiscal quarter and earnings-only).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of events to return (default 25, max 100; values outside 1-100 are clamped) | |
| ticker | Yes | Company ticker symbol (e.g., AAPL, MSFT) | |
| eventType | No | Optional event type to filter on: EarningsCall, CapitalMarketsDay, InvestorUpdate, AGM, Conference, FiresideChat, or MAndA (default: all types) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds substantial behavior: it lists the exact fields returned (event id, type, UTC start, title, fiscal period, status, availability of transcript/audio/slides), states ordering ('newest first'), and highlights that conferences have no fiscal quarter. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states purpose and scope, the second enumerates output fields, the third gives crucial routing guidance. No filler, clear ordering, and the most important information (scope and distinction) 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?
With no output schema, the description fully compensates by enumerating every return field and the ordering. It also explains the critical nuance that conferences lack a fiscal quarter, which is essential for correct follow-up calls, and names the exact sibling to use. Nothing an agent needs to invoke or correctly interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all three parameters (ticker, limit, eventType) have detailed descriptions including defaults and valid values. The description adds no additional parameter-level meaning (e.g., it doesn't introduce the eventType filter or clarify limit clamping beyond what the schema says). 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?
States a specific verb ('List') and resource ('a company's recent investor events'), enumerates the event types covered (earnings calls, conferences, investor/analyst days, shareholder meetings), and explicitly contrasts with sibling tools GetEarningsCallEvent and GetInvestorEventTranscript, making the tool's scope unmistakable.
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 routing guidance: 'Conferences have no fiscal quarter, so use the event id with GetInvestorEventTranscript to read one rather than GetEarningsCallEvent (which is keyed by fiscal quarter and earnings-only).' This directly tells the agent when not to use an alternative. It does not cover other siblings like GetUpcomingInvestorEvents, but the most relevant distinction is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ReadDocumentLinesRead Filing LinesARead-onlyInspect
Read numbered lines from one SEC filing or earnings-call transcript. Use line numbers returned by SearchDocument or request a known range. Returns at most 2,000 lines and identifies the next startLine when truncated.
| Name | Required | Description | Default |
|---|---|---|---|
| endLine | Yes | Last line to read (1-based, inclusive). At most 2,000 lines are returned per call; a longer range is truncated with a note on how to continue. | |
| startLine | Yes | First line to read (1-based, inclusive) | |
| documentId | Yes | Document ID obtained from ListFilings |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint and destructiveHint already identify this as a safe read operation. The description adds useful scope and continuation behavior: it covers exactly one SEC filing or transcript and identifies the next startLine when truncated. The 2,000-line cap is partly duplicated from the schema, but the next-startLine detail goes beyond it.
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 compact sentences front-load the core purpose, then explain how to obtain line numbers, then state the return limit and truncation continuation. Every sentence earns its place with no filler or redundancy beyond the schema's existing 2,000-line limit.
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 a fully documented schema, the description provides the missing runtime details: it clarifies the source of line numbers, caps the returned batch, and explains how to continue when truncated. No output schema exists, so the return-behavior note is essential and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and startLine/endLine semantics are fully documented in the schema. The description adds the useful hint that line numbers can come from SearchDocument, but this is marginal rather than a substantive expansion of 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 states a specific verb ('Read') and a specific resource ('numbered lines from one SEC filing or earnings-call transcript'). It also establishes the companion relationship with SearchDocument, making it distinguishable from the search and transcript-retrieval siblings.
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: use this tool with line numbers from SearchDocument or with a known line range. It does not explicitly list exclusions or alternatives like SearchDocument, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
RemovePortfolioLotRemove Portfolio LotADestructiveInspect
Permanently delete a lot from the USER's portfolio, as if it had never been recorded. This is for a lot entered by mistake. It is NOT how a sale is recorded: deleting a lot that was sold destroys its realized profit; use ClosePortfolioLot for that. This cannot be undone, so confirm with the user first, naming the lot.
| Name | Required | Description | Default |
|---|---|---|---|
| lotId | Yes | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. | |
| portfolio | Yes | The portfolio holding the lot, by name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint: true. The description adds value by stating the action 'permanently delete...as if it had never been recorded', and specifies it destroys realized profit if the lot was sold. It also warns 'This cannot be undone'. This enriches the behavioral context beyond the annotation.
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, no wasted words. The first sentence states the action and its effect. The second clarifies the exception case and names the alternative tool. The third gives a user-facing constraint. Every sentence serves a distinct 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?
For a 2-parameter, no-output-schema tool with clear destructiveHint and high schema coverage, the description is complete. It covers purpose, usage guidelines, behavioral transparency, and user caution. No additional information is needed for effective 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 100%, with clear descriptions for both parameters. The description itself does not add detailed param info, but the schema already provides 'The lot id shown by GetMyPortfolio' and 'The portfolio holding the lot, by name'. The description reaffirms the purpose of the lot (mistaken entry) which indirectly helps parameter understanding. Baseline is 3 due to high schema coverage; the extra context on when a lot should be removed justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'delete' and the resource 'lot from the USER's portfolio', clearly distinguishing it from the sibling tool ClosePortfolioLot by stating it is for lots entered by mistake and that it's not how a sale is recorded. The description fully clarifies the tool's unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidelines are provided: when to use (a lot entered by mistake), when not to use (not for recording a sale), and the alternative (use ClosePortfolioLot for that). Also advises to confirm with the user before proceeding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ReportProblemReport an Equibles Tool ProblemAInspect
Report an Equibles tool call you actually made when it failed, timed out, was unexpectedly empty (ToolFailed), or returned verifiably impossible or contradictory data (ImplausibleResult). Answer the user first, then retry or use a fallback; this report does not fix the current call. Report the call and response, never the person or their question. Omit private or user-provided argument values or replace them with [redacted]. Mention briefly that you flagged it. Do not report surprising-but-plausible data, missing tools, feature requests, or non-Equibles tools.
| Name | Required | Description | Default |
|---|---|---|---|
| expected | No | Optional. What you expected instead, and how you know — a figure from another Equibles tool, a filing, or the tool's own documented behaviour. This is what makes an implausible-result report reproducible. | |
| toolName | Yes | The Equibles tool that misbehaved, e.g. GetCompanyKpis. | |
| arguments | No | Optional. The arguments you passed to the failing tool, as JSON or key=value pairs, so the call can be replayed. Omit or redact any user-provided or private text. | |
| observation | Yes | What went wrong, in one or two sentences: the error text, or why the figures are not credible. Describe the call and its response only — never the user or their question. Do not submit placeholder-only text such as N/A. | |
| problemKind | Yes | Either 'ToolFailed' (error, timeout, or unexpectedly empty) or 'ImplausibleResult' (answered, but the data cannot be right). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, etc.), so the description carries the behavioral burden. It fully discloses that the report does not fix the current call, requires answering the user first, and specifies what should/shouldn't be reported (call and response only, omit private data, redact). This goes well 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 detailed but every sentence carries distinct guidance: scope, order of operations, content rules, exclusions, and redaction. It is front-loaded with the core purpose and then specifics, with no filler or repetition.
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 reporting tool with 5 params and no output schema, the description covers all the essential behavioral and content requirements: what to report, what to omit, redaction, how to phrase observation, the purpose of expected, and the fallback order. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a clear description. The tool description additionally clarifies the expected format/length for 'observation' and the purpose of 'expected' as the reproducibility crux for implausible results. It also reinforces the redaction guidance for 'arguments'. This adds meaningful value beyond the schema, though the schema already does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Report) and resource (an Equibles tool call you actually made) and defines the exact conditions that qualify (failed, timed out, unexpectedly empty, or implausible result). This clearly differentiates it from the sibling data-query tools and from SuggestToolImprovement.
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 when-to-use criteria are given (after a call fails or returns implausible data), along with an explicit exclusion list ('surprising-but-plausible data, missing tools, feature requests, or non-Equibles tools'). Also provides sequencing guidance (answer user first, then retry/fallback, then report) and instructs to mention the flag briefly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ScreenStocksStock ScreenerARead-onlyInspect
Screen listed stocks with optional min/max bounds for price, market cap, institutional ownership, short data, insider activity, valuation, growth, margins, liquidity and earnings. Exact sector, industry, covered-index membership and going-concern filters are also available. A stock missing a bounded metric is excluded. Results use the requested sort (market cap descending by default), are paged, and include each dataset's vintage. Filtering or sorting on a fundamental metric adds that metric to the result table.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Result page (default 1) — combine with maxResults to walk past the first page of a large match set. | |
| index | No | Keep only members of one covered index, by slug or name (sp-500, S&P 500, nasdaq-100, Russell 2000). An unknown name returns the accepted list. | |
| maxPe | No | Maximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens). | |
| minPe | No | Minimum trailing-twelve-month price-to-earnings ratio. | |
| sector | No | Exact sector name (e.g. Technology, Healthcare). An unknown name returns the accepted list. | |
| sortBy | No | Sort key: marketcap, ticker, name, price, filers, filerdelta, sipct, dtc, squeeze, sentiment, insiderbuy, pe, divyield, revgrowth, grossmargin, dollarvol or netincome. Default marketcap. An unknown key is rejected, never silently ignored. | marketcap |
| industry | No | Exact industry name (e.g. Semiconductors). Prefer sector for broad groups. | |
| maxPrice | No | Maximum share price in dollars. | |
| minPrice | No | Minimum share price in dollars. | |
| maxResults | No | Maximum rows to return (default 50; clamped to 1-200). | |
| maxMarketCap | No | Maximum market capitalization in dollars. | |
| maxNetIncome | No | Maximum trailing-twelve-month net income in dollars. | |
| minMarketCap | No | Minimum market capitalization in dollars. | |
| minNetIncome | No | Minimum trailing-twelve-month net income in dollars (0 keeps profitable companies only). | |
| maxFilerCount | No | Maximum number of 13F institutional filers holding the stock. | |
| maxFilerDelta | No | Maximum quarter-over-quarter change in filer count. | |
| minFilerCount | No | Minimum number of 13F institutional filers holding the stock. | |
| minFilerDelta | No | Minimum quarter-over-quarter change in filer count. | |
| sortAscending | No | Sort ascending instead of descending. | |
| maxDaysToCover | No | Maximum days to cover. | |
| maxGrossMargin | No | Maximum gross margin in percent (0-100). | |
| minDaysToCover | No | Minimum days to cover. | |
| minGrossMargin | No | Minimum gross margin in percent (0-100). | |
| maxDollarVolume | No | Maximum trailing-3-month average daily dollar volume in dollars. | |
| maxSqueezeScore | No | Maximum composite short-squeeze score (0-100, peer-relative). | |
| minDollarVolume | No | Minimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day). | |
| minSqueezeScore | No | Minimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone). | |
| maxDividendYield | No | Maximum trailing dividend yield in percent. | |
| maxNetInsiderBuy | No | Maximum net insider buying in dollars over the trailing 90 days. | |
| maxRevenueGrowth | No | Maximum revenue growth in percent, latest quarter vs the same quarter a year earlier. | |
| minDividendYield | No | Minimum trailing dividend yield in percent (e.g. 3 = 3%). | |
| minNetInsiderBuy | No | Minimum net insider buying in dollars over the trailing 90 days. | |
| minRevenueGrowth | No | Minimum revenue growth in percent, latest quarter vs the same quarter a year earlier. | |
| maxInsiderSentiment | No | Maximum composite insider-sentiment score (0-100, peer-relative). | |
| minInsiderSentiment | No | Minimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation). | |
| hasGoingConcernDoubt | No | True keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag. | |
| maxShortInterestPercent | No | Maximum short interest as a percent of shares outstanding (0-100). | |
| minShortInterestPercent | No | Minimum short interest as a percent of shares outstanding (0-100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and destructiveHint=false, so the description is rightly not burdened with the safety profile. It adds genuinely useful behavioral context beyond the schema: 'A stock missing a bounded metric is excluded', paging behavior, default sort, inclusion of dataset vintage, and that sorting/filtering on a metric adds it to the result table. These materially shape agent expectations.
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?
A tight four-sentence paragraph that front-loads the tool's purpose, then packs the essential behavioral rules (exclusion, sort, paging, vintage, result augmentation). For a 38-parameter tool, it wisely avoids restating every field and 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 complex 38-optional-parameter screener with no output schema, the description covers the decision-critical facts an agent needs: filter categories, exclusion semantics, sort/paging behavior, and result composition. It stops short of describing the exact response shape or accepted sort-key enumeration, but those are minor against the breadth already disclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with strong per-parameter descriptions (units, examples, ranges, and domain notes like '0 keeps profitable companies only'). The description groups parameters into categories but adds no per-parameter meaning beyond the schema — this matches the baseline of 3 for full-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Screen listed stocks') and enumerates the full filter surface: price, market cap, institutional ownership, short data, insider activity, valuation, growth, margins, liquidity, earnings. This clearly distinguishes it from single-metric siblings like GetShortInterest or GetInsiderOwnership, which are narrower point lookups.
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 the general purpose obvious — breadth multi-criteria filtering across listed stocks — but it never names alternative tools or states when NOT to use it (e.g., for single-instrument facts, use GetFinancialFact/GetLatestClosingPrices). Usage context is implied rather than explicit, and no exclusions or routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchCftcMarketsSearch CFTC Futures ContractsARead-onlyInspect
Search the tracked CFTC futures contracts by name, market code, common contract name, or standard futures symbol, or omit the query to list every tracked contract. Coverage is a curated set of ~35 major contracts across Agriculture, Energy, Metals, Equity Indices, Interest Rates, and Currencies - markets outside this set have no COT data here. Returns matching contracts with their codes and categories; use this to discover market codes before calling GetCftcPositioning.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query — market code, name words, common name, or standard symbol (e.g., 'gold futures', 'WTI', 'ES', 'S&P 500', '088691'). Search requires every punctuation-independent word first and broadens to any word only when no strict row matches. Omit to list all tracked contracts. | |
| maxResults | No | Maximum number of results to return (default: 50, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, which the description supports by being a search operation. The description adds valuable behavioral context: the curated coverage set, the 'no COT data' caveat, the search broadening behavior (in the param description), and the return of codes and categories. This goes beyond the annotation-provided safety/read-only signal, though it doesn't detail exact output structure or pagination beyond maxResults.
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: three sentences that front-load the action, state the scope and coverage limitation, and clarify the return value and its intended follow-up. No wasted words; every sentence provides necessary information for using the tool.
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 2-optional-parameter profile, no output schema, and annotations covering safety, the description is complete. It covers what the tool searches, what it returns, coverage boundaries, and how to use it in the broader workflow (before GetCftcPositioning). A small gap is the lack of the exact output shape, but 'codes and categories' suffices for a discovery 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 input schema already has thorough descriptions for both parameters (query and maxResults) with examples and default/max values, giving 100% schema coverage. The main description reiterates that the query can be a name, code, symbol, etc., and that omitting it lists all, which adds value but does not significantly exceed what the parameter descriptions already explain. Baseline 3 is appropriate given the schema does the heavy lifting.
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 searches tracked CFTC futures contracts by multiple identifiers (name, market code, common name, symbol) and can list all when no query is given. It uniquely distinguishes itself by explicitly directing the agent to use it for discovering market codes before calling GetCftcPositioning, separating it from the many Get* and Search* siblings.
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 the tool, including the directive to 'discover market codes before calling GetCftcPositioning'. It also explains the coverage limitation (only ~35 curated contracts, markets outside have no COT data), helping the agent decide if this tool is applicable. The 'omit the query to list all' also clarifies a use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchCongressMembersSearch Congress MembersARead-onlyInspect
Search the tracked congressional roster by name. Search first requires every punctuation-independent query word anywhere in the filed name, then broadens to any word only when no strict row matches. Verified public-name aliases such as Dan Crenshaw resolve to the roster name. Returns each match with its position; pass the returned exact Name to GetMemberTrades or GetMemberNetWorth.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — partial or full name (e.g., 'Pelosi', 'Cruz', 'Dan') | |
| position | No | Filter by position: Senator or Representative (defaults to both) | |
| maxResults | No | Maximum number of results to return (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, but the description adds meaningful behavioral context: the two-stage search algorithm (strict word match then broaden), punctuation independence, alias resolution, and positional output. This goes beyond what annotations provide, though it doesn't cover output layout in depth.
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?
Four sentences, each earning its place: purpose, algorithm, aliases, and downstream usage. No filler or repetition, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, matching algorithm, alias resolution, return value (position + exact Name), and integration with sibling tools. Without an output schema, it could specify more about the response structure, but the essential info is present 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 covers 100% of parameters, so baseline is 3. The description adds semantics for the query parameter (matches punctuation-independent words anywhere in the name, aliases) and clarifies the output's exact Name should be passed onward, enriching meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it 'Search[es] the tracked congressional roster by name', a specific verb+resource action. The description also differentiates from siblings by explaining it returns exact names to feed into GetMemberTrades or GetMemberNetWorth, establishing a distinct lookup role.
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 clear context on when to use the tool: to resolve member names/aliases before querying trades or net worth. It describes search behavior (strict then broad) and explicitly names downstream tools, though it does not mention exclusions or alternative search tools in detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchDocumentSearch Within One FilingARead-onlyInspect
Search one SEC filing or earnings-call transcript by document ID. semantic mode uses hybrid relevance and returns excerpts in document order with approximate line numbers. exact mode performs a literal case-insensitive substring match and returns precise matching lines. Get document IDs from SearchDocuments or ListFilings; use ReadDocumentLines for surrounding text.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — plain keywords or a short natural-language phrase. When too few excerpts match every word, the search automatically broadens to match any of the words. In searchMode 'exact', matched as a literal case-insensitive substring. | |
| documentId | Yes | Document ID obtained from ListFilings or a SearchDocuments result header | |
| maxResults | No | Maximum number of results to return (default: 5) | |
| searchMode | No | How to match: 'semantic' (default — hybrid keyword and semantic relevance) or 'exact' (literal case-insensitive substring match with precise line numbers). | semantic |
| maxExcerptChars | No | Maximum characters per excerpt (default: 0 = full excerpt). Set a small value (e.g. 400) for a compact scan across many results; truncated excerpts end with an explicit note. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals meaningful behavioral details beyond the read-only annotations: semantic mode returns excerpts 'in document order with approximate line numbers,' while exact mode returns 'precise matching lines.' It also discloses automatic query broadening through the schema description. This gives the agent a concrete model of what the tool will return and how it behaves in each mode.
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 accomplish a lot: scoping the resource, explaining the two operational modes and their output differences, and linking to sibling tools. The content is front-loaded with the core action, and every sentence delivers necessary, non-redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a read-only, single-document search tool: it covers prerequisite ID acquisition, mode behavior, output characteristics, and a sibling for contextual reading. With annotations already covering safety and no output schema required, nothing an agent needs to invoke or interpret results is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The tool description adds no parameter-level meaning beyond what the schema provides; it only restates the searchMode behavior at a high level. Baseline 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search one SEC filing or earnings-call transcript by document ID.' It explicitly narrows scope to a single document, distinguishing it from sibling SearchDocuments, and references how to obtain IDs, making the tool's purpose unmistakable.
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 tells agents how to get the prerequisite document ID ('Get document IDs from SearchDocuments or ListFilings') and redirects to a specific sibling for a different need ('use ReadDocumentLines for surrounding text'). This explicit routing and prerequisite guidance leave no ambiguity about when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchDocumentsSearch SEC FilingsARead-onlyInspect
Search SEC filings and earnings-call transcripts with hybrid keyword and semantic retrieval. Omit ticker to search every company, or provide one ticker to search only that company. Returns excerpts with document IDs for SearchDocument or ReadDocumentLines. Use excludeTickers and maxResultsPerCompany only for market-wide discovery; use ListFilings to browse filings newest first without a text query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — plain keywords or a short natural-language phrase. When too few excerpts match every word, the search automatically broadens to match any of the words; concise, filing-phrased terms (e.g. 'Data Center revenue') still rank best. | |
| ticker | No | Optional company ticker. Omit to search across all companies. | |
| endDate | No | Optional end date filter in YYYY-MM-DD format | |
| startDate | No | Optional start date filter in YYYY-MM-DD format | |
| maxResults | No | Maximum number of results to return (default: 5, max: 500) | |
| documentTypes | No | Optional document types. Accepts registered values such as TenK, TenQ, EightK, TwentyF, SixK, FortyF, or deployment-registered types such as EarningsCallTranscript. Display names such as 10-K are also accepted; an invalid value returns the full accepted list. | |
| excludeTickers | No | Optional tickers to exclude from a market-wide search (max 25). Cannot be combined with ticker. | |
| maxExcerptChars | No | Maximum characters per excerpt (default: 0 = full excerpt). Set a small value (e.g. 400) for a compact scan across many results; truncated excerpts end with an explicit note. | |
| maxResultsPerCompany | No | Maximum results from any single company (default: 0 = unlimited). Set a small value (e.g. 2) to spread results across more companies for discovery-style queries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is covered. The description adds useful behavioral context: hybrid retrieval, automatic broadening behavior, and the fact that returned excerpts include document IDs for downstream tools. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences front-load the core function, then explain scoping and sibling alternatives. There is no fluff or restatement of the schema; every sentence adds operational 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?
Although there is no output schema, the description covers the key return artifact: excerpts with document IDs for SearchDocument or ReadDocumentLines. It also handles search scope and points to the appropriate alternative for browsing. Minor gaps like ranking/pagination behavior are partially addressed by the schema fields maxResults and maxResultsPerCompany, so the description is sufficiently 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 100% with detailed parameter descriptions, so the baseline is 3. The description adds value by clarifying cross-parameter intent, such as 'Omit ticker to search every company' and scoping excludeTickers/maxResultsPerCompany specifically to market-wide discovery. This nuance helps an agent choose parameter values more effectively than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Search' with a clear resource ('SEC filings and earnings-call transcripts'), specifies the retrieval strategy ('hybrid keyword and semantic'), and describes the output ('excerpts with document IDs'). It also distances itself from ListFilings by clarifying that browsing without a query belongs to that sibling.
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?
Gives explicit when-to-use guidance: omit ticker for all companies vs provide one ticker for a single company. It further states that excludeTickers and maxResultsPerCompany are 'only for market-wide discovery' and that ListFilings should be used to browse filings newest first without a text query. This clearly routes the agent to the correct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchEconomicIndicatorsSearch Economic IndicatorsARead-onlyInspect
Search the curated set of ~40 US macro FRED series Equibles tracks (rates, inflation, employment, GDP, housing, market indicators) — not the full FRED catalog. Search first requires every punctuation-independent query word anywhere across the series ID, title, or category, then broadens to any word only when that strict search has no rows. Standard names such as fed funds rate, jobless claims, payrolls, yield curve, and core CPI are recognized. An empty query lists every tracked series. Results include seasonal adjustment, the latest observation date, and the UTC time Equibles last synced the series.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — series ID, title keyword, or category name (e.g., 'inflation', 'unemployment', 'GDP', 'FEDFUNDS'). Empty lists all tracked series. | |
| maxResults | No | Maximum number of results to return (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish readOnlyHint=true and destructiveHint=false, and the description adds substantial behavioral detail: the two-stage matching strategy, recognition of standard names, empty-query behavior, and the specific result fields (seasonal adjustment, latest observation date, UTC sync time). This goes far 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 three sentences, each earning its place. The first scopes the resource, the second explains the search logic, and the third describes output contents. No redundancy or filler.
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 search tool with 2 parameters and no output schema, the description covers scope, behavior, result contents, and edge cases (empty query). It is fully self-contained and leaves no critical gaps for an agent to invoke or interpret 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 coverage is 100%, so the baseline is 3. The description enriches the query parameter with word-matching semantics (every word required first, then any-word fallback) and clarifies that empty queries list all series. maxResults is fully covered by the schema, so the net addition is meaningful but not maximal.
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 searches a curated set of ~40 US macro FRED series, distinguishing it from the full FRED catalog. The verb 'search' plus the specific resource scope (rates, inflation, employment, GDP, etc.) makes the purpose unambiguous and differentiates it from sibling tools like GetEconomicIndicator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it searches only the tracked series, not the full FRED catalog, and explains the search algorithm with strict-then-broad matching. It also notes that an empty query lists all series. However, it does not explicitly name alternative tools or provide direct 'use this instead of X' guidance, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchFundsSearch Funds and ETFsARead-onlyInspect
Search the tracked SEC Form NPORT-P fund directory by fund name, ticker, SEC series ID, or registrant. Returns one canonical profile per series with ticker, registration type, latest report date, assets, and reported-versus-stored holding counts. Exact stored tickers outrank verified share-class aliases. Use the profile ID with GetFundProfile. The directory covers NPORT-P filers; a miss is a dataset-coverage result, not proof that a fund does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Fund name, ticker, registrant, or verified share-class alias (e.g., 'Russell 2000', 'iShares', 'IWM', 'VOO'). | |
| maxResults | No | Maximum number of funds to return, largest by net assets first (default: 20, max: 500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description directly contradicts the annotation openWorldHint=false. The description states that 'a miss is a dataset-coverage result, not proof that a fund does not exist', which implies an open-world interpretation, while the annotation marks the tool as closed-world. This is a significant inconsistency that could mislead an agent about how to interpret missing results.
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 three sentences, each contributing meaningful information. The purpose is front-loaded, and the coverage caveat is placed at the end. It is efficient without being terse, though the third sentence is slightly lengthy. Overall, it is well-structured and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return fields (ticker, registration type, latest report date, assets, holding counts) despite the lack of an output schema, which is helpful for an agent. It also notes the ranking behavior and the usage handoff. However, it does not address potential errors, pagination, or limits beyond maxResults, leaving minor gaps. Given the tool's moderate complexity and absent output schema, the coverage 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?
The input schema covers both parameters with descriptions (100% coverage), so the baseline of 3 applies. The description adds a minor detail about matching behavior ('Exact stored tickers outrank verified share-class aliases') but does not add new parameter formats or examples beyond what the schema already specifies. No extra semantic 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 clearly specifies the verb 'Search' and the resource 'tracked SEC Form NPORT-P fund directory', and differentiates itself from siblings like SearchInstitutions and SearchDocuments by naming the specific domain (funds/ETFs) and the source (NPORT-P filings). It also states what is returned (canonical profile per series with ticker, registration type, etc.), so an agent knows exactly what the tool does.
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 'Use the profile ID with GetFundProfile', which tells the agent when to hand off to a sibling. It also provides context on dataset coverage ('directory covers NPORT-P filers; a miss is a dataset-coverage result'), which helps the agent interpret results. It does not explicitly list when not to use it, but the pointer to GetFundProfile and the coverage note are strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchInsidersSearch Corporate InsidersARead-onlyInspect
Search the tracked SEC corporate-insider set (directors, officers, 10% owners) by name. Search first requires every punctuation-independent whole query word in the filed legal name, then broadens to any whole word only when no strict row matches; a token inside a different word is not a match. Verified public-name aliases such as Jensen Huang resolve to the SEC owner identity. Returns CIK, role, latest filing company, and location, ordered by recent filing activity.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for insider name | |
| offset | No | Number of matches to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0) | |
| maxResults | No | Maximum number of results (default: 10, max: 500; values outside 1-500 are clamped) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior, but the description adds substantive behavioral detail: the two-stage matching algorithm (strict whole-word first, then broaden), punctuation and word-boundary rules, alias resolution, and return-field/ordering specifics. This goes well beyond the structured 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 compact and front-loaded: the first sentence states the core purpose, followed by two sentences of high-value behavioral nuance. No fluff, 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?
Despite having no output schema, the description lists the return fields (CIK, role, latest filing company, location) and ordering. Pagination and clamping behavior are covered in the input schema, so the description complements structured data without needing to repeat it. The tool is a read-only search, so no mutation warnings are required.
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 descriptions cover all three parameters (100% coverage), so the baseline is 3. The description goes further by explaining how the 'query' parameter is interpreted (whole-word matching, alias resolution), which adds meaningful semantics beyond the schema's simple 'Search query for insider name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search'), a defined resource ('tracked SEC corporate-insider set'), and a clear scope ('directors, officers, 10% owners') by name. This clearly distinguishes it from sibling tools that retrieve insider transactions or ownership, and from other search 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 gives clear context: this tool is for searching insiders by name and returns identity details. It doesn't explicitly name alternatives (e.g., 'for transactions use GetInsiderTransactions'), but the intended use case is unambiguous, and the absence of exclusions is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchInstitutionsSearch Institutional InvestorsARead-onlyInspect
Search the tracked 13F filer set by institution name or SEC CIK. Search first requires every punctuation-independent query word anywhere in the filed name, then broadens to any word only when no strict row matches. Verified brand aliases such as Fidelity, Vanguard, and BlackRock include their current flagship CIK. Results are largest within the recently-active filing bucket first and include latest report date, reported 13F AUM, and tracked position count so same-name filers can be compared before calling an institution tool. Scoped institution tools remain strict and never discard an unmatched word.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — institution name, partial name, or CIK | |
| maxResults | No | Maximum number of results to return (default: 10, clamped to 1-500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses the two-phase matching algorithm (strict then broadens on no match), brand alias handling, result ordering by size within recent filing bucket, and included fields. This gives the agent a thorough behavioral model.
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 dense but every sentence adds value: purpose, matching behavior, aliases, result ordering, and comparison use case. It is front-loaded and well-structured.
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 having no output schema, the description explains exactly what results include (report date, AUM, position count) and how they are ordered, making the tool's output predictable. Combined with annotations and schema, it fully equips the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions already explain query and maxResults. The description adds some nuance (punctuation-independent matching, clamping) but mostly reiterates schema meaning; 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 it searches the tracked 13F filer set by institution name or SEC CIK, with a specific verb and resource. It distinguishes from sibling institution tools by positioning itself as the search/discovery step before calling scoped institution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs that results allow comparison before calling an institution tool, and notes that scoped institution tools remain strict. This provides clear when-to-use context and contrasts with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SearchInvestmentAdvisersSearch Investment AdvisersARead-onlyInspect
Search the tracked SEC Form ADV adviser set by firm name. Search first requires every punctuation-independent query word anywhere in the legal or business name, then broadens to any word only when no strict row matches. Returns CRD, main office, regulatory assets under management, employee count and as-of date, largest by assets first. Use the CRD with GetInvestmentAdviser.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Part of the firm's legal or business name (e.g., "Vanguard", "Renaissance") | |
| maxResults | No | Maximum number of advisers to return (default: 20, clamped to 1-500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by explaining the search algorithm (strict matching first, then broadening), the specific fields returned (CRD, main office, RAUM, employee count, as-of date), and the sort order (largest by assets first). This provides substantial behavioral context not captured in the schema or 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 each sentence providing essential information: what it searches, how the search behaves, what it returns, and how to use the result. No redundant language or 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?
For a simple search tool with two parameters and no output schema, the description is complete. It covers the input, search behavior, output fields, ordering, and the next step, leaving no critical gaps in understanding how to invoke and use 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 coverage is 100%, so the schema already documents both parameters. The description adds semantic meaning to 'query' by explaining the matching behavior (punctuation-independent, strict then broad), which enhances understanding beyond the schema's simple 'Part of the firm's legal or business name.'
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 function: searching the tracked SEC Form ADV adviser set by firm name. It specifies the resource (SEC Form ADV advisers) and the verb (search), and distinguishes itself from sibling GetInvestmentAdviser by indicating that CRD is used with that other 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 provides a clear usage context: search by firm name to find advisers, then use the returned CRD with GetInvestmentAdviser. It implies when to use this tool versus the retrieval tool, though it does not explicitly mention alternatives like SearchInstitutions or SearchFunds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
SuggestToolImprovementSuggest an Equibles Tool ImprovementAInspect
Suggest the smallest actionable contract improvement to an existing Equibles tool you actually called when it worked as documented but lacked a useful operation, filter, parameter or output option. Answer the user first; this records a future improvement and does not change the current call. Describe the call, never the person or their question. Omit private or user-provided argument values or replace them with [redacted]. Mention briefly that you suggested it. Use ReportProblem for wrong data; do not request new tools, duplicate existing options, or report non-Equibles ideas.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | Yes | The existing Equibles tool you actually called, e.g. GetCompanyKpis. | |
| arguments | No | Optional. The arguments you passed to the existing tool, as JSON or key=value pairs, so the limitation can be reproduced. Omit or redact any user-provided or private text. | |
| limitation | Yes | The concrete limitation encountered in that call. State what the current operation, filter, parameter, or output contract could not do. Describe the call only — never the user or their question. Do not submit placeholder-only text such as N/A. | |
| suggestedChange | Yes | The smallest actionable change you recommend, including the proposed operation, filter, parameter, or output behaviour and why it would resolve the limitation. Do not submit placeholder-only text such as N/A. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, openWorldHint=false, destructiveHint=false, but the description goes well beyond these by explaining that the tool 'records a future improvement and does not change the current call.' It also tells the agent to mention that it suggested the improvement, making the side effect (recording) transparent. This is consistent with annotations and adds valuable context about non-mutating 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 a single dense paragraph but is well-structured and front-loaded with the core purpose. Every sentence provides necessary instruction, from when to use it to what to avoid and how to mention the suggestion. While it is longer than minimal, the length is justified by the amount of critical operational guidance it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for an agent to call this tool correctly. It covers the trigger condition, alternative tool routing (ReportProblem), constraints on scope (no new tools, no duplicates), data privacy (redaction), and expected interaction flow (answer user first, mention the suggestion). Since there is no output schema, the description appropriately covers the behavioral contract without needing 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 description coverage is 100%, so all parameters are documented. The description adds extra semantic guidance beyond the schema: it tells the agent to redact user-provided values in the 'arguments' field, to avoid placeholder-only text in 'limitation' and 'suggestedChange', and to reference the existing tool called. This enhances parameter usability, earning a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to suggest a small actionable contract improvement to an existing Equibles tool that was actually called and worked as documented but lacked an operation, filter, parameter, or output option. It distinguishes itself from ReportProblem explicitly ('Use ReportProblem for wrong data') and from other siblings by its focus on improvement suggestions for existing 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 gives explicit when-to-use (when a tool worked but lacked something) and when-not-to-use guidance (do not request new tools, do not duplicate existing options, do not report non-Equibles ideas). It also directs the agent to answer the user first and provides instructions on how to present the suggestion (describe the call, not the person, redact private values, mention briefly that it was suggested).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
UnwatchInstrumentUnwatch InstrumentADestructiveInspect
Remove a stock or an option contract from one of the USER's portfolio watchlists. This only removes the watch entry: it never touches a holding, so a stock the portfolio also owns stays exactly as recorded. Confirm with the user before removing.
Address the instrument the way it appears in GetMyPortfolio's Watching section: the ticker for a stock, or the OCC symbol in optionContract for an option.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | No | The watched stock's ticker. Omit when removing an option by its OCC symbol. | |
| portfolio | Yes | The portfolio whose watchlist to remove from, by name. | |
| optionContract | No | Optional. The watched option's OCC symbol, e.g. O:AAPL260724C00110000. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true, but the description adds essential context that this action is narrowly scoped: 'it never touches a holding, so a stock the portfolio also owns stays exactly as recorded'. It also emphasizes user confirmation, providing significant behavioral guidance 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 two concise paragraphs: the first clearly states the action and its boundary, the second provides parameter addressing instructions. Every sentence serves a distinct purpose with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but for a removal action the description adequately covers what is removed, what is not affected, the confirmation requirement, and parameter addressing. It lacks information about return values or error cases (e.g., if the instrument is not watchlisted), but this does not hinder 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 descriptions already cover all three parameters (100% coverage). The description adds value by clarifying the mutual exclusivity of ticker vs optionContract and instructing the agent to use the format from GetMyPortfolio's Watching section, which reinforces parameter selection semantics.
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 'Remove a stock or an option contract from one of the USER's portfolio watchlists', using the specific verb 'Remove' and resource 'watch entry'. It distinguishes from sibling tools like WatchInstrument and portfolio lot tools by explicitly limiting scope to watchlists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it must be used to remove a watch entry, and it instructs the agent to confirm with the user before acting. It also gives addressing guidelines (ticker vs OCC symbol as they appear in GetMyPortfolio). It doesn't explicitly list when not to use, but there are no ambiguous alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
UpdatePortfolioLotUpdate Portfolio LotAInspect
Correct a lot the USER already recorded: a mistyped quantity, price, trade date or note. Only the fields you pass change; the rest are left alone.
The instrument itself cannot be edited: a lot on the wrong stock or the wrong contract is a different holding, so remove it with RemovePortfolioLot and add the right one. To record a sale, use ClosePortfolioLot rather than editing the quantity down, because editing it away loses the realized profit.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional. A replacement note, up to 256 characters. | |
| lotId | Yes | The lot id shown by GetMyPortfolio, e.g. a1b2c3d4. | |
| quantity | No | Optional. The corrected signed size. Negative is a short or written option. | |
| portfolio | Yes | The portfolio holding the lot, by name. | |
| costPerUnit | No | Optional. The corrected price per share, always positive. | |
| acquiredDate | No | Optional. The corrected trade date, as yyyy-MM-dd. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly states that only passed fields are updated ('the rest are left alone'), despite annotations being empty (no readOnlyHint, destructiveHint, or openWorldHint). It also warns that editing away quantity loses realized profit, adding critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and logically structured. It opens with the core purpose, then the 'instrument cannot be edited' rule, followed by the 'sale vs. correction' distinction. Every sentence serves a purpose without 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?
The description is complete for a mutation tool with no output schema. It explains the update mechanism, immutable fields, and related sibling tools. Given the context signals (no output schema, 100% schema coverage), no further return-value details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is at 100%, so all parameters are documented structurally. The description adds value by clarifying the semantics of not passing fields (they remain unchanged) and explaining the business rule for quantity signs (negative for shorts/written options). A 4 is appropriate, but not a 5, as no further nuance is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's purpose: to correct user-recorded lot details like quantity, price, trade date, or note. It explicitly distinguishes this from deleting lots (use RemovePortfolioLot) or recording sales (use ClosePortfolioLot), and states what cannot be changed (instrument).
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 guides when NOT to use the tool (i.e., for wrong instruments—use RemovePortfolioLot instead) and what to use for sales (ClosePortfolioLot). This directly addresses alternatives and typical misuses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
WatchInstrumentWatch InstrumentAInspect
Put a stock or an option contract on one of the USER's portfolio watchlists, without recording any position. A watched instrument shows up in GetMyPortfolio's 'Watching (not held)' section with a current mark and nothing else - no quantity, no cost, no value.
For a stock, pass its ticker. For an option, pass BOTH the underlying ticker and the OCC symbol in optionContract, exactly as AddPortfolioLot takes them; the contract is verified against the live options data before anything is stored.
Watching something the portfolio already holds is allowed - the page shows one row, and selling out later keeps the instrument on the list.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Stock ticker. For an option, the UNDERLYING ticker, e.g. AAPL. | |
| portfolio | Yes | The portfolio whose watchlist to add to, by name. | |
| optionContract | No | Optional. The OCC option symbol, e.g. O:AAPL260724C00110000. Provide it to watch an option contract; omit it for the stock itself. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false, implying a write operation, but the description adds key behavioral context: the instrument appears in GetMyPortfolio's 'Watching (not held)' section with no quantity/cost/value, option contracts are verified against live data before storage, and selling out later keeps the instrument on the list. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into three concise paragraphs: core function/effect, option-specific parameter guidance, and an edge case. Each sentence adds necessary value with no redundancy, and the main 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?
The description fully covers selection and invocation criteria: exact parameters, behavior, and edge cases. Although there is no output schema, the description adequately conveys what the agent needs to know to use the tool correctly, including the absence of position-related fields in the display.
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?
While the schema covers all parameters with descriptions, the description adds important semantic constraints: for options, both ticker and optionContract are required, and ticker means the underlying ticker. The reference to AddPortfolioLot's format and the verification step provide meaning not present in 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's function: adding a stock or option contract to a portfolio watchlist without recording a position. It distinguishes from AddPortfolioLot by emphasizing 'without recording any position' and from UnwatchInstrument implicitly, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: choose this when you do not want to record a position. It also gives precise instructions for options (both underlying ticker and OCC symbol, exactly as AddPortfolioLot takes them) and clarifies the edge case of watching an already-held instrument.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
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
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseBqualityBmaintenance95 free financial intelligence tools for AI agents covering Indian and global markets, options analytics, AI-driven stock debates, portfolio analysis, and more.95MIT
- AlicenseAqualityAmaintenanceReal-time SEC Form 4 insider trading data — transactions with post-trade returns, cluster-buy signals, Form 144 early warnings, and 13F institutional holdings. 27 tools + 6 research prompts; free tier available.361041MIT
- AlicenseBqualityBmaintenance38 AI data tools for Claude and any MCP-compatible agent — crypto, DeFi, equities, commodities, energy, real estate, government intelligence, security audits, and more.45MIT
- AlicenseAqualityDmaintenanceProvides actionable financial intelligence tools for AI agents including insider buying signals, earnings IV plays, market pulse, stock analysis, and options strategies via free public data sources.6MIT