Skip to main content
Glama

Finbolt

Server Details

SEC-filed company financials with filing citations, plus market data, for AI agents

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.2/5.0

Scored across 23 tools

Disambiguation3/5

Two parallel families of financial-statement tools coexist: the SEC-filing-based `financials`/`get_fact` pair and the generic `fetch_income_statement`/`fetch_balance_sheet`/`fetch_cash_flow` trio, so an agent could easily pick the wrong one. `analyze_stock` and `fetch_company_overview` also both promise a consolidated company snapshot, and `fetch_quote` overlaps with the latest bar from `fetch_time_series_daily`. Most technical indicators and the meta-tools (find vs run) are cleanly separable.

Naming Consistency3/5

Roughly half the tools use a uniform `fetch_<noun>` prefix, but the rest mix bare verbs (`analyze_stock`, `compare_stocks`, `get_fact`, `find_tool`, `run_tool`, `search_endpoint`) and one bare noun (`financials`), plus singular/plural drift (`fetch_quote` vs `compare_stocks`). The pattern is readable but not predictable enough to guess a name.

Tool Count3/5

23 tools plus a gateway to 113 more is on the heavy side for a stock-research server; the five near-duplicate statement tools alone inflate the surface. Each individual indicator (RSI, MACD, EMA, SMA, BBANDS) arguably earns its place, but the layered generic-vs-SEC statement families feel redundant.

Completeness4/5

Coverage is broad: quotes, OHLCV at three granularities, five technical indicators, income/balance/cash-flow/earnings statements, company overview, news sentiment, FX, and cited SEC facts with restatements, plus `find_tool`/`run_tool` to reach the extended catalog. Only niche gaps (options chains, insider/institutional flows) remain, and the escape hatches let agents work around them.

Available Tools

23 tools
analyze_stockAInspect

