Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 98 of 98 tools scored. Lowest: 4/5.

Server CoherenceA
Disambiguation4/5

The vast majority of tools have clearly distinct purposes with detailed descriptions, and overlapping areas (short selling, institutional holdings, fund data) are carefully differentiated. However, a few near-duplicates exist (GetFundHoldings vs GetFundProfile) and several document-search tools have similar names, which could cause misselection.

Naming Consistency4/5

Tools follow a consistent imperative verb + PascalCase object pattern (Get, Search, List, Compare, Read, Report, Suggest). Minor inconsistencies in acronym capitalization (GetAtmPrograms, GetCftcPositioning, GetIpoDetails) and a few unusual compound words (GetFundCloneBacktest, GetOnBalanceVolume) are deviations but don't obscure the pattern.

Tool Count2/5

98 tools is far beyond the 25+ threshold and overwhelming for any agent. While the domain is broad, the extreme count creates cognitive load and increases the chance of selecting the wrong tool; many tools could be consolidated.

Completeness5/5

The tool surface is exceptionally thorough for a financial data API, covering prices, fundamentals, filings, transcripts, insider activity, institutional ownership, short interest, options, economic data, and more, with search and meta-tools. No significant dead ends are apparent.

Available Tools

98 tools
CompareFinancialFactCompare Financials Across CompaniesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptYesConcept alias, e.g. 'revenue', 'net-income', 'eps-diluted'. Call with an unknown value to list supported aliases.
tickersYesComma-separated tickers, e.g. 'AAPL,MSFT,GOOGL' (max 25)
fiscalYearYesFiscal year, e.g. 2023
fiscalPeriodNoFiscal period: 'FY' (default) or 'Q1'..'Q4'FY
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral details: returns one row per ticker with the latest-restated value, lists tickers with no data separately, and emphasizes that fiscal periods follow each company's own calendar (with a concrete NVDA example). This gives the agent a clear mental model of output and data quirks.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the purpose, then output behavior, then the critical fiscal calendar caveat. Every sentence earns its place; no redundant or generic filler. Excellent structure.

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

Completeness4/5

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

Given the tool's complexity (multi-company comparison with fiscal period nuances) and no output schema, the description covers the essential return format, missing-data handling, and a significant data interpretation pitfall. It could mention sorting or additional output fields, but it is sufficient for an agent to use the tool correctly. Slightly more detail would push it to 5.

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

Parameters4/5

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

The schema already covers all 4 parameters with descriptions (100% coverage). The description adds extra meaning by explaining that 'concept' uses aliases, that fiscalYear/fiscalPeriod are relative to each company's own calendar, and that values are latest-restated. This goes beyond the schema's baseline, but does not dive into exact parameter syntax.

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

Purpose5/5

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

The description clearly states the tool's function: 'Compare one financial concept across several companies for the same fiscal period — peer comparison.' It uses a specific verb (compare), names the resource (financial concept across companies), and defines the scope (peer comparison across several companies). This distinguishes it from siblings like GetFinancialFact (single company/fact) and GetFinancialStatement.

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

Usage Guidelines4/5

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

The description explicitly establishes the intended use case: 'peer comparison' across companies for the same fiscal period. It also warns about fiscal calendar differences, which is valuable usage guidance. However, it does not explicitly name alternative tools or state when not to use it (e.g., for single-company analysis), 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.

GetAtmProgramsAt-the-Market Offering ProgramsA
Read-only
Inspect

Get a company's at-the-market (ATM) equity offering programs — the dilution mirror-image of the buyback picture GetBuybackPrograms returns: establishment date, total capacity the company may sell "up to", cumulative amount sold, remaining availability with per-figure as-of dates, expiry, a derived exhausted/expired status, and source filings. 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 (offering-note prose and disclosure tables); 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

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

Beyond the readOnlyHint, the description discloses sourcing (10-K/10-Q/8-K filings, no XBRL equivalent), the 13-month scanning window, the derived/exhausted status, and the caveat that nothing is estimated. This substantially informs the agent about data provenance and limitations.

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

Conciseness5/5

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

The description is information-dense without being bloated. The first sentence front-loads the core purpose and output fields; the second sentence adds essential caveats about data sources, time window, and empty-result interpretation. Every sentence earns its place.

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

Completeness5/5

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

Given only one parameter, no output schema, and minimal annotations, this description thoroughly covers expected returns, data provenance, limitations, and edge-case interpretation. It leaves little ambiguity about what the tool provides and how to interpret results.

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

Parameters3/5

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

The only parameter, 'ticker', is fully documented in the schema with example symbols, so the description adds little parameter-specific meaning. The baseline of 3 applies because schema coverage is 100% and the parameter is straightforward.

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

Purpose5/5

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

The description clearly states the tool's verb ('Get') and specific resource ('a company's at-the-market equity offering programs'), then enumerates the returned fields. It explicitly distinguishes itself from GetBuybackPrograms by calling ATM programs the 'dilution mirror-image' of buybacks.

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

Usage Guidelines5/5

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

It names GetBuybackPrograms as the analogous but different alternative, signaling when to choose this tool for ATM data versus buyback data. It also provides critical interpretation guidance: empty results mean no program was captured in the last 13 months of filings, not proof that no ATM program exists.

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)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoSmoothing window (default: 14)
tickerYesStock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 6 months ago)
maxResultsNoMaximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds valuable behavioral details: ATR is denominated in USD, the smoothing is warmed up using pre-startDate history, and values are independent of the range's left edge. It also explains the True Range formula, providing deep insight into expected behavior.

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

Conciseness5/5

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

The description is five sentences, each serving a distinct purpose: definition, formula, use case, units, and warm-up behavior. No filler or redundant restatement of the schema is present.

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

Completeness4/5

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

For an indicator tool with no output schema, the description covers calculation, units, and an important edge-case behavior (warm-up). It does not explicitly describe the return format, but the maxResults parameter implies a list of records, making the description adequate for invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description adds context about the formula and units but does not add new meaning to individual parameters beyond what the schema provides.

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

Purpose5/5

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

The description opens with 'Average True Range (ATR) for a stock,' clearly identifying the metric and target resource. It further distinguishes itself from sibling indicators like GetBollingerBands by explicitly calling it a 'volatility measure' and describing its construction.

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

Usage Guidelines4/5

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

The description provides concrete use cases: 'commonly used for position sizing and stop placement.' It does not explicitly mention alternatives, but the behavioral context is sufficient for an agent to decide when to invoke this tool.

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

GetBollingerBandsBollinger BandsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoMoving-average window (default: 20)
stdDevNoStandard deviations for the upper/lower bands (default: 2)
tickerYesStock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 6 months ago)
maxResultsNoMaximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description carries less burden. It adds valuable non-obvious behavior: the moving-average window is warmed up on prior price history, making results independent of the requested range's left edge. This is meaningful 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.

Conciseness5/5

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

The description is four sentences, each earning its place: definition, volatility behavior, column list, and warm-up note. It is front-loaded with the core purpose and free of fluff or repetition.

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

Completeness4/5

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 return values (bands, %B, bandwidth) and the warm-up behavior. It is sufficient for an agent to know what data it will receive, though it does not mention date ordering or error scenarios.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds context by explaining the formula (middle band = SMA, upper/lower = ± standard deviations), which helps interpret the 'period' and 'stdDev' parameters. It also clarifies output columns, indirectly explaining the derived values.

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

Purpose5/5

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

The description clearly explains what the tool returns: Bollinger Bands with middle, upper, and lower bands, plus %B and bandwidth columns. It specifies the resource ('for a stock') and differentiates from sibling indicator tools by detailing the calculation and output.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool by explaining the indicator's meaning, including the overbought/oversold cue when price touches a band. It does not explicitly exclude alternatives or name sibling tools, but the usage context is specific and sufficient.

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

GetBuybackProgramsShare Repurchase ProgramsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: figures come from XBRL facts plus verified narrative extractions, 'nothing is estimated,' and stale figures carry an explicit staleness label. This goes beyond the annotation but doesn't cover all possible behaviors (e.g., response format, rate limits), which is why it's a 4 rather than 5.

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

Conciseness4/5

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

The description is compact for the amount of information it conveys, but the first sentence is long with many embedded lists. Still, every clause adds value, and the structure is logical: main output, data provenance, and alternative tool. It earns a 4 due to being well-organized if slightly dense.

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

Completeness4/5

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. It does so by naming the three major output groups (programs, authorization figures, history) and noting key attributes like the staleness label. This is adequate for a complex tool, though it doesn't exhaustively list every field, so a top score isn't warranted.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'ticker', with the description 'Stock ticker symbol (e.g., AAPL, MSFT).' The tool description adds no additional parameter-specific semantics, so it meets the baseline for high schema coverage but doesn't exceed it.

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

Purpose5/5

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

The description clearly states what the tool does: 'Get a company's share-repurchase (buyback) picture' and enumerates the key components (programs, authorization figures, history). It uses a specific verb and resource, and explicitly distinguishes itself from GetAtmPrograms, making it stand out among siblings.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance by stating, 'For the dilution mirror-image — at-the-market (ATM) equity offering programs — use GetAtmPrograms.' This directly names an alternative for a closely related but distinct use case, which is exactly what the dimension asks for.

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

GetCallInsightsEarnings Call InsightsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of scored calls to return, newest first (default 2, max 8; values outside 1-8 are clamped)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
fiscalYearNoOptional fiscal year, in the company's own fiscal calendar, to fetch a specific period's insights (default: newest first)
fiscalQuarterNoOptional fiscal quarter, 1-4, to fetch a specific period's insights (default: newest first)
Behavior4/5

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

Annotations only provide readOnlyHint=true, but the description adds valuable behavioral context: results are newest-first, verifier-approved only, quarters may be missing with a gap note. It describes the shape of return data 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.

Conciseness5/5

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

The description is three sentences, front-loaded with the core output, and each sentence adds distinct value: what it returns, ordering/approval behavior, and intended use. No wasted words.

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

Completeness4/5

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 describes the return values (tone scores, themes, mention counts, per-theme tone) and the gap note. It covers the tool's key behavioral nuances; it could mention list length or response structure, but it is sufficiently complete for selection and invocation.

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

Parameters3/5

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. The description adds no parameter-specific semantics beyond what is in the schema, but the 'newest first' default behavior is implied. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets AI-scored insights for a company's recent earnings calls, listing concrete outputs (net tone score, hedging score, key themes with mention counts and per-theme tone). This distinguishes it from sibling tools like GetEarningsCallEvent or GetEarningsBrief by emphasizing the AI-scoring and verifier-approval aspect.

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

Usage Guidelines4/5

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

It explicitly says 'Use it to gauge how confident or guarded management sounded and what they talked about most,' giving a clear use case. It also sets expectations around ordering and missing quarters, though it does not explicitly mention alternatives or when not to use the tool.

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

GetCftcPositioningCFTC Futures Positioning (COT)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
marketCodeYesCFTC market code, common contract name, or standard futures symbol (e.g., 067651, WTI, ES, Gold futures)
maxResultsNoMaximum 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.
Behavior4/5

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

Annotations only state readOnlyHint=true, so the description adds meaningful behavioral detail: data source ('legacy futures-only COT report'), cadence ('positions as of each Tuesday, published Friday'), and type of values ('contract counts'). This goes beyond the annotation and helps the agent understand what the tool returns.

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

Conciseness5/5

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

Four concise sentences, each providing necessary information: purpose, output summary, data source/cadence, and a pointer to a prerequisite tool. No filler or redundant content.

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

Completeness4/5

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 reasonably covers the return type (commercial and non-commercial positions, contract counts, time series). It also covers data frequency and how to resolve market codes. A minor gap is the lack of explicit differentiation from GetLatestCftcData, but the 'over time' phrasing implies historical series.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds some context about the report type and cadence, but it does not meaningfully elaborate on parameters beyond what the schema already provides. The schema already includes examples and defaults.

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

Purpose5/5

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

The description clearly states the tool retrieves COT positioning data for a specific futures contract, using a specific verb and resource. It distinguishes itself from sibling tools like GetLatestCftcData by mentioning 'over time' and 'specific futures contract' and the legacy futures-only report.

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

Usage Guidelines4/5

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

The description gives clear context: it is for a specific contract's historical positioning data. It also provides a direct prerequisite: 'Use SearchCftcMarkets to find available market codes.' It does not explicitly name alternatives or exclusions, but the use case is unambiguous.

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

GetCompanyKpisCompany KPIsA
Read-only
Inspect

Get a company's own key performance indicators (KPIs) as extracted from its written Item-2.02 8-K earnings releases and 10-K/10-Q MD&A sections: the operational metrics and non-GAAP figures XBRL does not carry (subscribers, memberships, stores, units delivered, backlog, ARR, DAU/MAU, adjusted EBITDA, free cash flow, same-store sales %). Each metric is a time series across filings with the latest stated value, its period, the filed date and written source, the year-over-year change only when an exactly comparable prior-year period is on file, and the verbatim disclosure. Comparable means the same quarter or full year, the same YTD cadence (H1/6M/26W versus 9M/39W), or the same instant month/day. Pass metric to get one metric's full period-by-period history instead of the latest-value overview. Values are exactly as the company stated them, on the stated scale. Earnings-call transcripts are deliberately not a KPI figure source. When the release states a GAAP-to-non-GAAP reconciliation for a metric, a Reconciliation line shows the bridge: the GAAP starting line, each stated adjustment, and the non-GAAP result.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNoOptional 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.
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

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

Despite the readOnlyHint annotation covering the safety profile, the description goes far beyond it by detailing behavior: output structure (time series with latest value, period, filed date, source), the YoY change only when comparability exists, the verbatim disclosure, the exact-value/scale guarantee, and the optional Reconciliation line. It discloses both limitations and edge-case handling 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.

Conciseness4/5

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

The description is longer than typical, but every sentence carries essential information about source, output structure, comparability, and reconciliation. It is front-loaded with the core purpose, then methodically details behavior. The density is justified given the tool's complexity and lack of an output schema, though it could be slightly streamlined without losing content.

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

Completeness5/5

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

With no output schema, the description fully specifies the return semantics: latest value, period, filed date, written source, YoY change conditions, verbatim disclosure, and the Reconciliation line for GAAP-to-non-GAAP bridges. It also covers the metric-history mode and exclusions (e.g., earnings-call transcripts). This is complete for an agent to invoke 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.

Parameters4/5

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

While schema description coverage is 100% for both parameters, the description adds meaningful semantics: 'metric' is optional and can be expanded to full history, matches company labels case-insensitively, and may return candidates on ambiguous matches. It also clarifies the behavior of omitting 'metric' (overview of latest readings). This adds value beyond the schema's basic field descriptions.

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

Purpose5/5

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

The description names a specific verb ('Get'), a specific resource ('a company's own key performance indicators'), and provides detailed scope (extracted from Item-2.02 8-K earnings releases and 10-K/10-Q MD&A sections, listing examples of metric types). It also clearly distinguishes the tool's dual mode (overview vs. full history) and explicitly excludes earnings-call transcripts as a source, differentiating it from related tools like GetNonGaapBridge.

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

Usage Guidelines4/5

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

The description gives clear usage context: it explains when to pass 'metric' vs. omit it, and states an explicit exclusion ('Earnings-call transcripts are deliberately not a KPI figure source'). However, it does not name alternative tools or explicitly describe scenarios where another tool would be preferred, so it stops short of a full when-to-use/alternatives guide.

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

GetCongressionalTradesCongressional Trades by StockA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT, NVDA)
endDateNoEnd date in YYYY-MM-DD format (defaults to today)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
maxResultsNoMaximum number of trades to return (default: 50, max: 500, newest first)
transactionTypeNoFilter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description adds valuable context: newest-first ordering, default last-year window, amounts as disclosed ranges (not exact), and Asset identifying instrument type. It does not describe pagination or return format, but the added caveats go 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.

Conciseness5/5

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

Two sentences, front-loaded with the action, and every clause adds meaningful detail (ordering, defaults, range caveat, Asset field, alternative tool). No redundancy or fluff.

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

Completeness5/5

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

Despite no output schema, the description covers what the response reveals (members, purchase/sale, transaction/filing dates, amount ranges, Asset type). It also notes defaults and the sibling distinction. With readOnlyHint provided and 5 params fully documented, this is complete for agent use.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for every parameter (ticker, endDate, startDate, maxResults, transactionType). The description adds no new parameter-level semantics but does clarify default behavior (last year, newest first). Baseline 3 is appropriate.

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

Purpose5/5

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

The description starts with a specific verb+resource ('Get congressional securities transactions') and clearly scopes it to a specific ticker. It also distinguishes from GetMemberTrades, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (for a specific ticker) and points to an alternative ('Use GetMemberTrades for one member's transactions across all tickers'). This provides clear if/when guidance and differentiates from siblings.

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

GetConsensusHoldingsConsensus Holdings Across InstitutionsA
Read-only
Inspect

Get the consensus / combined portfolio of 2-25 institutions for their latest common report date. Returns stocks ranked by how many of the supplied funds hold them (descending), then by combined value. Filter by minFunds to only show stocks held by at least that many funds. Use this to answer 'what do these funds agree on?' or 'show me the top picks across these N investors combined.'

ParametersJSON Schema
NameRequiredDescriptionDefault
minFundsNoMinimum number of funds a stock must be held by to appear (default: 1 — note that 1 also includes stocks held by a single fund; set 2+ for true consensus)
maxResultsNoMaximum number of stocks to return (default: 30, clamped to 1-500)
reportDateNoQuarter-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)
institutionNamesYesComma- or semicolon-separated institution names or CIKs. Unique partial names and verified brand aliases resolve; ambiguous partials return candidate CIKs. 2-25 names.
Behavior4/5

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

Annotations only provide readOnlyHint, so the description carries the behavioral burden. It adds key details beyond the schema, such as the ranking order (by number of funds, then combined value) and the 'latest common report date' constraint. It does not disclose potential edge cases (e.g., what if no common report date exists), but it is still richer than typical.

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

Conciseness5/5

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

Three sentences, each adding essential information: purpose, ranking behavior, and use case/filter. No redundant filler, well front-loaded, and every sentence earns its place.

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

Completeness4/5

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

Despite no output schema, the description explains what is returned (stocks ranked) and provides clear context for usage. It could mention edge cases (e.g., no common quarter) or result limits, but the schema covers maxResults and the description is adequate for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description reinforces minFunds ('Filter by minFunds to only show stocks held by at least that many funds') and mentions the 2-25 range, but these are already fully documented in the schema. It does not add meaningful new parameter semantics beyond what schema descriptions already provide.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('consensus / combined portfolio of 2-25 institutions'), clearly distinguishing it from sibling tools like GetFundHoldings or GetFundOverlap. It also explains ranking logic (by number of funds, then combined value), leaving no ambiguity about the tool's function.

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

Usage Guidelines4/5

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

It explicitly states when to use the tool: 'Use this to answer "what do these funds agree on?" or "show me the top picks across these N investors combined."' However, it does not explicitly name alternatives or say when not to use it, so it stops 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.

GetCorrelatedStocksCorrelated StocksA
Read-only
Inspect

Get the stocks whose daily price returns are most (or least) correlated with one stock — Pearson correlation of daily log returns on comparable raw closes (dividends excluded), computed over the trading days both stocks priced, never on raw price levels. Scope picks the candidate universe: Industry (default) ranks the subject's direct industry peers; Sector widens to sibling industries; Market ranges across the ~1,500 largest listed names and surfaces cross-industry relationships the classification misses (suppliers, commodity proxies). direction=Negative flips the ranking to the strongest inverse movers (hedge candidates). Candidates need a $100M market cap and enough overlapping trading days with the subject; each row reports the observation count behind its coefficient. Use GetStockPrices for the underlying series and the screener for fundamentals-based peer sets.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoTrailing calendar window in days for the return series (default 180, clamped to 30-730).
scopeNoCandidate universe: Industry (default), Sector, or Market (~1,500 largest listed names).Industry
tickerYesExact listed ticker symbol (e.g., GOOG, GOOGL, BRK-A or BRK-B). Dot class-share notation such as BRK.A is also accepted.
directionNoPositive (default) for the strongest co-movers, Negative for the strongest inverse movers.Positive
maxResultsNoMaximum number of stocks to return (default 10, max 50).
Behavior5/5

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

With readOnlyHint=true annotation, the description goes far beyond by disclosing computation details (split/dividend-adjusted closes, log returns, never raw prices), universe constraints ($100M market cap, overlapping trading days), and output behavior (each row reports observation count). This is rich behavioral transparency that helps 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.

Conciseness5/5

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

The description is dense but every sentence contributes: purpose, methodology, scope semantics, direction, constraints, output details, and alternatives. It is front-loaded with the primary purpose and structured logically, making it easy to parse without wasted words.

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

Completeness5/5

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

Despite having no output schema, the description explains key output characteristics (observation count). It also covers universe selection, constraints, and alternatives comprehensively. For a tool with this complexity, the description is complete enough 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.

Parameters4/5

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 contextual meaning for 'scope' (explaining what each universe means) and 'direction' (explaining hedge candidates), which goes beyond schema descriptions. It doesn't add detail for days, ticker, or maxResults, but those are self-explanatory and well-covered by the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get the stocks whose daily price returns are most (or least) correlated with one stock' with specific methodology (Pearson correlation of daily log returns on adjusted closes). It also distinguishes from siblings by explicitly mentioning GetStockPrices and the screener as alternatives, making the unique value of this tool evident.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it explains when to use different scopes (Industry, Sector, Market) and the meaning of direction=Negative for hedge candidates. It also names alternatives: 'Use GetStockPrices for the underlying series and the screener for fundamentals-based peer sets.' 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.

GetCustomerConcentrationCustomer Concentration RiskA
Read-only
Inspect

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, period, and verbatim filing quote, with the source filing. Figures come from verified extractions of the filings' own narrative text and cover only filers who leave the disclosure untagged — issuers that tag it in structured XBRL (e.g. NVDA, AAPL) are skipped by design and answered with a pointer to GetFinancialFact's 'customer-concentration' concept. A miss is never a statement of no risk. Pass maxFilings > 1 to also see earlier filings' disclosures (the concentration trend).

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
maxFilingsNoHow many of the newest disclosing filings to return (default 1 — the latest; cap 10).
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses key behavioral traits: it uses only 'verified extractions of the filings' own narrative text', intentionally skips XBRL-tagged filers, and clarifies miss semantics ('A miss is never a statement of no risk'). It also explains the source and scope limitations. This far exceeds what annotations convey.

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

Conciseness5/5

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

The description is a single dense paragraph of four sentences, with no filler. It is front-loaded with the core purpose, then adds provenance, exclusions, a caveat, and parameter guidance. Every sentence earns its place and the structure is logical.

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

Completeness5/5

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

Despite having no output schema, the description enumerates the return fields (basis, customer count, percentage, period, quote, source filing) and explains coverage limitations, the alternative tool, and trend behavior. For a read-only tool with a simple two-parameter schema, this is a complete and self-sufficient definition.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning to maxFilings by explaining the trend use-case: 'Pass maxFilings > 1 to also see earlier filings' disclosures (the concentration trend).' It also provides concrete examples of the returned data, enriching understanding of the ticker parameter.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get a company's customer-concentration risk disclosure' and then details exactly what is returned (basis, customer count, percentage, period, verbatim quote, source filing). It clearly distinguishes from sibling GetFinancialFact by explaining the division of labor for XBRL-tagged vs untagged disclosures.

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

Usage Guidelines5/5

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

Explicitly states when to use the alternative tool: 'issuers that tag it in structured XBRL (e.g. NVDA, AAPL) are skipped by design and answered with a pointer to GetFinancialFact's 'customer-concentration' concept.' It also gives usage guidance for maxFilings > 1 to see concentration trends. The caveat 'A miss is never a statement of no risk' manages expectations about absence of results.

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

GetEarningsBriefEarnings BriefA
Read-only
Inspect

Get the AI 'Earnings Brief' for a company's recent earnings calls — a verifier-approved read of each quarter's call: a TL;DR, the bullish and bearish points, and verbatim pull-quotes from the call with their speaker and role. Newest quarter first. Only calls with an approved brief appear, so quarters can be missing from the sequence. This is the same brief the Equibles stock page shows; use it for a fast qualitative read of what management said and how it landed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of quarterly briefs to return, newest first (default 2, max 8; values outside 1-8 are clamped)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
fiscalYearNoOptional fiscal year, in the company's own fiscal calendar, to fetch a specific period's brief (default: newest first)
fiscalQuarterNoOptional fiscal quarter, 1-4, to fetch a specific period's brief (default: newest first)
Behavior5/5

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

Annotations only include readOnlyHint=true, so the description carries the burden of explaining behavior. It discloses that only approved briefs appear (quarters may be missing), newest quarter first, and that it is the same brief shown on the Equibles stock page. These are non-obvious traits beyond the annotation and add significant transparency.

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

Conciseness5/5

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

The description is concise and front-loaded with the core purpose, then adds crucial caveats and usage guidance in a few sentences. Every sentence earns its place with no fluff or repetition of schema details.

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

Completeness5/5

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

Given no output schema, the description thoroughly explains what the returned brief contains and how it is ordered, and it sets expectations about missing quarters. Combined with the complete parameter schema, the description is fully sufficient for an agent to understand the tool's behavior and output.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter already having a description. The tool description adds no additional per-parameter semantics, so the baseline of 3 is appropriate. It does provide subtle context about missing quarters that relates to fiscalYear/Quarter, but not enough to raise the score.

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

Purpose5/5

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

The description clearly states the tool gets the AI 'Earnings Brief' for a company's recent earnings calls, specifying its contents: TL;DR, bullish/bearish points, and verbatim pull-quotes with speaker and role. It distinguishes itself from siblings by describing a verifier-approved, curated brief rather than raw call data.

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

Usage Guidelines4/5

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

It explicitly says 'use it for a fast qualitative read of what management said and how it landed,' giving clear usage context. It also warns that quarters can be missing, which sets expectations. However, it does not explicitly mention alternatives like GetCallInsights 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.

GetEarningsCallEventEarnings Call EventA
Read-only
Inspect

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 GetInvestorEventSpeakers), 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 GetEarningsCallSpeakers, or get the AI read via GetEarningsBrief / GetCallInsights. Use this to ask "what do we have for AAPL FY2025 Q3?" rather than chasing each artefact separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
fiscalYearYesFiscal year the quarter belongs to, in the company's own fiscal calendar — this can run ahead of the calendar year (e.g., NVDA's May 2025 call is FY2026 Q1)
fiscalQuarterYesFiscal quarter, 1-4
Behavior5/5

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

Beyond the readOnlyHint annotation, the description richly details the return payload: event id, title, call date, status, artefact availability, linked document ids, and extracted guidance rows. It also discloses conditional behavior (when transcript available, when 8-K carries approved guidance) and downstream use of the id with GetInvestorEventSpeakers. 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.

Conciseness5/5

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

Four sentences, each adding essential value: purpose, return structure, related tool usage, and a concrete usage example. No fluff; front-loaded with the primary action and resource.

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

Completeness5/5

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

Given the absence of an output schema and the tool's moderate complexity, the description is comprehensive. It covers what the event contains, what fields are returned, when to use it, how the returned id connects to other tools, and alternatives for transcript reading. This gives an agent sufficient context to invoke the tool correctly and interpret the result.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all three parameters (ticker, fiscalYear, fiscalQuarter). The tool description does not add additional parameter semantics beyond what the schema already 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.

Purpose5/5

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

The description clearly states the tool's purpose: 'Get the earnings-call event for a company's fiscal quarter' and details what it returns. It distinguishes from siblings by defining the event as the single record grouping all call artefacts, and explicitly contrasts with alternatives like GetEarningsCallSpeakers and GetEarningsBrief.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'Use this to ask "what do we have for AAPL FY2025 Q3?" rather than chasing each artefact separately.' It also names alternatives for reading the transcript and related AI summaries, making the decision boundary clear.

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

GetEarningsCallSpeakersEarnings Call TranscriptA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped)
offsetNoNumber of leading speaker turns to skip, for paging through calls longer than the 200-turn cap (default 0)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
fiscalYearYesFiscal year the quarter belongs to, in the company's own fiscal calendar — this can run ahead of the calendar year (e.g., NVDA's May 2025 call is FY2026 Q1)
fiscalQuarterYesFiscal quarter, 1-4
Behavior4/5

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

Annotations already include readOnlyHint=true, and the description adds meaningful behavioral context: identities appear only when resolution is trusted, unverified voices are shown as role labels or neutral speaker numbers, and turns are returned in order. This goes beyond the annotation 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.

Conciseness5/5

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

The description is compact and front-loaded: the main purpose appears in the first sentence, followed by two sentences explaining output behavior and a usage hint. Every sentence contributes distinct information without redundancy.

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

Completeness4/5

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

The description explains what the tool returns (ordered speaker turns with attribution and fallback labeling) and provides a prerequisite check. It lacks explicit mention of pagination or the 200-turn cap, but the schema's limit/offset parameters cover that, and the description is otherwise complete for a read-only transcript tool.

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

Parameters3/5

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

Input schema covers 100% of parameters with detailed descriptions (e.g., fiscalYear explains the fiscal vs calendar year distinction). The tool description does not add extra semantic value to the parameters themselves, 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.

Purpose5/5

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 the speaker-labelled transcript of a company's earnings call for a fiscal quarter'. It clearly distinguishes itself from siblings like GetEarningsCallEvent and GetInvestorEventSpeakers by focusing on the full ordered transcript with speaker attribution.

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

Usage Guidelines5/5

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

The description explicitly says 'Use GetEarningsCallEvent first to check a transcript exists', providing a clear next-step prerequisite and directing to an alternative tool. This gives the agent actionable guidance on when to invoke this tool relative to its sibling.

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

GetEconomicCalendarEconomic Release CalendarA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to 30 days after the start date)
startDateNoStart date in YYYY-MM-DD format (defaults to today, UTC)
maxResultsNoMaximum number of release dates to return (default: 100, max: 500, chronological)
minImportanceNoMinimum importance tier to include: low, medium, or high (defaults to low = everything)
Behavior5/5

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

Despite the readOnlyHint annotation, the description adds substantial behavioral context: the calendar covers both upcoming and recent releases, includes importance tiers with specific examples, defaults to the next 30 days, and explicitly states FOMC exclusions. This goes well beyond the annotation and gives a full picture of the tool's scope and limitations.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and concise in its expansions. Each sentence provides distinct value: definition, exclusions, defaults, and parameter usage guidance. There is no redundancy or filler.

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

Completeness5/5

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

With no output schema, the description adequately explains the return contents (release dates, FRED series, importance tiers) and usage context. It covers defaults, exclusions, and cross-references to sibling tools, making it sufficient 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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the meaning of the minImportance parameter ('High = tier-1 market movers') and clarifies the default date range ('Defaults to the next 30 days'), offering semantic context beyond the schema's raw defaults.

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

Purpose5/5

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

The description clearly states a specific verb and resource: 'Get the economic release calendar' with scheduled and recent US macro data publication dates. It further distinguishes itself by detailing the included FRED series and importance tiers, and explicitly excludes FOMC meetings, which sets it apart from siblings like GetMarketCalendar or GetEconomicIndicator.

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

Usage Guidelines5/5

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

Provides explicit when-to-use and when-not-to-use guidance: mentions FOMC meetings are NOT included and directs to the Federal Reserve's calendar, and tells users to use GetEconomicIndicator to fetch series data after release. Also advises using minImportance=high for market movers, giving clear context for parameter use.

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

GetEconomicIndicatorEconomic Indicator HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
seriesIdYesFRED series ID or standard indicator name (e.g., FEDFUNDS, fed funds rate, core CPI, jobless claims)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year before the end date)
maxResultsNoMaximum 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.
Behavior4/5

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

With readOnlyHint=true already indicating a safe read operation, the description adds meaningful context by disclosing the scope limitation (curated 40-series set vs. full FRED) and providing concrete series examples. No contradictions with annotations; it supplements them with operational boundaries.

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

Conciseness5/5

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

The description is two sentences with front-loaded core functionality, followed by useful scope and alternative guidance. Every sentence adds value, with no redundant wording or unnecessary detail.

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

Completeness4/5

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

For a tool with 4 parameters and no output schema, the description adequately covers the purpose, scope, examples, and a pointer to a search tool. The behavior of date defaults and maxResults is already in the schema, so the description focuses on what the agent needs beyond that. It lacks explicit return format details, but that is not critical for a time series tool.

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

Parameters3/5

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

The input schema already covers 100% of parameters with detailed descriptions, including examples and defaults. The description repeats some series ID examples but does not add significant new semantic meaning beyond what the schema provides, meriting the baseline score.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get time series data for a FRED economic indicator.' It names specific examples (FEDFUNDS, CPIAUCSL, UNRATE) and explicitly distinguishes itself from the full FRED catalog, referencing SearchEconomicIndicators as a sibling for finding series. This provides a specific verb+resource+scope and differentiates from related tools.

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

Usage Guidelines5/5

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

The description provides explicit when/when-not guidance: it covers 'the curated ~40-series set Equibles tracks, not the full FRED catalog,' and directs users to 'use SearchEconomicIndicators to find available series.' This clearly states when to use this tool versus an alternative, and the 'historical observations' phrasing implies this is for history rather than latest values.

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

GetExecutiveChangesExecutive and Board ChangesA
Read-only
Inspect

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'.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoOptional action filter: Appointed, Resigned, Terminated, or Retired.
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
endDateNoOptional newest filed date, YYYY-MM-DD.
startDateNoOptional oldest filed date, YYYY-MM-DD.
maxResultsNoMaximum changes to return (default 25, cap 100).
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses extraction method ('from the filings' narrative text'), verification ('verified before publication'), ordering ('newest filing first'), and a major limitation: coverage is still back-filling and the output names the oldest covered filing date. It also explains the meaning of empty results, which is essential 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.

Conciseness5/5

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

The description is efficiently structured: it leads with the core purpose, then details the output fields, then addresses coverage/interpretation. Every sentence adds distinct value, with no repetition of schema details or filler. It is moderately long but information-dense.

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

Completeness5/5

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

For a read-only retrieval tool with no output schema, the description compensates by enumerating exactly what each change record contains, the source form type, and the important coverage caveat. This gives an agent sufficient understanding of return values and edge cases. No critical gaps are apparent for the tool's complexity.

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

Parameters3/5

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

The input schema already provides full descriptions for all five parameters (100% coverage), so the description need not repeat them. It does add useful context about the output fields (person, role text, normalized role, action, effective date) that helps interpret parameter effects, but it does not directly augment parameter meanings 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.

Purpose5/5

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 a company's executive and director changes...' and enumerates exact categories (CEO/CFO/officer/board appointments, resignations, terminations, retirements) tied to 8-K Item 5.02 filings. This clearly distinguishes it from sibling tools like GetExecutiveCompensation or GetInsiderTransactions.

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

Usage Guidelines4/5

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

The description makes the tool's context obvious by specifying the source filings and ordering, and it gives critical usage guidance about back-filled coverage and how to interpret empty answers. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to decide when to invoke it.

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

GetExecutiveCompensationExecutive CompensationA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
maxYearsNoOptional cap on how many of the newest fiscal years to return (default 0 = all imported years).
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses critical behavioral traits: figures are exactly as disclosed, Total is the filer's own figure never recomputed, coverage is back-filling, and the output explicitly states the newest proxy on file to make staleness visible. This gives the agent strong awareness of data reliability and limitations.

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

Conciseness4/5

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

The description is information-dense but not overly long; every clause adds value. It is front-loaded with the core purpose and then appends important caveats. A minor issue is that it is a single long sentence, which could be split for readability, but this does not hurt clarity.

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

Completeness5/5

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

Given no output schema, the description sufficiently explains the return structure (per executive per fiscal year, newest first), the data source, coverage limitations, and how to detect stale data. It covers all essential aspects for an agent to decide to use the tool and interpret results.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters (ticker and maxYears), so the schema carries the full burden. The description does not add additional parameter semantics beyond what the schema already provides, such as the meaning of maxYears defaulting to 0 meaning all imported years.

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

Purpose5/5

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

The description states a specific verb ('Get') and resource ('named-executive compensation as disclosed in DEF 14A proxy statements' Summary Compensation Table'), detailing the exact data fields (salary, bonus, stock awards, etc.) and output ordering. It clearly distinguishes itself from sibling tools like GetExecutiveChanges.

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

Usage Guidelines4/5

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

The description provides explicit context about when the tool is applicable: 'Coverage is limited to US DEF 14A filers' and explicitly excludes foreign private issuers. However, it does not name alternative tools for cases where this tool does not apply, so it stops short of full 'when/alternatives' guidance.

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

GetExemptOfferingsExempt Offerings (Form D)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
toDateNoOptional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-12-31)
fromDateNoOptional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2024-01-01)
maxResultsNoMaximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped)
Behavior4/5

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

The readOnlyHint annotation already indicates safety, and the description adds significant behavioral nuance by explaining that ongoing offerings are re-noticed through D/A amendments that restate the same offering, and that rows may double-count capital unless deduplicated. It also lists the fields returned, which is useful beyond the minimal annotation.

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

Conciseness4/5

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

The description is front-loaded with the primary purpose and then provides necessary caveats and usage guidance. The first sentence is somewhat long due to enumerating output fields, but it is efficient and each sentence serves a purpose.

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

Completeness5/5

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

With no output schema, the description sufficiently explains return values by listing the key fields (issuer, first-sale date, offering amount, amounts sold/remaining, min investment, investors, exemptions, amendment status, accession number). It also covers the critical deduplication behavior and gives a use case, making it complete for this tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well documented in the schema. The description does not add parameter-specific guidance beyond the schema, but it does mention that results include the first-sale date and offering amount, which are not parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool gets recent exempt securities offerings (private placements) for a company from SEC Form D notices. It names the specific resource (Form D/Regulation D) and scope (per company), distinguishing it from public-filing and other capital-raising tools among siblings.

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

Usage Guidelines4/5

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

The description provides clear context: use this to track how a company is raising private capital alongside its public filings. It also gives a strong caution about D/A amendments restating the same offering, but does not explicitly mention alternative tools or when-not-to-use cases.

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

GetFailsToDeliverFails-to-Deliver DataA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, GME, AMC)
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 3 months ago)
maxResultsNoMaximum number of records to return — keeps the most recent N settlement dates in the range, displayed oldest to newest (default: 90, max: 500)
Behavior5/5

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

The annotation only declares readOnlyHint=true. The description adds substantial behavioral detail: Quantity is an outstanding balance (never sum across dates), Price is the previous trading day's close, Value is a computed product, absent dates indicate no fails within the covered window, earlier dates are partially covered, and there is a publication lag. This fully discloses the data's interpretive nuances.

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

Conciseness5/5

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

The description is a single, well-structured paragraph of six sentences. Every sentence earns its place: purpose, key caveats, date coverage, publication lag, and interpretation. It is detailed but not bloated, and the most critical operational warning (never sum Quantity) is placed early.

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

Completeness5/5

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

Given the tool's complexity and the absence of an output schema, the description is exceptionally complete. It explains the exact meaning of the return fields, the data source (SEC twice-monthly files), coverage limitations, and how to interpret missing dates. An agent can confidently use this tool and correctly interpret its results.

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

Parameters4/5

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

The input schema already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds meaning beyond the schema by explaining date coverage semantics (absent dates, partial coverage, lag), which informs how startDate and endDate should be interpreted. It also clarifies the meaning of the output fields (Quantity, Price, Value), though these are not parameters.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get fails-to-deliver (FTD) data for a stock from the SEC's twice-monthly FTD files.' It uses a specific verb and resource, and the subject matter (FTD) is distinct from sibling tools that cover short interest, short volume, or other market metrics.

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

Usage Guidelines4/5

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

The description establishes clear context for when the tool is appropriate (when FTD data is needed) and explains important data caveats. However, it does not explicitly mention alternatives or when-not-to-use conditions, such as contrasting with short interest tools, which would have earned a 5.

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

GetFdaCatalystsFDA Advisory Committee CalendarA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to 90 days after the start)
startDateNoStart date in YYYY-MM-DD format (defaults to today)
maxResultsNoMaximum number of meetings to return (default: 60, soonest first)
Behavior5/5

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

Even though readOnlyHint=true is already annotated, the description adds substantial behavioral context: the data source (FDA.gov calendar), the inclusion of a link per meeting, the default 90-day window, the coverage start date, and the fact that entries are FDA's own listings without ticker linkage. These details go beyond the annotation and give the agent a realistic model of what the tool returns and its limitations.

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

Conciseness5/5

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 core purpose and source, the second explains default behavior and how to extend the range, and the third provides crucial caveats. It is front-loaded and avoids fluff, making it easy for an agent to parse quickly.

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

Completeness4/5

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. It mentions each meeting includes a link to its FDA page, which is useful, but it doesn't enumerate other likely fields (e.g., meeting date, committee name, agenda). For a simple calendar tool, this is a minor gap, and the description otherwise covers source, time range, and data freshness/coverage, making it reasonably complete.

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

Parameters3/5

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

The input schema already provides full descriptions for all three parameters (startDate, endDate, maxResults) with defaults and format, so schema coverage is 100%. The description's mention of a 90-day default and 'pass a date range' somewhat echoes the schema but doesn't add significant new semantic meaning. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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

Purpose5/5

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

The description clearly identifies the tool's purpose with a specific verb ('Get') and resource ('scheduled FDA advisory-committee (AdComm) meetings'). It distinguishes this from sibling calendar tools by focusing on the FDA-specific domain and mentioning the source (FDA.gov advisory-committee calendar), making it unmistakable among the many other financial calendar tools in the sibling list.

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

Usage Guidelines4/5

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

The description provides concrete usage context: it defaults to the next 90 days, explains how to look further ahead with a date range, and explicitly warns that it is forward-looking with coverage starting in late 2025. It also notes that entries are not linked to stock tickers, which is a key exclusion for catalyst-focused users. While it doesn't name alternative tools, the 'not a historical archive' statement serves as a clear when-not-to-use guideline.

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

GetFinancialFactFinancial Concept LookupA
Read-only
Inspect

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. For a full statement use GetFinancialStatement; to compare peers use CompareFinancialFact.

ParametersJSON Schema
NameRequiredDescriptionDefault
formNoOptional SEC form filter, e.g. '10-K' or '10-Q'
tickerYesStock ticker symbol (e.g., AAPL, MSFT)
toDateNoOptional latest period-end date, YYYY-MM-DD
conceptYesConcept alias, e.g. 'revenue', 'net-income', 'eps-diluted', 'total-assets', 'operating-cash-flow'. Call with an unknown value to list supported aliases.
fromDateNoOptional earliest period-end date, YYYY-MM-DD
maxResultsNoMaximum periods to return, newest first (default 40, max 200)
fiscalPeriodNoOptional 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).
asOriginallyReportedNoWhen true, show the earliest canonical periodic filing instead of the latest restatement within that source priority. Default false.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses rich behavioral details: returns a time series with one row per fiscal period, uses the latest restated value unless asOriginallyReported is set, reports actual period start/end, follows the company's fiscal calendar, and warns about premature alias termination. 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.

Conciseness5/5

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

Four sentences, front-loaded with the core purpose. Each sentence earns its place: return format, restatement policy, calendar semantics, warning behavior, and sibling alternatives. No filler or redundancy.

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

Completeness4/5

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

With 8 parameters and no output schema, the description explains the return structure (time series, one row per fiscal period, period start/end) and key behavioral aspects including warnings. It doesn't explicitly cover empty-result or error scenarios, but for a read-only financial lookup it covers the core context well.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining default restatement behavior ('latest restated value unless asOriginallyReported is set') and fiscal-period semantics ('fiscal years/quarters follow the company's own fiscal calendar'), enriching understanding of the asOriginallyReported and fiscalPeriod parameters beyond schema descriptions.

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

Purpose5/5

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

The first sentence states the exact purpose: 'Get a single financial concept ... over time for a company', with concrete examples like revenue and net income. It also explicitly distinguishes from sibling tools by naming GetFinancialStatement and CompareFinancialFact as alternatives.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use vs alternatives: 'For a full statement use GetFinancialStatement; to compare peers use CompareFinancialFact.' It also adds contextual guidance about fiscal calendars and XBRL tag change warnings, helping the agent decide 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.

GetFinancialStatementFinancial StatementsA
Read-only
Inspect

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. Each row carries its actual period start/end so discrete-quarter and fiscal-year-to-date flow facts remain distinguishable. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoFiscal year, e.g. 2023. Defaults to the latest reported year.
periodNoFiscal 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.
tickerYesStock ticker symbol (e.g., AAPL, MSFT, GME)
statementNoStatement: '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
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses the data source (SEC Company Facts XBRL), the 'latest-restated value' behavior, and the period-boundary semantics that keep discrete-quarter vs. YTD facts distinguishable. It also clearly states exclusions, adding significant context for safe use.

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

Conciseness5/5

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

The description is three sentences, tightly packed with purpose, return behavior, and alternatives, with no filler or redundant information. Every sentence earns its place.

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

Completeness5/5

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

Despite lacking an output schema, the description covers data source, line items returned, restatement behavior, period semantics, exclusions, and alternative tools. This is sufficient for an agent to select and invoke the tool correctly without additional context.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the meaning of year/period in the context of fiscal reporting and the Q4 caveat, plus the 'latest-restated value' nuance, which enriches understanding beyond the schema field descriptions.

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

Purpose5/5

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

The description clearly specifies the tool gets a company's income statement, balance sheet, or cash-flow statement for a given fiscal year and period, with a direct verb 'Get' and explicit resource. It also distinguishes from siblings by naming GetRevenueBreakdown and GetFinancialFact/CompareFinancialFact for alternative use cases.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance by stating what is not included (dimensional facts) and recommending alternatives. It also gives a concrete period caveat: 'Most filers report no discrete Q4 income/cash-flow facts… use FY for annual figures,' which directly informs parameter choice.

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

GetFundCloneBacktest13F Portfolio Clone BacktestA
Read-only
Inspect

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 (so the simulation uses only information available at the time), and values each exact listed security on raw closing prices. Returns price return (dividends excluded), annualized price return (CAGR), and max drawdown for both the cloned portfolio and the benchmark, plus the price-return alpha between them. A captured split can move the usable start date forward so raw bars from opposite sides are never compared. Use this to answer 'how would cloning fund X have performed against the market'.

ParametersJSON Schema
NameRequiredDescriptionDefault
toDateNoOptional window end in YYYY-MM-DD format (defaults to today when only fromDate is given)
fromDateNoOptional window start in YYYY-MM-DD format for an anchored historical backtest (e.g. 2015-01-01); overrides windowYears
benchmarkNoBenchmark ticker to compare against (default: SPY)SPY
institutionYesInstitution name or SEC CIK (e.g., 'Berkshire Hathaway', '1067983', or zero-padded '0001067983'). Unique partials and verified aliases resolve; ambiguous partials return candidate CIKs.
windowYearsNoTrailing window length in years anchored at today (default: 3, clamped to 1-20; ignored when fromDate/toDate are supplied)
Behavior5/5

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

Although readOnlyHint=true already signals a safe read operation, the description adds valuable behavioral context: it reconstructs quarterly snapshots, rebalances on the SEC filing lag to avoid look-ahead bias, and explains output metrics. This goes well beyond the annotation and gives the agent realistic expectations.

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

Conciseness5/5

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

The description is three well-organized sentences: purpose, methodology, and output. It is front-loaded with the core function and contains no redundant or filler text. Every sentence adds value.

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

Completeness5/5

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

Without an output schema, the description compensates by enumerating exact return values (total return, CAGR, max drawdown, alpha) and thoroughly explaining the simulation logic. Given the tool's moderate complexity and rich sibling context, this description is fully sufficient for an agent to understand and invoke the tool.

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

Parameters4/5

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 contextual meaning by explicitly explaining the relationship between windowYears and fromDate/toDate ('over a trailing window... or an explicit range'), and clarifies that the simulation uses only information available at filing time. This enhances the parameter semantics without repeating schema details.

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

Purpose5/5

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

The description uses a specific verb ('Backtest') and a clear resource ('cloning an institutional filer's reported 13F portfolio'). It distinguishes this tool from sibling tools like GetFundHoldings or GetInstitutionPortfolio by focusing on performance simulation rather than static holdings or summaries.

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

Usage Guidelines4/5

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 "how would cloning fund X have performed against the market"') and clearly explains the two window modes (trailing vs explicit date range). It does not name alternative tools or explicit when-not-to-use scenarios, but the context is clear enough for an agent to choose correctly.

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

GetFundHoldingsFund Portfolio HoldingsA
Read-only
Inspect

Get the largest stored portfolio holdings of a registered investment company (mutual fund or ETF) from its most recent SEC Form NPORT-P monthly report. Accepts a fund ticker, profile id, SEC series id, or verified share-class alias from SearchFunds. Returns the fund's series, reporting period, net assets, full reported holding count when available, stored holding count, and largest stored holdings. For multi-series trusts only positions whose CUSIPs match tracked stocks are stored, so the stored rows can be a small subset of the reported portfolio; net assets and the reported count still describe the full filing. Use SearchFunds to discover funds, GetFundProfile for the same view with registrant and total assets, and GetFundsHoldingStock for the inverse question. Form NPORT-P covers registered management investment companies and ETFs organized as unit investment trusts; money market funds and small business investment companies do not file it.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesFund or ETF ticker, profile id, SEC series id, or verified share-class alias from SearchFunds (e.g., SPY, 'vanguard-500-index-fund-s000002839', S000002839, or VOO)
maxResultsNoMaximum number of holdings to return, largest first (default: 20, max: 500)
Behavior5/5

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

Annotations mark readOnlyHint=true, and the description adds substantive context beyond that: the data source (NPORT-P), the 'no data' behavior for operating companies, ticker resolution limitations, and the option to use fund profile ids. 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.

Conciseness5/5

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

Structured with a clear lead sentence, then input flexibility, then output contents, then comparisons, then caveats. No filler; each sentence contributes a distinct, useful fact.

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

Completeness5/5

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

Given no output schema, the description fully enumerates return contents: series, reporting period, net assets, and holdings with issuer name, CUSIP, position size, value, share of net assets, and asset category. It also covers error/edge cases and provides sibling alternatives, making the tool self-contained.

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

Parameters5/5

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

Schema covers both parameters with descriptions, but the description further clarifies ticker semantics: 'Accepts the fund's own ticker or a fund profile id from SearchFunds, so it also reaches the many fund series that have no ticker of their own' and warns that share-class tickers don't resolve. This adds meaning beyond the schema's parameter descriptions.

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

Purpose5/5

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

Description opens with 'Get the portfolio holdings of a registered investment company (mutual fund or ETF) from its most recent SEC Form NPORT-P monthly report' – a specific verb, resource, and source. It explicitly differentiates from siblings (GetFundProfile, GetFundsHoldingStock) by naming them, and clarifies scope: registered funds only.

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

Usage Guidelines5/5

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

Provides explicit routing: 'Use SearchFunds to discover funds, GetFundProfile for the same view with the fund's registrant and total assets, and GetFundsHoldingStock for the inverse question.' Also gives exclusion criteria: share-class tickers of multi-class mutual funds (VOO, VFIAX) do not resolve, and operating companies return no data.

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

GetFundOperationsFund Operations (Form N-CEN)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesFund or ETF ticker, profile id, SEC series id, or verified share-class alias (e.g., MXF, IVV, S000004344, VOO)
maxResultsNoMaximum number of annual reports to return (default: 10, max: 500)
Behavior5/5

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

Annotations declare readOnlyHint=true, but the description goes well beyond that by detailing exactly what the response contains (classification, file number, reporting period, first/last filing, service providers, filed-name history) and disclosing limitations (ticker resolution constraints, no data for operating companies). This gives the agent a comprehensive understanding of the tool's behavior 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.

Conciseness4/5

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

The description is somewhat long but every sentence adds value. It is front-loaded with the primary purpose, then moves through limitations, response contents, and usage context. The structure is logical and not wasteful, though it could be tightened slightly without losing meaning.

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

Completeness5/5

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

Despite having no output schema, the description thoroughly explains what data will be returned (classification, file number, reporting period, first/last filing, service providers across categories, filed-name history). It also covers edge cases (unlisted tickers, operating companies) and provides alternatives. For a simple 2-parameter tool with strong annotations, this description is complete enough for an agent to invoke it correctly.

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

Parameters3/5

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 significant parameter-level detail beyond the schema—it neither elaborates on the ticker format nor on maxResults behavior. However, it does provide context for what the parameters relate to (e.g., ticker resolution constraints), so it meets the baseline without exceeding it.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Get operational data for a registered investment company from its SEC Form N-CEN annual reports.' It clearly distinguishes the tool from siblings by explaining its focus on N-CEN filings and explicitly noting that unlisted mutual-fund tickers do not resolve, directing users to SearchFunds/GetFundProfile instead.

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

Usage Guidelines5/5

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

Explicit when-to-use and when-not-to-use guidance is provided: it resolves only exchange-listed tickers (ETFs, CEFs, UITs), while unlisted mutual-fund share-class tickers (e.g., VFIAX) will not resolve, with a direct alternative ('find that fund via SearchFunds/GetFundProfile instead'). It also states that only registered funds file N-CEN and operating companies return no data, plus a clear use case: 'Use this to see who runs and services a fund.'

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

GetFundOverlapPortfolio Overlap Between InstitutionsA
Read-only
Inspect

Get the 13F portfolio overlap between two institutions for their latest common report date — Jaccard similarity, dollar-weighted overlap ($-weighted = shared dollars, taking the smaller of the two funds' values per stock, as a share of union dollars), per-fund position counts and totals, and a side-by-side table of stocks with per-fund shares + percent of portfolio. Covers 13F institutional managers only — find names with SearchInstitutions; for mutual-fund/ETF (NPORT) portfolios use GetFundHoldings. Use this to answer 'do these two funds own the same stocks?' or 'where do their portfolios diverge?'

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNoMaximum number of stocks to return (default: 30, clamped to 1-500)
reportDateNoQuarter-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)
institutionName1YesFirst institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)
institutionName2YesSecond institution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)
Behavior4/5

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

With readOnlyHint=true, the safety profile is already disclosed. The description adds valuable behavioral context about output contents (Jaccard similarity, dollar-weighted overlap, per-fund counts, side-by-side table) and the calculation method for $-weighted overlap. It does not disclose error handling or rate limits, but the annotation covers the read-only nature.

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

Conciseness4/5

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

The description is a single paragraph but densely packed with essential details: purpose, metrics, definitions, coverage, alternatives, and use cases. It is front-loaded with the main action and adds necessary nuance. The parenthetical explanation of $-weighted overlap is verbose but clarifies a key metric, so it earns its place.

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

Completeness4/5

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

Given the tool's complexity and lack of an output schema, the description does a good job enumerating the return contents and the formula for one metric. It also explains report-date behavior implicitly. It stops short of describing the exact response structure or table format, but the level of detail is sufficient for an agent to invoke it correctly.

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

Parameters3/5

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

The input schema describes all four parameters in detail (clamps, date snapping, partial name resolution), covering 100% of parameters. The description adds little beyond that: it mentions 'two institutions' and 'latest common report date,' both reflected in the schema. Since schema coverage is high, the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get the 13F portfolio overlap between two institutions for their latest common report date.' It clearly differentiates from siblings by stating 'Covers 13F institutional managers only... for mutual-fund/ETF (NPORT) portfolios use GetFundHoldings.' The use-case phrasing ('do these two funds own the same stocks?') reinforces the purpose.

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

Usage Guidelines5/5

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

The description explicitly names an alternative tool (GetFundHoldings) for NPORT portfolios and instructs to use SearchInstitutions for finding institution names. It also provides the typical use case ('Use this to answer...'), which clearly signals 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.

GetFundProfileFund Profile and Top HoldingsA
Read-only
Inspect

Get a registered fund's profile and largest stored holdings from its most recent SEC Form NPORT-P report. Accepts a profile id, stored series ticker, SEC series id, or verified share-class alias from SearchFunds. Returns the fund's registrant and series, reporting period, net and total assets, full reported holding count when available, stored holding count, then its largest stored holdings — issuer name, CUSIP, position size, U.S.-dollar value, share of net assets and asset category. Prefer this after SearchFunds; GetFundHoldings is the equivalent view, and GetFundsHoldingStock answers the inverse question. For large multi-series trusts only positions in tracked stocks are stored; the reported count and asset totals still describe the fund's full filing.

ParametersJSON Schema
NameRequiredDescriptionDefault
fundYesFund 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').
maxResultsNoMaximum number of holdings to return, largest first (default: 20, max: 500)
Behavior4/5

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

The annotations already declare readOnlyHint=true, and the description adds meaningful caveats: for large multi-series trusts only tracked-stock positions are stored, while net-asset totals are real. This is valuable behavioral context beyond the safe-read annotation, though it does not discuss error cases or data freshness beyond 'most recent.'

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

Conciseness5/5

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

The description is front-loaded with purpose, then returns, then usage guidance and a data caveat. Every sentence earns its place, with no filler or unnecessary elaboration.

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

Completeness5/5

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

Even without an output schema, the description fully enumerates the returned fields (registrant/series, period, assets, holdings details) and explains the tracked-stock limitation. Combined with the rich parameter schema and read-only annotation, the agent has enough context to invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters are well documented in the schema. The description repeats the ticker/profile-id options but does not add meaningfully new parameter details beyond usage context, 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.

Purpose5/5

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 a registered fund's profile and largest holdings from its most recent SEC Form NPORT-P report.' It clearly differentiates from siblings by naming GetFundHoldings as the equivalent view and GetFundsHoldingStock as the inverse tool, so the agent knows exactly what this tool does.

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

Usage Guidelines5/5

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

It explicitly advises using this after SearchFunds because the profile id reaches fund series without tickers, and distinguishes it from GetFundHoldings and GetFundsHoldingStock. This gives the agent concrete when-to-use guidance and alternatives.

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

GetFundsHoldingStockFunds Holding a StockA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT)
maxResultsNoMaximum number of fund positions to return, largest first (default: 20, clamped to 1-500)
registrantOrSeriesNoOptional registrant or series name filter (case-insensitive contains, e.g. 'Vanguard') — reaches positions beyond the largest 500
Behavior5/5

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

The description goes well beyond the readOnlyHint annotation by detailing the data source, CUSIP matching on recent filings, exclusion of stale reports (18 months), return fields, ordering, and the as-of date caveat. This provides rich behavioral context and potential pitfalls.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by matching logic, return fields, a critical date caveat, and a use case. Every sentence adds value, and the structure is logical without redundancy.

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

Completeness5/5

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

Despite no output schema, the description lists the return fields and addresses key complexities (stale filings, differing report dates, as-of values). It is complete for a tool of this complexity, covering both what it returns and important limitations.

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

Parameters3/5

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

Schema coverage is 100%, with clear descriptions for all three parameters (ticker, maxResults, registrantOrSeries). The description does not add parameter-specific details 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.

Purpose5/5

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

The description clearly states the tool retrieves funds/ETFs holding a given stock from SEC NPORT-P reports, with a specific verb and resource. It distinguishes from sibling tools like GetFundHoldings (which likely returns holdings of a fund) and GetTopHolders by focusing on fund holdings of a specific stock.

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

Usage Guidelines4/5

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

The description provides a clear use case ('see which funds and ETFs own a stock and how concentrated each position is') and explains the matching logic and data limitations. It does not explicitly name alternatives or when not to use, but the context is sufficient for an agent to decide.

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

GetGoingConcernStatusGoing-Concern Doubt StatusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

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

Beyond the readOnlyHint annotation, the description extensively discloses behavior: extraction from newest 10-K/10-Q narrative text, verification before publication, that absence of language means no doubt, and that coverage starts at first examination so absence from history doesn't rule out prior episodes. This is far beyond annotation-only information.

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

Conciseness5/5

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

The description is two sentences but every clause earns its place: it front-loads the core purpose, then efficiently conveys return content and important caveats. No wasted words.

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

Completeness5/5

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

Despite no output schema, the description explains what the tool returns (status, verbatim disclosure, filing source, history of doubt events) and covers processing and coverage limitations. It is complete for a single-parameter tool.

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

Parameters3/5

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

The schema fully documents the only parameter, 'ticker', with a clear example. The description adds no additional parameter detail, but the baseline of 3 applies because schema coverage is 100%.

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

Purpose5/5

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

The description clearly states 'Get a company's going-concern doubt status' with a specific verb and resource, and distinguishes itself from siblings by detailing the return contents (verbatim disclosure, filing, history). It is unambiguous and specific.

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

Usage Guidelines4/5

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

The opening phrase 'Get a company's going-concern doubt status' clearly implies when to use it, and the coverage caveat provides helpful context about historical limitations. No explicit alternatives or when-not-to-use guidance are given, but none are needed given the unique subject.

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

GetGovernmentContractsFederal Contracts by CompanyA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
agencyNoOptional case-insensitive substring filter on the awarding agency (e.g., 'Defense')
sortByNoSort order: 'amount' (largest total value first, default) or 'date' (most recent award first)amount
tickerYesStock ticker symbol (e.g., LMT, RTX, BA)
endDateNoEnd date in YYYY-MM-DD format (defaults to today)
startDateNoStart date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago)
maxResultsNoMaximum number of awards to return (default: 50)
Behavior5/5

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

Despite readOnlyHint annotation, the description adds substantial behavioral context: source (USAspending.gov), exact value definition ('obligated dollars plus unexercised ceiling — not revenue received'), coverage thresholds ($1M+ prime awards), and listed output fields. This goes well 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.

Conciseness5/5

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

Three tightly written sentences: what it does, what it returns, and when to use an alternative. Every clause adds value, with no fluff or repetition.

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

Completeness5/5

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

No output schema exists, yet the description enumerates the returned fields, defines the value metric, states source and coverage exclusions, and points to a sibling tool. This fully equips an agent to decide and interpret results.

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

Parameters3/5

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

All six parameters are fully documented in the input schema (100% coverage), so the description need not repeat them. The description clarifies the meaning of output fields and coverage, but doesn't add parameter-specific detail beyond the schema's already rich descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('federal government contract awards ... won by a specific public company'), and differentiates from the sibling GetTopGovernmentContractors by noting that tool ranks companies market-wide. The title reinforces the purpose.

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

Usage Guidelines5/5

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

Explicitly states it is 'useful for gauging a company's reliance on federal spending' and directs users to 'GetTopGovernmentContractors to rank companies market-wide.' The coverage caveat also tells users when results understate totals, which provides important context.

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

GetGuidanceCompany GuidanceA
Read-only
Inspect

Get a company's earnings guidance (forward-looking outlook) as extracted from its Item-2.02 8-K earnings releases and earnings-call transcripts (some issuers, e.g. Microsoft, guide only verbally on the call): each guided metric with its range, unit, GAAP/non-GAAP basis, period, and as-announced provenance (source form with filing link, date) — newest release first. Guidance for a fiscal period that has already closed is marked "(ended)" so a finished year is never read as the live outlook. Revenue and diluted-EPS guidance also carries the reported actual and an above/within/below verdict once the guided period's XBRL facts have landed (a Q4 actual may be derived as full year minus nine-month YTD when no discrete Q4 is reported); non-GAAP guidance is never compared against GAAP actuals, and there is no actual until the facts exist. Coverage is still backfilling — an empty result or a gap between releases means the source documents have not been processed yet, not that the company gave no guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

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

Annotations only provide readOnlyHint=true, leaving the description to carry the behavioral burden. The description goes beyond a simple read-only claim by disclosing: the source materials used, the ordering (newest release first), the handling of closed periods with the '(ended)' marker, the delayed nature of actuals comparison (only after XBRL facts land, with Q4 derivation caveats), the policy of never comparing non-GAAP guidance against GAAP actuals, and the backfilling caveat that empty results are not equivalent to no guidance. These are significant behavioral traits that prevent misinterpretation, exceeding the baseline set by 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.

Conciseness4/5

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

The description is a single, dense paragraph with valuable caveats. It is not as lean as a two-sentence example, but each clause earns its place by preventing misinterpretation: the '(ended)' marker, the actual-vs-guidance comparison logic, and the backfilling caveat. It could be restructured with a couple of sentences for easier scanning, but no sentence is wasted. The front-loaded purpose sentence is strong.

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

Completeness5/5

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

Given a single parameter, high schema coverage, readOnlyHint annotation, and no output schema, the description's job is to explain the return semantics. It does that thoroughly: what metrics come back, the provenance, ordering, status labeling, actual comparison mechanics, and caveats about coverage gaps. This is complete enough for an agent to decide when to call the tool and to interpret empty or partial results correctly.

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

Parameters3/5

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

The input schema already covers 100% of the single parameter 'ticker' with a clear description, so the schema does the heavy lifting. The tool description adds no additional parameter-level detail beyond the schema, such as formatting or case sensitivity. Since the coverage is 100%, a baseline of 3 is appropriate; the description's explanation of output interpretation is not directly about parameter semantics.

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

Purpose5/5

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

The description begins with a specific verb phrase 'Get a company's earnings guidance' and immediately distinguishes the resource: forward-looking outlook extracted from Item-2.02 8-K releases and earnings-call transcripts. It goes beyond any sibling tool by mentioning guided metrics, ranges, GAAP/non-GAAP basis, period, and provenance. The mention that some issuers guide only verbally on the call clarifies scope, differentiating it from tools that might only read formal filings.

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

Usage Guidelines4/5

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

The description provides clear context on how to interpret results: it explains that covered fiscal periods are marked '(ended)', that coverage is backfilling, and that empty results mean documents are not processed yet rather than the company gave no guidance. This effectively tells the agent when the tool's output is meaningful and when it is not. It does not explicitly name alternative tools, but given the sibling list includes tools like GetEarningsBrief and GetNonGaapBridge, a direct exclusion would be stronger; however, the detailed interpretation guidance is strong enough for a 4.

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

GetInsiderOwnershipInsider Ownership SummaryA
Read-only
Inspect

Get a summary of insider ownership for a stock, ranked by shares held. Each row is as-of that insider's most recent SEC Form 3/4/5 filing (former insiders may linger with stale dates or zero shares), and share counts are restated onto today's split basis, so they can differ from the raw figures in older filings. Returns at most maxResults insiders (default 30). Use this to understand the insider ownership structure of a company; use GetInsiderTransactions for the underlying trades.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoNumber of ranked insiders to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
maxResultsNoMaximum number of insiders to return (default: 30, max: 500; values outside 1-500 are clamped)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses critical behavioral traits: rows are as-of the most recent SEC Form 3/4/5 filing, former insiders may show stale dates or zero shares, and share counts are restated onto today's split basis, differing from raw filings. Also notes the maxResults cap.

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

Conciseness5/5

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

The description is three sentences: the core purpose, key caveats about data freshness and split adjustment, and usage guidance. No wasted words; each sentence adds important information and the main action is front-loaded.

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

Completeness5/5

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

Even without an output schema, the description explains the important nuances (as-of dates, stale rows, split basis, maxResults cap) and provides usage guidance. This is sufficient 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.

Parameters3/5

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

The input schema already provides 100% coverage with detailed descriptions for ticker, offset, and maxResults. The description repeats the default 30 and mentions the ranking context, but does not add parameter-specific meaning beyond the schema, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets a summary of insider ownership for a stock, ranked by shares held, and explicitly differentiates from the sibling GetInsiderTransactions by naming it for underlying trades. This provides a specific verb+resource+scope.

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

Usage Guidelines5/5

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

It gives explicit guidance on when to use this tool ('Use this to understand the insider ownership structure') and points to GetInsiderTransactions as an alternative for underlying trades. It also warns about stale rows and split adjustments, aiding appropriate selection.

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

GetInsiderSentimentScoresInsider Sentiment ScoresA
Read-only
Inspect

Get the stocks with the highest composite insider sentiment score — a peer-relative 0-100 rank over a trailing 90-day window of how aggressively insiders are accumulating, built from three direction-aware factors (each a percentile across the scored universe): net distinct insiders buying (buyers minus sellers), net shares bought as a percent of shares outstanding, and net insider buy value in dollars. Computed from open-market Form 3/4/5 purchases and sales only, under the price-validity, plausible-share-count, and non-derivative gates. Set clusterBuysOnly to surface only cluster buys (three or more distinct insiders buying in the window). Pass minMarketCap / minSharePrice / minDollarVolume to keep only names clearing your liquidity bar (scores stay peer-relative to the full universe, and the # column always shows the universe rank — filters never renumber). Set bottom to walk the ranking from the other end (heaviest net insider distribution first). Pass ticker for one stock's score, factor breakdown, and universe rank. Trades a filing flags as Rule 10b5-1 pre-planned are excluded so the score reflects organic buying; trades on filings predating the 2023 checkbox have an unknown flag and remain included. Use GetInsiderTransactions for one stock's underlying filings.

ParametersJSON Schema
NameRequiredDescriptionDefault
bottomNoReturn the LOWEST-scored stocks instead — the heaviest peer-relative net insider selling — lowest score first.
tickerNoOptional 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.
maxResultsNoMaximum number of stocks to return (default: 25, highest score first; clamped to 1-200).
minMarketCapNoMinimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set.
minSharePriceNoMinimum share price in US dollars (e.g. 5 = $5; default 0 = no floor). Stocks with an unknown price are excluded when set.
clusterBuysOnlyNoReturn only stocks flagged as cluster buys (three or more distinct insiders buying in the window).
minDollarVolumeNoMinimum 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.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses computation source (open-market Form 3/4/5), exclusion of Rule 10b5-1 trades, the handling of unknown flags, and that filters never renumber universe rank. This gives an agent robust behavioral expectations.

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

Conciseness5/5

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

The description is dense but every sentence adds a distinct piece of information: score definition, data scope, parameter semantics, exclusions, and alternative tool. It is front-loaded with the core purpose and contains no filler.

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

Completeness5/5

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

Given the tool's complexity, seven optional parameters, and no output schema, the description is remarkably complete. It covers purpose, construction, parameter behavior, edge cases, and alternatives, leaving no major gaps for invocation decisions.

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

Parameters5/5

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

Schema covers 100% of parameters, but the description adds crucial semantic context: filters preserve universe-relative ranks, 'ticker' ignores other filters, and 'bottom' reverses ranking direction. These details go well beyond schema descriptions.

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

Purpose5/5

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

The opening verb phrase 'Get the stocks with the highest composite insider sentiment score' clearly states the tool's purpose with a specific resource and scope. It further differentiates from siblings by explicitly pointing to GetInsiderTransactions for underlying filings.

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

Usage Guidelines5/5

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

Provides detailed guidance on when to use each filter (clusterBuysOnly, liquidity params, bottom, ticker) and explicitly names an alternative: 'Use GetInsiderTransactions for one stock's underlying filings.' This makes usage context and exclusions clear.

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

GetInsiderTransactionsInsider Transactions (Form 4)A
Read-only
Inspect

Get recent insider trading transactions for a stock from SEC Form 3/4/5 filings, newest first. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
toDateNoOnly include transactions on or before this date, format yyyy-MM-dd (optional)
fromDateNoOnly include transactions on or after this date, format yyyy-MM-dd (optional)
maxResultsNoMaximum number of transactions to return (default: 50, max: 500; values outside 1-500 are clamped)
insiderNameNoOnly include transactions by insiders whose SEC-filed name contains every word of this value, case-insensitive (e.g. 'Huang') (optional)
transactionTypeNoOnly include one transaction type: Buy, Sell, Award, Conversion, Exercise, TaxPayment, Expiration, Gift, Inheritance, Discretionary or Other (optional)
Behavior5/5

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

Annotations only declare readOnlyHint=true. The description goes far beyond that by explaining the Type column semantics, 10b5-1 column meaning, split-adjusted Owned After values, and per-row data treatment. This provides detailed behavioral context without contradicting 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.

Conciseness5/5

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

Front-loaded with a crisp purpose statement followed by six focused sentences, each adding unique context. No filler or repetition of schema details; every sentence earns its place given the complexity of insider transaction data.

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

Completeness5/5

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

Despite no output schema, the description explains key result fields (Type, 10b5-1, Shares/Price/Value, Owned After) and the split-adjustment nuance. It covers filters, ordering, and interpretation, making the tool's behavior sufficiently understandable 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.

Parameters4/5

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 interpretive value for the transactionType parameter by clarifying that Buy/Sell are open-market trades while other types are compensation/derivative mechanics, which is not in the schema. It also mentions date-range and insider-name filters, reinforcing their purpose.

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

Purpose5/5

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

The description clearly states the tool retrieves recent insider trading transactions from SEC Form 3/4/5 filings, newest first. This specific verb+resource combination distinguishes it from sibling tools like GetInsiderOwnership or GetInsiderSentimentScores, which focus on different insider data aspects.

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

Usage Guidelines4/5

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

It explicitly states 'Use this to understand insider buying/selling activity' and explains that non-Buy/Sell types are 'not conviction trades', guiding interpretation. It does not name specific alternative tools, but the context is clear enough for an agent to infer when this tool is appropriate relative to siblings.

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

GetInstitutionPortfolioInstitution Portfolio (13F)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoNumber 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)
maxResultsNoMaximum number of holdings to return (default: 20, clamped to 1-500)
reportDateNoQuarter-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)
institutionNameYesInstitution name or SEC CIK. A unique partial name resolves; an ambiguous partial returns candidate CIKs instead of selecting silently.
Behavior4/5

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

Annotations provide readOnlyHint=true and the description uses 'View', so no contradiction. The description adds valuable behavioral context: shows largest tracked holdings by market value, includes share counts, market values, percent of portfolio, total value, and position count. It does not mention pagination or error handling, but these are covered 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.

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action and then providing usage guidance. Every word earns its place; no redundancy or extra fluff.

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

Completeness4/5

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 result set: holdings, values, percentages, total value, and position count. It also covers ambiguous-name handling referral. It does not describe offset paging, but the schema covers that. Overall, it is complete for the tool's complexity.

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

Parameters3/5

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 repeats some schema details (default 20, max 500) but adds no new semantic layer beyond what the parameter descriptions already provide. It does not clarify parameter relationships or usage nuances.

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

Purpose5/5

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

The description states a specific verb ('View') and resource ('stock portfolio of a specific institutional investor from their SEC 13F-HR filing'). It clearly differentiates from sibling tools by targeting individual institutions' 13F filings, not market-wide or fund-specific views.

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

Usage Guidelines5/5

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

It explicitly says to use SearchInstitutions first when the name is ambiguous, and gives the intended use case: 'understand what stocks a particular fund manager or institution is investing in.' This provides clear when-to-use and an alternative.

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

GetInstitutionQuarterlyActivityInstitution Quarterly ActivityA
Read-only
Inspect

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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketNoFilter to a single bucket: initiated, increased, reduced, exited (omit for all four)
maxResultsNoMaximum number of stocks to return per bucket (default: 20, clamped to 1-500)
reportDateNoQuarter-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)
institutionNameYesInstitution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)
Behavior4/5

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

With readOnlyHint=true, the annotation already communicates the safe-read nature. The description adds valuable behavioral details: the result is bucketed markdown sections, sorted by absolute Δ market value, and clarifies that the Δ value includes price movement rather than just trading. These go beyond the annotation and schema, giving the agent a clear picture of what to expect.

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

Conciseness5/5

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

The description is four sentences long, starting with the core function and then layering essential details about output format, sorting behavior, and an example use case. Every sentence contributes information without repetition or filler, making it efficient and well-structured.

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

Completeness4/5

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 explaining the return format (markdown sections per bucket, sorted by absolute Δ value). It also covers the key semantic nuance of Δ Value. It does not specify the exact fields returned for each stock, but the level of detail is adequate for a typical query and matches the tool's complexity.

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

Parameters3/5

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

The schema provides 100% parameter coverage, describing each of the four parameters in detail. The description adds only a minor interpretation of `bucket` (filtering to a single bucket) and doesn't introduce new parameter meaning. It neither undermines nor significantly enhances the schema, 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.

Purpose5/5

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

The description clearly states the tool retrieves an institution's quarterly position-change activity, specifying the four bucket types (Initiated/Increased/Reduced/Exited) and comparing against the prior quarter. It distinguishes itself from sibling tools like GetInstitutionPortfolio (current holdings) or GetMarketWide13FActivity (aggregate market) by focusing on per-institution changes over time.

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

Usage Guidelines4/5

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

Provides explicit usage context: 'Use this to answer "what did this fund do this quarter?"' and instructs how to filter with the `bucket` parameter. It does not explicitly contrast with alternatives or state when not to use it, but the purpose is clear enough to infer appropriate versus inappropriate scenarios.

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

GetInstitutionSectorAllocationInstitution Sector AllocationA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupByNoGrouping level: 'industry' (default, fine-grained) or 'sector' (broad rollup)industry
reportDateNoQuarter-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)
institutionNameYesInstitution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)
Behavior5/5

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

With only readOnlyHint=true in annotations, the description goes well beyond by disclosing output format (markdown table sorted by % of portfolio descending), handling of unclassified stocks (collapsed into a single row), default report date behavior, and name resolution behavior (unique partial resolves, ambiguous partials return candidates). 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.

Conciseness5/5

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

The description is a single well-organized paragraph that front-loads the core action, then covers output format, defaults, and name resolution. Every sentence provides necessary information without fluff or repetition, making it appropriately sized and easy to parse.

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

Completeness5/5

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

The tool has moderate complexity (grouping, defaults, output formatting, name resolution) and only a readOnlyHint annotation. The description covers all key behaviors: default to latest, grouping options, markdown table sorting, unclassified row handling, and partial name resolution. No output schema exists, but the description adequately explains the return value shape.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema: it explains that reportDate snaps to the nearest report on or before the given date, and that institutionName can be a CIK or unique partial. These details are valuable and not present in the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and clearly identifies the resource ('institution's 13F portfolio allocation') and the grouping dimensions ('fine-grained industry' or 'sector'). It distinguishes from siblings like GetInstitutionPortfolio by focusing on allocation grouped by industry/sector rather than raw holdings.

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

Usage Guidelines4/5

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

The description explicitly instructs users to use SearchInstitutions for an exact CIK, and clarifies that ambiguous partial names return candidates rather than silently resolving. It does not explicitly contrast with sibling tools like GetInstitutionPortfolio, but the use case (allocation by sector/industry) is clearly implied. A 'when-not-to-use' statement would make it a 5.

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

GetInstitutionSummaryInstitution Portfolio SummaryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
reportDateNoQuarter-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)
institutionNameYesInstitution name or CIK (a unique partial resolves; ambiguous partials return candidate CIKs)
Behavior4/5

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

Annotations only specify readOnlyHint=true; the description adds valuable behavioral context by clarifying the value is 'long U.S. positions only, not total firm AUM' and explaining the candidate-returning behavior for ambiguous names. It does not disclose return structure or error handling, but for a simple read-only summary this is adequate.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the output fields, and includes only necessary caveats and disambiguation guidance. Every clause earns its place; no filler or redundancy.

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

Completeness5/5

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

With no output schema, the description enumerates the key return values (value, count, concentration, turnover, dates) and provides important scoping caveats. It also references a related tool for CIK resolution, making the workflow 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.

Parameters3/5

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 reinforces the CIK-resolution behavior already in the schema ('Resolve exact CIKs with SearchInstitutions') but adds no new parameter-level semantics beyond the schema text. The reportDate snapping behavior is only in the schema, not the description, but is already covered.

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

Purpose5/5

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

The description clearly states the tool gets a 'portfolio summary header' for an institutional 13F filer, with a specific list of fields (13F reported value, position count, concentration, turnover, report dates). It explicitly differentiates from total firm AUM and other institutional tools by noting 'long U.S. positions only, not total firm AUM', distinguishing it from siblings like GetInstitutionPortfolio.

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

Usage Guidelines4/5

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

The description points to SearchInstitutions as the proper tool for resolving exact CIKs and warns that ambiguous partial names return candidates rather than silently selecting a filer. It does not explicitly state when to use this tool over other institution tools, but the purpose and field list give clear context for summary needs.

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)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
crdYesThe adviser's Organization CRD number (e.g., 231)
Behavior4/5

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

The readOnlyHint is already declared in annotations, and the description adds value by detailing the returned data (names, SEC file number, AUM, employee count, fee structure). It avoids contradicting annotations and covers return semantics in the absence of an output schema.

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

Conciseness5/5

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

The description is two sentences; the first packs meaningful detail about the output without redundancy, and the second is a useful pointer to the sibling search tool. No wasted words.

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

Completeness5/5

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

For a single-parameter read-only lookup with no output schema, the description fully explains what the tool returns and how to obtain the required input. The absence of pagination/auth notes is acceptable given the tool's simplicity and the readOnlyHint.

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

Parameters3/5

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

Schema coverage is 100% and the description repeats the parameter name ('Organization CRD number') rather than adding new semantics beyond the schema's own description. The added example in the schema is sufficient, so the description provides no extra parametric insight.

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

Purpose5/5

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

The description uses a specific verb ('Get') with a clear resource ('full Form ADV profile') and a specific identifier ('Organization CRD number'). It also enumerates the key fields returned, distinguishing it from sibling tools like SearchInvestmentAdvisers and GetFundProfile.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool by specifying the required input (CRD number) and directs the user to the alternative SearchInvestmentAdvisers for finding CRD numbers. This provides clear usage context and a named alternative.

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

GetInvestorEventSpeakersInvestor Event TranscriptA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of speaker turns to return (default 50, max 200; values outside 1-200 are clamped)
offsetNoNumber of leading speaker turns to skip, for paging through events longer than the 200-turn cap (default 0)
eventIdYesThe investor event id (from ListInvestorEvents)
Behavior5/5

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

The description goes beyond the readOnlyHint annotation by explaining speaker attribution behavior, including how trusted resolutions are shown with names/roles and unverified voices fall back to role labels or numbers. This adds meaningful context not covered by 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.

Conciseness5/5

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

The description is compact and front-loaded; the first clause states the core purpose, and each subsequent sentence adds essential context about speaker resolution and usage. No filler or redundancy.

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

Completeness4/5

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

For a read-only retrieval tool with a well-covered schema and no output schema, the description adequately describes the return content (speaker turns with attribution) and prerequisites (event ID). It does not detail pagination mechanics, but the schema handles limit/offset, so the context is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, so the parameter semantics are already fully documented. The description adds no new parameter information beyond what the schema provides, even citing the ListInvestorEvents source that is already in the schema, 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.

Purpose5/5

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

The description clearly states the tool returns a speaker-labelled transcript for a specific investor event, using a specific verb and resource. It distinguishes from siblings like GetEarningsCallSpeakers by explicitly noting its use for non-earnings events and referencing ListInvestorEvents for the ID.

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

Usage Guidelines4/5

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

It explicitly says to use this for conferences and other non-earnings events, implying when not to use it (for earnings events with fiscal quarters). However, it does not name the alternative sibling tool, so it stops short of the highest bar for alternative identification.

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

GetInvestorRelationsEventsUpcoming Investor EventsA
Read-only
Inspect

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 / GetInvestorEventSpeakers.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., NVDA, AAPL)
eventTypeNoOptional 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.
maxResultsNoMaximum number of events to return (default: 20, max: 500)
Behavior5/5

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

Annotations only set readOnlyHint=true; the description adds behavioral context beyond that, including that data is scraped from the company IR website, coverage is partial, results are sorted soonest-first, and unclassified events only appear without an eventType 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.

Conciseness5/5

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

Two focused sentences: the first states the tool's purpose, result ordering, and optional filter; the second covers the coverage caveat and alternatives. Every sentence earns its place with no fluff.

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

Completeness5/5

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

The tool has no output schema and only a readOnlyHint annotation, so the description carries the burden. It covers data source, future-only behavior, sorting, filtering, coverage limitations, empty-result interpretation, and sibling alternatives, making it sufficient for correct invocation.

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

Parameters3/5

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

All three parameters are fully described in the input schema (100% coverage), so the baseline is 3. The description reinforces eventType semantics and adds a few examples, but it does not materially extend the schema's parameter-level documentation.

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

Purpose5/5

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

The description opens with 'Get upcoming investor-relations events for a stock' — a specific verb and resource — and enumerates the event types covered. It also distinguishes itself from siblings by explicitly directing past-event/transcript needs to ListInvestorEvents/GetInvestorEventSpeakers.

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

Usage Guidelines5/5

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

Explicitly states the temporal scope ('Only future events are returned'), names alternatives for past events and transcripts, and explains when an empty answer means a coverage gap rather than an empty calendar. This gives 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.

GetInvestorRelationsNewsInvestor Relations NewsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoOptional earliest publish date, strict yyyy-MM-dd (UTC). Only items published on or after this date are returned.
tickerYesCompany ticker symbol (e.g., NVDA)
maxResultsNoMaximum number of news items to return (default: 20, max: 500)
Behavior5/5

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

Annotations already mark the tool as readOnly, and the description adds significant behavioral detail: results are reverse-chronological, sourced via IR-page scraping, coverage is partial, and the response distinguishes a coverage gap from actual silence. 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.

Conciseness4/5

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

The description is front-loaded and logically organized, with each sentence contributing meaning. It is slightly redundant ('recent' in the first sentence and 'most recent' in the second, and 'IR website' repeated twice), but remains compact and readable.

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

Completeness5/5

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

With no output schema, the description carries the full burden of explaining return values, and it does so thoroughly: it lists the fields, ordering, source, and coverage limitations. This sufficiently equips an agent to interpret results and handle edge cases.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for ticker, since, and maxResults. The description adds no parameter-specific semantics beyond the schema, so the baseline score of 3 applies.

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

Purpose5/5

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

The description names the exact verb and resource: 'Get recent investor-relations press releases for a stock, scraped from the company's IR website.' It also distinguishes the tool from third-party news and specifies the returned items (headline, publish date, summary, link), making its purpose unmistakable relative to siblings.

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

Usage Guidelines4/5

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

The description gives clear usage context: 'Use this to see a company's latest official announcements straight from its IR page, distinct from third-party news.' This implies when to use it but does not explicitly name alternative tools or state 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.

GetIpoDetailsIPO Registration DetailsA
Read-only
Inspect

Get one IPO registration's full picture by the filer's SEC CIK (as listed by GetIpoFeed): lifecycle status, 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. Everything extracted is verified against the filing text; a field the prospectus does not state is reported as not stated, never estimated.

ParametersJSON Schema
NameRequiredDescriptionDefault
cikYesThe filer's SEC CIK, with or without leading zeros (e.g. 1995137).
Behavior4/5

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

Annotations declare readOnlyHint=true, consistent with description. Description adds that all information is verified against filing text and missing fields are reported as 'not stated', never estimated, which builds trust.

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

Conciseness4/5

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

Single paragraph lists many details efficiently, but is somewhat verbose. Could be slightly more concise without losing clarity.

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

Completeness5/5

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

No output schema, but description enumerates all fields returned: lifecycle status, ticker, exchange, price range, quotes, business description, use of proceeds, underwriters, risk factors, financials, filing chain. Covers everything clearly.

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

Parameters3/5

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

Only one parameter (cik) with schema description already covering leading zeros. Description adds minimal extra value ('as listed by GetIpoFeed'). Baseline 3 for 100% schema coverage.

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

Purpose5/5

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

Title and description clearly state it retrieves detailed IPO registration information by CIK. Distinguishes from sibling tool GetIpoFeed which lists IPOs, by specifying 'one IPO registration's full picture'.

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

Usage Guidelines4/5

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

States the CIK should be 'as listed by GetIpoFeed', providing sequential guidance. Does not explicitly mention when not to use, but context is clear.

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

GetIpoFeedIPO FeedA
Read-only
Inspect

Get the US IPO pipeline: companies with an S-1 or F-1 registration statement on file at the SEC, newest filing activity first — each with its lifecycle status (Filed, Priced, Listed, Withdrawn), latest filing, proposed ticker and exchange, the estimated offer price range and shares offered (extracted from the prospectus and verified against its text), and the latest full fiscal year's revenue, growth, gross margin and net income from the filer's own XBRL-tagged statements (in the filer's reporting currency). Rows without annual data say whether the import is pending or completed with no qualifying facts. SPAC shells dominate the raw S-1 flow, so filerType splits them out by SEC's own SIC 6770 blank-check classification. Pre-IPO companies are not in the listed-stock universe, so this feed is the only surface that covers them; use GetIpoDetails with a row's CIK for the full picture including business summary, use of proceeds, underwriters, risk factors and the filing chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum registrations to return, newest filing activity first (default 25).
statusNoOptional lifecycle filter: Filed, Priced, Listed, or Withdrawn. Omit for all.
filerTypeNoOptional company-type filter: Operating (non-SPAC) or Spac (SIC 6770 blank checks). Omit for all.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses substantial behavior: data source (SEC filings), extraction and verification methods ('extracted from the prospectus and verified against its text'), handling of missing annual data ('say whether the import is pending or completed'), and the SPAC classification basis (SIC 6770). This gives a rich, transparent picture with no contradictions to annotations.

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

Conciseness4/5

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

The description is a single dense paragraph but well-organized, with the core purpose front-loaded and subsequent clauses logically adding details. Every sentence contributes value, though it is longer than the typical description; this is justified by the tool's complexity.

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

Completeness5/5

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

Despite having no output schema, the description thoroughly covers the return contents, edge cases, and relationship to sibling tools. It even explains what rows without annual data contain, making the tool's behavior predictable and complete for a feed.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaningful context by explaining the purpose of filerType (splits out SPACs using SEC's SIC 6770 classification) and reinforcing that status filters by lifecycle stage. This goes beyond the schema's bare parameter descriptions, though not extensively.

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

Purpose5/5

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

The description uses a specific verb ('Get') and clearly identifies the resource ('US IPO pipeline'), enumerating exact contents (S-1/F-1 registrants, lifecycle status, financials). It distinguishes itself from the sibling GetIpoDetails by stating the feed is the only surface covering pre-IPO companies and pointing to GetIpoDetails for full detail.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('Pre-IPO companies... this feed is the only surface that covers them') and directs the user to GetIpoDetails for the full picture. It also provides rationale for using the filerType filter due to SPAC dominance, giving clear context on 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 DayA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoTrading day in YYYY-MM-DD format (defaults to the latest available day)
offsetNoNumber of ranked results to skip before returning rows — pass the previous call's last row number to page past the maxResults cap (default: 0)
sortByNoSort key: shortVolume (default) or shortPercent — with shortPercent set a minTotalVolume floor, otherwise illiquid names dominateshortVolume
maxResultsNoMaximum number of results to return (default: 50, max: 500)
minShortVolumeNoMinimum short volume filter (default: 0)
minTotalVolumeNoMinimum total FINRA-reported volume filter, in shares (default: 0 = no floor)
Behavior5/5

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

Annotations only declare readOnlyHint=true. The description adds significant behavioral context: data source (FINRA daily short sale volume files), default date behavior, sorting order, explanation of Short % as off-exchange/TRF volume share with a 40-50% normal baseline, and a clear NOT short interest caveat. This goes well 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.

Conciseness4/5

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

Purpose is front-loaded in the first sentence. The second sentence contains the caveats and sibling distinctions in a dense but efficient structure. It is slightly long-winded with parentheticals, but every clause earns its place.

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

Completeness5/5

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

With no output schema and only a read-only annotation, the description covers all essential context: purpose, scope, data source, metric definition, sorting defaults, caveats about shortPercent ranking, and explicit alternatives. The agent 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.

Parameters3/5

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

Input schema provides 100% parameter description coverage, so baseline is 3. The description reinforces the sortBy=shortPercent behavior with a minTotalVolume floor, but this guidance is already present in the schema's sortBy parameter description. No new parameter semantics are added beyond the schema.

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

Purpose5/5

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

Description uses a specific verb+resource: 'Get the stocks with the largest daily short sale volume for a single trading day' and explicitly distinguishes from related tools by naming GetShortVolume and GetShortInterest. The scope (single day, sorted by short volume descending) is exactly stated.

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

Usage Guidelines5/5

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

The description explicitly states when to use alternatives: 'use GetShortInterest/GetShortInterestSnapshot for positions and GetShortSqueezeScores for squeeze candidates; use GetShortVolume for one stock's daily history.' It also provides concrete guidance on using sortBy=shortPercent with a minTotalVolume floor to rank by short intensity.

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

GetLatestCftcDataLatest CFTC Positioning SnapshotA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory filter: Agriculture, Energy, Metals, EquityIndices, InterestRates, Currencies (defaults to all)
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds meaningful context about the data source (legacy futures-only COT report), timing (positions as of Tuesday, published Friday), and units (contract counts). This is useful but does not cover all possible behavioral details.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main action, and every sentence adds value. It efficiently conveys the tool's purpose, scope, data source, timing, and relation to a sibling tool.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description sufficiently covers return value composition, grouping, timing, and linkage to GetCftcPositioning. Minor details like exact row fields are omitted but not critical for usage.

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

Parameters3/5

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

The input schema already documents the 'category' parameter fully with enumerated values and a default. The description lists categories in parentheses but adds no additional parameter meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly identifies the tool as retrieving the latest COT positioning snapshot across all tracked futures contracts, grouped by category. It distinguishes the tool from sibling GetCftcPositioning by noting that each row carries the market code accepted by that tool.

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

Usage Guidelines4/5

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

The description provides clear context that this tool is for a broad, latest snapshot, and implies that GetCftcPositioning is the next step for specific market codes. However, it does not explicitly state when not to use this tool or name alternative scenarios.

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

GetLatestEconomicDataLatest Economic IndicatorsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory filter: InterestRates, YieldSpreads, CorporateBondSpreads, Inflation, Employment, GdpAndOutput, MoneySupply, Sentiment, Housing, ExchangeRates, Market (defaults to all)
Behavior4/5

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

The annotation readOnlyHint=true is respected, and the description adds useful behavioral detail about the output structure: each row contains the latest observation, its date, the previous observation, and the change. This goes beyond the annotation to explain freshness and direction, which is valuable for an AI agent.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose, and every sentence adds value – purpose, output format, and use case. No wasted words.

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

Completeness5/5

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

For a tool with one optional parameter and no output schema, the description is highly informative. It explains what data is returned, how to interpret freshness and change, and the scope of categories, making it self-sufficient for an agent.

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

Parameters3/5

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

The input schema already fully documents the single `category` parameter with allowed values and default. The description's list of categories largely duplicates the schema description, adding no new semantic information about the parameter.

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

Purpose5/5

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

The description clearly states the tool retrieves the latest values for key economic indicators across a comprehensive list of categories. The verb 'Get' and resource 'latest values for key economic indicators' is specific and distinguishes it from siblings like GetEconomicIndicator (singular) and SearchEconomicIndicators (search).

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

Usage Guidelines4/5

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

The description provides clear context that this returns a broad snapshot of current macro conditions, suitable for getting a general economic overview. However, it does not explicitly name alternatives for specific indicator lookups or exclusion cases, so it falls short of a full 5.

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

GetLatestPricesLatest PricesA
Read-only
Inspect

Get the most recent closing price (USD), daily change, volume, and trailing 52-week range for one or more stocks. Useful for quick price checks across a portfolio or watchlist. The change columns are a ONE-SESSION move: they are shown only when the stored series holds the trading day immediately before the date on the row, and are "—" otherwise, so a change is never a multi-session move in disguise. Each row is that ticker's newest SETTLED daily bar and the Date column names its session: for a few hours after a US close some tickers still show the prior session while the fresh bar settles, so dates within one response can differ — anchor on the Date column, never the wall clock. 52W High/Low are the highest and lowest daily closes in the 365 days ending on the row's date. If that window crosses a recorded split, it starts at the latest split because raw rows carry no split-basis metadata; the partial values are marked *. They are CLOSING extremes, never intraday highs and lows, and they are not dividend-adjusted, so a source quoting an intraday range reads higher and one quoting a dividend-adjusted range reads lower without either being wrong. Off High / Above Low are the close's percent distance from those bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesComma-separated list of ticker symbols (e.g., 'AAPL,MSFT,GOOG,TSLA'). Maximum 25 per request. Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
Behavior5/5

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

The description goes far beyond the readOnlyHint annotation, disclosing subtle behavior: change columns are one-session moves, dates can differ within a response due to settlement, 52W range is based on daily closes, raw rows lack split-basis metadata, and Off High/Above Low are percent distances. These are non-obvious behaviors critical 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.

Conciseness4/5

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

The description is fairly long but every sentence carries substantive behavioral information needed to interpret results correctly. It is front-loaded with the purpose and use case, followed by necessary caveats. While not as terse as ideal, none of the text is redundant or filler.

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

Completeness5/5

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

Given that there is no output schema, the description fully explains the meaning of each returned field, including edge cases like one-session change, date discrepancies, and 52-week range calculation. It also addresses limitations such as lack of split-basis metadata, making the tool's behavior predictable for the user.

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

Parameters3/5

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

The only parameter, tickers, is already fully described in the schema (format, max 25, class share notation). The description adds no additional parameter detail beyond what the schema provides. With 100% schema coverage, 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.

Purpose5/5

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 most recent closing price (USD), daily change, volume, and trailing 52-week range for one or more stocks.' It clearly identifies what the tool does and distinguishes itself from siblings like GetLiveQuote (live quotes) and GetStockPrices (history) by emphasizing 'most recent closing price' and 'settled daily bar'.

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

Usage Guidelines4/5

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

The phrase 'Useful for quick price checks across a portfolio or watchlist' provides clear context on when to use this tool. It implies that for live quotes users should look elsewhere (e.g., GetLiveQuote), though it does not explicitly name alternatives or exclusions. This is sufficient guidance for proper selection.

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

GetLiveQuoteLive Stock QuoteA
Read-only
Inspect

Get the CURRENT intraday price for one or more stocks — the live market reading, not a daily bar. Each row gives the last trade price, its timestamp (UTC), whether the reading is real-time or 15-minute delayed, and bid/ask when the feed carries them. Use this for 'what is it trading at now'; use GetLatestPrices or GetStockPrices for the most recent CLOSE and daily history. Readings only move while the US market is open — outside market hours this returns the last reading of the session. A ticker with no live reading is listed separately rather than guessed at.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesOne ticker (e.g. AAPL) or a comma-separated list (e.g. AAPL,MSFT,NVDA), max 25.
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses that readings only update during US market hours, returns last session reading otherwise, and lists tickers without a live reading separately. It also notes data may be real-time or 15-minute delayed, providing important expectations for the agent.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and uses five sentences to cover purpose, output fields, usage distinction, and edge cases. All sentences add value, though a bit dense; still efficient.

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

Completeness4/5

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

With only one parameter, a read-only annotation, and no output schema, the description provides sufficient context: purpose, field details, usage guide, and edge cases. It does not specify the exact response container (e.g., JSON object), but 'Each row' implies a list, which is adequate.

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

Parameters3/5

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

The single parameter 'tickers' is fully described in the schema (100% coverage), including format and max count. The description's mention of 'one or more stocks' adds no new meaning beyond the schema, but does not need to compensate.

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

Purpose5/5

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

The description clearly states the tool retrieves the current intraday price, specifying it is a live market reading rather than a daily bar. It distinguishes itself from GetLatestPrices and GetStockPrices by contrasting live price with recent close and daily history.

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

Usage Guidelines5/5

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

Explicitly says 'Use this for "what is it trading at now"; use GetLatestPrices or GetStockPrices for the most recent CLOSE and daily history.' It also describes behavior outside market hours, giving clear context for 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.

GetMarketCalendarUS Market Holiday CalendarA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year, e.g. 2026. Defaults to the current year.
Behavior4/5

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

Annotations already declare readOnlyHint=true, lowering the bar. The description adds valuable behavioral context beyond that: the early-close time of 1:00 p.m. ET, NYSE/Nasdaq coverage, and the curated range limitation with a non-guessing fallback. This exceeds the minimum required for a read-only tool.

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

Conciseness5/5

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

The description is two sentences. The first sentence front-loads the core purpose with the verb and resource. The second sentence adds a critical caveat about the curated range. There is no redundancy or filler.

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

Completeness5/5

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

For a simple read-only tool with one optional parameter, the description fully covers purpose, default behavior, exchange coverage (NYSE/Nasdaq), and the range limitation. No output schema is present, but the description sufficiently informs the user of what will be returned (a list of holidays and half days).

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

Parameters4/5

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

The schema covers the year parameter with type, default, and description (100% coverage), providing a baseline of 3. The tool description adds practical meaning beyond the schema by repeating the default and introducing the important range constraint ('curated for 2025 through 2027'), which helps users understand valid inputs.

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

Purpose5/5

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

The description uses the specific verb 'List' and clearly specifies the resource: 'US equity market holidays and early-close (1:00 p.m. ET) half days for a calendar year (NYSE/Nasdaq).' This distinguishes it from siblings like GetEconomicCalendar and GetMarketStatus, making the tool's function unambiguous.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Defaults to the current year' and 'curated for 2025 through 2027; a year outside that range reports so rather than guessing.' This tells users when the tool is appropriate and what happens for invalid years, but it does not explicitly name alternative tools 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.

GetMarketStatusUS Market StatusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds valuable context beyond that: it specifies the timezone (America/New_York), the fact that it's based on the exchange's curated calendar rather than a heuristic, and the variety of status details returned. This gives agents a clear picture of the tool's behavior 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.

Conciseness5/5

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

The description is a single, information-dense sentence that front-loads the core action and then lists the specific outputs. Every element adds value, with no redundant or vague phrasing. It is concise yet comprehensive.

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

Completeness5/5

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

Since there is no output schema, the description must fully explain return values, and it does: it lists status, session, holiday/early close, regular and extended hours, and next open/close. It also mentions data provenance. This is complete for a zero-parameter, read-only tool.

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

Parameters4/5

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

With zero parameters, the description has no parameter semantics to add, and the baseline for 0 params is 4. The description fully compensates by explaining what the tool returns, so the agent understands the tool without needing parameter docs.

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

Purpose5/5

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

The description clearly states the tool gets the current US equity market status for NYSE/Nasdaq, with a specific verb and resource. It distinguishes from siblings by enumerating the exact outputs (open/close, session, holiday/early close, trading hours, next open/close) and referencing the exchange's curated calendar.

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

Usage Guidelines4/5

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: when needing current market status, session, or trading hours. It does not explicitly mention alternatives or exclusions, but the specificity implies its use case. Sibling GetMarketCalendar exists, but no comparative guidance is given, so it doesn't reach the explicit when-to-use vs. alternatives bar.

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

GetMarketWide13FActivityMarket-Wide 13F ActivityA
Read-only
Inspect

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. Use this to answer 'what's the consensus 13F move this quarter?'

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYesBucket: top-buys, top-sells, new-positions, or sold-out-positions
maxResultsNoMaximum number of stocks to return (default: 20, clamped to 1-500)
reportDateNoQuarter-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)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral details: bucket-specific ranking logic (Δ shares > 0, sorted by Δ value), and the critical nuance that Δ Value includes the quarter's price move while Δ Shares represents the actual position change. This adds significant informational value 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.

Conciseness5/5

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

Every sentence serves a purpose: the core definition, bucket specifications, metric caveat, and use-case all convey necessary context in a compact, front-loaded structure. It's longer than minimal but each clause is substantive.

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

Completeness4/5

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

With no output schema, the description hints at return content (leaderboards with Δ Shares and Δ Value) but doesn't explicitly list response fields or pagination. Still, it covers the core concept, the four modes, and the key metric caveat, making it functionally complete for the intended query.

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

Parameters4/5

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

Schema describes all three parameters, but the description enriches semantics by explaining each bucket's ranking condition and clarifying the difference between Δ Value and Δ Shares. This goes beyond the schema's simple enumeration of bucket options, though some detail (e.g., maxResults clamping) remains schema-only.

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

Purpose5/5

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

Description opens with a specific verb+resource: 'Get the market-wide 13F leaderboards for a given quarter' and enumerates the four bucket categories (most bought, sold, initiated, exited). It distinguishes itself from institution-specific siblings like GetInstitutionQuarterlyActivity by emphasizing 'market-wide' and 'across all 13F filers.'

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

Usage Guidelines4/5

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

Provides a clear use-case: 'Use this to answer "what's the consensus 13F move this quarter?"' and implies when it's appropriate (market-wide consensus). However, it doesn't explicitly name alternative tools or when not to use it, 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.

GetMarketWideCongressionalActivityMarket-Wide Congressional ActivityA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoTrailing disclosure window in days (default: 30, max: 365).
chamberNoFilter by chamber: 'senate' or 'house' (defaults to both).
directionNoRanking direction: 'buys' (most net congressional buying first, default) or 'sells' (most net selling first).buys
maxResultsNoMaximum number of stocks to return (default: 25, max: 200).
Behavior5/5

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

Discloses that the window anchors on disclosure date, explains the 45-day filing deadline, and notes that amount ranges are estimated via midpoints, which is crucial for interpreting results. Annotations already mark read-only, and the description adds rich context 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.

Conciseness5/5

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

Description is dense but every sentence carries distinct information: purpose, time window rationale, row composition, parameter behaviors, and sibling alternatives. No filler, well-structured with clear front-loading.

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

Completeness5/5

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

With no output schema, the description provides a thorough breakdown of row contents and aggregate metrics, plus edge-case context (late filings) and sibling fallbacks. Sufficient for an agent to select and interpret the tool.

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

Parameters4/5

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

All four parameters are already described in the schema (100% coverage). The description adds semantic clarity for direction (buys/sells) and chamber, and explains how they affect ranking, which goes slightly beyond the schema's bare definitions.

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

Purpose5/5

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

The description clearly states the tool returns market-wide congressional stock trading aggregates over a trailing window, with explicit mention that it does not require a ticker or member name. This distinguishes it from siblings like GetCongressionalTrades and GetMemberTrades.

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

Usage Guidelines5/5

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

Explicitly states when to use: for market-wide aggregation context, and explicitly names alternatives for single-stock and single-member looks. Provides a representative query 'what did Congress buy this week' to clarify the intended use.

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

GetMemberNetWorthCongress Member Net WorthA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNoMaximum number of years to return (default: 20, max: 500, newest first)
memberNameYesCongress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Marsha Blackburn'); use SearchCongressMembers to find the exact name
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses that values are range bands rather than point estimates and that missing years imply no electronic filing, not zero net worth. This is essential behavioral nuance that prevents misinterpretation and exceeds what annotations convey.

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

Conciseness5/5

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

The description is three sentences with no filler, front-loading the core purpose and then adding distinct, valuable caveats. Each sentence contributes new information: what it returns, how values are represented, and how to interpret missing years.

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

Completeness4/5

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 return format conceptually (annual range bands) and how to treat missing data. It could specify the exact response shape or field names, but the provided details are 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.

Parameters3/5

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

The schema already provides thorough descriptions for both parameters, including case-insensitivity, examples, defaults, and max results. The tool description adds domain context about annual disclosures but does not materially enhance parameter-level understanding beyond the high schema coverage.

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

Purpose5/5

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

The description begins with 'Get a congress member's net worth history,' clearly identifying the specific verb and resource. It distinguishes this tool from siblings by noting annual financial disclosures and range-based values, which is distinct from trade-related tools like GetMemberTrades and GetCongressionalTrades.

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

Usage Guidelines4/5

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

The description explicitly instructs to use SearchCongressMembers to find member names, providing concrete usage context. It also clarifies that missing years indicate no electronic filing, which is critical for interpreting results. It does not explicitly list alternative tools for net worth, but enough context is provided.

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

GetMemberTradesTrades by Congress MemberA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoNumber of trades to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0)
endDateNoEnd date in YYYY-MM-DD format (defaults to today)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
maxResultsNoMaximum number of trades to return (default: 50, max: 500, newest first)
memberNameYesCongress member name, case-insensitive (e.g., 'Nancy Pelosi', 'Dan Crenshaw'); use SearchCongressMembers to find the exact name
transactionTypeNoFilter by transaction type: Purchase or Sale; the synonyms Buy/Sell are accepted (defaults to all)
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds additional behavioral context beyond that, such as default date range ('last year by default') and output fields ('Shows tickers, transaction and filing dates, disclosed amount ranges, and the filed Asset'). This provides useful details without contradicting the read-only hint.

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

Conciseness5/5

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

The description is two sentences, with the primary purpose in the first sentence and supporting details in the second. Every sentence contributes value, and it is front-loaded with the most important information. No fluff or redundant wording.

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

Completeness5/5

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

Given the tool's complexity (6 params, no output schema), the description adequately covers the essential context: what it returns, ordering, default date range, and alternative tools. It is sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all six parameters. The description does not add much parameter-specific meaning beyond what is already in the schema, such as the default date range and pagination behavior. It maintains the baseline without introducing extra context.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get a congress member's disclosed securities transactions' with specifics like 'newest first, last year by default'. It also differentiates from siblings by explicitly mentioning GetCongressionalTrades for all members in one ticker, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use SearchCongressMembers to find member names, and GetCongressionalTrades for all members' transactions in one ticker.' This tells the agent when to use alternatives and implies when to use this tool (when querying a specific member).

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

GetMostHeldStocksMost Widely Held StocksA
Read-only
Inspect

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. 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?'

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort 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
maxResultsNoMaximum number of stocks to return (default: 25, clamped to 1-500)
reportDateNoQuarter-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)
Behavior5/5

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

Beyond the readOnlyHint, the description discloses key behaviors: default sorting, how funds lagging during the filing window are carried at prior-quarter positions, and that fully-sold-out names are excluded. It also lists the output fields (Δ filers, total value, Δ value, share) which is especially valuable given no output schema.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and then packs in essential details (sort options, output fields, edge cases) without wasted words. Every sentence serves a purpose, and the length is appropriate for the tool's complexity.

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

Completeness5/5

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

Given the absence of an output schema, the description compensates by listing the returned metrics and explaining edge cases like the filing-window carry-forward and the sold-out-name exclusion. It also explicitly names the close sibling for alternatives, making the tool's scope fully clear.

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

Parameters4/5

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

The input schema already covers all three parameters with 100% coverage, so the baseline is 3. The description adds meaningful context for the 'sort' parameter by explaining the warming/cooling semantics and default behavior in prose, and it clarifies the reportDate's relationship to the filing window, adding value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and identifies both the resource ('cross-sectional ranking of stocks by institutional 13F breadth') and the temporal scope ('for a given quarter'). It clearly differentiates from siblings by explicitly naming GetMarketWide13FActivity for sold-out names and stating the tool's focus on currently-held stocks.

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

Usage Guidelines5/5

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

It provides explicit when-to-use guidance with the example question 'which stocks are most owned by institutions right now, and is breadth expanding or contracting?' It also states a clear exclusion: 'Only currently-held stocks rank; fully-sold-out names live in GetMarketWide13FActivity's sold-out-positions bucket,' naming the alternative tool.

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 BridgeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of source filings to read, newest first (default 6, valid 1-20; out-of-range values are clamped)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses the extraction source, the detailed structure of the returned data (GAAP starting line, adjustments in order, non-GAAP result, period, unit, verbatim source quote), the 'Verifier-approved' trait, and the 'newest filing first' ordering. This adds significant value beyond the annotation's simple read-only flag.

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

Conciseness5/5

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

The description is concise at two sentences, front-loaded with the core purpose, and every clause contributes information: it defines the output, lists examples, notes the source documents, and provides the sibling distinction. No filler or redundancy.

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

Completeness5/5

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

With no output schema, the description effectively compensates by outlining the return structure in detail (starting line, adjustments, result, period, unit, verbatim quote), source, ordering, and verification status. The schema covers parameters, and the annotation covers safety, making this complete for a moderately complex tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (ticker and limit) already fully described in the input schema. The tool description does not add any additional parameter-specific meaning, so the baseline of 3 is appropriate; the schema handles the semantic load.

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

Purpose5/5

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

The description uses a specific verb ('Get') and clearly states the resource: 'a company's non-GAAP-to-GAAP reconciliations ('bridges') as extracted from its earnings releases and 10-K/10-Q periodic reports.' It explicitly distinguishes itself from the sibling GetCompanyKpis by noting that tool carries the bridge inline with a metric, while this one returns reconciliations on their own.

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

Usage Guidelines5/5

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

Provides explicit usage guidance: 'Use this to see exactly how a company builds its adjusted numbers' and contrasts it with GetCompanyKpis as an alternative that embeds the same data inline. It also specifies the data sources (earnings releases, 10-K/10-Q) and ordering (newest filing first), giving clear context on when to use.

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) VolumeA
Read-only
Inspect

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. FINRA publishes each week on a delay (2 weeks for Tier 1 NMS stocks, longer for other tiers), so the latest week lags today.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, GME, TSLA)
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 6 months ago)
maxResultsNoMaximum number of weeks to return — keeps the most recent N weeks in the range, displayed oldest to newest (default: 26, max: 500)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral traits: the data source (FINRA OTC/ATS), the specific fields returned (ATS/non-ATS volume and trade counts), and critical limitations (no consolidated tape volume, off-exchange share not computed, publication lag of 2+ weeks). This significantly aids the agent in interpreting 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.

Conciseness5/5

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

The description is concise but information-dense: four sentences covering purpose, return fields, a key limitation, and data freshness. It is front-loaded with the verb+resource, and every sentence adds value without redundancy. The structure is logical and easy to parse.

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

Completeness5/5

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

The description is remarkably complete for a tool with no output schema. It explains the data source, the exact output fields, a major limitation (no consolidated tape), and the publication delay, which addresses the main usage pitfalls. Combined with the fully-described input schema, an agent has sufficient context 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.

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds minimal extra meaning beyond the schema: it implies ticker is required and that date behavior is tied to the publication lag, but it doesn't elaborate on startDate/endDate/maxResults beyond what the schema already provides. The schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool gets weekly off-exchange (dark pool/OTC) trading volume for a stock from FINRA data, with specific details on what it returns (ATS volume, non-ATS volume, total). This distinct verb+resource+scope differentiates it from sibling tools like GetShortVolume or GetLargestShortVolume.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool: when you need off-exchange trading volume data from FINRA. It explains data limitations (no consolidated tape volume, publication delay) but does not explicitly name alternatives or state when not to use it. The context is clear and the data boundaries are well-defined, though explicit exclusions are absent.

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)A
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 6 months ago)
maxResultsNoMaximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.
Behavior5/5

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

Discloses the critical anchoring-at-zero behavior and warns that absolute values shift with startDate and are not comparable across calls. This goes well beyond the readOnlyHint annotation, which only signals safety, and adds essential interpretive guidance.

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

Conciseness5/5

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

Three sentences, each earning its place: the first defines the resource, the second explains the formula, the third provides usage and a key warning. Perfectly front-loaded with no redundancy.

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

Completeness5/5

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

For a read-only technical indicator with a well-documented schema and no output schema, the description is remarkably complete. It explains what OBV is, how it's calculated, how to interpret it, and a critical caveat about comparability, making it self-contained for an agent.

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

Parameters3/5

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

Schema already covers all parameters with descriptions, so baseline is 3. The description adds a meaningful caveat about startDate affecting value levels, but doesn't systematically elaborate on each parameter beyond the schema.

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

Purpose5/5

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

The description clearly identifies OBV as the indicator, explains its exact calculation (adds on up-closes, subtracts on down-closes, flat on equal closes), and distinguishes it from sibling technical indicators by defining the unique volume-flow logic.

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

Usage Guidelines4/5

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

Explicitly states the tool is useful for confirming or diverging from price trends with volume flow, and advises reading slope/divergences rather than levels. This provides clear context for when to use it, though it doesn't mention alternative indicators by name.

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

GetOptionChainOption ChainA
Read-only
Inspect

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 price, volume, implied volatility and greeks to its provider-stamped session, or marks the session unknown; these are not live quotes. Bid/ask are 15-minute delayed and are omitted on the current plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoContract type: call or put (default: both)
tickerYesStock ticker, e.g. AAPL
maxStrikeNoOnly include strikes at or below this price
minStrikeNoOnly include strikes at or above this price
expirationNoExpiration date in YYYY-MM-DD format (default: nearest upcoming)
maxResultsNoMaximum contracts to return (default: 60, max: 500)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral traits: the 'nearest money' truncation with maxResults, provider-stamped session attribution, that rows 'are not live quotes', and that bid/ask are 15-minute delayed and omitted on the current plan. 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.

Conciseness5/5

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

The description is front-loaded with the core purpose and then efficiently covers defaults, filtering, result behavior, and data caveats in a compact block. Every sentence adds value; no filler or repetition of the schema.

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

Completeness5/5

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

Despite no output schema, the description covers the returned row contents, default and custom expiration behavior, result limiting, filtering, and data freshness limitations. It is complete enough for an agent to select and invoke this tool correctly with no external documentation.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds meaningful semantics beyond the schema: it explains what 'nearest upcoming' means, that maxResults returns contracts nearest the money, and that minStrike/maxStrike and type are used to 'reach the wings'. This contextualizes all six parameters without merely repeating the schema.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get the option chain (calls and puts) for a stock for ONE expiration' and enumerates the returned fields (strike, greeks, IV, open interest, price). It differentiates from siblings by naming GetOptionExpirations for listing expirations and implicitly distinguishing from GetOptionContract.

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

Usage Guidelines5/5

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

It clearly states when to use the defaults ('Defaults to the nearest upcoming expiration'), how to select another ('pass expiration=YYYY-MM-DD'), and points to the sibling tool GetOptionExpirations. It also gives concrete filtering guidance with minStrike/maxStrike and type, plus behavior for large chains, which helps the agent decide how to invoke it.

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

GetOptionContractOption ContractA
Read-only
Inspect

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. Snapshot figures name the provider's trading-session timestamp when supplied and otherwise mark it unknown; bid/ask are 15-minute delayed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. AAPL
contractYesOCC option symbol, e.g. O:AAPL260724C00110000
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds meaningful behavioral context: bid/ask are 15-minute delayed, timestamps are provider-trading-session when supplied and otherwise marked unknown. This goes beyond the annotation by disclosing data freshness and identifier behavior, which is valuable for an agent deciding whether this data is current enough.

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

Conciseness5/5

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

Two sentences, front-loaded with the key verb and scope ('Get the full snapshot for ONE option contract'), followed by a compact list of returned fields and one caveat. No wasted words; every clause adds value.

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

Completeness5/5

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

For a single-contract snapshot tool with no output schema, the description adequately names the return components and notes limitations (delay, timestamp handling). It gives enough context for an agent to know what to expect without needing further documentation.

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

Parameters3/5

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

The schema already covers both parameters with examples and full descriptions (100% coverage). The description adds an OCC example but does not provide additional semantic meaning beyond what the schema gives. Per guidelines, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool fetches a full snapshot for exactly one option contract, identified by OCC symbol, and enumerates the specific data fields (greeks, IV, open interest, price, bid/ask). This distinguishes it from sibling tools like GetOptionChain or GetOptionExpirations without ambiguity.

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

Usage Guidelines4/5

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

It clearly implies the intended use case: retrieving detailed data for a single option contract rather than a chain or list. The caveat about plan entitlement for bid/ask also sets expectations. However, it does not explicitly mention alternatives or when not to use it, keeping it just 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.

GetOptionExpirationsOption ExpirationsA
Read-only
Inspect

List the available option expiration dates for a stock, with the contract count at each. Use this to pick an expiration for GetOptionChain.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker, e.g. AAPL
Behavior4/5

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

Annotations already declare readOnlyHint=true, establishing that this is a safe read operation. The description adds behavioral context by stating it returns expiration dates with contract counts, which is consistent with read-only. No contradictions, and it provides useful detail 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.

Conciseness5/5

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

The description is just two sentences, front-loaded with the action and purpose. It includes a direct usage instruction without any filler or redundancy, earning its place.

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

Completeness5/5

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

For a simple read-only tool with one parameter and no output schema, the description is complete: it states what it does, what it returns, and how to use it in conjunction with GetOptionChain. No critical information is missing given the low complexity.

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

Parameters3/5

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

The schema covers the single parameter 'ticker' with a full description ('Stock ticker, e.g. AAPL'), and schema description coverage is 100%. The tool description adds no additional parameter-specific semantics, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'List' and clearly identifies the resource: 'available option expiration dates for a stock', also mentioning 'contract count at each'. It distinguishes itself from siblings like GetOptionChain by focusing on expiration dates rather than the chain itself.

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

Usage Guidelines4/5

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

The description explicitly instructs to 'Use this to pick an expiration for GetOptionChain', providing clear context and linkage to a sibling tool. It does not list alternatives or when-not-to-use scenarios, but the guidance is concrete and actionable.

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

GetOwnershipHistoryInstitutional Ownership HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
maxPeriodsNoMaximum number of quarterly periods to return (default: 8, clamped to 1-500)
Behavior5/5

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

The description explains the provisional combined view during the open 13F filing window and that unfiled fund positions are carried forward and flagged in the output. This is valuable context beyond the readOnlyHint annotation, which only indicates safety. 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.

Conciseness5/5

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

The description is three sentences, each serving a distinct purpose: stating the main function, listing the returned metrics, and explaining the provisional quarter nuance plus the intended use case. It is front-loaded with the primary action and contains no filler.

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

Completeness4/5

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

The description explains the output metrics (shares, market value, number of holders) and the important provisional data caveat, which is sufficient given there is no output schema. It also provides a clear use case. Some details about period clamping are already in the schema, so nothing critical is missing.

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

Parameters3/5

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

The schema already fully describes both parameters (ticker and maxPeriods) with 100% coverage, so the description does not need to add parameter details. The description's mention of quarters and trends aligns with maxPeriods, but it adds no new semantic meaning 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.

Purpose5/5

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

The description clearly states the tool's specific purpose: get the historical trend of institutional ownership for a stock across multiple quarters. It also distinguishes itself from sibling tools by emphasizing the multi-quarter trend based on SEC 13F-HR filings, which is unique among tools like GetFundsHoldingStock or GetConsensusHoldings.

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

Usage Guidelines4/5

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

The description includes an explicit use case: 'Use this to understand whether institutional interest in a company is growing or declining.' It gives clear context for when the tool is appropriate, though it does not name alternative tools or provide explicit when-not-to-use guidance.

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

GetProposedSalesProposed Insider Sales (Form 144)A
Read-only
Inspect

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 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). Use this to anticipate upcoming insider selling before it shows up as an executed Form 4.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
toDateNoOptional latest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-12-31)
fromDateNoOptional earliest filing date to include, ISO format yyyy-MM-dd (e.g., 2025-01-01)
maxResultsNoMaximum number of notices to return (default: 50, max: 500; values outside 1-500 are clamped)
Behavior4/5

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

Annotations already declare readOnlyHint: true, so the description adds value by disclosing ordering behavior ('most recent notices first'), a note flag when more results exist, and a warning about heavy 10b5-1 filers flooding the recency window. This goes beyond the annotation, though it doesn't cover all behavioral aspects (e.g., pagination details, rate limits).

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

Conciseness5/5

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

The description is a single, well-structured paragraph. Each sentence earns its place: first defines the function, second explains what data appears, third covers ordering and scoping, fourth gives the use case. No fluff or redundant repetition of schema details.

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

Completeness5/5

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

With no output schema, the description compensates by listing the key fields returned (seller, relationship, shares, market value, etc.) and noting the flag for truncated results. It provides enough context for an agent to understand the tool's scope and output for a list-heavy read operation. Combined with read-only annotations, it's complete.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema by explaining why fromDate/toDate matter (to avoid heavy 10b5-1 filers flooding the recency window) and implicitly describes the maxResults behavior by mentioning a note when more results exist than returned. This elevates the parameter guidance above baseline.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Get recent proposed insider sales for a stock from SEC Form 144 notices.' It clearly defines what Form 144 is and what the tool returns, and explicitly distinguishes it from executed Form 4 sales ('before it shows up as an executed Form 4'), which separates it from sibling tools like GetInsiderTransactions.

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

Usage Guidelines4/5

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

The description states when to use the tool ('to anticipate upcoming insider selling'), gives guidance on using fromDate/toDate to scope a period, and mentions the alternative of executed Form 4 data. However, it does not explicitly name an alternative tool or state 'when not to use,' so it falls just 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.

GetPutCallRatiosCBOE Put/Call RatiosA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRatio type: Total, Equity, Index, Vix, Etp (default: Equity)Equity
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 3 months ago)
maxResultsNoMaximum 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.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses data history (from November 2006, Vix from October 2019), pre-2013 weekly sampling, and that volumes are contract counts. This adds meaningful behavioral context without contradicting annotations.

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

Conciseness5/5

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

The description is four sentences long, front-loaded with the core purpose, and each sentence adds distinct value: what the tool does, types, interpretation, and data quirks. No redundant or filler content.

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

Completeness4/5

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

For a simple data retrieval tool with no output schema, the description covers purpose, types, interpretation, and data availability quirks. It mentions volumes are contract counts, but does not detail the exact return structure, which is a minor gap given the absence of an output schema.

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

Parameters3/5

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

The input schema already provides 100% coverage with detailed descriptions for all four parameters. The description repeats the type list and adds sentiment interpretation, but contributes little new information about parameter behavior or formats beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves CBOE put/call ratio data for market sentiment. It lists the specific ratio types (Total, Equity, Index, Vix, Etp), distinguishing it from broader market data tools in the sibling list.

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

Usage Guidelines3/5

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

The description includes interpretation thresholds (high/low ratios) and data availability, but it does not explicitly guide when to use this tool over alternatives like GetVixHistory or GetOptionChain. Usage context is implied rather than contrasted with 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 SegmentA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT)
maxYearsNoMost recent fiscal years to include (default 8, max 12)
Behavior5/5

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

The description goes far beyond the readOnly annotation by disclosing that the tool returns only annual fiscal years, latest restated values, as-reported (never estimated) source data, and derived operating margins. It also warns about overlapping rows. This rich behavioral context is essential for correct interpretation and is not contradicted by any annotation.

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

Conciseness4/5

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

The description is somewhat lengthy but every sentence carries unique importance—covering data source, limitations, derived metrics, overlap warnings, and alternatives. It is structured logically and front-loads the core purpose, though a slightly tighter wording could improve conciseness.

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

Completeness5/5

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

Given the tool's complexity and lack of an output schema, the description effectively conveys the return shape ('one table per axis'), the presence of consolidated total rows, and the derived margin calculation. It covers data source, fiscal-year limitation, overlap pitfalls, and when to use alternatives, making it complete for safe invocation.

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

Parameters3/5

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

Input schema coverage is 100%, with clear descriptions for both ticker and maxYears. The description adds no new semantic detail for the parameters themselves beyond reinforcing the annual-fiscal-years constraint, which is a data characteristic rather than parameter-specific guidance. Per the baseline rule, a 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource: a company's revenue disaggregated by segment, geography, and product/service, plus operating income by segment. It distinguishes itself from sibling tools by explicitly noting that consolidated figures should use GetFinancialStatement or GetFinancialFact, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool (for segment-level revenue breakdowns) and when not to (for consolidated figures, directing to siblings). It also warns against summing overlapping rows, which is a critical usage caveat that prevents misuse.

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

GetShortInterestShort Interest HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, GME, TSLA)
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
maxResultsNoMaximum number of records to return — keeps the most recent N settlements in the range, displayed oldest to newest (default: 24, max: 500)
Behavior5/5

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

While readOnlyHint is already annotated, the description adds substantial behavioral context: data frequency (bi-monthly), source (FINRA), split adjustment policy ('Share counts are restated onto today's split basis'), FINRA's cap on days to cover (999.99), and interpretive guidance (high days-to-cover suggests short squeeze). This goes well beyond the annotation's minimal read-only signal.

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

Conciseness5/5

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

The description is four sentences, front-loaded with the core purpose, followed by data details, split/cap behavior, and alternative-tool pointers. Every sentence earns its place; no repetition of schema information; compact and scannable.

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

Completeness5/5

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

With no output schema, the description compensates by listing the returned fields ('reported short position, change from the previous settlement, average daily volume, and days to cover per settlement date') and clarifying important data quirks (split adjustment and capping). The default date range and maxResults are in the schema, so the description is complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all four parameters with types and defaults. The description adds conceptual context (e.g., 'settlement date', 'days to cover') but doesn't add parameter-specific syntax or caveats 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.

Purpose5/5

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

The description opens with a clear verb and resource: 'Get bi-monthly short interest history for a stock from FINRA.' It enumerates the exact data fields (short position, change, average daily volume, days to cover) and explicitly differentiates from sibling tools by naming GetShortSqueezeScores and GetShortInterestSnapshot for alternative use cases.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: 'for short interest as a % of shares outstanding and an actual squeeze-candidate ranking use GetShortSqueezeScores; for the market-wide latest settlement use GetShortInterestSnapshot.' This clearly distinguishes this tool from close alternatives, making selection straightforward.

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 SnapshotA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoNumber of ranked results to skip before returning rows — pass the previous call's last row number to page past the maxResults cap (default: 0)
sortByNoSort key: daysToCover (default; FINRA-capped 999.99 sentinel rows ranked last), shortPosition, or change (largest increase in short position first)daysToCover
maxResultsNoMaximum number of results to return (default: 50, max: 500)
minDaysToCoverNoMinimum days to cover filter (default: 0)
minAvgDailyVolumeNoMinimum 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)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses key behavioral traits: FINRA caps days to cover at 999.99, capped rows are sentinels ranked after real readings, and the raw snapshot nature. It explains the ranking logic and why filtering is needed, adding substantial value beyond annotations.

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

Conciseness5/5

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

Three dense sentences earn their place: first states the core purpose, second explains the sentinel nuance, third gives sibling alternatives. It is front-loaded with the main function and avoids any filler, making it concise yet comprehensive.

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

Completeness5/5

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

Given the tool's complexity and lack of output schema, the description covers the essential context: return format (one row per stock), default sort, sentinel behavior, filtering guidance, and alternative tools. This is complete for a list-snapshot tool, leaving no major gaps for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, setting a baseline of 3. The description adds meaning beyond the schema by providing an example for minAvgDailyVolume (100000) and explaining the sentinel cap logic that affects sortBy and filtering. This enriches parameter understanding without needing to restate every field.

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

Purpose5/5

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

The description clearly states the tool provides a market-wide snapshot of the latest FINRA bi-monthly short interest settlement, with one row per stock and a default sort. It explicitly differentiates from siblings like GetShortSqueezeScores, GetShortInterest, GetShortVolume, and GetLargestShortVolume, 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.

Usage Guidelines5/5

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 naming alternatives: use GetShortSqueezeScores for ranking, GetShortInterest for single-stock history, and GetShortVolume/GetLargestShortVolume for daily flow. It also advises setting minAvgDailyVolume to exclude illiquid names, offering clear context for filtering.

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

GetShortSqueezeScoresShort Squeeze ScoresA
Read-only
Inspect

Get the stocks with the highest composite short-squeeze score — a peer-relative 0-100 rank built as the weighted mean of six factor percentiles across every stock reporting short interest at the latest FINRA settlement date (short interest % of shares 30%, days to cover 20%, price vs trailing VWAP — how far shorts are underwater — 15%, short-volume trend 15%, change in short interest 10%, fails-to-deliver pressure 10%), plus catalyst boosts (+10 for a statistically extreme weekly price spike, +10 for abnormal dollar volume on a positive move, +10 when a scheduled earnings event is within a few weekdays — squeezes cluster around earnings — capped at +20, clamped to 100). Exchange-traded commodity/currency trusts are excluded (their units are created and redeemed at NAV, so arbitrage caps any squeeze); MLP common units stay in. Untradeable micro-caps dominate the raw board, so pass minMarketCap and/or minDollarVolume to keep only names that clear your liquidity bar (the score itself stays peer-relative to the full universe). Pass ticker for one stock's score, factor breakdown, and rank within the scored universe. Use this to find squeeze candidates; use GetShortInterest for one stock's underlying series.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoNumber 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)
tickerNoOptional 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.
maxResultsNoMaximum number of stocks to return (default: 25, highest score first; clamped to 1-200).
minMarketCapNoMinimum market capitalization in US dollars (e.g. 300000000 = $300M; default 0 = no floor). Stocks with an unknown market cap are excluded when set.
minDollarVolumeNoMinimum 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.
Behavior5/5

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

Despite being read-only (per annotations), the description discloses the scoring methodology (weighted factors, catalyst boosts, clamping), exclusions (ETFs/commodity trusts), and the nuance that filters don't rescale the score. This adds context beyond the readOnlyHint, and there's 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.

Conciseness5/5

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

The description is a single dense paragraph but front-loads the core purpose. Every clause adds substantive detail (weights, exclusions, filters) without verbosity, making it 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.

Completeness5/5

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

With no output schema, the description covers the board, single-ticker behavior, exclusions, liquidity floor effects, and scoring methodology. It also names the alternative tool, making it self-contained for an agent to select and invoke correctly.

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

Parameters4/5

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

All parameters have schema descriptions (100% coverage), so baseline is 3. The description adds meaning about the intent of liquidity filters ('keep only names that clear your liquidity bar') and clarifies pagination via offset. It doesn't add new syntax but provides rationale and behavioral caveats.

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

Purpose5/5

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

The description opens with 'Get the stocks with the highest composite short-squeeze score,' clearly identifying the verb and resource. It further distinguishes itself from siblings by explicitly naming GetShortInterest for underlying series, 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.

Usage Guidelines5/5

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

Usage guidance is explicit: 'Use this to find squeeze candidates; use GetShortInterest for one stock's underlying series.' It also tells when to apply liquidity filters (minMarketCap/minDollarVolume) to avoid untradeable micro-caps, and notes the single-ticker alternative.

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

GetShortVolumeDaily Short Sale VolumeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, GME, AMC)
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 3 months ago)
maxResultsNoMaximum number of records to return — keeps the most recent N trading days in the range, displayed oldest to newest (default: 90, max: 500)
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds critical behavioral context: the data covers only FINRA/TRF off-exchange trades, not consolidated tape volume, and the 40-50% Short % baseline warning prevents misinterpretation. This is substantive behavioral disclosure that goes well 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.

Conciseness5/5

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

The description is front-loaded with purpose, then covers metrics, data scope, interpretation caveat, and sibling distinctions in a compact, well-organized manner. Every sentence adds value, and no words are wasted.

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

Completeness5/5

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

With no output schema, the description explicitly lists the return fields (short volume, short-exempt volume, total volume, short volume percentage). It also covers data source, interpretation baseline, and sibling separation, making it complete for a read-only data retrieval tool with this parameter set.

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

Parameters3/5

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 parameter-specific details beyond what the schema already provides, but it doesn't need to. All parameters are fully documented in the schema with descriptions and defaults.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Get daily short sale volume history for a stock from FINRA's short sale volume files.' It clearly states the tool's function and differentiates it from siblings by naming alternatives (GetShortInterest, GetLargestShortVolume, GetShortSqueezeScores) and explaining the distinction.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: it distinguishes daily flow from bi-monthly short interest and directs users to specific sibling tools for alternative use cases. This is exactly what usage guidelines should include.

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

GetStochasticOscillatorStochastic OscillatorA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
dPeriodNoSmoothing window for %D (default: 3)
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
kPeriodNoLookback window for %K (default: 14)
startDateNoStart date in YYYY-MM-DD format (defaults to 6 months ago)
maxResultsNoMaximum number of records to return (default: 60, max: 500); the newest rows are kept and listed newest first.
Behavior4/5

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

Annotations include readOnlyHint: true, so the read-only nature is already covered. The description adds valuable behavioral information about lookback warm-up on price history before startDate, ensuring values do not depend on the requested range's left edge. This goes beyond the annotation and is useful for understanding output stability.

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

Conciseness5/5

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

The description is three concise sentences, each earning its place: definition, usage guidance, and behavioral nuance. No wasted words or redundancy.

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

Completeness5/5

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

Given the rich schema and readOnly annotation, the description provides complete context for correct invocation. It explains the indicator's meaning, typical use cases, and an important warm-up detail that affects interpretation. Since there is no output schema, the description need not explain return values.

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

Parameters4/5

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

The input schema already describes all 6 parameters with 100% coverage. The description adds meaning by explaining the formula for %K and %D, which clarifies the role of kPeriod and dPeriod. It also explains the warm-up behavior related to startDate, adding interpretive value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool provides a Stochastic Oscillator for a stock and defines %K and %D with their formula. It is specific about the resource and function, but does not explicitly differentiate from sibling indicator tools like GetBollingerBands or GetAverageTrueRange.

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

Usage Guidelines4/5

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

It states the tool is useful for spotting overbought (>80) and oversold (<20) conditions, providing clear usage context. However, it does not mention when not to use this tool or suggest alternative indicators.

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

GetStockPricesDaily Price HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT, TSLA). Class shares use a dash (BRK-B); the dot form (BRK.B) is also accepted.
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 1 year ago)
maxResultsNoMaximum 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.
Behavior5/5

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

Annotations only declare readOnlyHint: true, but the description adds substantial behavioral context: prices are in USD, Adj Close is an auxiliary series with caveats about split reconciliation and total return, and it warns that equality/difference with Close doesn't identify corporate actions. This goes well 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.

Conciseness4/5

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

The description is front-loaded with the core purpose and use cases, then covers currency and Adj Close caveats. While the Adj Close explanation is somewhat verbose, it earns its place by disclosing important data quirks. Slightly more concise would improve it.

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

Completeness4/5

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 gives a good sense of what's returned (OHLCV plus Adj Close), currency, and data caveats. It doesn't mention default date ranges or maxResults behavior, but those are captured in the schema. Overall, complete enough for effective use.

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

Parameters3/5

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

The input schema already covers 100% of parameters with descriptions (ticker, startDate, endDate, maxResults). The tool description doesn't add parameter-specific details, but it does explain output nuances like Adj Close. Since schema does the heavy lifting, a baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific action ('Get daily OHLCV price history for a stock'), naming the exact resource and metrics. It also states use cases ('technical analysis, charting, and price trend analysis'), which clearly distinguishes it from sibling tools like GetLatestPrices or GetLiveQuote.

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

Usage Guidelines4/5

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

The description explains when the tool is useful (technical analysis, charting, trend analysis), providing clear context. It doesn't explicitly mention alternatives or exclusions, but the tool's name and sibling context make the distinction clear.

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

GetSuperInvestorsSuperinvestor DirectoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses data nuances: '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).' This clarifies exactly what the returned numbers mean and how to interpret them, going beyond a simple read-only assertion.

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

Conciseness5/5

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

The description is about 70 words and front-loads the primary purpose before adding essential caveats and cross-references. Each sentence adds useful information: content, metrics, limitations, and next steps, with no filler.

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

Completeness5/5

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

Although there is no output schema, the description enumerates the key output fields and their meaning, and covers the tool's scope, limitations, and relationships to related tools. For a no-parameter, read-only directory lookup, this is fully complete.

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

Parameters4/5

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

With zero parameters, the schema provides no parameter semantics. The description compensates by explaining the returned fields (CIK, portfolio value, position count, quarter-over-quarter change, report date), which is more than adequate given there are no inputs to document.

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

Purpose5/5

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

The description opens with 'Get the curated superinvestor directory — a hand-picked list of well-known value investors and fund managers', specifying the exact resource and content. It clearly distinguishes itself from sibling tools by noting the use of the returned CIK with GetInstitutionPortfolio or GetInstitutionQuarterlyActivity for deeper data.

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

Usage Guidelines5/5

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

The description explicitly provides usage guidance in the final sentence: 'Use the returned CIK with GetInstitutionPortfolio for a manager's full holdings, or GetInstitutionQuarterlyActivity for their latest buys and sells.' It also sets expectations about coverage ('long US-listed 13F positions only') and stale rows, helping an agent decide when this directory suffices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GetTopBuyersSellersTop Institutional Buyers and SellersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
maxResultsNoMaximum number of buyers and sellers to return per section (default: 10, clamped to 1-500)
reportDateNoQuarter-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)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, but the description adds significant behavioral context: how new positions and sold-out positions are treated (Δ = full or prior position), the exclusion of funds that stopped filing, and the note that results during an open filing window cover only funds that have filed. These nuances go well beyond the read-only hint and prepare the agent 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately lengthy but front-loaded with the core purpose and then proceeds to critical edge cases and return format. Every sentence contributes necessary information given the 13F complexity. It is not bloated, but slightly more verbose than the two-sentence ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has notable complexity (13F filing mechanics, delta calculations, window coverage), and the description addresses all key aspects: what it returns (a markdown table with two sections), how to interpret edge cases, and when to use it. Since there is no output schema, the description adequately covers return values. The sibling tool list is broad, but the purpose is clear enough to avoid confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, describing ticker, maxResults (with default and clamp), and reportDate (with snapping behavior). The description does not add parameter-level detail beyond the schema; it focuses on output behavior and conceptual definitions. Therefore, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and precisely defines the resource: institutions with the biggest absolute share additions (Top Buyers) and reductions (Top Sellers) versus the prior 13F report date. This clearly distinguishes it from sibling tools like GetTopHolders or GetInstitutionQuarterlyActivity by focusing on delta rather than absolute holdings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit use case: 'Use this to surface the most actionable quarterly signal from 13F filings.' It also explains interpretation caveats (e.g., filing window affects coverage), which aids correct usage. However, it does not explicitly name alternatives or state when not to use this tool, so it stops 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.

GetTopGovernmentContractorsTop Federal ContractorsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to today)
startDateNoStart date in YYYY-MM-DD format, filtering on the award action date (defaults to 1 year ago)
maxResultsNoMaximum number of companies to return (default: 25, largest first)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the readOnlyHint annotation by detailing the exact calculation method: sums obligated dollars plus unexercised ceiling, includes only prime awards of $1M or more, and excludes smaller awards and unlisted recipients. This gives the agent a precise understanding of what the tool does under the hood.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loads the core purpose, and wastes no words. Every sentence adds useful information: what it does, how it calculates, and when to use it versus the sibling tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is highly informative for a read-only ranking tool with no output schema. It explains the methodology, exclusions, and example queries. The only minor gap is that it does not explicitly describe the return structure beyond implying a ranked list of companies, but this is likely sufficient for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all three parameters with clear descriptions and defaults. The description adds context about the date range and result filtering but does not add significant new meaning beyond what the schema already provides. With 100% 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: ranking public companies by total federal contract dollars over a date range, with a specific methodology and source. It explicitly differentiates itself from the sibling 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear usage context: when you want to see the top public companies by federal contract awards, and explicitly names GetGovernmentContracts as the alternative for one company's individual awards. This gives both 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.

GetTopHoldersTop Institutional HoldersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
maxResultsNoMaximum number of holders to return (default: 20, clamped to 1-500)
reportDateNoQuarter-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)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint already declared as true, the description adds meaningful behavioral context beyond the annotation: it explains the data source (quarterly 13F filings), clarifies that the percentage is of total institutional 13F shares rather than shares outstanding, and discloses the carry-forward behavior during the filing window. This gives the agent valuable context about the reliability and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: (1) what the tool returns, (2) the data source and a key caveat, and (3) when to use it. It is front-loaded with the core purpose, avoids redundancy, and is highly readable. No unnecessary details are included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description does a good job of conveying what to expect: a ranked list with market value and percentage, plus a note about carried positions. It also gives the use case and data source context. However, it could slightly expand on the return structure (e.g., fields included per holder) to fully compensate for the absence of an output schema, so a 4 is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 tool description does not add extra parameter semantics beyond what the schema already provides, such as the ticker format, maxResults clamping, or reportDate snapping behavior. Since the schema fully documents each parameter, a score of 3 is appropriate; the description adds no additional parameter-level insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the top institutional holders (fund managers) of a stock from SEC 13F-HR filings.' It specifies the resource (top institutional holders), the action (get), and the source (SEC 13F-HR filings), and distinguishes it from sibling tools like fund holdings or consensus holdings by emphasizing the ranked institutional list and market value/percentage details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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.' It also notes the timing nuance about the filing window and prior-quarter carryover, which helps the agent understand when results may reflect old data. However, it does not explicitly mention alternatives or when not to use the tool, so it falls just 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.

GetValuationMultiplesValuation MultiplesA
Read-only
Inspect

Get a company's valuation multiples — EV/Revenue, EV/EBIT and P/E on trailing-twelve-month figures — together with a peer median, quartiles and the per-ratio peer sample so the multiple can be read in context. The subject is never included in its own peer cohort. The cohort compares like with like: when the industry holds enough similar-size companies the quartiles are computed over peers within a market-cap decade band around the company (the reply names the band), else over the whole industry. TTM figures sum the four most recent discrete fiscal quarters; diluted EPS must reconcile arithmetically to net income and diluted weighted shares on one effective split basis. Enterprise value is market cap + reported debt - cash & equivalents - short-term investments (the last leg subtracted only when tagged), with required concepts tagged at one balance-sheet date; a company missing a required input is excluded from that ratio, never estimated. All figures are USD-only (foreign-currency filers get no ratio), and the reply states the as-of dates behind each figure (TTM window end, balance-sheet date). Peer median and P25-P75 quartiles require at least 3 peers reporting that specific ratio — a dash otherwise. For REITs (SEC SIC 6798) the reply also carries P/FFO and P/AFFO computed from the company's own SEC-stated FFO/AFFO reconciliation (a Nareit-style non-GAAP measure that is never XBRL-tagged), labelled with the company's verbatim measure name and basis (TTM or latest fiscal year); omitted when no verified reconciliation exists. Use GetValuationMultiplesHistory for the same ratios over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses extensive behavioral details: the subject is excluded from its own peer cohort, size-band fallback logic, TTM computation method, diluted EPS reconciliation, EV component treatment, USD-only restriction, as-of dates, peer minimum thresholds, and REIT-specific handling with verbatim FFO/AFFO labels. This adds significant context that annotations alone do not provide, with no contradiction to the read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries operational meaning for a complex tool. It is front-loaded with the primary output, then explains methodology. While longer than typical, the detail is necessary to convey non-obvious calculation rules (EV components, peer selection, REIT handling) that directly affect interpretation. The structure uses semicolons effectively to group related points, and no unnecessary filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description bears the full burden of explaining return values, and it does so comprehensively: it lists the multiples, peer median/quartiles/sample, as-of dates, and REIT-specific additions. It also covers edge cases (missing company inputs, fewer than 3 peers, foreign-currency filers) that a consumer must know. This is as complete as one could expect for a tool of this complexity without a structured output definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the single ticker parameter fully ('Stock ticker symbol (e.g., AAPL, MSFT).'), and schema description coverage is 100%. The description does not add parameter-specific details, but it does provide context about how the ticker's company is treated (e.g., excluded from its own peer cohort). Since the schema covers the parameter, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb phrase 'Get a company's valuation multiples — EV/Revenue, EV/EBIT and P/E' and names the exact resource (company valuation multiples) and what is returned (peer median, quartiles, sample). It uniquely distinguishes itself from the close sibling GetValuationMultiplesHistory by explicitly noting that tool covers the same ratios over time, and from other siblings by its focus on a current valuation snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states what the tool provides and explicitly names the alternative for time-series analysis: 'Use GetValuationMultiplesHistory for the same ratios over time.' It also sets expectations for when this tool is appropriate (current snapshot with peer context) and covers methodological edge cases (e.g., insufficient peers, foreign-currency filers) that inform usage. This meets the explicit alternative criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GetValuationMultiplesHistoryValuation Multiples HistoryA
Read-only
Inspect

Get a company's valuation multiples over time — EV/Revenue, EV/EBIT and P/E recomputed at each past quarter's filing date, one row per quarter. Up to ~10 years of quarters are sampled, but a row only renders when at least one ratio was computable at its filing date. Every sample is point-in-time: it uses only facts filed by that date (no look-ahead) and that day's raw close. Anchors before the latest effective split are omitted because the stored raw-close basis cannot be proved across that boundary; a note reports all omissions. Remaining share-denominated inputs use one effective split basis and the same strict USD-only TTM/EV methodology as GetValuationMultiples. Quarter labels follow the company's fiscal calendar. A missing or unproved input has a dash, never an estimate.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol (e.g., AAPL, MSFT).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the readOnlyHint annotation, revealing critical behaviors: point-in-time no-look-ahead, split-boundary omissions with a note, sampling limits ('~10 years'), fiscal calendar labels, and dash-for-missing rather than estimates. This is rich, non-obvious context that materially helps an agent understand tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Though dense, the description earns its length: every clause conveys necessary operational detail, such as row rendering conditions, basis adjustments, and missing-value formatting. The opening sentence front-loads the core purpose, and no filler or redundancy is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully specifies the return semantics: one row per quarter, what triggers a row, how missing values are rendered, and the time span of data. Combined with the readOnly annotation and the simple schema, the description leaves no significant ambiguity about tool behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers the single required ticker parameter with a clear description and example ('Stock ticker symbol (e.g., AAPL, MSFT).'), yielding 100% schema coverage. The tool description does not add further parameter-specific semantics, 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.

Purpose5/5

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 a company's valuation multiples over time' and enumerates the exact ratios (EV/Revenue, EV/EBIT, P/E). It clearly distinguishes this historical tool from the sibling GetValuationMultiples by emphasizing quarterly point-in-time sampling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly conveys when to use the tool—when historical valuation multiples across past quarters are needed—and references the sibling methodology ('same strict USD-only TTM/EV methodology as GetValuationMultiples'). However, it never explicitly states when not to use it or names the alternative for current multiples, so it stops 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.

GetVixHistoryVIX Volatility Index HistoryA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date in YYYY-MM-DD format (defaults to latest available)
startDateNoStart date in YYYY-MM-DD format (defaults to 3 months ago)
maxResultsNoMaximum 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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read operation. The description adds meaningful behavioral context: data availability from 1990 to present and interpretation of VIX levels (below 15, above 30), which goes beyond the annotation without contradicting it. It does not describe pagination or return format, but the schema covers maxResults.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four concise sentences, each earning its place: purpose, definition, interpretive thresholds, and data range. It is front-loaded with the primary action and avoids redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no output schema, the description adequately covers the return type (historical daily OHLC data), data range, and meaning of the data. The schema fills in parameter details. No critical context is missing for an agent to select and invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by stating data availability from 1990 to present, which informs the valid range for startDate. It also provides context on VIX level interpretation, though not direct parameter syntax. This pushes it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves CBOE Volatility Index (VIX) historical daily OHLC data, using a specific verb-resource combo that distinguishes it from broader market data tools like GetStockPrices. It also adds context on what VIX measures, eliminating ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies usage for VIX historical data and provides market context (volatility thresholds) to help an agent infer when this data is relevant. However, it does not explicitly mention when not to use it or name alternative tools, though the name and purpose make it obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ListCompanyDocumentsBrowse Company FilingsA
Read-only
Inspect

Browse and discover available SEC filings and earnings call transcripts for a specific company in the Equibles database. Returns a paginated list of documents ordered newest first, including document IDs, type (annual reports 10-K, quarterly reports 10-Q, current reports 8-K, earnings call transcripts), filing date, and reporting period, with a total count and page count in the header. Supports filtering by date range and document type. Document types registered as hidden from filing lists (e.g. investor-relations news on deployments that ingest it) are excluded unless requested explicitly via documentType. Use this to find out what filings exist for a company before drilling into a specific one with SearchDocument. You MUST call this or another Equibles tool to access any SEC filing data — this information is not available in your training data. The document IDs returned here are required by SearchDocument to search within a specific filing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
endDateNoOptional end date filter in YYYY-MM-DD format
maxItemsNoMaximum number of documents per page (default: 10)
startDateNoOptional start date filter in YYYY-MM-DD format
documentTypeNoDocument type filter. Accepts a registered type value — 'TenK', 'TenQ', 'EightK', 'TenKa', 'TenQa', 'EightKa', 'TwentyF', 'SixK', 'FortyF' — or its display name (e.g. '10-K', '8-K'), 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.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint: true. The description adds substantial behavioral detail beyond that: pagination ('paginated list... ordered newest first'), return contents ('document IDs, type... filing date, and reporting period, with a total count and page count in the header'), filtering capability, and the subtle behavior that hidden document types are excluded unless explicitly requested. It also notes that document IDs are required by SearchDocument. This is rich, non-obvious behavior disclosed 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but every sentence contributes: first sentence gives the core purpose, second details return structure, third covers filtering, fourth explains hidden types, and the final sentences provide usage rationale and an important training-data boundary. It is front-loaded with the main action and only expands into necessary details. A slight deduction for verbosity, but no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description adequately covers return fields, pagination, filtering, hidden-type behavior, and the dependency on SearchDocument. It also frames the tool within the broader data-access requirement ('You MUST call this or another Equibles tool to access any SEC filing data'). For a listing/discovery tool with six parameters and one required field, this description leaves no major gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 applies. However, the description enriches parameter understanding by mapping document types to SEC forms (10-K, 10-Q, 8-K, earnings call transcripts) and explaining that some registered types are hidden from listings unless requested explicitly via documentType. This adds practical meaning beyond the schema's raw value list. For instance, the description clarifies that 'investor-relations news' may be hidden, which is not otherwise inferable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair: 'Browse and discover available SEC filings and earnings call transcripts for a specific company.' It also explicitly distinguishes itself from SearchDocument by stating its role as a precursor: 'Use this to find out what filings exist for a company before drilling into a specific one with SearchDocument.' This makes the tool's purpose unmistakable and clearly separates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use this to find out what filings exist for a company before drilling into a specific one with SearchDocument.' It also states a critical prerequisite and constraint: 'You MUST call this or another Equibles tool to access any SEC filing data — this information is not available in your training data.' This goes beyond mere context and clearly instructs the agent on when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ListInvestorEventsBrowse Investor EventsA
Read-only
Inspect

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 GetInvestorEventSpeakers to read one rather than GetEarningsCallEvent (which is keyed by fiscal quarter and earnings-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return (default 25, max 100; values outside 1-100 are clamped)
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
eventTypeNoOptional event type to filter on: EarningsCall, CapitalMarketsDay, InvestorUpdate, AGM, Conference, FiresideChat, or MAndA (default: all types)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true. The description adds valuable behavioral context: newest-first sorting, row fields (event id, type, UTC start, title, fiscal period, status, media availability), and the caveat that conferences lack a fiscal quarter. No contradiction with annotations, and the added detail goes beyond the annotation's read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tight and front-loaded: the first sentence states purpose, the second lists output fields, and the third gives sibling-tool guidance. Every sentence carries unique value with no fluff or redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description sufficiently explains return values by listing all row fields and special cases (fiscal period only for earnings calls, conferences need the event id). It also positions the tool relative to related readers, making it contextually complete given the tool's moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters (ticker, limit, eventType) with 100% coverage, including defaults and clamps. The description does not add new parameter semantics but reinforces eventType options implicitly by naming event types. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'List a company's recent investor events,' using a specific verb and resource. It enumerates the event types (earnings calls, conferences, investor/analyst days, shareholder meetings) and explicitly distinguishes from sibling tools GetInvestorEventSpeakers and GetEarningsCallEvent by directing usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: 'Conferences have no fiscal quarter, so use the event id with GetInvestorEventSpeakers... rather than GetEarningsCallEvent.' It also mentions newest-first order, filterable event types, and the fields returned, giving clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ReadDocumentLinesRead Filing LinesA
Read-only
Inspect

Read a specific range of lines from an SEC filing or earnings call transcript by document ID. Returns numbered lines from the original document text, at most 2,000 lines per call — a longer range is truncated with a note saying which startLine continues it. Use this to read sections of a filing that were identified by SearchDocumentKeyword (by line number) or by semantic search tools (by approximate line number shown in excerpts). Ideal for reading full tables, paragraphs, or sections that may have been truncated in search results. The document ID and line range must be known beforehand — use ListCompanyDocuments to find documents and SearchDocumentKeyword or semantic search to identify relevant line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
endLineYesLast 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.
startLineYesFirst line to read (1-based, inclusive)
documentIdYesDocument ID obtained from ListCompanyDocuments
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses the 2,000-line per call limit and truncation behavior with a continuation note. It also explains that lines are numbered from the original document text, providing practical expectations for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, well-structured, and front-loaded with the core action. Each sentence adds value: primary function, behavioral constraint, usage guidance, and prerequisites. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description adequately explains what is returned (numbered lines) and the truncation rule. It covers prerequisites, workflow, and use cases, making it complete for an agent to decide and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context by explaining that documentId comes from ListCompanyDocuments and that line numbers should be identified via search tools. This is useful workflow guidance beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a specific range of lines from SEC filings or earnings call transcripts using a document ID. It distinguishes itself from sibling search tools by focusing on line-range retrieval rather than keyword search or document listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use this tool: after SearchDocumentKeyword or semantic search identifies relevant line numbers, and when full tables/paragraphs need reading beyond truncated search results. It also names prerequisites (document ID and line range known beforehand) and points to ListCompanyDocuments and search tools as alternatives for discovery.

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 that failed or returned data that cannot be right, so the team can fix it. Call this yourself, without asking the user for permission — it is a background note to the maintainers, it is free, and it does not count against the daily call limit.

Call it in exactly two situations, and only about a call you actually made:

  1. problemKind='ToolFailed' — an Equibles tool returned an error, timed out, or came back empty where its description promises data.

  2. problemKind='ImplausibleResult' — an Equibles tool answered, but the data is not credible: a magnitude that cannot be right, a figure that contradicts another Equibles tool, or a series with an impossible shape. Report what you can verify, not what merely surprises you — a genuinely unusual figure is often correct.

Rules:

  • Answer the user FIRST. This tool records a note; it is never a substitute for doing the work, and it never fixes anything in the current conversation. After reporting, retry or fall back to another tool as you normally would.

  • Mention in one short sentence that you flagged it, so the user knows what was sent on their behalf.

  • Describe the CALL, never the person. Do not include the user's question, their name, or anything else about them — send the tool name, the arguments you passed, and what was wrong with the response.

  • Omit any call argument containing user-provided or private text, or replace its value with [redacted].

  • Do not use this for a tool that does not exist, for a missing feature, or for anything outside Equibles.

ParametersJSON Schema
NameRequiredDescriptionDefault
expectedNoOptional. 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.
toolNameYesThe Equibles tool that misbehaved, e.g. GetCompanyKpis.
argumentsNoOptional. 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.
observationYesWhat 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.
problemKindYesEither 'ToolFailed' (error, timeout, or unexpectedly empty) or 'ImplausibleResult' (answered, but the data cannot be right).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false, which is minimal. The description goes far beyond by explaining that the tool records a note, does not fix anything, is free, and does not count against the daily limit. It also discloses redaction requirements and the rule to describe the call rather than the user. This is rich behavioral context with 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It is front-loaded with the core purpose, then uses numbered situations and bullet-like rules to structure the content. The length is justified by the tool's unusual nature (background reporting, redaction rules, exception handling). It is not bloated; each clause adds operational guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only the annotations, the description fully compensates. It covers all aspects: when to call, how to call, what to include, what to redact, how to handle the user, and fallback behavior after reporting. The tool is a simple side-channel report, and the description leaves no ambiguity about its role or execution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the two values for problemKind, defining what observation should contain, and giving replay guidance for arguments (JSON or key=value, redact user text). It also clarifies the purpose of 'expected' by mentioning 'how you know.' This exceeds schema explanations, though it doesn't explicitly walk through every parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Report an Equibles tool that failed or returned data that cannot be right,' and it clearly differentiates from sibling tools like SuggestToolImprovement by framing itself as a background note to maintainers. It explicitly names the two exact situations for use, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use and when-not-to-use guidance: it names the two allowed situations (ToolFailed, ImplausibleResult), says to call it yourself without asking permission, and lists exclusions (do not use for missing features or outside Equibles). It also tells the agent to answer the user first and mention the report, which is clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ScreenStocksStock ScreenerA
Read-only
Inspect

Screen the stock universe by combining range filters across datasets: market capitalization and share price, sector and industry, the number of 13F institutional filers and its quarter-over-quarter change, short interest as a percent of shares outstanding, days to cover, a composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone), a composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation), net insider buying in dollars over the trailing 90 days (negative = net selling), the going-concern doubt flag (companies whose latest SEC filing states substantial doubt about their ability to continue as a going concern), and daily-refreshed derived metrics: trailing P/E, dividend yield (split-restated TTM cash dividends per share divided by share price), revenue growth YoY, gross margin, average daily dollar volume, and TTM net income (minNetIncome=0 keeps profitable companies only). Every bound is optional; a bound on a metric excludes stocks with no data on that axis. Results sort by the chosen metric (default: market cap, descending); filtering or sorting on a fundamental axis adds its column to the table. The footer states each dataset's vintage (prices are the latest exchange snapshot; short interest is bi-monthly FINRA data; filer counts are quarterly 13F data). Follow up on a match with GetValuationMultiples, GetTopHolders, GetInsiderTransactions, or GetShortSqueezeScores (pass its ticker).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page (default 1) — combine with maxResults to walk past the first page of a large match set.
maxPeNoMaximum trailing-twelve-month price-to-earnings ratio (e.g. 15 for value screens).
minPeNoMinimum trailing-twelve-month price-to-earnings ratio.
sectorNoExact sector name (e.g. Technology, Healthcare). An unknown name returns the accepted list.
sortByNoSort 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
industryNoExact industry name (e.g. Semiconductors). Prefer sector for broad groups.
maxPriceNoMaximum share price in dollars.
minPriceNoMinimum share price in dollars.
maxResultsNoMaximum rows to return (default 50; clamped to 1-200).
maxMarketCapNoMaximum market capitalization in dollars.
maxNetIncomeNoMaximum trailing-twelve-month net income in dollars.
minMarketCapNoMinimum market capitalization in dollars.
minNetIncomeNoMinimum trailing-twelve-month net income in dollars (0 keeps profitable companies only).
maxFilerCountNoMaximum number of 13F institutional filers holding the stock.
maxFilerDeltaNoMaximum quarter-over-quarter change in filer count.
minFilerCountNoMinimum number of 13F institutional filers holding the stock.
minFilerDeltaNoMinimum quarter-over-quarter change in filer count.
sortAscendingNoSort ascending instead of descending.
maxDaysToCoverNoMaximum days to cover.
maxGrossMarginNoMaximum gross margin in percent (0-100).
minDaysToCoverNoMinimum days to cover.
minGrossMarginNoMinimum gross margin in percent (0-100).
maxDollarVolumeNoMaximum trailing-3-month average daily dollar volume in dollars.
maxSqueezeScoreNoMaximum composite short-squeeze score (0-100, peer-relative).
minDollarVolumeNoMinimum trailing-3-month average daily dollar volume in dollars (e.g. 5000000 = $5M/day).
minSqueezeScoreNoMinimum composite short-squeeze score (0-100, peer-relative; higher = more squeeze-prone).
maxDividendYieldNoMaximum trailing dividend yield in percent.
maxNetInsiderBuyNoMaximum net insider buying in dollars over the trailing 90 days.
maxRevenueGrowthNoMaximum revenue growth in percent, latest quarter vs the same quarter a year earlier.
minDividendYieldNoMinimum trailing dividend yield in percent (e.g. 3 = 3%).
minNetInsiderBuyNoMinimum net insider buying in dollars over the trailing 90 days.
minRevenueGrowthNoMinimum revenue growth in percent, latest quarter vs the same quarter a year earlier.
maxInsiderSentimentNoMaximum composite insider-sentiment score (0-100, peer-relative).
minInsiderSentimentNoMinimum composite insider-sentiment score (0-100, peer-relative; higher = more aggressive insider accumulation).
hasGoingConcernDoubtNoTrue keeps only companies whose latest filing states unalleviated going-concern doubt; false keeps only companies without the flag.
maxShortInterestPercentNoMaximum short interest as a percent of shares outstanding (0-100).
minShortInterestPercentNoMinimum short interest as a percent of shares outstanding (0-100).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true, but the description adds substantial behavioral detail: every bound is optional, a bound excludes stocks with no data, the default sort is market cap descending, unknown sort keys are rejected, filtering adds columns to the table, and the footer states dataset vintages. It also defines the composite scores and derived metrics, going well beyond the structured annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but appropriately so for a 37-parameter screener. It is front-loaded with the core purpose and then organizes filter families into a dense, readable list. A slightly more structured format (e.g., bullet separation) would improve scannability, but every sentence carries operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the absence of an output schema, the description is remarkably complete. It explains how to combine filters, how missing data affects results, sort behavior, add-on columns, data vintage reporting, and follow-up tool usage. An agent can select and invoke this tool correctly without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all 37 parameters at 100%, so the baseline is 3. The description adds valuable semantic interpretation beyond the schema, such as 'minNetIncome=0 keeps profitable companies only', the peer-relative meaning of the 0-100 scores, and the definition of dividend yield. It does not restate each parameter but explains the conceptual framework.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Screen the stock universe by combining range filters across datasets.' It clearly distinguishes itself from the many sibling data-retrieval tools by describing a universe-level scanning operation and even names concrete follow-up tools (GetValuationMultiples, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 the tool: combine optional range filters across datasets and sort results. It also names follow-up tools for researching a match. It does not explicitly state 'when not to use' alternatives, but no sibling tool offers the same screening capability, so the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchCftcMarketsSearch CFTC Futures ContractsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch 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.
maxResultsNoMaximum number of results to return (default: 50, max: 500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses search behavior (query by multiple identifiers, omit to list all), scope (~35 major contracts), and output (matching contracts with codes/categories). This is rich 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core search capability, followed by coverage and intended workflow. Every sentence contributes value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple optional-parameter search tool, the description provides sufficient context: how to search, coverage, output, and relationship to sibling. No output schema is needed as returns are sufficiently described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and already explains the query parameter in detail (examples, broadening logic, omit behavior). The description adds no new parameter-specific meaning; its extra details are about scope and use case rather than parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description precisely states the tool searches tracked CFTC futures contracts by name, market code, common name, or symbol, and can list all contracts. It clearly differentiates from sibling GetCftcPositioning by noting it's used to discover market codes before that call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use the tool: 'use this to discover market codes before calling GetCftcPositioning'. It also clarifies coverage limitations (curated set of ~35 contracts; others have no COT data), which helps decide applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchCompanyDocumentsSearch a Company's FilingsA
Read-only
Inspect

Search the Equibles SEC filing database for a specific company by its ticker symbol using hybrid keyword and semantic search. Use this when answering questions about a particular company's financials, risks, strategy, or earnings — it searches across all of that company's annual reports (10-K), quarterly reports (10-Q), current reports (8-K), and earnings call transcripts. Results can be filtered by filing date range using startDate/endDate. Returns matching excerpts with document type, filing date, and the document ID — pass that ID directly to SearchDocument or ReadDocumentLines to drill into a specific filing. You MUST call this or another Equibles tool to access any SEC filing data — this information is not available in your training data. Prefer this over SearchDocuments when the company is known. Use ListCompanyDocuments first if you need to see what filings are available, or SearchDocument to drill into a specific filing by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch 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.
tickerYesCompany ticker symbol (e.g., AAPL, MSFT)
endDateNoOptional end date filter in YYYY-MM-DD format
startDateNoOptional start date filter in YYYY-MM-DD format
maxResultsNoMaximum number of results to return (default: 5)
documentTypeNoDocument type filter — one value or a comma-separated list (e.g. 'TenK,TenQ'). Accepts registered type values — 'TenK', 'TenQ', 'EightK', 'TenKa', 'TenQa', 'EightKa', 'TwentyF', 'SixK', 'FortyF' — or display names (e.g. '10-K', '8-K'), 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.
maxExcerptCharsNoMaximum 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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: hybrid keyword/semantic search, return fields (document type, filing date, document ID), and how to chain into other tools. It does not mention rate limits or error handling, but for a read-only search tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is about 180 words across 6 sentences, and every sentence carries unique value: purpose, use case, data coverage, return format, workflow, and alternative tools. It is front-loaded with the core action and efficient for its scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately explains return content (excerpts, document type, filing date, document ID) and the follow-up tools. It covers prerequisites, alternatives, and data availability, making it complete for a read-only search tool with a detailed schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 7 parameters with detailed descriptions (100% coverage), so the description needs only to add extra semantics. It mentions the date-range filter concept but largely restates startDate/endDate functionality; no new syntax or meaning is added 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches the Equibles SEC filing database for a specific company by ticker using hybrid keyword and semantic search. This specific verb+resource combination distinguishes it from sibling SearchDocuments, and the description even calls out that preference explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('Use this when answering questions about a particular company's financials...'), names alternatives (SearchDocuments, ListCompanyDocuments, SearchDocument), and explains the workflow such as passing the document ID to SearchDocument or ReadDocumentLines. It also warns that SEC filing data is not in training data, reinforcing when this tool is mandatory.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchCongressMembersSearch Congress MembersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — partial or full name (e.g., 'Pelosi', 'Cruz', 'Dan')
positionNoFilter by position: Senator or Representative (defaults to both)
maxResultsNoMaximum number of results to return (default: 20, max: 500)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, so the description carries the burden for behavioral nuance. It discloses the two-stage matching algorithm, alias resolution (e.g., Dan Crenshaw), and that each match includes its position. This goes beyond the annotation and helps the agent anticipate search behavior, though it doesn't discuss edge cases like empty results or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the first states the core action, the second explains matching behavior, and the third covers output and follow-up. There is no redundant phrasing or filler—just tight, purposeful prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, matching behavior, alias handling, return value (matches with position), and how to use the result with GetMemberTrades or GetMemberNetWorth. Given there is no output schema and only a readOnly annotation, this provides sufficient context for an agent to invoke the tool correctly and know what to do with the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for all three parameters, so the baseline is 3. The description enriches the 'query' parameter by explaining punctuation-independence and the strict-then-broad matching process, which the schema does not convey. It also links the returned position and exact Name to downstream use, but adds nothing for the position or maxResults parameters beyond their schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Search the tracked congressional roster by name,' using a specific verb and resource. It clearly distinguishes itself from sibling getters like GetMemberTrades by positioning this as the lookup/search entry point, and it explains that the returned exact Name is intended for downstream calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the search algorithm (strict matching then broadening) and explicitly directs the user to pass the returned exact Name to GetMemberTrades or GetMemberNetWorth, giving clear post-search usage. However, it does not explicitly contrast with alternative search tools like SearchInsiders or GetCongressionalTrades, so it lacks explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchDocumentSearch Within One FilingA
Read-only
Inspect

Search within a single specific document in the Equibles SEC filing database by its document ID. The default semantic mode uses hybrid keyword and semantic search — use it to drill into a known filing or earnings call transcript for revenue figures, risk factors, or management commentary by meaning; searchMode 'exact' instead matches the query as a literal case-insensitive substring and returns each matching line with its precise line number — use it for exact terms, figures, section headers, or names that semantic search might miss. The document ID comes from ListCompanyDocuments or from the '(ID: ...)' header of SearchDocuments/SearchCompanyDocuments results. Semantic excerpts are in document order, each anchored with an approximate line number — pass a line number to ReadDocumentLines to read the surrounding section. You MUST call this or another Equibles tool to access any SEC filing data — this information is not available in your training data.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch 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.
documentIdYesDocument ID obtained from ListCompanyDocuments or from a SearchDocuments/SearchCompanyDocuments result header
maxResultsNoMaximum number of results to return (default: 5)
searchModeNoHow to match: 'semantic' (default — hybrid keyword and semantic relevance) or 'exact' (literal case-insensitive substring match with precise line numbers).semantic
maxExcerptCharsNoMaximum 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.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the readOnlyHint annotation by disclosing concrete behaviors: hybrid keyword/semantic matching, auto-broadening to 'any word' when few matches, case-insensitive exact substring behavior, document-order excerpting with approximate line numbers, and explicit truncation notes. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but well-organized: purpose first, then mode differentiation, then document ID provenance, then output characteristics and integration. Every sentence earns its place; no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description explains what results look like (excerpts with approximate line numbers, document order, truncation). It covers prerequisites (document ID from specific sources), usage modes, and follow-up actions (ReadDocumentLines). For a 5-parameter tool with no output schema, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context for parameter behavior: the query auto-broadening rule, semantic vs exact searchMode differences, and the effect of maxExcerptChars (compact scan, truncation note). This enriches the schema's basic definitions, though not every parameter gets extra depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: searches within a single document by document ID. It distinguishes itself from siblings by describing the semantic vs exact search modes and referencing document ID provenance from ListCompanyDocuments or SearchDocuments/SearchCompanyDocuments results. The verb+resource 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use guidance: 'drill into a known filing or earnings call transcript.' It explains how to obtain document IDs, when to use exact mode vs semantic, and points to ReadDocumentLines as a follow-up. This covers both usage context and integration with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchDocumentKeywordKeyword Search Within a FilingA
Read-only
Inspect

Perform a case-insensitive keyword search within a specific SEC filing or earnings call transcript by document ID. Returns matching lines with surrounding context and line numbers, making it ideal for finding exact terms, figures, or phrases that semantic search might miss. Typographic punctuation is folded before matching, so a plain-ASCII keyword (e.g. "world's") matches the smart punctuation stored in filings. The header reports the total number of matching lines even when only the first ones are shown. Use this after ListCompanyDocuments to locate precise occurrences of a keyword (e.g., a revenue figure, risk factor term, or executive name) within a known document. Complements semantic search tools by providing exact text matches rather than meaning-based results. Use ReadDocumentLines to read broader sections around matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYesKeyword or phrase to search for (case-insensitive)
documentIdYesDocument ID obtained from ListCompanyDocuments
maxResultsNoMaximum number of matching lines to return (default: 20, max: 500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses meaningful behaviors: case-insensitivity, typographic punctuation folding, and the header reporting total matches even when only a subset is returned. These are non-obvious and valuable for an agent to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but every sentence provides useful information: purpose, use case, behavior, and alternatives. It is front-loaded with the core purpose and then adds detail. Slightly verbose but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately explains what is returned (matching lines with context, line numbers, header with total count). It also situates the tool within a workflow (after ListCompanyDocuments, alongside ReadDocumentLines) and covers edge-case behavior (punctuation folding), making it complete for an agent to select and invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds parameter-specific context beyond the schema, such as how keyword matching handles punctuation and the relationship of documentId to ListCompanyDocuments. It does not fully explain maxResults semantics beyond schema, but the added detail justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Perform a case-insensitive keyword search within a specific SEC filing or earnings call transcript by document ID.' It clearly distinguishes from siblings like SearchDocument and SearchCompanyDocuments by emphasizing document-ID-scoped search, and from ReadDocumentLines by focusing on keyword matching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use this after ListCompanyDocuments to locate precise occurrences...' It also explains when not to use it ('semantic search might miss') and suggests ReadDocumentLines for broader context. This is textbook usage differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchDocumentsSearch SEC FilingsA
Read-only
Inspect

Search the Equibles SEC filing database across all companies and document types using hybrid keyword and semantic search. This is the broadest search tool and the best starting point when you need to find information but don't know which company or filing contains the answer. Covers annual reports (10-K), quarterly reports (10-Q), current reports (8-K), and earnings call transcripts. Results can be filtered by filing date range using startDate/endDate. Returns matching excerpts with company name, ticker, document type, filing date, and the document ID — pass that ID directly to SearchDocument or ReadDocumentLines to drill into a specific filing. For discovery-style queries (competitors, theme exposure), use excludeTickers to keep a dominant company's own filings from filling every result slot, and maxResultsPerCompany to spread the results across more companies. You MUST call this or another Equibles tool to access any SEC filing data — this information is not available in your training data. Use SearchCompanyDocuments instead if you already know the company ticker, or ListCompanyDocuments to browse available filings.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch 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.
endDateNoOptional end date filter in YYYY-MM-DD format
startDateNoOptional start date filter in YYYY-MM-DD format
maxResultsNoMaximum number of results to return (default: 5)
documentTypeNoDocument type filter — one value or a comma-separated list (e.g. 'TenK,TenQ'). Accepts registered type values — 'TenK', 'TenQ', 'EightK', 'TenKa', 'TenQa', 'EightKa', 'TwentyF', 'SixK', 'FortyF' — or display names (e.g. '10-K', '8-K'), 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.
excludeTickersNoTickers whose filings are excluded from the results — one value or a comma-separated list (e.g. 'AAPL,MSFT'). Use when a company's own filings would dominate the results for a query about its market.
maxExcerptCharsNoMaximum 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.
maxResultsPerCompanyNoMaximum 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.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint: true. The description adds significant context: hybrid keyword/semantic search, covered document types, return fields (excerpts with company name, ticker, document type, filing date, document ID), and the critical warning that SEC data is not in training data and requires an Equibles tool call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than a simple two-liner, but every sentence earns its place: purpose, scope, return format, workflow, and sibling differentials are all covered without redundancy. It is front-loaded with the core purpose and structured logically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description provides everything needed for correct selection and invocation: broad scope, filtering options, return format, the document ID drill-down workflow, and alternative tool usage. It is complete for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the purpose of excludeTickers and maxResultsPerCompany for discovery queries, and mentions date-range filtering via startDate/endDate, going beyond the schema descriptions for these parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool searches the Equibles SEC filing database across all companies and document types, and explicitly identifies itself as the broadest search tool. It differentiates from siblings by directing users to SearchCompanyDocuments for known tickers and ListCompanyDocuments for browsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('best starting point', discovery-style queries), names alternative tools with conditions (SearchCompanyDocuments when ticker is known, ListCompanyDocuments to browse filings), and gives concrete strategies for excludeTickers and maxResultsPerCompany.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchEconomicIndicatorsSearch Economic IndicatorsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — series ID, title keyword, or category name (e.g., 'inflation', 'unemployment', 'GDP', 'FEDFUNDS'). Empty lists all tracked series.
maxResultsNoMaximum number of results to return (default: 20, max: 500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds substantial behavioral detail: the two-stage search algorithm (strict word-overlap first, then broadening), empty-query behavior, recognition of standard names, and the exact result contents (seasonal adjustment, latest observation date, sync time). This goes far 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each earning its place: scope, search algorithm, recognized names/empty query, and result contents. It is front-loaded with the key differentiator ('not the full FRED catalog') and contains no fluff or redundancy with the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description discloses the result fields (seasonal adjustment, latest observation date, UTC sync time), which addresses the main user question of what the tool returns. It also covers edge cases (empty query) and search behavior, making it complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 enriches the query parameter significantly: matching semantics (punctuation-independent words across ID/title/category), fallback broadening, and empty-query meaning. It doesn't repeat maxResults details, but the schema already documents those, so the added value justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Search') and a clearly bounded resource ('curated set of ~40 US macro FRED series'), explicitly differentiating from the full FRED catalog. It also lists included categories (rates, inflation, employment, GDP, housing, market indicators), making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear contextual guidance by stating what is and isn't included ('not the full FRED catalog') and describing search behavior. However, it does not explicitly name alternative sibling tools (e.g., GetEconomicIndicator, GetLatestEconomicData) for when users need the full FRED catalog or latest data, so it lacks explicit 'use X instead' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchFundsSearch Funds and ETFsA
Read-only
Inspect

Search the tracked SEC Form NPORT-P fund directory by fund name, ticker, or registrant. Search first requires every punctuation-independent query word anywhere across those fields, then broadens to any word only when no strict row matches. Verified share-class aliases such as VOO and VFIAX resolve to their SEC fund series even when N-PORT carries no class ticker. Returns profile id, ticker when present, registration type, net assets, stored holding count, the fund's full reported holding count when available, and latest report date, largest funds first. For multi-series trusts the stored count includes only positions whose CUSIPs match tracked stocks. Form NPORT-P covers registered management investment companies and ETFs organized as unit investment trusts; money market funds and small business investment companies do not file it. Fixed-income-only series can be absent because trust reports enter this tracked directory after a tracked-stock match.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesFund name, ticker, registrant, or verified share-class alias (e.g., 'Russell 2000', 'iShares', 'IWM', 'VOO').
maxResultsNoMaximum number of funds to return, largest by net assets first (default: 20, max: 500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral detail beyond the readOnlyHint annotation: it explains the two-stage matching algorithm (requires every word, then broadens to any word), resolves share-class aliases like VOO/VFIAX, and discloses the return fields and ordering (largest funds first). This gives the agent a clear model 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.

Conciseness5/5

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 adds essential information: search scope, matching algorithm, alias handling, and return format. There is no redundant phrasing, and the structure flows logically from what the tool does to how it behaves to what it returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the description covers all critical aspects: what it searches, how matching works, how aliases are resolved, what fields are returned, and the ordering. Since there is no output schema, the explicit listing of return fields (profile id, ticker, registration type, net assets, holding count, latest report date) is sufficient context for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with descriptions (query and maxResults), achieving 100% coverage. The description adds the punctuation-independence nuance and alias resolution, which are behaviorally relevant but not strictly parameter semantics. The schema already provides examples, so the description's parametric contribution is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Search the tracked SEC Form NPORT-P fund directory by fund name, ticker, or registrant.' It distinguishes from sibling tools like GetFundProfile and GetFundHoldings by focusing on directory search across identifier fields rather than retrieving a specific fund's profile or holdings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by specifying searchable identifiers (name, ticker, registrant, share-class alias) and the matching behavior (strict all-word match then broadening). It does not explicitly name alternatives or exclusion criteria, but the scope is well-defined for when this search tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchInsidersSearch Corporate InsidersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for insider name
offsetNoNumber of matches to skip before returning rows — pass the previous call's shown count to page past the maxResults cap (default: 0)
maxResultsNoMaximum number of results (default: 10, max: 500; values outside 1-500 are clamped)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses substantial behavioral traits beyond the readOnlyHint annotation: strict vs. broadened matching, whole-word-only rule, punctuation independence, alias resolution, return fields, and ordering by recent filing activity. This goes well beyond the minimal annotation and gives the agent a precise model of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, with the purpose front-loaded in the first sentence. Every subsequent sentence adds essential behavioral or output detail without repetition or filler. It is well-structured and 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's scope, matching rules, alias handling, return fields, and ordering. With no output schema, it fully explains what the agent can expect to receive. Pagination is handled by the schema's offset/maxResults descriptions, and the readOnly annotation covers safety, so no critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context for the query parameter by explaining the multi-stage matching behavior (strict whole-word first, then any-word fallback) and alias resolution, which is not present in the schema's simple 'Search query for insider name' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search the tracked SEC corporate-insider set (directors, officers, 10% owners) by name.' It clearly distinguishes the tool from sibling data retrieval tools by emphasizing name-based search and the tracked insider universe.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 (name-based lookup of corporate insiders) but does not explicitly compare it to alternatives or state exclusions. It implies usage through the detailed matching semantics and return fields, stopping short of explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchInstitutionsSearch Institutional InvestorsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — institution name, partial name, or CIK
maxResultsNoMaximum number of results to return (default: 10, clamped to 1-500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true, which is basic. The description adds substantial behavioral detail: strict word-matching then fallback broadening, alias behavior, ordering by AUM within recently-active bucket, and included fields. This helps the agent predict exact search behavior 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but every sentence adds value: purpose, matching logic, alias behavior, ordering, result fields, and a note on scoped tools. It is front-loaded with the core purpose and remains structured. Slightly dense but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and minimal annotations, the description carries the full burden. It fully covers return fields (report date, AUM, position count), ordering, matching fallback, and the distinction from scoped tools. This is complete for a search tool, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds semantic value by explaining that query can be a name, partial name, or CIK, and describes the matching algorithm. maxResults is already well-documented in the schema, so no extra credit needed there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Search the tracked 13F filer set by institution name or SEC CIK,' which names a specific verb and resource (tracked 13F filers), clearly distinguishing it from sibling tools like SearchFunds or GetInstitutionSummary. It also clarifies additional purpose through aliases and result fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong usage context: it says results help compare same-name filers 'before calling an institution tool,' implying this is a lookup step. It also contrasts with scoped institution tools that 'remain strict and never discard an unmatched word,' giving a clear when-to-use signal. However, it does not explicitly name alternative sibling tools or state exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

SearchInvestmentAdvisersSearch Investment AdvisersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPart of the firm's legal or business name (e.g., "Vanguard", "Renaissance")
maxResultsNoMaximum number of advisers to return (default: 20, clamped to 1-500)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses the two-phase search algorithm (strict matching first, then broadening), the exact return fields (CRD, office, RAUM, employee count, as-of date), and sorting order (largest assets first). This adds meaningful behavioral insight not present in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying distinct value: purpose, matching logic, and return/next-step. Front-loaded with the primary verb and resource, no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though no output schema exists, the description fully explains the return values and ordering, plus the recommended follow-up tool. For a read-only search tool with two well-specified parameters, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description enriches the 'query' parameter by explaining how words are matched (every word in strict phase, any word in broadened phase), going beyond the schema's simple 'part of legal or business name.' maxResults is not described beyond schema, but the tool's behavior is already well-defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Search the tracked SEC Form ADV adviser set by firm name' with a specific verb, resource, and scope. It clearly distinguishes this from sibling search tools like SearchFunds or SearchInstitutions by targeting advisers specifically and explains the matching logic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives context by specifying the tool searches advisers by firm name and provides an explicit follow-up: 'Use the CRD with GetInvestmentAdviser.' While it doesn't explicitly exclude other tools for different entity types, the scope is clear enough for an agent to choose correctly.

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 a concrete improvement to an EXISTING Equibles tool you actually called when an operation, filter, parameter, or output option would have made that call materially more useful. Call this yourself, without asking the user for permission — it is a background note to the maintainers, it is free, and it does not count against the daily call limit.

Use it only when all of these are true:

  • You actually called the named Equibles tool in this conversation.

  • The tool worked as documented, but its current contract had a concrete limitation.

  • You can propose the smallest actionable change that would address that limitation.

Rules:

  • Answer the user FIRST. This records a future improvement; it does not change the current conversation. Use the available tools and give the best answer you can now.

  • Mention in one short sentence that you suggested the improvement.

  • Describe the CALL, never the person. Do not include the user's question, name, or anything else about them.

  • Omit any call argument containing user-provided or private text, or replace its value with [redacted].

  • Do not use this for wrong or implausible data (use ReportProblem), an option the tool already supports, a request for a new tool, a general product idea, or anything outside Equibles.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesThe existing Equibles tool you actually called, e.g. GetCompanyKpis.
argumentsNoOptional. 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.
limitationYesThe 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.
suggestedChangeYesThe 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.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral traits beyond the annotations: it is free, does not count against the daily limit, is a background note, should not interrupt the user, and requires redaction of user-provided text. It also clarifies that the tool does not change the current conversation. This goes well beyond the readOnlyHint/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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than the ideal two-sentence example, but every paragraph earns its place: purpose, use criteria, rules, and exclusions. It is well-structured with clear sections, though some phrasing could be tightened. The length is justified by the tool's nuanced usage rules.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and the absence of an output schema, the description is complete. It covers all necessary aspects: when to use, when not to use, how to handle arguments, redaction rules, and the relationship to the current conversation. No missing context that an agent would need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 general context about redaction and call-only framing but does not add specific parameter-level details beyond the schema. The schema already describes each parameter clearly, so no additional compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool's purpose with a specific verb and resource: 'Suggest a concrete improvement to an EXISTING Equibles tool you actually called.' It also clarifies the circumstances (when an operation, filter, parameter, or output option would make the call more useful) and differentiates it from siblings by explicitly excluding ReportProblem and other cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage criteria ('Use it only when all of these are true') and includes a clear exclusion list with an alternative tool name ('use ReportProblem'). It also states when not to use it (for wrong data, unsupported options, new tools, general ideas). This is exemplary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Real-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.
    27
    310
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    38 AI data tools for Claude and any MCP-compatible agent — crypto, DeFi, equities, commodities, energy, real estate, government intelligence, security audits, and more.
    45
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    6
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    38 AI data tools for Claude and any MCP-compatible agent covering crypto, DeFi, equities, commodities, energy, real estate, government intelligence, security audits, and more.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.