One-call stock brief. filed holds fundamentals from SEC filings (TTM revenue and growth, gross and operating margin, net income, free cash flow, net debt; for banks net revenue, net interest income, efficiency ratio, PPNR, provisions, loans, deposits, ROE, ROTCE and tangible book; for broker-dealers efficiency ratio, pretax margin, compensation ratio and ROE; for insurers total revenues, premiums earned, net investment income, benefits and losses, a simple combined ratio for P&C insurers, ROE, and book value per share with and without AOCI), each filing cited by accession in sources.edgar (https://www.sec.gov/Archives/edgar/data/{cik}/{accession without dashes}/). A balance input the newest filing omits comes from the latest filing within 15 months, dated in inputs_as_of. market holds delayed price, 52-week range, 50/200-day averages and RSI(14); derived holds market cap, P/E (on filed diluted EPS LTM), P/B and P/TBV (insurers: P/B and P/B ex-AOCI), each with its inputs. A figure that couldn't be computed is in gaps with its reason; lines that don't apply to the company's layout are left out (layout_note). Up to 4 descriptive observations, including any quarter whose tax rate or non-operating income moves net income. News sentiment on Pro. Start here for "tell me about X".

NameRequiredDescriptionDefault
symbolYesStock ticker, e.g. 'AAPL'

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

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

With no annotations, the description carries the full disclosure burden and does so thoroughly: it documents SEC filing sourcing, accession citations, delayed market data, 15-month fallback logic, gap reporting, layout omission notes, and Pro-gated sentiment. This gives the agent unusually good visibility into data provenance, staleness, and incomplete-output behavior.

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

Conciseness3/5

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

The lead sentence is well front-loaded, but the body becomes a dense run-on parenthetical enumerating many filing metrics. Much of that return detail is already covered by the output schema, though some behavioral details such as fallback logic and gaps are worth keeping.

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 complex aggregate tool with an output schema, the description is quite complete about data sources, fallback behavior, gaps, and observations. Its main missing context is explicit sibling-tool routing, which is only partially addressed by 'Start here'.

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?

There is only one parameter and schema description coverage is 100%, so the schema already defines 'symbol' as a stock ticker. The description adds no additional symbol semantics or input constraints beyond that baseline.

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 defines an aggregate stock brief covering fundamentals, market data, derived metrics, gaps, and observations. It implicitly distinguishes itself from granular fetch_* siblings with 'One-call stock brief' and 'Start here for tell me about X', though it does not name specific alternatives.

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 closing phrase 'Start here for "tell me about X"' gives a clear entry-point use case. It does not explicitly describe when to use compare_stocks or the individual fetch_* tools instead, so exclusions are absent.

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

compare_stocksAInspect

Side-by-side comparison of 2-6 stocks as one table: TTM revenue and growth, pretax margin, net income growth and diluted EPS growth from SEC filings (each row's window ends on its ttm_to), net debt for standard layouts, delayed price, day change, distance from the 52-week high and trend, market cap, and P/E on filed diluted EPS LTM (FY + YTD - prior YTD). order lists each filed figure highest first, P/E lowest first. comparability says what revenue means per layout; cell_notes say what moves a figure. Filings are cited by accession in sources.edgar: open https://www.sec.gov/Archives/edgar/data/{cik}/{accession without dashes}/.

NameRequiredDescriptionDefault
symbolsYes2 to 6 tickers, e.g. ['NVDA', 'AMD']

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the data provenance (SEC filings, accession citations), that price is delayed, that each row's window ends at its own ttm_to, and how P/E is derived (FY + YTD − prior YTD). It still omits failure behavior — what happens when a ticker has no filings or an unsupported layout ('net debt for standard layouts' is left as a riddle) and whether calls are throttled.

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?

Content is front-loaded: the table scope arrives in the first clause, followed by metrics, then output semantics, then citation mechanics. It is a dense single paragraph, but essentially every clause carries information and no sentence is 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?

A rich output schema exists, so return values need no explanation, yet the description still usefully explains how to read the output (order sorting directions, comparability per layout, cell_notes, sources.edgar). The gaps are the undefined 'standard layouts' case and no word on tickers lacking SEC filings.

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 and schema coverage is 100%, so the schema already documents 'symbols' with its 2-to-6 ticker constraint. The description restates the same 2-6 bound with no extra syntax, error, or ordering guidance, so this sits at the schema-driven 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?

Names a specific verb and resource — 'side-by-side comparison of 2-6 stocks as one table' — then enumerates exactly which figures the table contains (revenue, margins, EPS growth, net debt, price, 52-week distance, market cap, P/E). That scope cleanly separates it from single-stock siblings like analyze_stock and from raw feeds like fetch_quote or fetch_income_statement.

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 multi-symbol table framing implies when to reach for it (comparative screening rather than a single name), but the description never states that explicitly and never names an alternative such as analyze_stock or financials. Nor does it say when not to use it, e.g. above six tickers.

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

fetch_balance_sheetBInspect

Fetch annual and quarterly balance sheet data including assets, liabilities, shareholders' equity, and other financial position metrics.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly bala…

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It usefully discloses that both annual and quarterly periods are returned, but says nothing about the data source, behavior on invalid tickers, empty results, or response shape. 'Fetch' implies a read-only operation, but that is only inferred.

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?

A single front-loaded sentence that leads with the verb and resource. The trailing phrase 'and other financial position metrics' is mildly redundant but not wasteful enough to undermine 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?

For a one-parameter read tool with no output schema and no annotations, the description covers the essential scope: what data is returned and in which periods. The main gap is the absence of any safety or error-behavior context, which matters more given no annotations.

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?

With only one parameter at 100% schema description coverage, the schema already documents the ticker symbol with examples. The description adds no format constraints or edge cases (e.g., exchange suffixes) beyond what the schema states, so the baseline of 3 applies.

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?

A specific verb (fetch) and resource (balance sheet) with an enumeration of returned data categories (assets, liabilities, equity). It is distinguishable from siblings like fetch_income_statement and fetch_cash_flow by resource name, though it never explicitly contrasts itself with them.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus fetch_income_statement, fetch_cash_flow, or financials, nor any prerequisites such as ticker validity or market coverage. The agent must infer usage purely from the tool name.

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

fetch_bbandsBInspect

Fetch Bollinger Bands technical indicator time series with upper band, lower band, and middle line (SMA).

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Bollinger Bands
nbdevdnNoNumber of standard deviations for lower band (typically 2)
nbdevupNoNumber of standard deviations for upper band (typically 2)
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').
intervalYesTime interval for data points.
start_dateNoOptional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').
series_typeNoPrice data to use for calculation.close
time_periodNoNumber of periods for moving average calculation (typically 20)
max_data_pointsNoMaximum number of time series data points to return.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the shape of the returned series (upper/lower/middle bands), which is valuable since there is no output schema, but says nothing about data source, whether values are computed or fetched, error behavior, 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?

A single front-loaded sentence that names the operation and its return components with zero filler. Nothing could be removed without losing information.

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

Completeness2/5

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

For a 10-parameter tool with no annotations and no output schema, this is thin. It never addresses weak schema spots such as 'interval' (no enum or examples) or the meaning of series_type/datatype, leaving real ambiguity an agent would hit at call time.

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 all ten parameters are already documented in structured data. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

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?

States a specific verb and resource ('Fetch Bollinger Bands technical indicator time series') and enumerates the returned components (upper, lower, middle SMA line), which naturally separates it from siblings like fetch_sma, fetch_ema and fetch_macd. It does not explicitly name those alternatives, so it stops short of a 5.

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

Usage Guidelines2/5

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

The description gives no guidance on when to prefer Bollinger Bands over fetch_sma or fetch_macd, no prerequisites, and no exclusions. An agent must infer usage purely from the indicator's name.

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

fetch_cash_flowBInspect

Fetch annual and quarterly cash flow statement data including operating, investing, and financing cash flows.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly cash…

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It adds useful scope information (annual and quarterly, three cash flow categories) but says nothing about read-only/side-effect-free nature, authentication, rate limits, historical range limits, or currency normalization. For a simple fetch tool this is acceptable but incomplete.

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?

A single front-loaded sentence with no filler; the resource and the data categories come first. It is arguably a bit terse for a tool with no annotations, but nothing is wasted.

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

Completeness3/5

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

Given no output schema and no annotations, the description does not reveal the return shape (period labels, field names, units) or any limits on history depth. It is adequate to identify the tool but leaves gaps an agent would want when interpreting 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% on the single 'symbol' parameter, so the schema already explains the ticker format with examples. The description adds no parameter-level detail beyond the statement scope, which matches the baseline for fully documented schemas.

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 names a specific verb and resource ('Fetch annual and quarterly cash flow statement data') and enumerates the content scope (operating, investing, financing). It is clearly distinguishable from siblings in the abstract, though it never names the adjacent statement tools (fetch_income_statement, fetch_balance_sheet) to sharpen 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 Guidelines3/5

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

Usage is only implied by the tool name and the mention of annual/quarterly data; there is no explicit when-to-use, when-not-to-use, or routing guidance among the many financial statement siblings. An agent must infer that this is the tool for cash flow rather than balance sheet or income statement.

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

fetch_company_overviewCInspect

Fetch comprehensive company overview including business description, financial ratios, market capitalization, dividend information, and key financial metrics.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve comprehensive company over…

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it discloses nothing behavioral: no data freshness/delay, no auth or rate-limit notes, no error behavior for an invalid ticker, and no indication of payload size for a 'comprehensive' response. Listing returned sections is mild help but not 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.

Conciseness4/5

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

One sentence, front-loaded with the verb and resource, and the field list is compact. It is neither bloated nor padded, though the enumeration borders on reciting return contents that would be better placed in an output schema.

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

Completeness3/5

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

For a simple one-parameter read tool this is close to adequate, and the field enumeration partially compensates for the missing output schema. However, it leaves out data freshness, response shape, and how the 'overview' differs from the narrower statement/quote siblings.

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 'symbol' parameter has 100% schema description coverage including ticker examples, so the schema already does the work. The description adds nothing about symbol format, exchange suffixes, or case sensitivity beyond what the schema states, so baseline 3 applies.

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?

States a specific verb ('Fetch') and resource ('company overview') and enumerates the contents (business description, ratios, market cap, dividends). It doesn't name or differentiate itself from close siblings like fetch_quote or financials, so the agent can't fully tell which to choose on purpose alone.

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

Usage Guidelines2/5

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

No guidance on when to use this instead of fetch_quote, financials, or analyze_stock, which overlap heavily with company fundamentals. There are no exclusions, prerequisites, or context about when an overview is preferable to a targeted statement fetch.

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

fetch_earningsBInspect

Fetch annual and quarterly earnings data including EPS (earnings per share) estimates vs actual results, surprise percentages, and earnings growth trends.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly earn…

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It usefully states the data categories returned and implies a read-only fetch, but it does not disclose permissions, data freshness, rate limits, or whether the operation has any side effects.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that enumerates the key data categories without any filler. Every clause adds useful information about what the tool returns.

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?

There is no output schema, but the description sufficiently explains the returned data types, which is the main missing structured information. For a single-parameter read tool, this is nearly complete, though it could say more about when to choose it over related financial-statement or analysis tools.

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 the sole symbol parameter is fully documented in the schema. The description adds no parameter-specific meaning 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.

Purpose4/5

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

The description states a specific verb (fetch) and resource (annual and quarterly earnings data), and lists the exact data categories returned: EPS estimates vs actuals, surprise percentages, and growth trends. It is clear what the tool does, but it does not explicitly distinguish itself from related siblings such as fetch_income_statement or financials.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like fetch_income_statement, analyze_stock, or fetch_company_overview. Usage is only implied by the tool name and data description, with no exclusions or conditions given.

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

fetch_emaBInspect

Fetch Exponential Moving Average (EMA) technical indicator time series with greater weight on recent prices.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Exponential Moving Average
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').
intervalYesTime interval for data points.
start_dateNoOptional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').
series_typeNoPrice data to use for calculation.close
time_periodYesNumber of data points to use for moving average calculation (e.g., 12 for 12-period EMA)
max_data_pointsNoMaximum number of time series data points to return.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only fetch and mentions EMA weighting, but it does not cover rate limits, authentication needs, response format, data source, or how the returned time series is structured.

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 front-loaded sentence with no filler. It is appropriately sized for a definition that relies on a rich schema for parameter details.

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

Completeness3/5

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

The schema fully documents the 8 parameters, but there are no annotations and no output schema. The description says a time series is returned, yet it omits response structure and operational context, leaving the definition adequate but with clear gaps.

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 all parameters are already documented in the input schema, including symbol, interval, time_period, series_type, and max_data_points. The description does not add parameter-specific meaning beyond the schema, which is acceptable at this coverage level.

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: fetch the Exponential Moving Average technical indicator time series. It also distinguishes EMA from moving-average siblings by noting the greater weight on recent prices, so the agent can identify what the tool produces without opening the schema.

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

Usage Guidelines2/5

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

The description explains what EMA is but gives no explicit guidance on when to use this tool versus alternatives such as fetch_sma, fetch_macd, fetch_rsi, or fetch_bbands. There are no exclusions, prerequisites, or alternative-selection cues.

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

fetch_exchange_rateAInspect

Fetch real-time currency exchange rates between two currencies with bid/ask prices and conversion rates.

NameRequiredDescriptionDefault
to_currencyYesTarget currency code (e.g., 'USD', 'EUR', 'JPY') to convert to
from_currencyYesSource currency code (e.g., 'USD', 'EUR', 'GBP') to convert from

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It adds useful context such as 'real-time' and return contents, but omits any mention of rate limits, data source, authentication, or error 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?

A single clear sentence with the key information front-loaded and no wasted words. It is appropriately sized for a simple fetch 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 covers the core function and return values (bid/ask, conversion rates), and the schema covers parameters. With no output schema, some behavioral details like error cases or rate limits are missing, but the tool is simple enough that this is largely 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?

Schema coverage is 100%, so the schema already documents both required parameters with examples. The description adds no parameter-level detail beyond what the schema provides, which is the expected baseline.

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 states a specific verb and resource: fetching real-time exchange rates between two currencies. It also lists return content (bid/ask, conversion rates), though it does not explicitly contrast with 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 Guidelines3/5

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

Usage is implied by 'between two currencies', but there is no explicit guidance on when to use this versus alternatives or any prerequisites. For a simple lookup tool this is minimally adequate.

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

fetch_income_statementAInspect

Fetch annual and quarterly income statement data including revenue, expenses, net income, EPS, and other profit & loss metrics.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly inco…

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full safety profile, but it does disclose the data content (revenue, expenses, net income, EPS, P&L metrics) and that both annual and quarterly statements are returned. It does not explicitly state read-only behavior, response format, or rate limits, which leaves some behavioral gaps.

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?

A single, front-loaded sentence that lists the data contents efficiently with zero waste.

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 one-parameter fetch tool with no output schema or annotations, the description gives enough context: what data is returned, its periodicity, and key metrics. Minor gap: it doesn't clarify output structure, but that's acceptable without 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?

Schema description coverage is 100% — the single parameter 'symbol' is fully documented in the schema with examples. The description adds no parameter-specific details beyond the schema, so baseline 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?

States a specific verb (Fetch), resource (income statement data), and enumerates the key metrics included (revenue, expenses, net income, EPS). The resource name alone distinguishes it from sibling tools like fetch_balance_sheet and fetch_cash_flow.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives (e.g., fetch_earnings, financials) or when not to use it. Only implied usage is provided by the resource name and the 'annual and quarterly' modifier.

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

fetch_macdBInspect

Fetch MACD (Moving Average Convergence Divergence) technical indicator time series with signal line and histogram.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate MACD
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').
intervalYesTime interval for data points.
fastperiodNoFast EMA period for MACD calculation (default: 12)
slowperiodNoSlow EMA period for MACD calculation (default: 26)
start_dateNoOptional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').
series_typeNoPrice data to use for calculation.close
signalperiodNoSignal line EMA period for MACD calculation (default: 9)
max_data_pointsNoMaximum number of time series data points to return.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. "Fetch" implies a read-only operation and the description names returned components, but it does not disclose return ordering, rate limits, data source behavior, or error conditions.

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 front-loaded sentence with no wasted language. It identifies the indicator and the main returned components immediately.

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 10-parameter tool with fully described schema fields, the description is mostly complete enough to identify and select the tool. Because there is no output schema, it could do more to describe the returned time-series structure, but it at least names the signal line and histogram.

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?

Parameter schema description coverage is 100%, so the schema already documents all 10 parameters. The description adds no additional semantics for symbol, interval, periods, date filters, or datatype beyond what the schema provides.

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 states a specific verb and resource: fetching MACD technical indicator time series. It also names the returned components (signal line and histogram), but it does not explicitly differentiate this tool from sibling indicator tools such as fetch_ema or fetch_rsi.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternative indicator tools or when MACD is preferable to SMA/EMA/RSI. Usage is only inferable from the tool name and description.

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

fetch_news_sentimentBInspect

Fetch news sentiment analysis data with sentiment scores, relevance scores, and article metadata.

NameRequiredDescriptionDefault
sortNoSort order for results.LATEST
limitNoMaximum number of news articles to return (1-200).
topicsNoOptional news topics filter.
tickersYesComma-separated list of ticker symbols to filter news articles.
time_toNoEnd time for news articles in YYYYMMDDTHHMM format (e.g., '20240131T2359')
datatypeNoResponse data type.json
time_fromNoStart time for news articles in YYYYMMDDTHHMM format (e.g., '20240101T0000')

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden; it does disclose the shape of returned data (scores + metadata), which is genuinely useful. However it says nothing about rate limits, result caps, ordering behavior, or whether an empty result is possible for a given ticker/date range.

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?

A single front-loaded sentence with no filler; each clause names something the caller will receive. It is appropriately sized, though it could have traded a few words for usage guidance.

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

Completeness3/5

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

Since no output schema exists, the description usefully names the returned fields, which is the main completeness win. But for a 7-parameter tool with time-window and topic filtering, it omits how results are scoped by default and what happens when no data matches.

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 each parameter is documented inline, including formats (YYYYMMDDTHHMM) and the limit range (1-200). The description adds no parameter meaning beyond the schema, so baseline 3 applies.

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?

States a specific verb+resource ('fetch news sentiment analysis data') and enumerates what it returns (sentiment scores, relevance scores, article metadata). This clearly separates it from price/quote siblings like fetch_quote or fetch_company_overview, though it doesn't name a sibling explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives (e.g., fetch_company_overview or fetch_quote for price context). It implies a news-lookup purpose but offers no conditions, prerequisites, or exclusions.

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

fetch_quoteBInspect

Fetches the latest price and trading information for a stock ticker symbol.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to fetch the latest price and trading…

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says what data is fetched but does not disclose data freshness (real-time vs delayed), market-hours behavior, rate limits, authentication needs, or what 'trading information' includes. For a financial quote tool with zero annotation coverage, this is a notable gap.

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?

A single, front-loaded sentence with no filler or redundant restatement of the title. Every word contributes to stating the action and resource.

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

Completeness3/5

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

For a simple one-parameter read tool, the description is minimally adequate: an agent knows it returns price and trading information for a symbol. However, with no output schema and no annotations, it leaves the return structure and data-freshness characteristics vague, which an agent may need in order to interpret 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?

Schema description coverage is 100%, so the single 'symbol' parameter is already fully documented with examples in the schema. The description adds no formatting rules, exchange-prefix conventions, or other meaning beyond what the schema provides, making the baseline 3 appropriate.

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 uses a specific verb and resource ('Fetches the latest price and trading information') for a clearly identified target ('a stock ticker symbol'). It implicitly distinguishes itself from historical siblings via 'latest,' but never names an alternative like fetch_time_series_daily or analyze_stock, so sibling differentiation is left to inference.

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?

Usage is only implied: the word 'latest' suggests this is for a current quote rather than historical time series or analysis. There is no explicit statement of when to use this tool versus fetch_time_series_daily, analyze_stock, or compare_stocks, and no exclusions or prerequisites are given.

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

fetch_rsiCInspect

Fetch RSI (Relative Strength Index) momentum oscillator time series ranging from 0 to 100.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate RSI
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').
intervalYesTime interval for data points.
start_dateNoOptional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').
series_typeNoPrice data to use for calculation.close
time_periodNoNumber of periods for RSI calculation (typically 14)
max_data_pointsNoMaximum number of time series data points to return.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that output is a time series bounded 0-100, but says nothing about data source, latency, rate limits, how the response is shaped, or what happens when start_date/end_date fall outside available history.

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?

A single well-formed sentence with the verb and resource front-loaded and no filler. It is appropriately sized, though it passes over the opportunity to add a routing clause at little cost.

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

Completeness3/5

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

For an 8-parameter indicator tool with no annotations and no output schema, the description covers purpose and value range but not the output structure, interval/period interaction, or edge-case behavior. Adequate to invoke correctly given a fully documented schema, but thin on the behavioral side.

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 all eight parameters (symbol, interval, series_type, time_period, date filters, max_data_points) are already documented in the schema. The description adds no parameter-level detail such as valid interval values or how time_period interacts with max_data_points, so the baseline 3 applies.

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?

States a specific verb ('Fetch') plus a precise resource (RSI time series) and even bounds the value domain (0-100). It is clear what the tool returns, but it does not distinguish itself from sibling oscillators/indicators such as fetch_macd, fetch_sma, or fetch_ema, so an agent can't tell from the description alone which indicator tool to pick.

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

Usage Guidelines2/5

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

There is no guidance on when to choose RSI over the closely related fetch_macd, fetch_sma, or fetch_ema tools, nor any prerequisite or exclusion note. The only implied usage is 'you want RSI', which the tool name already conveys.

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

fetch_smaCInspect

Fetch Simple Moving Average (SMA) technical indicator time series with customizable time periods.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Simple Moving Average
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').
intervalYesTime interval for data points.
start_dateNoOptional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').
series_typeNoPrice data to use for calculation.close
time_periodYesNumber of data points to use for moving average calculation (e.g., 20 for 20-day SMA)
max_data_pointsNoMaximum number of time series data points to return.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, but it does not say whether this is a read-only operation, whether it has rate limits or auth requirements, or how errors are surfaced. It mentions 'time series' but gives no return-shape or pagination context.

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?

A single front-loaded sentence with no wasted words. It is efficient, though its brevity leaves important usage and behavioral context unaddressed.

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

Completeness3/5

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

The description adequately names the resource and implies a time-series return, and the schema fully documents parameters. However, for an eight-parameter tool with no annotations or output schema, it omits interval choices, series-type implications, and datatype 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?

Schema description coverage is 100%, so all eight parameters are already documented. The description's phrase 'customizable time periods' only loosely gestures at interval/time_period and adds no format, enum, or behavioral detail 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?

States a specific verb ('Fetch') and resource ('Simple Moving Average (SMA) technical indicator time series'), making the core operation clear. It does not distinguish itself from closely related siblings like fetch_ema, fetch_rsi, or fetch_macd, leaving the agent to infer the choice.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool rather than fetch_ema, fetch_rsi, or direct time-series tools. There are no stated prerequisites, exclusions, or alternative-selection rules.

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

fetch_time_series_dailyBInspect

Fetch daily stock data with OHLCV (Open, High, Low, Close, Volume) information for each trading day.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve daily data
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (inclusive).
outputsizeNoData output size.compact
start_dateNoOptional start date filter in YYYY-MM-DD format (inclusive).
max_data_pointsNoMaximum number of time series data points to return.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, yet it only says what data comes back. It omits whether prices are split/dividend adjusted, whether an API key or rate limit applies, how 'compact' vs other outputsize values behave, and how max_data_points interacts with the date range.

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?

A single front-loaded sentence with no filler; the resource and return payload come first. It is efficient but so terse that it omits routing and behavior, which is arguably under-specification rather than conciseness.

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

Completeness2/5

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

With six parameters, no annotations, and no output schema, the description should clarify pagination/limits and the interaction between start_date, end_date, outputsize, and max_data_points. It addresses none of these, leaving key call-correctness questions unanswered.

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 all six parameters are already documented in-schema; that sets the baseline at 3. The description adds the meaning of the returned OHLCV fields and the per-trading-day granularity but nothing about datatype, outputsize, or how the two date bounds combine.

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?

States a specific verb (fetch) and resource (daily stock data) and enumerates the returned fields as OHLCV, so an agent knows exactly what it gets. The word 'daily' implicitly separates it from fetch_time_series_weekly/monthly, but the description never names those siblings or confirms the granularity distinction explicitly.

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?

Usage is only implied by the 'daily' qualifier in the name and description; there is no statement of when to prefer this over fetch_quote, fetch_time_series_weekly, or fetch_time_series_monthly. No exclusions, prerequisites, or cooldown constraints are mentioned.

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

fetch_time_series_monthlyAInspect

Fetch monthly stock data with OHLCV (Open, High, Low, Close, Volume) aggregated by month.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve monthly data
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (inclusive).
start_dateNoOptional start date filter in YYYY-MM-DD format (inclusive).
max_data_pointsNoMaximum number of time series data points to return.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral-disclosure burden. It indicates a read-style fetch and describes the returned OHLCV fields, but it does not cover rate limits, authentication, pagination/truncation behavior, or error handling.

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

Conciseness5/5

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

A single, front-loaded sentence with no wasted wording. It efficiently states the operation, granularity, and returned fields.

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 relatively simple fetch tool with full schema coverage, the description identifies the returned OHLCV fields and monthly aggregation even though there is no output schema. It is nearly complete, though it could mention truncation behavior or data-source constraints.

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 documents symbol, datatype, date filters, and max_data_points. The description adds return-field context (OHLCV) but no extra parameter semantics 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 states a specific verb and resource: fetch monthly stock data with OHLCV fields aggregated by month. The monthly granularity clearly distinguishes it from sibling daily and weekly time-series tools.

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?

Use for monthly OHLCV data is implied by the description, but it does not explicitly say when to choose this over fetch_time_series_daily, fetch_time_series_weekly, or technical indicator siblings. No when-not guidance is provided.

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

fetch_time_series_weeklyBInspect

Fetch weekly stock data with OHLCV (Open, High, Low, Close, Volume) aggregated by week.

NameRequiredDescriptionDefault
symbolYesStock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve weekly data
datatypeNoResponse data type.json
end_dateNoOptional end date filter in YYYY-MM-DD format (inclusive).
start_dateNoOptional start date filter in YYYY-MM-DD format (inclusive).
max_data_pointsNoMaximum number of time series data points to return.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden, and it does disclose the meaningful behavioral trait that points are aggregated by week and returned as OHLCV rows. It says nothing about pagination, rate limits, the 100-point default cap on max_data_points, or how the response is shaped beyond field names, leaving real gaps for a data-fetch tool.

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?

A single front-loaded sentence with zero filler, expanding the OHLCV acronym inline so the payload is unambiguous. It is efficiently sized, though it spends its one clause on return shape rather than invocation guidance.

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

Completeness3/5

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

With no annotations and no output schema, the description partially compensates by naming the returned fields and the weekly aggregation. It still omits defaults, the meaning of the 100-point cap, and any behavior for empty or out-of-range date windows, which matters for a five-parameter fetch 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 all five parameters are already documented in the schema; the baseline of 3 applies. The description adds only the OHLCV field vocabulary and the weekly grain, with no extra detail on date format or the max_data_points cap.

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?

States a specific verb (fetch) and resource (weekly stock data) and spells out the OHLCV payload plus the weekly aggregation grain, which distinguishes it from fetch_time_series_daily and fetch_time_series_monthly by implication. It never names those siblings, so the differentiation is inferred rather than stated.

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?

Usage is only implied through the 'weekly' grain in the name and description; there is no explicit statement of when to choose weekly over daily/monthly, nor any guidance on date-range filtering or prerequisite conditions. An agent can infer the use case but gets no routing rules.

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

financialsBInspect

A financial statement from SEC filings, newest period first, every value traceable to its filing. Quarterly figures the company reported only year-to-date are derived (e.g. Q4 = FY - 9M) and marked; per-share values and share counts can't be derived that way and are null with reason not_derivable. A line the company tagged with its own element is null with reason custom_element. Common equity and the book values from it are null with reason pending when a preferred issue or redemption follows the last tagged liquidation preference. Every null carries a reason, in cell_notes or (when all of a row's nulls share it) on the row. Banks, insurers and broker-dealers get not_applicable, with a reason, for lines they don't present (capex, current assets, total debt for banks and brokers); banks get loans, allowance and deposits. Broker-dealers and asset managers get the bank layout under net_revenues, with compensation and the compensation ratio. Balance sheets include common equity, book value per share and net debt. A balance the period's own filing didn't present is null, with any later comparative value in a note. A derived or fallback line equal to another row in every column (total equity with no NCI) is named in same_as instead of shown, and a derived Q4 with the opposite sign to Q1-Q3 says so. Values are in units as filed. Values and earlier versions come only from financial statements (10-K, 10-Q, their amendments and transition reports, 20-F, 40-F).

NameRequiredDescriptionDefault
as_ofNoOptional date: the statement as it was on file then
limitNoNumber of periods, 1 to 8
companyYesTicker (e.g. 'AAPL') or SEC CIK
statementNo'income', 'balance' or 'cashflow'income
period_typeNo'annual' or 'quarterly'annual

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses derivation rules (Q4 = FY - 9M), null reasons (not_derivable, custom_element, pending, not_applicable), industry-specific layouts, unit conventions ('as filed'), and the exact filing types used. It does not state that the operation is a safe read, nor anything about data latency, rate limits, or caching.

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

Conciseness3/5

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

It is one dense, unbroken block of roughly 200 words with no structure, front-loaded on the core concept but then consumed by edge-case null handling. Several sentences restate output-schema territory (null reasons, same_as, sign flips) rather than earning space with selection guidance the agent actually needs.

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

Completeness3/5

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

An output schema exists, so the long explanation of null reasons and row-level notes is largely redundant, while the genuinely missing piece — when to call this versus the three statement-specific siblings — is absent. For a 5-parameter tool with that much sibling overlap, the definition is informative about data but incomplete about selection.

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 company, as_of, limit, statement and period_type are already documented in the schema. The description reinforces ordering ('newest period first') and quarterly derivation behavior, which gives period_type some meaning, but adds nothing about as_of snapshot semantics or the 1-8 limit range beyond what the schema states. Baseline 3 applies.

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 opening clause names the resource and its provenance precisely: 'A financial statement from SEC filings, newest period first, every value traceable to its filing.' An agent can tell it returns statement data, but the description never distinguishes it from the three closely overlapping siblings (fetch_income_statement, fetch_balance_sheet, fetch_cash_flow) that presumably cover the same statements.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives anywhere in the text. Given that fetch_income_statement, fetch_balance_sheet and fetch_cash_flow exist as siblings, the absence of any routing statement leaves the agent to guess which tool to call.

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

find_toolBInspect

Search all 113 data tools, including ones not in the default list.

NameRequiredDescriptionDefault
queryYesWhat you need, e.g.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the corpus size (113 tools) but not that the operation is read-only, that it returns tool definitions/metadata, or what happens with broad vs narrow queries. An output schema exists, so return-shape disclosure is not required.

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?

One sentence, front-loaded with the verb and scope, zero filler. It is however terse to the point where a second clause on usage would have added value without waste.

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

Completeness3/5

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

For a one-parameter discovery tool with an output schema, the core is present, but the truncation in the schema's query description means the description should have compensated with query-shaping guidance and a routing hint against sibling discovery tools. It does neither.

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?

Single parameter with 100% schema coverage sets a baseline of 3. The description adds no meaning beyond the schema, and the schema's own description ('What you need, e.g.') is truncated mid-sentence, so neither source explains query syntax or expected granularity.

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?

States a specific verb and resource ('Search all 113 data tools') and adds the useful scope note that it covers tools outside the default list. It doesn't differentiate itself from the similarly named sibling search_endpoint, which an agent could reasonably confuse it with.

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 phrase 'including ones not in the default list' implies a usage context (discovery when the visible tool set is insufficient), but there is no explicit when-to-use/when-not guidance and no mention of how this relates to run_tool, get_fact, or search_endpoint.

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

get_factAInspect

One reported figure from SEC filings, with its citation: filing accession number, form, filing date, XBRL tag, period and a link to the filing. Restated values are listed. A figure the company never reported comes back as missing, never estimated. Values are in units as filed (USD, shares, USD/shares). A value and its as_originally_reported version come only from financial statements (10-K, 10-Q, their amendments and transition reports, 20-F, 40-F), never a proxy or an 8-K.

NameRequiredDescriptionDefault
as_ofNoOptional date: return the figure as it was on file then (before any later restatement)
periodNo'latest', a fiscal year 'FY2025', a fiscal quarter 'FY2025 Q2', or a period end date '2025-06-28'latest
companyYesTicker (e.g. 'AAPL') or SEC CIK
conceptYesLine item such as 'revenue', 'net_income', 'eps_diluted', 'total_assets', 'operating_cash_flow', 'shares_outstanding', 'book_value_per_share', 'net_debt', 'dividend_payout_ratio', 'net_revenues', or a raw XBRL tag like 'us-gaap:Revenues'

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it discloses that unreported figures return as missing rather than estimated, that restatements are surfaced, that values are in as-filed units, and that values only come from financial statements (10-K/10-Q/20-F/40-F and amendments), never proxies or 8-Ks. It stops short of covering failure modes, latency, or how company identifiers are resolved.

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?

Four sentences, front-loaded with what is returned and the citation payload, followed by the missing-data guarantee, units, and source-document scope. Dense but every sentence adds a distinct constraint; only the final sentence runs long.

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?

An output schema exists, so return values need not be restated, and the description covers the non-obvious semantics: missing vs. estimated, restatement handling, as-filed units, and eligible filing types. It lacks routing to siblings, which is the main remaining gap for a tool in a crowded financials toolset.

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 and the schema already documents company, concept, period, and as_of formats. The description adds indirect meaning by explaining that restated values are listed and that an as_originally_reported version exists, which contextualizes as_of, but it does not explicitly map that behavior to 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?

States a specific resource ('One reported figure from SEC filings') and enumerates exactly what accompanies it (accession number, form, filing date, XBRL tag, period, link). This implicitly separates it from statement-level siblings like fetch_income_statement and fetch_balance_sheet by scoping to a single cited figure.

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?

Usage is only implied: the 'one reported figure' framing and the source-document restriction suggest it is for targeted single-metric lookups, but the description never says when to prefer it over fetch_income_statement, financials, or compare_stocks. No explicit 'use X instead' routing is given.

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

run_toolBInspect

Run any Finbolt data tool by name, including ones not in the default list.

NameRequiredDescriptionDefault
nameYesExact tool name from find_tool, e.g.
argumentsNoArguments for that tool

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it does not disclose side effects, permissions, error behavior, or whether the dispatched tool may be read-only or destructive. It communicates only that arbitrary named tools can be run, leaving the important behavioral variability undocumented.

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 front-loaded sentence with no wasted language. Its brevity is appropriate for a concise dispatcher summary, even though other dimensions reveal missing detail.

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

Completeness2/5

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

For a generic dispatcher with no annotations, no output schema, and a nested arguments object, the description is under-specified. It does not explain the discovery workflow via find_tool, how arguments should be shaped or forwarded, what happens on invalid tool names, or what kind of result is returned.

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 'name' and 'arguments' described in the schema, so the baseline is 3. The main description adds only the idea of running by name and beyond the default list; it does not explain how arguments are forwarded or what the nested 'arguments' object should contain beyond the schema's brief note.

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 uses a specific verb and resource: 'Run any Finbolt data tool by name.' The phrase 'including ones not in the default list' helps distinguish this dispatcher from the fixed sibling data tools, though it does not explicitly contrast with find_tool or search_endpoint.

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?

Usage is implied by 'including ones not in the default list,' suggesting this tool is for invoking tools beyond the visible sibling list. The schema's 'Exact tool name from find_tool' hints at a discovery workflow, but the description itself gives no explicit when-to-use, when-not-to-use, or alternatives.

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

search_endpointBInspect

Searches for stock symbols and company names based on keywords (e.g., 'Tesla', 'Microsoft Corp').

NameRequiredDescriptionDefault
keywordsYesKeywords to search for company names or stock symbols (e.g., 'Tesla', 'Microsoft Corp', 'AAPL')

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full behavioral burden. It correctly signals a non-mutating lookup and discloses that matching spans both company names and symbols, but says nothing about match semantics (partial vs. exact vs. fuzzy), ranking, result caps, or whether the return is just symbols or richer company data.

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?

One front-loaded sentence with no waste. The example list is slightly redundant with the schema's identical examples, but it remains readable and earns its space as an illustrative aid.

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

Completeness3/5

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

For a one-parameter lookup there is no output schema and no annotation coverage, so the agent still lacks the return shape (symbols only, or company name + exchange) and how ambiguous matches are resolved. Adequate to call, incomplete to interpret results confidently.

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?

Single required parameter with 100% schema description coverage, so the schema already explains 'keywords' including the same 'Tesla', 'Microsoft Corp', 'AAPL' examples. The description adds no matching-behavior details (e.g., multiple keywords separated by comma? quoted phrases?) 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?

States a specific verb ('searches') and resource ('stock symbols and company names'), with concrete keyword examples. An agent can distinguish this ticker/name lookup from data-fetching siblings like fetch_quote or fetch_company_overview, though the description never explicitly frames it as resolution rather than data retrieval.

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?

Usage is only implied: an agent can infer this is the symbol-resolution step before calling fetch_quote or the indicator tools, but the description names no alternatives and gives no when-to-use or when-not-to-use guidance. The keyword examples help input formatting but not tool selection.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 23 tool updates
    • First observedanalyze_stock
    • First observedcompare_stocks
    • First observedfetch_balance_sheet
    • First observedfetch_bbands
    • First observedfetch_cash_flow
    • First observedfetch_company_overview
    • First observedfetch_earnings
    • First observedfetch_ema
    • First observedfetch_exchange_rate
    • First observedfetch_income_statement
    • First observedfetch_macd
    • First observedfetch_news_sentiment
    • First observedfetch_quote
    • First observedfetch_rsi
    • First observedfetch_sma
    • First observedfetch_time_series_daily
    • First observedfetch_time_series_monthly
    • First observedfetch_time_series_weekly
    • First observedfinancials
    • First observedfind_tool
    • First observedget_fact
    • First observedrun_tool
    • First observedsearch_endpoint

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Give your AI agent live SEC EDGAR data: company financials, insider trades, 8-K events, 13F holdings, and the raw filings stream — all normalized to clean JSON, every number traceable back to its sec.gov source filing.
    8
    33 PyPI
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with clean, normalized access to financial data including company fundamentals, insider trades, SEC filings, macro series from FRED, real-time quotes, and ETF holdings.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources