Financial Modeling Prep MCP Server
The Financial Modeling Prep MCP Server enables AI assistants to access comprehensive financial data through a Model Context Protocol (MCP) implementation, offering 253+ tools across 24 categories with flexible configuration options.
Key Capabilities:
Dynamic Server Modes: Supports Dynamic, Static, and Legacy modes with runtime toolset management (beta) for task-specific optimization
Company Intelligence: Search symbols/names, access detailed profiles, executive information, market cap, employee counts, and M&A data
Financial Statements: Retrieve income statements, balance sheets, cash flow statements (as-reported and TTM), with revenue segmentation by product/geography
Valuation & Analysis: Key metrics, ratios, DCF valuations (standard and custom), enterprise value, and financial health scores
Technical Analysis: Calculate SMA, EMA, RSI, ADX, Williams %R, and other indicators with real-time/historical price data
Market Data: Access S&P 500, NASDAQ, Dow Jones constituents, sector/industry performance, market hours, and calendars (earnings, IPO, economic events)
News & Filings: Financial news, press releases, SEC filings (8-K, 10-K, 10-Q) with analytics, and filing extracts
Trading Intelligence: Track insider trades, institutional ownership (13F filings), and government trading disclosures (Senate/House)
ETFs & Funds: Holdings, sector/country weightings, asset exposure, and fund disclosures
Global Markets: Cryptocurrency and forex quotes, historical charts, commodities, treasury rates, and economic indicators
Bulk Data: CSV format support for large-scale analysis of profiles, statements, and metrics
Integration: Standardized HTTP/JSON-RPC interface with deployment options via registries (Smithery.ai, Glama.ai, Contexaai.com) or local/Docker setup.
Implements the Creative Commons licensing framework, with the project specifically licensed under the Attribution-NonCommercial-NoDerivatives 4.0 International License.
Enables interaction with GitHub through the MCP server, allowing for repository management and triggering workflows that verify builds through pull requests.
Integrates with GitHub Actions to automatically verify build processes when pull requests are created and to automate the release process by building and publishing packages to NPM.
Provides integration with NPM to automate package publishing as part of the release process when new GitHub releases are created.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Financial Modeling Prep MCP Serverget the latest stock price and P/E ratio for Apple"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Financial Modeling Prep MCP Server
A Model Context Protocol (MCP) server for the Financial Modeling Prep API, exposing 267 financial data tools to AI assistants.
Features
267 Financial Tools across 24 toolsets — stocks, ETFs, crypto, forex, commodities, economics, and more
Dynamic Tool Management — built on toolception for runtime enable/disable of toolsets via meta-tools
Three Server Modes — Dynamic (5 meta-tools), Static (pre-loaded toolsets), or All Tools (default)
Flexible Deployment — use the hosted instance or self-host via npm, Docker (built from source), or source
Streamable HTTP Transport — compatible with Claude.ai, Claude Desktop, and MCP registries
Related MCP server: FMP MCP Server
Quick Start
Hosted Instance (Fastest)
No installation required. Connect directly:
https://financial-modeling-prep-mcp-server-production.up.railway.app/mcpThe hosted instance runs in Dynamic mode: it starts with 5 meta-tools that load toolsets on demand. Pass your FMP API key as FMP_ACCESS_TOKEN in the ?config= session configuration (see Usage).
Self-Hosted (One-Liner)
npx financial-modeling-prep-mcp-server --fmp-token=YOUR_FMP_API_KEYOr install globally:
npm install -g financial-modeling-prep-mcp-server
fmp-mcp --fmp-token=YOUR_FMP_API_KEYGet your API key at financialmodelingprep.com.
Table of Contents
Installation
Prerequisites: Node.js 25.3.0 or higher (for v2.6.0+). For older versions (v2.5.x and below), Node.js 20+ is required.
Choose the method that fits your workflow:
NPM —
npm install -g financial-modeling-prep-mcp-serverDocker — build the image from source (no pre-built image is published)
Source — clone and run with
npm install && npm run build
See docs/INSTALLATION.md for detailed steps per method.
Configuration
The server supports three operational modes controlled via CLI arguments or environment variables:
Mode | How to Enable | Description |
Dynamic |
| Starts with 5 meta-tools; load toolsets at runtime |
Static |
| Pre-loads specified toolsets on session creation |
All Tools (default) | (default) | Loads all 267 tools immediately |
Precedence: for mode and tool sets, CLI args > Environment variables > Defaults. A session ?config= token overrides the server's FMP_ACCESS_TOKEN for that session.
See docs/CONFIGURATION.md for the full configuration reference.
Usage
Connect to the server over streamable HTTP:
Claude.ai / Claude Desktop — add as a remote connector (Settings > Connectors)
Custom clients — POST to
/mcp: sendinitializefirst, then themcp-session-idit returns on every later requestMCP registries — see Registries for where this server is listed
See docs/USAGE.md for client-specific setup, session headers, and request examples.
Available Tools
24 toolsets covering:
Search · Directory & Symbol Lists · Company Information · Financial Statements · Financial Metrics & Analysis · Technical Indicators · Quotes & Price Data · Market Indexes & Performance · Market Data · News & Press Releases · SEC Filings · Insider & Institutional Trading · ETFs & Funds · Government Trading · Cryptocurrency & Forex · Earnings · Special Data Sets · Commodities · Economics · Bulk Data Tools
See docs/API_REFERENCE.md for the complete tool catalog.
Registries
This server is listed on multiple MCP registries for easy discovery:
See docs/REGISTRIES.md for the details of each listing.
Contributing
Contributions are welcome. Please see CONTRIBUTING.md for development setup, testing, and pull request guidelines.
License
Available Tools
267 toolscalculateCustomDCFCRead-onlyIdempotentInspect
Run a tailored Discounted Cash Flow (DCF) analysis using the FMP Custom DCF Advanced API. With detailed inputs, this API allows users to fine-tune their assumptions and variables, offering a more personalized and precise valuation for a company.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, covering the safety profile. The description adds only that it uses an external API and accepts detailed inputs; it does not disclose return format, computation behavior, error conditions, or any other trait beyond what the annotations and schema already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core action. However, the second sentence is marketing-oriented filler ('offering a more personalized and precise valuation') that does not help an agent invoke the tool correctly, making it less efficient than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex financial model with 19 nested inputs and no output schema, the description is far too thin. It omits critical details such as the required symbol, how assumptions map to the model, and what the analysis returns, leaving the agent with insufficient context to use the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 19 nested parameters with 0% schema description coverage per the context, yet the description provides no meaningful explanation of any parameter. It generically mentions 'detailed inputs' and 'fine-tune their assumptions' without clarifying units, defaults, required fields, or how the many financial percentages and rates should be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Run a tailored Discounted Cash Flow (DCF) analysis' using the FMP Custom DCF Advanced API. It clearly indicates a custom valuation calculation, but does not distinguish it from sibling tools like getDCFValuation or calculateCustomLeveredDCF, leaving the agent to infer which DCF variant to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only says it offers a 'more personalized and precise valuation' but does not specify prerequisites, appropriate scenarios, or exclusions compared to the standard or levered DCF siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculateCustomLeveredDCFRead-onlyIdempotentInspect
Run a tailored Discounted Cash Flow (DCF) analysis using the FMP Custom DCF Advanced API. With detailed inputs, this API allows users to fine-tune their assumptions and variables, offering a more personalized and precise valuation for a company.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
getAcquisitionOwnershipCRead-onlyIdempotentInspect
Track changes in stock ownership during acquisitions using the Acquisition Ownership API. This API provides detailed information on how mergers, takeovers, or beneficial ownership changes impact the stock ownership structure of a company.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 2000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds nothing beyond marketing framing: it does not say what the records contain, whether data is historical or current, how results are ordered, or how the 'limit' default of 2000 behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded, but the second sentence largely restates the first in promotional terms ('provides detailed information on how mergers, takeovers, or beneficial ownership changes impact...') without adding operational detail. No wasted length, but low information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back; it only says 'detailed information.' For a data-retrieval tool with a large default limit and a crowded M&A tool family, an agent cannot tell what fields or time coverage to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents 'symbol' and 'limit'. The description adds no meaning beyond the schema and does not even mention that a symbol is required. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it provides information on how mergers, takeovers, or beneficial ownership changes affect a company's stock ownership structure, which gives a rough sense of the resource. However, the verb 'Track changes' is vague and there is no indication that retrieval is keyed by stock symbol, nor any differentiation from the many M&A siblings (getLatestMergersAcquisitions, searchMergersAcquisitions, getForm13FFilingDates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus getLatestMergersAcquisitions, searchMergersAcquisitions, or the institutional/insider holdings tools. No prerequisites, no exclusions, no context about what kind of question this answers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getActivelyTradingListCRead-onlyIdempotentInspect
List all actively trading companies and financial instruments with the FMP Actively Trading List API. This endpoint allows users to filter and display securities that are currently being traded on public exchanges, ensuring you access real-time market activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered without help from the description. The description adds only a marketing-flavored claim of 'real-time market activity' and promises filtering that the zero-parameter schema cannot deliver, without saying what the result set looks like or how large it is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource name, which is good. The second sentence is largely filler ('ensuring you access real-time market activity') and repeats the trading-on-public-exchanges idea already established.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema list endpoint, the description should convey what an entry contains or how the list is bounded. It instead gestures at filtering and real-time data, which does not match the schema. It is adequate to identify the tool but not complete enough to predict its output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline is high and the schema leaves nothing to explain. The description's mention of filtering is mildly misleading here, since there is no input it could correspond to. It therefore neither helps nor seriously harms parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'List all actively trading companies and financial instruments'. An agent can tell this is a market-activity listing rather than a quote or screener. However, it never distinguishes itself from close siblings such as getMostActiveStocks or getCompanySymbols, so the boundary 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.
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 the many sibling list/screener tools, and no prerequisites or exclusions are given. The only usage-adjacent phrase is 'allows users to filter and display', which is vague and does not tell an agent which conditions select this endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getADXBRead-onlyIdempotentInspect
Calculate the Average Directional Index (ADX) for a stock using the FMP ADX API. This tool helps users analyze trend strength and direction based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and repeatability profile is covered. The description adds that the calculation uses the FMP ADX API and historical price data, but it does not describe return format, data limitations, rate limits, or whether the result includes directional components alongside ADX values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core calculation purpose and followed by a brief usage-oriented sentence. It is appropriately sized for a technical-indicator tool, with little wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple read-only indicator tool with full schema coverage and useful annotations, the description is adequate but thin. It does not explain what the ADX result represents numerically or what an agent should expect in the response, leaving minor gaps despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents symbol, from_date, to, timeframe, and periodLength. The description does not add syntax, defaults, or meaning beyond the schema, which is the expected baseline when the schema itself is fully described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Calculate') and resource ('Average Directional Index (ADX)') for a stock, making the tool's purpose immediately clear. It does not explicitly differentiate itself from sibling technical-indicator tools such as getRSI or getSMA, but ADX is a distinct resource, so the purpose is still identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the tool helps analyze 'trend strength and direction based on historical price data,' which implies a use case but gives no explicit guidance on when to choose ADX over sibling indicators like RSI or moving averages. There are no exclusions, prerequisites, or alternative-tool routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAftermarketQuoteARead-onlyIdempotentInspect
Access real-time aftermarket quotes for stocks with the FMP Aftermarket Quote API. Track bid and ask prices, volume, and other relevant data outside of regular trading hours.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that data is real-time and scoped to the aftermarket session, but says nothing about freshness/latency guarantees, empty results outside extended hours, or subscription prerequisites for the API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the resource stated first. The trailing 'and other relevant data' and the 'with the FMP Aftermarket Quote API' brand mention are slightly padded but not obstructive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only quote lookup with full schema coverage and annotations, the description covers what the tool returns and when the data applies. A brief pointer to the batch variant or regular-hours quote sibling would have made it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter 'symbol' with 100% schema description coverage, so the schema already carries the documentation burden. The description adds no format guidance (e.g., exchange suffix conventions, case handling), which is the baseline expectation when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — real-time aftermarket quotes for stocks — and lists the data points returned (bid, ask, volume). The phrase 'outside of regular trading hours' implicitly distinguishes it from the regular-hours sibling getQuote, though it never names that sibling or getAftermarketTrade explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied via 'outside of regular trading hours'; there is no explicit statement of when to pick this over getQuote, getQuoteShort, getAftermarketTrade, or getBatchAftermarketQuote. An agent must infer the selection rule from the tool name and the time-of-day phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAftermarketTradeBRead-onlyIdempotentInspect
Track real-time trading activity occurring after regular market hours with the FMP Aftermarket Trade API. Access key details such as trade prices, sizes, and timestamps for trades executed during the post-market session.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered structurally. The description adds that data is real-time and post-market, and that returned details include prices, sizes, and timestamps, but it does not discuss rate limits, pagination, data freshness, or response shape beyond those fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool's purpose and followed by the key data fields returned. The mention of 'FMP Aftermarket Trade API' is somewhat redundant branding, but otherwise there is little wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with full schema coverage and annotations covering safety, the description is nearly sufficient. Its main gap is failing to distinguish this tool from quote-oriented and batch siblings, which matters given the large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter (symbol), so the schema already fully documents the input. The description does not add format guidance, exchange/suffix conventions, or examples for the symbol beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Track') and resource ('aftermarket trading activity'), and states it covers post-market trades with prices, sizes, and timestamps. It does not differentiate this tool from close siblings such as getAftermarketQuote or getBatchAftermarketTrade, leaving the trade-vs-quote distinction implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'after regular market hours' and 'post-market session'; there is no explicit guidance on when to use this instead of getAftermarketQuote, getQuote, or getBatchAftermarketTrade. No prerequisites, exclusions, or alternative-selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAllExchangeMarketHoursBRead-onlyIdempotentInspect
View the market hours for all exchanges. Check when different markets are active.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is fully covered. Beyond that the description adds nothing behavioural: no mention of time zones, whether pre/post-market sessions are included, or how stale the schedule data is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action. The second sentence largely restates the first ('when markets are active' vs 'market hours'), so it is close to padding, but nothing is genuinely wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, an agent still doesn't know the shape of the response (open/close times, time zone, session breakdown), which matters when combining it with quote tools. Just adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. The description correctly implies no inputs are required by framing it as a bulk view of all exchanges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: 'View the market hours for all exchanges.' The scope word 'all' implicitly distinguishes it from the sibling getExchangeMarketHours, which presumably targets one exchange, though the sibling is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Check when different markets are active' implies a scheduling use case but gives no explicit when-to-use or when-not-to-use guidance, and never points to getExchangeMarketHours for a single-exchange lookup or to getHolidaysByExchange for closures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAllIndexQuotesBRead-onlyIdempotentInspect
The All Index Quotes API provides real-time quotes for a wide range of stock indexes, from major market benchmarks to niche indexes. This API allows users to track market performance across multiple indexes in a single request, giving them a broad view of the financial markets.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to return short quotes (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety and idempotency profile is covered. The description adds that quotes are real-time and that the tool returns multiple indexes in a single request, but it does not discuss rate limits, authentication, or return-field behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately short and front-loads the purpose, but the second sentence largely restates the first with marketing phrasing such as 'broad view of the financial markets.' It is functional but not maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and annotations covering behavior, the description is adequate but lacks specifics about what 'all indexes' includes and how the short parameter changes the response. It covers the main purpose without fully describing scope boundaries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional parameter 'short' is already documented in the schema with its default. The description adds no additional meaning about the parameter, so the baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it provides real-time quotes for stock indexes, and it scopes the tool to multiple indexes in a single request. This makes the tool distinguishable from single-index quote tools, though it does not explicitly name any sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for getting a broad market view across many indexes in one request, which gives a clear use case. However, it does not explicitly say when to use this instead of siblings like getIndexQuote or getIndexQuotes, and it provides no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAllIndustryClassificationBRead-onlyIdempotentInspect
Access comprehensive industry classification data for companies across all sectors with the FMP All Industry Classification API. Retrieve key details such as SIC codes, industry titles, and business contact information.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the useful detail of which fields come back (SIC codes, industry titles, contact information), but says nothing about the size of the result set or how page/limit affect it, which matters for an 'all sectors' endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted length, but the opening is padded with marketing framing ('comprehensive', 'with the FMP All Industry Classification API') that restates the tool's provenance rather than helping the agent act. The concrete payload information arrives only in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-parameter, no-output-schema listing tool, the description covers the resource and returned fields adequately. It falls short on result-set size and pagination expectations, and on any hint of how it differs from its two near-identical siblings, which is the main ambiguity an agent faces here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both page and limit documented in the schema, so the baseline is 3. The description adds no further meaning about defaults, maximum page size, or whether pagination is required for a complete listing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear resource (industry classification data for companies) and a concrete retrieval action, and it lists the payload fields (SIC codes, industry titles, contact info). It does not distinguish itself from the very similar siblings getIndustryClassificationList and searchIndustryClassification, so the agent cannot tell from the text which of the three to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all, and no mention of the two closely named alternatives (getIndustryClassificationList, searchIndustryClassification) or when each should be preferred. The word 'all' hints at a full dump versus a filtered lookup, but that inference is left entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAnalystEstimatesBRead-onlyIdempotentInspect
Retrieve analyst financial estimates for stock symbols with the FMP Financial Estimates API. Access projected figures like revenue, earnings per share (EPS), and other key financial metrics as forecasted by industry analysts to inform your investment decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional page number (default: 0) | |
| limit | No | Optional limit on number of results (default: 10, max: 1000) | |
| period | Yes | Period (annual or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and side-effect profile is covered. The description adds useful content about what the estimates include (revenue, EPS, other analyst-forecast metrics), but it does not explain pagination behavior, result ordering, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences and is front-loaded with the core action, but it contains promotional filler such as 'to inform your investment decisions' and a redundant API name reference. It is reasonably concise but not maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only retrieval tool with fully described input parameters and safety annotations. However, there is no output schema, and the description does not describe the shape or pagination of returned estimates, leaving some gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters, including the required symbol and period enum, are fully documented in the schema. The description adds no parameter-specific meaning beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: retrieve analyst financial estimates for stock symbols, and names the data types (revenue, EPS, other metrics). It does not explicitly distinguish itself from nearby siblings such as getPriceTargetSummary, getPriceTargetConsensus, or getEarningsReports, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage framing is the generic phrase 'to inform your investment decisions,' which does not tell an agent when to choose this tool over alternatives like price target summaries, ratings snapshots, or earnings reports. No exclusions or alternative-routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableCountriesBRead-onlyIdempotentInspect
Access a comprehensive list of countries where stock symbols are available with the FMP Available Countries API. This API enables users to filter and analyze stock symbols based on the country of origin or the primary market where the securities are traded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. Beyond that the description adds only the marketing-flavored claim that it lets users 'filter and analyze stock symbols based on country of origin', which mischaracterizes a static enumeration endpoint as an analysis tool, and says nothing about whether the list is paginated, how large it is, or what identifiers it contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the useful one. The second sentence is vendor boilerplate that restates the API name and adds no actionable information, so roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter enumeration with no output schema and no parameters, the description should at least hint at the return shape (array of country names or ISO codes) and any pagination behavior. It says only 'comprehensive list', leaving the agent to guess at the payload format while spending its second sentence on irrelevant framing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. No parameter-level meaning is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: a list of countries in which stock symbols are available. That is enough to distinguish it from enumeration siblings such as getAvailableExchanges, getAvailableSectors and getAvailableIndustries. The second sentence, however, describes filtering and analyzing symbols by country, which is not what this zero-parameter endpoint does, and it never names 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.
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 lookup to call to discover valid country values before filtering other endpoints. There is no explicit when-to-use, no statement that the result feeds country arguments elsewhere, and no disambiguation from the other 'getAvailable*' enumeration tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableExchangesBRead-onlyIdempotentInspect
Access a complete list of supported stock exchanges using the FMP Available Exchanges API. This API provides a comprehensive overview of global stock exchanges, allowing users to identify where securities are traded and filter data by specific exchanges for further analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered externally. The description adds almost nothing beyond that: it does not say the call takes no arguments, whether the list is static or paginated, or roughly what each entry contains (exchange name, acronym, MIC, asset class).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence earns its place, but the second is padded marketing prose ('comprehensive overview of global stock exchanges', 'for further analysis') that repeats the first sentence's meaning without adding operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter, read-only lookup the description is adequate but incomplete: with no output schema present, the agent gets no indication of the shape of a returned exchange record or whether the list is bounded, which is the main thing that would help it plan subsequent calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. It correctly does not invent parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it returns the complete list of supported stock exchanges from the FMP Available Exchanges API. It does not distinguish itself from the related sibling searchExchangeVariants or the parallel getAvailableCountries/getAvailableSectors/getAvailableIndustries family, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as searchExchangeVariants. The trailing clause about 'filter data by specific exchanges' hints at downstream use but gives no selection criteria for an agent choosing between exchange-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableIndustriesARead-onlyIdempotentInspect
Access a comprehensive list of industries where stock symbols are available using the FMP Available Industries API. This API helps users filter and categorize companies based on their industry for more focused research and analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds that the list is comprehensive and tied to the FMP Available Industries API, but it does not describe response shape, caching, rate limits, or any other behavioral detail beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and only two sentences long. The second sentence is slightly promotional ('for more focused research and analysis') and could be trimmed, but it does not obscure the main point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and rich annotations, the definition is mostly complete for invocation. However, with many sibling list tools and no output schema, the description does not clarify what the returned industry list actually contains or how it differs from other industry-related list endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero input parameters, so there are no parameter semantics to document. The schema coverage is 100%, and the description appropriately adds no unnecessary parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: accessing a comprehensive list of industries where stock symbols are available. It is clear what the tool returns, but it does not distinguish this list from sibling tools such as getAvailableSectors, getAvailableCountries, or getIndustryClassificationList.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for filtering and categorizing companies by industry, which gives some context for when to use it. However, it gives no explicit guidance on when to choose this tool over the many sibling industry, sector, and classification list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableSectorsCRead-onlyIdempotentInspect
Access a complete list of industry sectors using the FMP Available Sectors API. This API helps users categorize and filter companies based on their respective sectors, enabling deeper analysis and more focused queries across different industries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. Beyond that the description adds almost nothing: it does not say the result is a static reference list with no filtering, nor what a sector entry looks like, nor that the data is external to the user's workspace (which openWorldHint alone does not explain). Marketing phrasing substitutes for operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and earns its place, but the second sentence is promotional filler ('enabling deeper analysis and more focused queries') that conveys no actionable information. Roughly half the text is waste, though the total length is short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter reference-list tool with annotations covering the safety profile and no output schema, the description is adequate but thin. It omits any sense of what the returned sectors contain or how they relate to the industry-level sibling, which is the one piece of context an agent would actually need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline of 4 applies. The description implies the call is unconditional (no filtering options), which is consistent with the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Access a complete list of industry sectors'), so the basic purpose is clear. However, it never distinguishes itself from the near-identical sibling getAvailableIndustries, and the phrase 'industry sectors' blurs the line between the two taxonomies. An agent could not confidently choose between them from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives such as getAvailableIndustries or getIndustryClassificationList, and no stated prerequisites. The second sentence ('helps users categorize and filter companies') only implies a use case rather than directing the agent to this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getAvailableTranscriptSymbolsRead-onlyIdempotentInspect
Access a complete list of stock symbols with available earnings call transcripts using the FMP Available Earnings Transcript Symbols API. Retrieve information on which companies have earnings transcripts and how many are accessible for detailed financial analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getBalanceSheetGrowthBulkBRead-onlyIdempotentInspect
The Balance Sheet Growth Bulk API allows users to retrieve growth data across multiple companies’ balance sheets, enabling detailed analysis of how financial positions have changed over time.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds only that the data is growth-oriented and multi-company; it does not disclose the company universe, result size, pagination, or other bulk-specific behavior that an agent would need to invoke it confidently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence that states the resource and scope efficiently. The trailing 'enabling detailed analysis' clause is mildly promotional but does not obscure the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a two-parameter bulk read endpoint whose annotations cover safety and whose schema documents both inputs. However, for a bulk financial data tool with no output schema, it omits important context such as whether all companies are returned and how this differs operationally from the singular growth endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for year and period. The description reinforces the temporal dimension ('changed over time') but adds no new syntax or meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve balance sheet growth data across multiple companies. The word 'Bulk' and 'multiple companies' distinguish it from the singular growth endpoint, though it does not explicitly name the sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for bulk, multi-company analysis through phrases like 'Bulk API' and 'across multiple companies.' It does not explicitly state when to choose this over getBalanceSheetStatementGrowth or getBalanceSheetStatementsBulk, so guidance remains inferred rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBalanceSheetStatementCRead-onlyIdempotentInspect
Access detailed balance sheet statements for publicly traded companies with the Balance Sheet Data API. Analyze assets, liabilities, and shareholder equity to gain insights into a company's financial health.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered by structured data. The description adds the data domain (assets, liabilities, shareholder equity) but nothing operational — no default reporting cadence, no pagination or result-window behavior despite the limit parameter, and no note on whether statements are standardized or as-filed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second ('Analyze assets, liabilities, and shareholder equity to gain insights into a company's financial health') is marketing framing rather than operational information an agent can act on. The actionable content is limited to the first clause, so roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and three parameters, the description should convey at least the shape of the return (statement periods, line items, currency basis) and the difference from the TTM/as-reported/growth variants. It delivers neither, leaving the agent to guess at what a 'detailed' statement contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, period (enumerated Q1–Q4/FY), and limit (default 100, max 1000) all documented in the schema. The description adds no meaning beyond that — it never mentions period selection or result limits — so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (detailed balance sheet statements) and the domain (publicly traded companies), so an agent knows what is returned. It does not, however, distinguish this from near-identical siblings such as getBalanceSheetStatementTTM, getBalanceSheetStatementGrowth, or getBalanceSheetStatementAsReported, which is the main ambiguity risk given this sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says whether this returns annual or quarterly statements by default, how it relates to the TTM/growth/as-reported variants, or when an agent should reach for a sibling instead. The only hint is the generic 'analyze ... financial health' phrasing, which does not route a selection decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBalanceSheetStatementAsReportedBRead-onlyIdempotentInspect
Access balance sheets as reported by the company with the As Reported Balance Statements API. View detailed financial data on assets, liabilities, and equity directly from official filings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds provenance context — that figures are reported directly by the company from official filings, i.e. unrestated — which helps interpretation, but says nothing about pagination, default result ordering, or how many periods are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core purpose front-loaded. The second sentence largely restates the first in vaguer terms ('detailed financial data on assets, liabilities, and equity') and could be replaced with genuinely differentiating information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-symbol statement fetch with fully documented parameters and no output schema, the description covers what the tool returns at a high level. The notable gap is how 'as reported' differs materially from the standardized statement endpoint, which an agent would need to choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, period (annual/quarter enum), and limit (default 100, max 1000) all documented in the schema. The description adds no additional meaning about parameter behavior, which is acceptable given the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieve balance sheet statements 'as reported by the company', with the data domain spelled out (assets, liabilities, equity from official filings). The 'As Reported' framing implicitly separates it from the standardized getBalanceSheetStatement sibling, but it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no statement of when to prefer this over getBalanceSheetStatement, getBalanceSheetStatementTTM, getBalanceSheetStatementsBulk, or getFinancialStatementFullAsReported, and no mention of required inputs or constraints. Usage is only inferable from the 'as reported / official filings' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBalanceSheetStatementGrowthCRead-onlyIdempotentInspect
Analyze the growth of key balance sheet items over time with the Balance Sheet Statement Growth API. Track changes in assets, liabilities, and equity to understand the financial evolution of a company.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing beyond that: it does not say whether growth is expressed as percentages or absolute currency, which reporting periods are covered, or how the data is sourced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, and the second sentence usefully enumerates the item categories covered. Minor waste in naming 'the Balance Sheet Statement Growth API', which only restates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only endpoint with a fully described schema and no output schema, the description is minimally adequate. It still leaves the agent guessing about the unit and form of the returned growth figures, which matters for interpreting results even if not for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, limit, and the period enum are fully documented in the schema, establishing the baseline of 3. The description adds no extra meaning about parameter behavior, such as how period interacts with limit or default ordering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: analyzing growth of balance sheet items (assets, liabilities, equity) over time. It is clear what the tool returns in kind, but it never distinguishes it from close siblings such as getBalanceSheetStatement (raw values), getFinancialStatementGrowth, or getBalanceSheetGrowthBulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: no statement that this is for period-over-period growth rather than raw statement values, no comparison to the other growth or bulk endpoints, and no note that symbol is required or how period/limit affect results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBalanceSheetStatementsBulkBRead-onlyIdempotentInspect
The Bulk Balance Sheet Statement API provides comprehensive access to balance sheet data across multiple companies. It enables users to analyze financial positions by retrieving key figures such as total assets, liabilities, and equity. Ideal for comparing the financial health and stability of different companies on a large scale.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety and idempotency profile is covered. The description adds which figures come back (assets, liabilities, equity) but says nothing about the result's scope – all covered companies for that year and period? – nor about pagination, result size, or rate limits, which matter for an open-world bulk endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with noticeable marketing filler ('comprehensive access', 'ideal for comparing'). The most actionable fact – that the output is keyed only by year and period – is absent while promotional framing takes its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema tool the description covers the topical purpose, but it omits the one thing an agent needs to call it correctly: that omitting a symbol means fetching every company's balance sheet for that period, which has large response implications. Adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters (year, period) documented including the period enumeration, so the baseline is 3. The description adds no meaning beyond the schema – notably it never says the parameters act as the dataset selector across all companies rather than as filters on a symbol.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('retrieving balance sheet data') with an explicit bulk/multi-company scope, which separates it from the single-company getBalanceSheetStatement sibling. However, it never reveals that the operation is keyed by year and period rather than by symbols, which is the defining characteristic of this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Ideal for comparing the financial health and stability of different companies on a large scale' hints at when to use it (bulk comparison rather than single-company lookup), but no alternative is named and no exclusion is stated. An agent must infer that it should prefer getBalanceSheetStatement for a single symbol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBalanceSheetStatementTTMRead-onlyIdempotentInspect
Access detailed balance sheet statements for publicly traded companies with the Balance Sheet Data API. Analyze assets, liabilities, and shareholder equity to gain insights into a company's financial health.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
getBatchAftermarketQuoteARead-onlyIdempotentInspect
Retrieve real-time aftermarket quotes for multiple stocks with the FMP Batch Aftermarket Quote API. Access bid and ask prices, volume, and other relevant data for several companies during post-market trading.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Comma-separated list of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the post-market scope and enumerates the payload fields (bid, ask, volume), which is useful but thin. Nothing is said about rate limits, batching size limits, or behavior for invalid symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource. Minor waste in the vendor-branded phrase "with the FMP Batch Aftermarket Quote API" and the vague "other relevant data," but nothing materially distracting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter batch quote read with no output schema, the description covers the domain (post-market), the multi-symbol scope, and the kind of values returned. An agent has enough to call it correctly; only edge-case behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single required parameter, and the schema already documents "Comma-separated list of stock symbols." The description adds no format, limit, or normalization detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Retrieve real-time aftermarket quotes for multiple stocks." The word "multiple" plus "batch" distinguishes it from the single-symbol getAftermarketQuote and from regular-hours getBatchQuotes listed among its siblings. It stops short of naming those siblings outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase "during post-market trading," which tells the agent this is not a regular-session quote tool. There is no explicit statement of when to prefer it over getAftermarketQuote (single symbol) or getBatchQuotes (regular hours), and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBatchAftermarketTradeRead-onlyIdempotentInspect
Retrieve real-time aftermarket trading data for multiple stocks with the FMP Batch Aftermarket Trade API. Track post-market trade prices, volumes, and timestamps across several companies simultaneously.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Comma-separated list of stock symbols |
getBatchMarketCapBRead-onlyIdempotentInspect
Retrieve market capitalization data for multiple companies in a single request with the FMP Batch Market Capitalization API. This API allows users to compare the market size of various companies simultaneously, streamlining the analysis of company valuations.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Comma-separated list of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds only that multiple companies are returned in a single request; it says nothing about symbol-count limits, error behavior for invalid tickers, or response shape, which are the behavioral facts a batch caller actually needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability is front-loaded in the first sentence, which is good. The second sentence, however, restates the same idea in marketing language ('streamlining the analysis of company valuations') without adding operational information, so the text is padded rather than wasted entirely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read tool with full schema coverage and annotations that carry the safety profile, and no output schema exists to require return-value explanation. What an agent needs to call it correctly is present; only optional details such as symbol limits and return fields are absent, which is a minor gap for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'symbols' parameter is documented as a comma-separated list of stock symbols. The description reinforces the multi-symbol nature ('multiple companies in a single request') but adds no format example, no maximum symbol count, and no delimiter guidance beyond what the schema already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Retrieve market capitalization data for multiple companies in a single request,' which clearly conveys a batch read of market cap. It implicitly contrasts with the single-symbol getMarketCap and getHistoricalMarketCap siblings through the word 'batch,' but never names them explicitly, leaving the differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers an implied use case, 'compare the market size of various companies simultaneously,' but gives no explicit when-to-use guidance, no exclusions, and no pointer to the single-symbol alternative. An agent can infer batch usage but must decide on its own when batching is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBatchQuotesARead-onlyIdempotentInspect
Retrieve multiple real-time stock quotes in a single request with the FMP Stock Batch Quote API. Access current prices, volume, and detailed data for multiple companies at once, making it easier to track large portfolios or monitor multiple stocks simultaneously.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Comma-separated list of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety and idempotency profile is covered. The description adds that data is real-time and batch-scoped, but says nothing about symbol-count limits, rate limits, or what 'detailed data' actually comprises, so the disclosure beyond annotations is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core capability is front-loaded in the first sentence. The second sentence partly restates the same batch benefit ('track large portfolios or monitor multiple stocks simultaneously'), which is mild padding but not damaging.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented parameter, no output schema, and annotations carrying the safety profile, the description covers enough to call the tool correctly. Only secondary details, such as how many symbols are accepted and how 'detailed' data differs from the Short variant, are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single required 'symbols' parameter that is fully documented as a comma-separated list. The description only echoes the multi-company idea ('multiple companies at once') without adding format, maximum count, or case-sensitivity hints, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Retrieve multiple real-time stock quotes in a single request' via the FMP Stock Batch Quote API, and names what is returned (current prices, volume, detailed data). It does not, however, distinguish itself from the many quote siblings such as getBatchQuotesShort, getQuote, or getQuoteShort, so an agent cannot tell from the text alone when batch-detailed beats short.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'making it easier to track large portfolios or monitor multiple stocks simultaneously', which suggests the multi-symbol case but gives no explicit when-to-use criteria or exclusions. There is no mention of when to prefer getBatchQuotesShort, getQuote for a single symbol, or the aftermarket batch variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBatchQuotesShortBRead-onlyIdempotentInspect
Access real-time, short-form quotes for multiple stocks with the FMP Stock Batch Quote Short API. Get a quick snapshot of key stock data such as current price, change, and volume for several companies in one streamlined request.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | Yes | Comma-separated list of stock symbols |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds that data is real-time and that the payload is a trimmed snapshot (price, change, volume), which is useful context beyond the annotations. It does not mention symbol-count limits, rate limits, or what happens with invalid symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the core purpose and then the payload contents; nothing is redundant. Slight marketing phrasing ('quick snapshot', 'streamlined request') costs a little precision but not much space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with full schema coverage and annotations, the definition covers the essentials. It is missing the two things that matter most here: how 'short' differs from the full batch quote endpoint, and any limit on the number of symbols per request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single `symbols` parameter documented as a comma-separated list, so the baseline is 3. The description confirms multi-symbol usage but adds no formatting details, delimiter edge cases, or maximum batch size beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Access real-time, short-form quotes for multiple stocks') and names the underlying FMP batch short-quote endpoint, so the purpose is unambiguous. It stops short of distinguishing this from the sibling getBatchQuotes (full) or getQuoteShort (single), which an agent would need in order to pick correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for several companies in one streamlined request' implies batching is the point, but there is no explicit when-to-use guidance and no exclusion against getBatchQuotes, getQuoteShort, or getExchangeQuotes. The agent is left to infer the short-vs-full distinction from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBiggestGainersRead-onlyIdempotentInspect
Track the stocks with the largest price increases using the Top Stock Gainers API. Identify the companies that are leading the market with significant price surges, offering potential growth opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getBiggestLosersRead-onlyIdempotentInspect
Access data on the stocks with the largest price drops using the Biggest Stock Losers API. Identify companies experiencing significant declines and track the stocks that are falling the fastest in the market.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getCashFlowGrowthBulkARead-onlyIdempotentInspect
The Cash Flow Statement Growth Bulk API allows you to retrieve bulk growth data for cash flow statements, enabling you to track changes in cash flows over time. This API is ideal for analyzing the cash flow growth trends of multiple companies simultaneously.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe, read-only, idempotent, open-world operation, so the description only needs to add operational context. It adds the bulk/multi-company scope but does not explain limits, response shape, or what 'bulk' includes. Given annotation coverage, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and then the intended use. Some marketing phrasing ('allows you to', 'ideal for') could be trimmed, but nothing is seriously bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the two required parameters are fully described in the schema; the description adds the multi-company bulk scope. No output schema exists, but the description gives enough of the return category for an agent to know what it retrieves, though it could specify the shape of growth metrics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so year and period are already documented by the schema. The description adds no parameter-level meaning, such as period value constraints or how the year/period pair filters the bulk result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('retrieve') and resource ('bulk growth data for cash flow statements') and clarifies the scope as multiple companies simultaneously. It distinguishes itself from the singular growth tool through the bulk/multiple-company wording, though it does not name the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear context ('ideal for analyzing cash flow growth trends of multiple companies simultaneously'), which implies when to choose the bulk endpoint over the single-company one. It does not state exclusions or name the alternative tool explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCashFlowStatementCRead-onlyIdempotentInspect
Gain insights into a company's cash flow activities with the Cash Flow Statements API. Analyze cash generated and used from operations, investments, and financing activities to evaluate the financial health and sustainability of a business.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered by structured data. The description adds no behavior beyond that: it does not say which reporting periods are returned, whether values are annualized, how pagination interacts with the limit, or what happens for a symbol with no filings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource, but the second sentence ('evaluate the financial health and sustainability of a business') is investor-facing marketing that gives an agent no operational information. It is short but not dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only lookup with a fully documented schema and no output schema, the definition is technically callable. However, an agent still cannot tell whether this returns annual or quarterly statements by default, nor why it should pick this over the TTM or Growth siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, period enum, and limit all documented inline, so the baseline is 3. The description adds nothing about how period interacts with the result set or what unit the cash flow figures use, but it does not mislead either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (cash flow statements) but opens with vague marketing framing ('Gain insights into...') rather than a specific verb like 'retrieve'. It never distinguishes this from close siblings such as getCashFlowStatementTTM, getCashFlowStatementGrowth, getCashFlowStatementAsReported, or getCashFlowStatementsBulk, leaving the agent to guess which variant it needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no reference to any alternative tool. Given that the sibling list contains four other cash-flow variants, this omission is material rather than cosmetic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCashFlowStatementAsReportedBRead-onlyIdempotentInspect
View cash flow statements as reported by the company with the As Reported Cash Flow Statements API. Analyze a company's cash flows related to operations, investments, and financing directly from official reports.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered. The description adds provenance context (company-reported rather than standardized figures), which is genuinely useful, but says nothing about the 1000-result cap, pagination, or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and scope. The second sentence largely restates the first with promotional framing ('Analyze a company's cash flows related to operations, investments, and financing') and earns only partial credit for the 'official reports' provenance detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read tool with full schema descriptions, annotations, and no output schema, so most burden is covered elsewhere. The remaining gap is significant given the crowded sibling set: nothing tells the agent why to pick this over getCashFlowStatement or the As-Reported income/balance sheet variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: symbol, period enum (annual/quarter), and limit with default 100 and max 1000 are all documented in the schema. The description adds no meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('View cash flow statements as reported by the company') and signals provenance ('directly from official reports'), which distinguishes it in spirit from getCashFlowStatement. However, it never names the normalized/TTM siblings it must be told apart from, so the differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies a use case (analyzing operating, investing, and financing cash flows from official filings) but gives no when-to-use versus when-not, and never mentions getCashFlowStatement, getCashFlowStatementTTM, or getCashFlowStatementGrowth as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCashFlowStatementGrowthBRead-onlyIdempotentInspect
Measure the growth rate of a company’s cash flow with the FMP Cashflow Statement Growth API. Determine how quickly a company’s cash flow is increasing or decreasing over time.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and open-world behavior, so the description only needs to add operational context. It clarifies that the tool measures growth over time, but it does not disclose return granularity, units, or how period/limit affect the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core purpose. The second sentence is somewhat redundant but still supports the use case without excess wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only financial data tool with full schema coverage and annotations, the description is sufficiently complete. It could say more about the returned growth series, but it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, period, and limit are already documented in the schema. The description adds no parameter-specific meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: measuring the growth rate of a company's cash flow statement. It clearly distinguishes growth from the raw cash flow statement by name, but it does not explicitly name sibling tools or alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies trend analysis by saying it determines how quickly cash flow is increasing or decreasing, but it gives no explicit when-to-use guidance, no exclusions, and no alternatives such as getCashFlowStatement or getFinancialStatementGrowth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCashFlowStatementsBulkCRead-onlyIdempotentInspect
The Cash Flow Statement Bulk API provides access to detailed cash flow reports for a wide range of companies. This API enables users to retrieve bulk cash flow statement data, helping to analyze companies’ operating, investing, and financing activities over time.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. Beyond that the description adds nothing behavioral: it does not say how many companies are returned, whether the payload is paginated or large, whether missing/foreign filers are included, or how results are ordered. For a 'bulk' endpoint, result volume is the single most important behavioral fact and it is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the second sentence rephrases the first ('provides access to detailed cash flow reports' / 'enables users to retrieve bulk cash flow statement data') and adds only a generic analytical benefit. Half the text does not earn its place, and the useful word 'bulk' is not front-loaded with an explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a 'bulk' retrieval tool, the description should convey what comes back and at what scale, and it does not. An agent cannot tell from this definition whether the call returns thousands of records, whether it needs further pagination, or what to do with the year/period pair beyond what the schema already says.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — year and period are documented in the schema, including the Q1–Q4/FY period format. The description adds no meaning beyond that, not even confirming that these two parameters define the entire bulk scope. Baseline 3 applies when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (cash flow statements) and the 'bulk' modifier, which hints at the difference from the single-company getCashFlowStatement sibling. However, it never states what 'bulk' concretely means — all companies for a period, a fixed universe, or a paged list — so the scope of the retrieval stays vague. The second sentence largely restates the first in marketing terms rather than sharpening the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all, despite many close siblings (getCashFlowStatement, getCashFlowStatementTTM, getCashFlowStatementGrowth, getCashFlowStatementAsReported, getCashFlowGrowthBulk). Nothing tells the agent when the bulk variant is preferable to the single-symbol one, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCashFlowStatementTTMCRead-onlyIdempotentInspect
Gain insights into a company's cash flow activities with the Cash Flow Statements API. Analyze cash generated and used from operations, investments, and financing activities to evaluate the financial health and sustainability of a business.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. Beyond that, the description adds nothing: it does not explain what TTM means here (rolling four quarters vs. most recent fiscal year), what period or currency the figures are in, or whether the response is a single statement or a time series. For a financial-data read tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no bloat, and reasonably front-loaded. However, the wording is generic marketing copy ('Gain insights into...') that spends its space on the category rather than on the one thing that differentiates this endpoint, which is the TTM basis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should carry the burden of explaining what comes back, and it does not. It also leaves the TTM concept unexplained, which is the single most important thing an agent needs to know to select this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol ('Stock symbol') and limit (default 100, max 1000) both documented in the schema, so the baseline of 3 applies. The description adds no extra meaning, such as whether limit applies to periods returned or whether symbol accepts only US tickers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description describes the general category of cash flow data ('Analyze cash generated and used from operations, investments, and financing activities') but never states the defining characteristic of this tool: that it returns trailing-twelve-month figures. It reads like boilerplate for the whole Cash Flow Statements API, so an agent cannot tell it apart from siblings such as getCashFlowStatement, getCashFlowStatementGrowth, getCashFlowStatementAsReported, or getCashFlowStatementsBulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage framing is the vague goal of evaluating 'financial health and sustainability'. There is no guidance on when to prefer TTM over the annual/quarterly getCashFlowStatement, over the growth variant, or over the bulk endpoint, despite a very crowded sibling set of near-identical names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCIKListRead-onlyIdempotentInspect
Access a comprehensive database of CIK (Central Index Key) numbers for SEC-registered entities with the FMP CIK List API. This endpoint is essential for businesses, financial professionals, and individuals who need quick access to CIK numbers for regulatory compliance, financial transactions, and investment research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 1000) |
getCommodityQuotesBRead-onlyIdempotentInspect
Get up-to-the-minute quotes for commodities with the FMP Real-Time Commodities Quotes API. Track the latest prices, changes, and volumes for a wide range of commodities, including oil, gold, and agricultural products.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that data is real-time and names the returned fields (prices, changes, volumes), which is useful, but it omits the important behavioral fact that the call takes no symbol and therefore presumably returns the whole commodity universe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource, no wasted framing. The trailing list ('oil, gold, and agricultural products') and the 'up-to-the-minute' marketing phrasing are slightly padded but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single optional parameter, the description should clarify what the call returns and how many quotes come back; it hints at fields but not cardinality or scope. Adequate for a simple read, but leaves the agent guessing whether a symbol is needed given the required-parameter count is zero.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter exists and its schema description coverage is 100%, so the schema does the heavy lifting. The description never mentions the 'short' output-format flag, and the schema's own wording ('Whether to use short format') is thin, so no additional meaning is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get up-to-the-minute quotes for commodities', which clearly separates it from sibling quote tools like getCryptoQuotes, getForexQuotes, and getIndexQuotes. It does not state scope precisely (all commodities at once, no symbol parameter), but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Track the latest prices, changes, and volumes' implies a real-time monitoring use case, but the description never says when to prefer this over listCommodities, getQuote, or the batch quote siblings, and offers no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanyExecutivesBRead-onlyIdempotentInspect
Retrieve detailed information on company executives with the FMP Company Executives API. This API provides essential data about key executives, including their name, title, compensation, and other demographic details such as gender and year of birth.
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | Filter for active executives | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds value by disclosing the payload contents (title, compensation, demographics), but says nothing about coverage limits, whether inactive or historical executives are included, or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core purpose front-loaded, but the second sentence spends words on vendor branding ('with the FMP Company Executives API. This API provides...') and a loose 'other demographic details' catch-all rather than tightening the field list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with no output schema, the description does the minimum: it sketches the returned fields. It omits the required symbol input, the active-executive filter, and any indication of response shape or whether multiple executives are returned, which an agent would need to plan a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are documented in the schema and the baseline of 3 applies. The description adds no meaning beyond it — notably it never mentions the 'active' filter, which is the one parameter whose accepted values (string, no enum) an agent could get wrong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve detailed information on company executives') and enumerates the returned fields (name, title, compensation, gender, year of birth). It is clearly distinct from the nearest siblings in spirit, but it never names them (e.g., getExecutiveCompensation, getCompanyProfile) so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says to use this for a roster of executives versus getExecutiveCompensation for pay data or getCompanyProfile for general company facts. Nor does it mention that a stock symbol is required or what the 'active' filter is for, leaving the agent to infer both selection and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanyNotesRead-onlyIdempotentInspect
Retrieve detailed information about company-issued notes with the FMP Company Notes API. Access essential data such as CIK number, stock symbol, note title, and the exchange where the notes are listed.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getCompanyProfileARead-onlyIdempotentInspect
Access detailed company profile data with the FMP Company Profile Data API. This API provides key financial and operational information for a specific stock symbol, including the company's market capitalization, stock price, industry, and much more.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered for the agent. The description contributes only a partial picture of the payload ('market capitalization, stock price, industry, and much more') without disclosing whether this is a premium endpoint, what authentication/entitlement is required, or how large/fresh the returned profile is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and its scope, with no redundant instructions. The second sentence spends words naming the vendor API and ends in the vague filler 'and much more', which is mild padding but not damaging.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with full schema coverage, no output schema, and safety annotations already present, the description supplies enough for correct invocation. The remaining gap is only the unenumerated payload contents and any entitlement caveats, which are secondary for a simple profile fetch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'symbol' parameter, so the schema already carries the semantics and the baseline is 3. The description restates that the symbol identifies a stock but adds no format guidance (exchange suffix, casing, delisted tickers) beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Access') and resource ('detailed company profile data') scoped to 'a specific stock symbol', and lists representative fields (market cap, price, industry). However, it never distinguishes itself from near-neighbors in this dense sibling set such as getCompanyProfileByCIK, getCompanyProfilesBulk, or getCompanySymbols.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific stock symbol' implicitly tells the agent this is the single-symbol lookup and requires a ticker, which argues against the bulk or CIK variants. But there is no explicit when-to-use/when-not guidance and no named alternative, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanyProfileByCIKBRead-onlyIdempotentInspect
Retrieve detailed company profile data by CIK (Central Index Key) with the FMP Company Profile by CIK API. This API allows users to search for companies using their unique CIK identifier and access a full range of company data, including stock price, market capitalization, industry, and much more.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered structurally. The description adds value by enumerating the payload contents (stock price, market capitalization, industry), giving a sense of the return shape despite no output schema. It discloses nothing about auth requirements, rate limits, or behavior when the CIK is unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, which is good, but the second sentence largely restates the first ('search for companies using their unique CIK identifier' repeats the CIK lookup) and the vendor/API name is repeated twice. Roughly half the text is marketing padding rather than operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full annotation coverage and no output schema, the description is adequate: it names the key, lists representative returned fields, and makes the lookup mode unambiguous. The remaining gap — CIK formatting expectations — is minor relative to the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'cik' parameter, so the baseline is 3. The description expands the acronym to 'Central Index Key', which is mild added meaning, but it does not say whether the CIK must be zero-padded to ten digits or accepted as a bare integer — the most likely source of caller error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve detailed company profile data') plus the exact lookup key ('by CIK'), which distinguishes it from the symbol-based getCompanyProfile without needing to open a schema. It stops short of explicitly naming that sibling, so differentiation is implied by the key rather than declared.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it should call this when it holds a CIK rather than a ticker, and the presence of searchCIK / searchCompaniesByCIK in the sibling list makes that inference reachable. However, no sentence says when to prefer this over getCompanyProfile or searchCompaniesByCIK, and no prerequisites or fallback behavior are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanyProfilesBulkBRead-onlyIdempotentInspect
The FMP Profile Bulk API allows users to retrieve comprehensive company profile data in bulk. Access essential information, such as company details, stock price, market cap, sector, industry, and more for multiple companies in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| part | Yes | Part number (e.g., 0, 1, 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and retry semantics are covered. The description adds only a field inventory (price, market cap, sector, industry), and is silent on the critical behavior of 'part' pagination — whether you must iterate parts, how many exist, or what happens when a part is out of range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the bulk scope front-loaded, which is appropriate for a scan-read. The second sentence drifts into marketing phrasing ('Access essential information, such as...') and lists fields that could be trimmed to a shorter clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does help by enumerating returned fields, but for a one-parameter tool whose parameter is an unintuitive pagination index, the definition leaves the agent without the information needed to iterate calls correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the sole parameter 'part' is documented only as 'Part number (e.g., 0, 1, 2)', which is semantically thin. The description does not explain what a part partitions or how to know the part count, so it adds nothing beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the bulk scope: 'retrieve comprehensive company profile data in bulk' for 'multiple companies in a single request'. It does not name the single-company sibling (getCompanyProfile / getCompanyProfileByCIK), so an agent must infer when bulk is preferable, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage only: the phrase 'for multiple companies in a single request' hints that this is the multi-entity variant of the profile endpoints. There is no explicit when-to-use vs. getCompanyProfile, no guidance on passing a symbol list, and no mention of how many companies a single call covers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanySECProfileBRead-onlyIdempotentInspect
Retrieve detailed company profiles, including business descriptions, executive details, contact information, and financial data with the FMP SEC Company Full Profile API.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Central Index Key (CIK) | |
| symbol | No | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the informational content of the response (executives, contacts, financial data), but says nothing about coverage of SEC filings, data freshness, or whether the identifiers must match — modest value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler sentences. Slightly padded by the trailing 'with the FMP SEC Company Full Profile API' clause, which names a vendor endpoint rather than telling the agent anything actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description is the only source of return-value info, and listing the data categories partially covers that. But for a tool with zero required parameters and 150+ siblings, missing guidance on identifier selection and on differentiation from getCompanyProfile leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with only two simple parameters (cik, symbol), so the schema already carries the parameter documentation burden. The description adds no meaning beyond it — notably it does not clarify whether symbol and CIK are alternatives, whether both may be supplied, or how conflicts resolve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (company profiles) and enumerates the payload contents (business descriptions, executive details, contact info, financial data). However, it never distinguishes the tool from close siblings like getCompanyProfile and getCompanyProfileByCIK; the only differentiating signal is the phrase 'SEC Company Full Profile API', which requires the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. The description does not say when to pick this over getCompanyProfile, getCompanyProfileByCIK, or getCompanyExecutives, nor does it explain how the CIK vs symbol identifiers interact given that neither is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCompanySymbolsRead-onlyIdempotentInspect
Easily retrieve a comprehensive list of financial symbols with the FMP Company Symbols List API. Access a broad range of stock symbols and other tradable financial instruments from various global exchanges, helping you explore the full range of available securities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getCOTAnalysisRead-onlyIdempotentInspect
Gain in-depth insights into market sentiment with the FMP COT Report Analysis API. Analyze the Commitment of Traders (COT) reports for a specific date range to evaluate market dynamics, sentiment, and potential reversals across various sectors.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date (YYYY-MM-DD) | |
| symbol | Yes | Commodity symbol | |
| from_date | No | Optional start date (YYYY-MM-DD) |
getCOTListBRead-onlyIdempotentInspect
Access a comprehensive list of available Commitment of Traders (COT) reports by commodity or futures contract using the FMP COT Report List API. This API provides an overview of different market segments, allowing users to retrieve and explore COT reports for a wide variety of commodities and financial instruments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered without help from the text. The description adds some context that the list is organized by market segments and spans many commodities, but it does not say whether the list is static or live, or what a list entry represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence carries the substance and is reasonably front-loaded. The second sentence largely restates it ('retrieve and explore COT reports for a wide variety of commodities and financial instruments') without adding actionable detail, and the API-name reference is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-argument listing endpoint with no output schema, the description should say what the list contains (report names, commodity codes, release dates?) and that its output is meant to feed a follow-up call. It gestures at breadth but never describes the shape or intended downstream use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to disambiguate and the baseline applies. The mention of filtering by commodity or futures contract is not backed by any schema parameter, which is a mild noise, but no parameter documentation is required here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a resource (a list of available COT reports) and implies it is a catalog rather than report data, which is roughly the right idea. However, it never distinguishes itself from the close siblings getCOTReports and getCOTAnalysis, and the phrase 'by commodity or futures contract' suggests a filtering capability that a zero-parameter tool cannot have.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus getCOTReports or getCOTAnalysis, which are the obvious alternatives for COT data. The agent is left to infer that this is a discovery/reference endpoint whose output would feed a subsequent data fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCOTReportsRead-onlyIdempotentInspect
Access comprehensive Commitment of Traders (COT) reports with the FMP COT Report API. This API provides detailed information about long and short positions across various sectors, helping you assess market sentiment and track positions in commodities, indices, and financial instruments.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date (YYYY-MM-DD) | |
| symbol | Yes | Commodity symbol | |
| from_date | No | Optional start date (YYYY-MM-DD) |
getCrowdfundingCampaignsByCIKBRead-onlyIdempotentInspect
Access detailed information on all crowdfunding campaigns launched by a specific company with the FMP Crowdfunding By CIK API.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. Beyond that the description adds essentially nothing: no indication of pagination or result limits, no ordering, no note on what happens when the CIK has no campaigns or is invalid, and no sense of result size for a read-only open-world API call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and the scoping dimension, with no filler. It is lean but borders on thin, since brevity here comes partly from omitting useful detail rather than from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required string parameter, no output schema, annotations covering safety), so the description does not need to explain return values. However, an agent still lacks guidance on choosing between this and the other crowdfunding endpoints, which is the main completeness gap for an otherwise minimal tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'cik' parameter, so the baseline is 3. The description only reinforces that the CIK identifies a company; it adds no format hints (e.g. zero-padding, numeric-only string) beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Access detailed information on all crowdfunding campaigns') and scopes it to a company identified by CIK, which separates it from the retrieval-by-recency and search-based siblings. It stops short of explicitly naming those siblings, so the differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'launched by a specific company with the... CIK' implies the usage condition: call this when you already have a CIK. There is no explicit when-not guidance and no reference to getLatestCrowdfundingCampaigns or searchCrowdfundingCampaigns, so the agent must infer which of the three to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptocurrency1HourDataRead-onlyIdempotentInspect
Access detailed 1-hour intraday price data for cryptocurrencies with the 1-Hour Interval Cryptocurrency Data API. Track hourly price movements to gain insights into market trends and make informed trading decisions throughout the day.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getCryptocurrency1MinuteDataRead-onlyIdempotentInspect
Get real-time, 1-minute interval price data for cryptocurrencies with the 1-Minute Cryptocurrency Intraday Data API. Monitor short-term price fluctuations and trading volume to stay updated on market movements.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getCryptocurrency5MinuteDataBRead-onlyIdempotentInspect
Analyze short-term price trends with the 5-Minute Interval Cryptocurrency Data API. Access real-time, intraday price data for cryptocurrencies to monitor rapid market movements and optimize trading strategies.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description then adds a potentially misleading claim of 'real-time' data even though the schema exposes from_date/to parameters, implying historical range queries, and it says nothing about range limits, timezone handling, or response shape for an intraday bar series.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the tool's purpose, which is good. The second sentence is largely promotional ('optimize trading strategies') and could be replaced with operational detail that actually helps an agent call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry more weight about what comes back from a 5-minute series and any interval/range constraints. Annotations cover the safety profile and the schema covers the parameters, so nothing critical is missing, but the 'real-time' framing against date-range parameters leaves the agent's expectations underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, from_date and to are already documented with the YYYY-MM-DD format and BTCUSD example. The description adds no meaning beyond that baseline, such as default range when from_date is omitted or the maximum span allowed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource and granularity ('5-Minute Interval Cryptocurrency Data', 'intraday price data for cryptocurrencies'), so an agent knows it retrieves 5-minute bars. It does not explicitly differentiate itself from close siblings like getCryptocurrency1MinuteData or getCryptocurrency1HourData, leaving that distinction to the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through phrases like 'short-term price trends' and 'rapid market movements', which hint at intraday analysis. There is no explicit statement of when to choose this over the 1-minute or 1-hour variants, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptocurrencyBatchQuotesBRead-onlyIdempotentInspect
Access live price data for a wide range of cryptocurrencies with the FMP Real-Time Cryptocurrency Batch Quotes API. Get real-time updates on prices, market changes, and trading volumes for digital assets in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Get short quotes instead of full quotes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered without description help. The description adds useful content-level context by naming the returned fields (prices, market changes, trading volumes), but says nothing about rate limits, quote freshness/latency, or which exchanges/assets are covered despite advertising 'real-time' data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core purpose, but the vendor/API name ('FMP Real-Time Cryptocurrency Batch Quotes API') is filler and the second sentence largely restates the first with a slightly different field list. Tighter phrasing would earn the same information in half the space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, annotation-covered read tool with one optional parameter and no output schema, the description is adequate: it conveys that all crypto assets are returned in one call and what kind of data comes back. It is missing the short-vs-full quote behavior and any statement of coverage or result shape, which would matter since there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is exactly one optional parameter ('short') and schema description coverage is 100%, so the schema fully documents it. The description never mentions the short/full quote distinction, meaning it adds no meaning beyond the schema; the baseline of 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource combination (live price data / batch quotes for cryptocurrencies) and states the scope as 'a wide range of cryptocurrencies ... in a single request', which implicitly separates it from the single-symbol getCryptocurrencyQuote and getCryptocurrencyShortQuote siblings. However, it never names those siblings explicitly, so the distinction relies on the word 'batch' in the name and the phrase 'single request'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'In a single request' for 'a wide range of cryptocurrencies' implies the batch use case, so an agent can infer this is for multi-asset snapshots rather than per-symbol lookups. There is no explicit when-to-use, when-not-to-use, or pointer to getCryptocurrencyQuote / getCryptocurrencyShortQuote for single assets, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptocurrencyHistoricalFullChartBRead-onlyIdempotentInspect
Access comprehensive end-of-day (EOD) price data for cryptocurrencies with the Full Historical Cryptocurrency Data API. Analyze long-term price trends, market movements, and trading volumes to inform strategic decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds real context beyond that by disclosing data granularity (end-of-day) and that trading volumes are included, but says nothing about pagination, rate limits, maximum history depth, or what happens when from_date is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability and data granularity. The second sentence is partly marketing filler ('inform strategic decisions') but does earn some place by naming the analysis dimensions (trends, market movements, volumes) the data supports.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations covering data shape, the description should explain what a record contains (OHLCV bars, one row per day) and whether the date range is optional. It hints at price and volume but leaves the return shape and default date behavior unspecified, which matters for a three-parameter historical data tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, from_date and to are already documented with formats and an example. The description adds only a loose implication that a date range governs the result, with no additional syntax, default, or boundary behavior beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: retrieve comprehensive end-of-day (EOD) price data for cryptocurrencies over the full history. The word 'Full' plus 'end-of-day' implicitly separates it from the intraday siblings (getCryptocurrency1MinuteData, 5Minute, 1Hour) and from getCryptocurrencyHistoricalLightChart, but the distinction is never made explicit, so an agent must infer it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the phrase 'Analyze long-term price trends,' which signals long-horizon analysis rather than intraday work, but the description never names the LightChart or intraday alternatives or states when not to use this tool. An agent could reasonably pick this over getCryptocurrencyHistoricalLightChart with no guidance on the trade-off.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptocurrencyHistoricalLightChartRead-onlyIdempotentInspect
Access historical end-of-day prices for a variety of cryptocurrencies with the Historical Cryptocurrency Price Snapshot API. Track trends in price and trading volume over time to better understand market behavior.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getCryptocurrencyListRead-onlyIdempotentInspect
Access a comprehensive list of all cryptocurrencies traded on exchanges worldwide with the FMP Cryptocurrencies Overview API. Get detailed information on each cryptocurrency to inform your investment strategies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getCryptocurrencyQuoteCRead-onlyIdempotentInspect
Access real-time quotes for all cryptocurrencies with the FMP Full Cryptocurrency Quote API. Obtain comprehensive price data including current, high, low, and open prices.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds only that data is 'real-time', which is mildly useful freshness context, but says nothing about rate limits, data source latency, or what the response contains beyond a field list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core capability front-loaded. There is minor vendor-marketing filler ('with the FMP Full Cryptocurrency Quote API', 'comprehensive'), but nothing that buries the main point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only quote tool with no output schema, this is borderline adequate: it enumerates the price fields returned (current, high, low, open). However, the misleading 'all cryptocurrencies' scope statement and absence of any routing guidance leave gaps for an agent in a large crypto tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented in the schema ('Cryptocurrency symbol (e.g., BTCUSD)'), so the baseline of 3 applies. The description adds no meaning beyond the schema and arguably muddies it by implying coverage of all cryptocurrencies rather than one symbol.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a verb and resource ('Access real-time quotes for all cryptocurrencies'), but 'for all cryptocurrencies' conflicts with the schema's required single 'symbol' parameter and blurs the line with siblings like getCryptocurrencyBatchQuotes and getCryptoQuotes. It never names those siblings, so the agent can't confidently separate this tool from the batch/short variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. Given the crowded crypto sibling set (short quote, batch quotes, quotes, historical charts), an agent has no stated rule for choosing this one over getCryptocurrencyShortQuote or getCryptocurrencyBatchQuotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptocurrencyShortQuoteRead-onlyIdempotentInspect
Access real-time cryptocurrency quotes with the FMP Cryptocurrency Quick Quote API. Get a concise overview of current crypto prices, changes, and trading volume for a wide range of digital assets.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Cryptocurrency symbol (e.g., BTCUSD) |
getCryptoNewsBRead-onlyIdempotentInspect
Stay informed with the latest cryptocurrency news using the FMP Crypto News API. Access a curated list of articles from various sources, including headlines, snippets, and publication URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful output-shape context (curated multi-source articles with headlines, snippets, and URLs), which matters because there is no output schema, but it says nothing about result volume, pagination, or recency ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, one of which is marketing framing ('Stay informed with...') that carries no operational information. The second sentence does real work by naming the returned fields, but the whole thing would be stronger if the return shape were front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering safety, the description is adequate—and the field listing partially compensates for the missing output schema. It is still silent on pagination limits, default recency behavior, and the relationship to the searchCryptoNews sibling, which an agent would need to invoke it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (from_date, to, page, limit) are already documented with formats and defaults in the schema. The description contributes no additional meaning such as how dates interact with the news window or how paging behaves across large result sets, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (latest cryptocurrency news articles) and adds concrete content detail: headlines, snippets, and publication URLs. It does not differentiate from near-identical siblings such as searchCryptoNews, getGeneralNews, or getForexNews, leaving the agent to infer why this one is the right pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives like searchCryptoNews for keyword-filtered retrieval, and no statement of what happens when no date range is supplied. The agent must guess whether this returns the newest articles by default or everything.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCryptoQuotesBRead-onlyIdempotentInspect
Access real-time cryptocurrency quotes with the FMP Full Cryptocurrency Quotes API. Track live prices, trading volumes, and price changes for a wide range of digital assets.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and freshness profile is covered. The description adds that quotes are real-time and enumerates the fields exposed (price, volume, change), which is useful context beyond annotations, but says nothing about symbol coverage, batching, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences naming the capability and the data returned, with no filler. Minor vendor boilerplate ('with the FMP Full Cryptocurrency Quotes API') that adds little for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with full schema coverage and no output schema, the description is adequate but thin: it never resolves the ambiguity with its many crypto quote siblings or explains what 'short' produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'short' parameter has 100% schema description coverage, so the schema already carries the semantics and baseline 3 applies. The description never mentions the short/full format distinction, missing an opportunity to clarify its only knob.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (access real-time cryptocurrency quotes) and names the data returned (prices, volume, price changes). However, it does not distinguish this from near-identical siblings like getCryptocurrencyQuote, getCryptocurrencyShortQuote, or getCryptocurrencyBatchQuotes, leaving the agent unsure which endpoint to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus getCryptocurrencyQuote or getCryptocurrencyShortQuote, and no explanation of when the 'short' option applies despite a dedicated sibling existing for short quotes. The agent must infer selection from name similarity alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDCFValuationRead-onlyIdempotentInspect
Estimate the intrinsic value of a company with the FMP Discounted Cash Flow Valuation API. Calculate the DCF valuation based on expected future cash flows and discount rates.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getDCFValuationsBulkARead-onlyIdempotentInspect
The FMP DCF Bulk API enables users to quickly retrieve discounted cash flow (DCF) valuations for multiple symbols in one request. Access the implied price movement and percentage differences for all listed companies.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description contributes that the result set spans "all listed companies" and includes implied price movement and percentage differences, which hints at an unfiltered, potentially large response, but it says nothing about cost, rate limits, pagination or filtering behavior for a zero-parameter universe-wide call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is retrieved and followed by what comes back. Minor waste in the marketing phrasing "enables users to quickly retrieve" instead of a direct verb, but no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description must carry the return-shape burden, and it only sketches two fields (implied price movement, percentage difference) without saying what the records key on. For a universe-wide bulk endpoint, missing response size, ordering or truncation behavior is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate and the baseline applies. It does correctly convey that scope is fixed (all listed companies) rather than selectable, which is the only semantic an empty schema leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("retrieve discounted cash flow (DCF) valuations for multiple symbols in one request") and adds the output subject matter ("implied price movement and percentage differences"). The word "Bulk" plus "multiple symbols in one request" implicitly separates it from the single-symbol getDCFValuation sibling, but that sibling is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the batch variant to use when it needs many symbols at once rather than one. There is no explicit when-to-use/when-not clause and no mention of the alternatives (getDCFValuation, getLeveredDCFValuation, calculateCustomDCF), so the choice is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDelistedCompaniesRead-onlyIdempotentInspect
Stay informed with the FMP Delisted Companies API. Access a comprehensive list of companies that have been delisted from US exchanges to avoid trading in risky stocks and identify potential financial troubles.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 100) |
getDEMACRead-onlyIdempotentInspect
Calculate the Double Exponential Moving Average (DEMA) for a stock using the FMP DEMA API. This tool helps users analyze trends and identify potential buy or sell signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and idempotency are covered without the description's help. The description adds only that results derive from historical price data, saying nothing about the shape of the returned series, the effect of missing/adjusted data, or rate/credit costs for a live external API — and no output schema exists to fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the operation front-loaded before the interpretive framing. Nothing is redundant, though the second sentence is the least informative part of the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculation tool with a fully documented five-parameter schema, the essentials are present, but with no output schema the description should say what comes back (a dated series of DEMA values) and how it relates to the requested date range. As written, an agent knows what to send but not what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all five parameters (symbol, periodLength, timeframe, from_date, to) are documented in the schema, including the allowed timeframe values. The description adds no meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Calculate the Double Exponential Moving Average (DEMA) for a stock') and supplies the underlying endpoint (FMP DEMA API), so the operation is unambiguous. However, it never distinguishes itself from the many sibling indicators (getEMA, getTEMA, getWMA, getSMA), leaving an agent to infer which moving-average variant to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage framing is generic ('helps users analyze trends and identify potential buy or sell signals'), which would apply equally to every indicator sibling. There is no statement of when DEMA is preferable to getEMA or getTEMA, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDisclosureRead-onlyIdempotentInspect
Access the latest disclosures from mutual funds and ETFs with the FMP Mutual Fund & ETF Disclosure API. This API provides updates on filings, changes in holdings, and other critical disclosure data for mutual funds and ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
getDividendAdjustedChartARead-onlyIdempotentInspect
Analyze stock performance with dividend adjustments using the FMP Dividend-Adjusted Price Chart API. Access end-of-day price and volume data that accounts for dividend payouts, offering a more comprehensive view of stock trends over time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the meaningful behavioral context that prices are dividend-adjusted, but it says nothing about date-range defaults, maximum span, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two reasonably tight sentences front-loading the dividend-adjustment distinction. The second sentence is somewhat padded marketing language ('more comprehensive view') but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only chart tool with a fully documented schema and clear annotations, the description covers what the tool returns (EOD price and volume, dividend adjusted). Only date-range behavior limits are missing, which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three parameters documented, so the baseline is 3. The description adds no extra meaning about the from_date/to parameters, such as defaults or limits, beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: dividend-adjusted end-of-day price and volume data for a stock symbol. It clearly distinguishes the tool from plain chart siblings like getLightChart and getUnadjustedChart by naming the dividend adjustment, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it — when you need a view of price trends that accounts for dividend payouts — but never states when not to use it or points to the unadjusted/light/full chart alternatives in the sibling list. The choice between adjusted and unadjusted charts is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getDividendsRead-onlyIdempotentInspect
Stay informed about upcoming dividend payments with the FMP Dividends Company API. This API provides essential dividend data for individual stock symbols, including record dates, payment dates, declaration dates, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
getDividendsCalendarRead-onlyIdempotentInspect
Stay informed on upcoming dividend events with the Dividend Events Calendar API. Access a comprehensive schedule of dividend-related dates for all stocks, including record dates, payment dates, declaration dates, and dividend yields.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getDowJonesConstituentsCRead-onlyIdempotentInspect
Access data on the Dow Jones Industrial Average using the Dow Jones API. Track current values, analyze trends, and get detailed information about the companies that make up this important stock index.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered; the description adds nothing beyond them, such as whether the payload is a static snapshot, how large the list is, or what fields each constituent carries. Worse, the 'analyze trends' phrasing implies historical capability that a zero-parameter endpoint does not have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both reasonably short, but the second is padded marketing copy ('important stock index') and spends its words on capabilities the tool lacks rather than front-loading what it returns. The genuinely informative fragment, the member companies, is buried mid-sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations describing the response, the description is the sole source of information about what comes back, and it fails to say whether the result is a list of tickers, full company profiles, weights, or sector breakdowns. For a data-retrieval tool with an empty input schema, that omission leaves the agent unable to predict the payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate at the input layer; the baseline for zero-parameter tools applies. The only shortfall is that it does not clarify whether the result is scoped to a date or is a live snapshot.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name promises a constituents list, and the description does gesture at 'the companies that make up this important stock index', but it muddles that with 'Track current values, analyze trends', which describes index-quote and historical-chart tools rather than a membership roster. No sibling such as getSP500Constituents or getNasdaqConstituents is acknowledged, so the agent must infer differentiation itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus getIndexQuote, getHistoricalDowJonesChanges, or the parallel S&P/Nasdaq constituent tools. The imperative 'Track current values, analyze trends' actively points the agent toward use cases this parameterless tool cannot serve.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEarningsCalendarBRead-onlyIdempotentInspect
Stay informed on upcoming and past earnings announcements with the FMP Earnings Calendar API. Access key data, including announcement dates, estimated earnings per share (EPS), and actual EPS for publicly traded companies.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) | |
| includeReportTimes | No | Include report period, confirmed/estimated flag and estimated report time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so safety behavior is covered. The description adds useful scope by saying it covers both upcoming and past announcements and includes estimated/actual EPS, but it omits pagination, default date behavior, and rate-limit or auth context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is only two sentences and front-loads the earnings-calendar purpose. There is some marketing filler such as "Stay informed" and "Access key data," but it remains efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only calendar tool with three optional, fully documented parameters and no output schema, the description gives enough content scope: announcement timing and EPS fields. It could do more to explain default date handling, but the core completeness is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all three parameters have clear descriptions for date range and report-time inclusion. The description adds no parameter-specific meaning beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource and scope clearly: upcoming and past earnings announcements, with announcement dates and estimated/actual EPS. It is more specific than a tautology, but it does not distinguish itself from close siblings such as getEarningsReports or getEarningsSurprisesBulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the general use case of staying informed about earnings announcements, but gives no explicit when-to-use guidance, exclusions, or alternatives. It never tells an agent when to choose this calendar tool over related earnings-report or transcript tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEarningsReportsBRead-onlyIdempotentInspect
Retrieve in-depth earnings information with the FMP Earnings Report API. Gain access to key financial data for a specific stock symbol, including earnings report dates, EPS estimates, and revenue projections to help you stay on top of company performance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety profile is covered. The description adds only a hint of returned content (dates, EPS estimates, revenue projections) but no pagination behavior, history depth, or what happens with the limit parameter, so extra value beyond annotations is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb, but padded with marketing filler ('in-depth', 'Gain access to', 'help you stay on top of company performance') that consumes space without informing tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the enumeration of returned fields is genuinely useful and partially compensates. However, for a tool sitting among many earnings-adjacent siblings, the definition does not clarify scope (historical quarterly reports vs. calendar vs. surprises), leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (symbol, limit with default 100 / max 1000) are documented in the schema. The description mentions the symbol scoping but adds no format or semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Retrieve') and resource ('earnings information' / 'Earnings Report API') and enumerates content: earnings report dates, EPS estimates, revenue projections. It does not differentiate from nearby siblings like getEarningsCalendar, getAnalystEstimates, or getEarningsSurprisesBulk, leaving the agent to guess which earnings-flavored tool is right.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for a specific stock symbol' implicitly signals the per-symbol use case, but there is no explicit when-to-use or when-not-to-use guidance and no mention of the alternatives in a sibling list dense with earnings tools (calendar, surprises, transcript).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEarningsSurprisesBulkRead-onlyIdempotentInspect
The Earnings Surprises Bulk API allows users to retrieve bulk data on annual earnings surprises, enabling quick analysis of which companies have beaten, missed, or met their earnings estimates. This API provides actual versus estimated earnings per share (EPS) for multiple companies at once, offering valuable insights for investors and analysts.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year to get earnings surprises for |
getEarningsTranscriptBRead-onlyIdempotentInspect
Access the full transcript of a company’s earnings call with the FMP Earnings Transcript API. Stay informed about a company’s financial performance, future plans, and overall strategy by analyzing management's communication.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year of the earnings call | |
| limit | No | Limit the number of results | |
| symbol | Yes | Stock symbol | |
| quarter | Yes | Quarter of the earnings call (e.g., 1, 2, 3, 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds only that the FULL transcript is returned (implying a potentially large text payload), but says nothing about availability gaps, rate limits, or whether missing transcripts error versus return empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful. The second sentence ('Stay informed about a company's financial performance...') is generic marketing copy that adds no operational information and could be cut without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could reasonably describe what a transcript record contains (sections, participants, date) or note expected payload size. As written it is adequate but leaves the agent guessing about the return shape for a relatively simple 4-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, year, quarter, and limit are already documented in the input schema. The description adds no meaning beyond that baseline, such as whether quarter accepts 'Q1' versus '1' or how limit interacts with a single-transcript request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource pair ('Access the full transcript of a company's earnings call') and identifies the data provider (FMP). It does not, however, distinguish this tool from close siblings such as getEarningsTranscriptList, getLatestEarningsTranscripts, or getEarningsTranscriptDates, so an agent must infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: retrieving one transcript for a specific company/period. There is no explicit when-to-use guidance, no statement of prerequisites (e.g. the transcript must exist for that symbol/year/quarter), and no routing to the list/dates siblings for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEarningsTranscriptDatesRead-onlyIdempotentInspect
Access earnings call transcript dates for specific companies with the FMP Transcripts Dates By Symbol API. Get a comprehensive overview of earnings call schedules based on fiscal year and quarter.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getEarningsTranscriptListRead-onlyIdempotentInspect
Access available earnings transcripts for companies with the FMP Earnings Transcript List API. Retrieve a list of companies with earnings transcripts, along with the total number of transcripts available for each company.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getEconomicCalendarRead-onlyIdempotentInspect
Stay informed with the FMP Economic Data Releases Calendar API. Access a comprehensive calendar of upcoming economic data releases to prepare for market impacts and make informed investment decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date (YYYY-MM-DD) | |
| from_date | No | Optional start date (YYYY-MM-DD) |
getEconomicIndicatorsRead-onlyIdempotentInspect
Access real-time and historical economic data for key indicators like GDP, unemployment, and inflation with the FMP Economic Indicators API. Use this data to measure economic performance and identify growth trends.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date (YYYY-MM-DD); the date range can span at most 90 days | |
| name | Yes | Indicator name, e.g. GDP, realGDP, nominalPotentialGDP, realGDPPerCapita, federalFunds, CPI, inflationRate, inflation, retailSales, consumerSentiment, durableGoods, unemploymentRate, totalNonfarmPayroll, initialClaims, industrialProductionTotalIndex, newPrivatelyOwnedHousingUnitsStartedTotalUnits, totalVehicleSales, retailMoneyFunds, smoothedUSRecessionProbabilities, 3MonthOr90DayRatesAndYieldsCertificatesOfDeposit, commercialBankInterestRateOnCreditCardPlansAllAccounts, 30YearFixedRateMortgageAverage, 15YearFixedRateMortgageAverage, tradeBalanceGoodsAndServices | |
| from_date | No | Optional start date (YYYY-MM-DD); the date range can span at most 90 days |
getEMABRead-onlyIdempotentInspect
Calculate the Exponential Moving Average (EMA) for a stock using the FMP EMA API. This tool helps users analyze trends and identify potential buy or sell signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety and external-dependency profile is covered. The description adds essentially nothing beyond that: it doesn't state what the response looks like, how the from_date/to range defaults if omitted, or what happens when periodLength exceeds available history. With annotations carrying the load, this is thin but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and resource, with no redundant restatement of the name. The trailing clause about buy/sell signals is somewhat generic marketing language rather than operational detail, but it is short enough not to be wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only indicator tool with a fully documented schema and no output schema. Because no output schema exists, the description could reasonably say what is returned (e.g., a series of dates with EMA values), but it does not; otherwise the definition is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (symbol, periodLength, timeframe, from_date, to) are already documented with types and, for timeframe, an enumerated value list. The description adds no additional meaning such as how periodLength interacts with the date range, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Calculate the Exponential Moving Average (EMA) for a stock') and identifies the underlying endpoint (FMP EMA API). It does not distinguish itself from the many sibling indicator tools (getSMA, getWMA, getDEMA, getTEMA, getRSI), so an agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies a use case ('analyze trends and identify potential buy or sell signals'), which gives loose context for when to reach for it. However, there is no explicit guidance on when to prefer EMA over SMA/WMA/DEMA/TEMA, nor any mention of prerequisites such as needing a sufficient lookback window for periodLength.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEmployeeCountBRead-onlyIdempotentInspect
Retrieve detailed workforce information for companies, including employee count, reporting period, and filing date. The FMP Company Employee Count API also provides direct links to official SEC documents for further verification and in-depth research.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 10000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, open-world operation. The description adds useful context about the returned data, including employee count, reporting period, filing date, and SEC document links, but it does not discuss pagination behavior or result limits beyond what the schema states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose before mentioning SEC links. The second sentence has a slightly promotional tone, but it still provides relevant information about the returned documents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with complete schema coverage and annotations, the description covers the essential return fields even though no output schema exists. It explains employee count, reporting period, filing date, and SEC document links sufficiently for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the symbol and limit parameters are already documented in the input schema. The description adds no additional meaning or usage constraints for those parameters, making the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieving company workforce information including employee count, reporting period, and filing date. It is clear what the tool returns, but it does not explicitly distinguish itself from the sibling getHistoricalEmployeeCount or clarify whether this returns current versus historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, no when-not-to-use conditions, and does not name alternatives such as getHistoricalEmployeeCount or getCompanyProfile. An agent must infer usage from the resource description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEnterpriseValuesRead-onlyIdempotentInspect
Retrieve a company's enterprise value history with the FMP Enterprise Values API. Each row combines stock price, shares outstanding, market capitalization, total debt and cash to show the company's total value.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results | |
| period | No | Period (Q1, Q2, Q3, Q4, FY, annual, or quarter) | |
| symbol | Yes | Stock symbol |
getEODDataBulkCRead-onlyIdempotentInspect
The EOD Bulk API allows users to retrieve end-of-day stock price data for multiple symbols in bulk. This API is ideal for financial analysts, traders, and investors who need to assess valuations for a large number of companies.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date in YYYY-MM-DD format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered, but the description adds almost nothing beyond them. Crucially it never explains how symbols are supplied (the schema has no symbols parameter), what volume of data comes back, or whether there is a payload or rate limit on a bulk endpoint with an openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the actual capability, but the second sentence is audience marketing that consumes half the text without telling an agent anything actionable. It could be trimmed or replaced with facts about symbol selection and return shape.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back, and it does not: no mention of which fields are returned or whether coverage is a fixed universe of symbols for that date. For a bulk data endpoint whose only input is a date, that omission is the central unexplained detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully documented in the schema (date in YYYY-MM-DD), so the baseline is 3. The description does not clarify what the date means for an EOD dataset (trading day vs calendar day, historical range validity), and its talk of 'multiple symbols' raises a parameter that does not exist in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: retrieve end-of-day stock price data, scoped to multiple symbols in bulk. That is meaningfully more specific than a bare name restatement and separates it from single-quote siblings such as getQuote or getBatchQuotesShort, though it never explicitly names which sibling it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is audience framing ('financial analysts, traders, and investors who need to assess valuations'), which describes who benefits rather than when to call this tool. There is no statement about when to prefer this over getBatchQuotes, getQuote, or the other bulk siblings, and no preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getEquityOfferingsByCIKRead-onlyIdempotentInspect
Access detailed information on equity offerings announced by specific companies with the FMP Company Equity Offerings by CIK API. Track offering activity and identify potential investment opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number to search for |
getESGBenchmarksRead-onlyIdempotentInspect
Evaluate the ESG performance of companies and funds with the FMP ESG Benchmark Comparison API. Compare ESG leaders and laggards within industries to make informed and responsible investment decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional year to get benchmarks for |
getESGDisclosuresCRead-onlyIdempotentInspect
Align your investments with your values using the FMP ESG Investment Search API. Discover companies and funds based on Environmental, Social, and Governance (ESG) scores, performance, controversies, and business involvement criteria.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. Beyond that, the description adds nothing behavioral — no indication of what a 'disclosure' contains, whether results are historical or current, or how it differs from an ESG rating. With annotations carrying the basic profile, a 3 is the fair ceiling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short — two sentences — but the space is spent on brand language rather than front-loading the operation, the input, or the output. Brevity here reflects missing substance rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full schema coverage and annotations, the description still needs to say it returns ESG disclosure data for the given symbol and how that differs from ESG ratings. Instead it describes a different kind of tool entirely, leaving the agent's core question unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the single 'symbol' parameter at 100% coverage, which would normally anchor a 3, but the description actively undercuts it by describing criteria-based discovery ('scores, performance, controversies, business involvement criteria') when no such filter parameters exist. That creates a false expectation about the input rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses promotional framing ('Align your investments with your values', 'Discover companies and funds based on... criteria') that reads like a screening/search tool, while the tool actually takes a single required 'symbol' and returns ESG disclosures for it. It never states the concrete verb+resource (fetch ESG disclosure records for one symbol), so an agent cannot confidently distinguish it from marketing copy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of the many closely related siblings (getESGRatings, getESGBenchmarks, getDisclosure, getFundDisclosure, searchFundDisclosures). The phrase 'Discover companies and funds' implies a search workflow that this single-symbol tool does not support, so the only usage signal present is misleading rather than helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getESGRatingsCRead-onlyIdempotentInspect
Access comprehensive ESG ratings for companies and funds with the FMP ESG Ratings API. Make informed investment decisions based on environmental, social, and governance (ESG) performance data.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. Beyond that the description discloses nothing about behavior — not whether ratings are current vs. historical, what data points come back (E/S/G pillar scores, totals), or whether coverage is limited to a subset of symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is generic marketing ('Make informed investment decisions based on ... ESG performance data') that carries no operative information. The functional content is front-loaded, which is good, but roughly half the text is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description is minimally adequate but leaves the agent guessing at what ratings are returned (pillar-level scores, percentile, etc.) and at the relationship to the other ESG tools in the sibling list. An output schema is absent, so some return-shape guidance would have been valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'symbol' parameter, so the baseline is 3. The description adds no meaning beyond the schema — it does not clarify whether the symbol may be a fund ticker despite the 'companies and funds' framing, nor whether a single symbol only is accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Access comprehensive ESG ratings for companies and funds'), so an agent knows it retrieves ESG scores. However, it does not differentiate itself from sibling tools like getESGDisclosures or getESGBenchmarks, and 'companies and funds' is slightly at odds with a single 'Stock symbol' parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as getESGDisclosures (filings-based ESG) or getESGBenchmarks. The only guidance is a vague benefit statement about making 'informed investment decisions'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getETFHoldersBulkRead-onlyIdempotentInspect
The ETF Holder Bulk API allows users to quickly retrieve detailed information about the assets and shares held by Exchange-Traded Funds (ETFs). This API provides insights into the weight each asset carries within the ETF, along with key financial information related to these holdings.
| Name | Required | Description | Default |
|---|---|---|---|
| part | Yes | Part number (e.g., 0, 1, 2) |
getETFListCRead-onlyIdempotentInspect
Quickly find ticker symbols and company names for Exchange Traded Funds (ETFs) using the FMP ETF Symbol Search API. This tool simplifies identifying specific ETFs by their name or ticker.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds only that the result contains tickers and names — it says nothing about result size, whether the entire ETF universe is returned in one call, or pagination/rate-limit behavior, which matter for an unfiltered list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and informative. The second sentence ('This tool simplifies identifying specific ETFs by their name or ticker') is filler that adds no actionable information and, worse, introduces the incorrect implication of search parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema list tool, the description does minimally cover what comes back (tickers and names). It still leaves an agent unsure whether this returns the complete ETF universe or a filtered subset, which is the key operational question for this endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, which is normally a baseline 4, but the description actively implies an input ('by their name or ticker') that the schema does not offer. That misleading framing costs it the baseline score even though there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'find' plus the resource 'ticker symbols and company names for Exchange Traded Funds' gives a reasonably specific purpose, and it is distinguishable from siblings like getETFQuotes or getFundInfo. However, the phrase 'identifying specific ETFs by their name or ticker' implies a lookup/search capability, which conflicts with a zero-parameter tool that can only return a full list; an agent may expect filtering that does not exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no named alternative. With dozens of sibling tools (searchSymbol, searchName, getETFQuotes, getFundInfo), the description never says to use this one for discovering the ETF universe versus using searchSymbol for lookup or getETFQuotes for pricing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getETFQuotesBRead-onlyIdempotentInspect
Get real-time price quotes for exchange-traded funds (ETFs) with the FMP ETF Price Quotes API. Track current prices, performance changes, and key data for a wide variety of ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld behavior, so the safety profile is covered. The description adds that quotes are real-time and that output includes performance changes, but it never mentions that the tool apparently takes no symbol parameter and therefore returns quotes for many ETFs at once — a meaningful behavioral trait an agent would want 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful, but the second sentence ('Track current prices, performance changes, and key data for a wide variety of ETFs') is marketing filler that restates the purpose without adding information. The API branding reference ('with the FMP ETF Price Quotes API') is also low value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no mention of return fields, batch scope, or whether symbols can be specified, the definition leaves real gaps for a quote tool. Annotations cover safety, but the description does not fully compensate for the missing output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional boolean parameter with 100% schema description coverage, so the schema fully carries parameter semantics. The description adds nothing about the 'short' flag but is not required to at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get real-time price quotes for exchange-traded funds'), which distinguishes it from getQuote, getMutualFundQuotes, and getCryptoQuotes among siblings. It stops short of explicitly naming those alternatives, so an agent must infer the ETF-specific scope from the asset class name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The only implied distinction is 'real-time' versus the many historical chart tools in the sibling list, and nothing says whether to use this versus getQuote or getETFList.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getExchangeMarketHoursRead-onlyIdempotentInspect
Retrieve trading hours for specific stock exchanges using the Global Exchange Market Hours API. Find out the opening and closing times of global exchanges to plan your trading strategies effectively.
| Name | Required | Description | Default |
|---|---|---|---|
| exchange | Yes | Exchange code (e.g., NASDAQ, NYSE) |
getExchangeQuotesARead-onlyIdempotentInspect
Retrieve real-time stock quotes for all listed stocks on a specific exchange with the FMP Exchange Stock Quotes API. Track price changes and trading activity across the entire exchange.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format | |
| exchange | Yes | Exchange name (e.g., NASDAQ, NYSE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful context that quotes are 'real-time' and cover the entire exchange, but it omits important behavior for an exchange-wide call, such as response size, pagination, or whether all listed stocks are returned in one response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key scoping information is front-loaded in the first sentence. The second sentence is somewhat filler, and the vendor API name ('FMP Exchange Stock Quotes API') does not help tool selection, but the description remains short and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only quote tool with full schema descriptions and annotations, the description is largely complete: it establishes real-time exchange-wide scope. The main missing element is any warning about potentially large exchange-wide responses or pagination behavior, which would be valuable given the scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the required 'exchange' parameter and the optional 'short' parameter are already documented. The description reinforces the exchange scope but adds no syntax, format, or behavioral detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Retrieve real-time stock quotes for all listed stocks on a specific exchange.' The exchange-wide scope implicitly distinguishes it from per-symbol quote tools like getQuote and symbol-batch tools like getBatchQuotes, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this tool is for exchange-wide quote retrieval rather than per-symbol lookups. There is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as getQuote or getBatchQuotes for narrower queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getExecutiveCompensationBRead-onlyIdempotentInspect
Retrieve comprehensive compensation data for company executives with the FMP Executive Compensation API. This API provides detailed information on salaries, stock awards, total compensation, and other relevant financial data, including filing details and links to official documents.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that results include filing details and links to official documents, which is genuinely useful behavioral context, but it omits granularity (per-executive vs aggregated), time period, currency, and whether one row or many are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource, which is good. The second half is padded with vendor-marketing phrasing ('with the FMP Executive Compensation API', 'and other relevant financial data') that does not help an agent decide or call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required param) and has no output schema, so the description should carry the burden of explaining what comes back. It lists content categories but says nothing about unit of return (per-executive rows), reporting year, or aggregation, leaving the agent to discover result shape empirically; it also does not route between the two adjacent executive-compensation siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and the schema documents it fully at 100% coverage, so the baseline is high. The description adds nothing beyond the schema about the symbol (e.g., whether it must be a US-listed ticker or whether CIK is accepted), but no compensation for a gap is required here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Retrieve comprehensive compensation data for company executives') and enumerates the content categories (salaries, stock awards, total compensation, filing details, document links). It is clearly distinct from a generic company-profile tool, though it never names or contrasts the closely related siblings getCompanyExecutives and getExecutiveCompensationBenchmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing tells the agent to pick this over getExecutiveCompensationBenchmark (peer benchmarking) or getCompanyExecutives (roster of officers). The only context is a restatement of what data the API returns, so the agent must infer selection from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getExecutiveCompensationBenchmarkCRead-onlyIdempotentInspect
Gain access to average executive compensation data across various industries with the FMP Executive Compensation Benchmark API. This API provides essential insights for comparing executive pay by industry, helping you understand compensation trends and benchmarks.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year to get benchmark data for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so the safety profile is covered. The description adds nothing beyond marketing framing: it doesn't say how industries are grouped, whether the data is an average/median, what happens when year is omitted, or how current the dataset is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that largely restate each other ('essential insights for comparing executive pay by industry' repeats 'average executive compensation data across various industries'). Front-loaded but padded with API-vendor marketing language that carries no operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the definition is minimally adequate, but it omits the grain of the data (per industry per year?) and the default when year is absent. Given the absence of an output schema, a sentence on returned fields would have closed the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single optional parameter, so the schema fully documents 'year'. The description doesn't mention year, its optionality, or the default behavior, but the baseline of 3 applies when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource: average executive compensation data broken out across industries, positioned as a benchmarking dataset. That is distinguishable from company-level siblings like getExecutiveCompensation, but the description never names that sibling or explicitly contrasts with it, leaving the distinction implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It only implies usage ('helping you understand compensation trends and benchmarks') without stating when to call this versus getExecutiveCompensation or any industry-level tool. No prerequisites, no exclusions, no alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilingExtractAnalyticsByHolderCRead-onlyIdempotentInspect
The Filings Extract With Analytics By Holder API provides an analytical breakdown of institutional filings. This API offers insight into stock movements, strategies, and portfolio changes by major institutional holders, helping you understand their investment behavior and track significant changes in stock ownership.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| year | Yes | Year of filing | |
| limit | No | Limit on number of results (default: 10, max: 100) | |
| symbol | Yes | Stock symbol | |
| quarter | Yes | Quarter of filing (1-4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it says nothing about pagination behavior, result volume, whether data is per-quarter snapshot, or freshness of filings. Given annotations carry the safety signal, this is a thin but non-contradictory addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences, but both restate the tool name and spend their words on vague value claims ('helping you understand their investment behavior') instead of actionable facts. Front-loading repeats the API name verbatim rather than stating what the call returns or requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, three of them required, and no output schema, the description should explain what a holder-level analytical breakdown contains and how symbol/year/quarter scope the result. It omits all of this, leaving the agent to infer the entire contract from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all five parameters (symbol, year, quarter, page, limit) are documented in the schema. The description never mentions any parameter, so it adds no meaning beyond the schema; baseline 3 applies since the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description paraphrases the tool name with marketing framing ('provides an analytical breakdown of institutional filings', 'offers insight into stock movements, strategies, and portfolio changes') but never states a concrete operation, scope, or required inputs. It does not distinguish this from close siblings such as getLatestInstitutionalFilings, getSecFilingExtract, getHolderPerformanceSummary, or getPositionsSummary, so an agent cannot tell which one to pick from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many institutional-filing siblings. The description reads as promotional copy rather than routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilingsByCIKCRead-onlyIdempotentInspect
Search for SEC filings using the FMP SEC Filings By CIK API. Access detailed regulatory filings by Central Index Key (CIK) number, enabling you to track all filings related to a specific company or entity.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date (YYYY-MM-DD) | |
| cik | Yes | Central Index Key (CIK) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| from_date | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety semantics are covered. The description adds nothing beyond restating the resource and API name: no mention of pagination behavior, result caps, date-range requirement, or ordering of returned filings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that are front-loaded with the verb and resource, but the second clause ('enabling you to track all filings related to a specific company or entity') is marketing-flavored restatement that earns little space. It is not bloated, just partly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, three of them required (cik, from_date, to), no output schema, and many closely related filing siblings, the description should say more about date-range expectations and how results are paginated. Annotations and the schema carry the essentials, so it is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (cik, from_date, to, page, limit) are already documented in the schema. The description only echoes the CIK concept and adds no format, constraint, or interaction detail beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for SEC filings') and the keying dimension ('by Central Index Key (CIK) number'), which implicitly separates it from getFilingsBySymbol and getFilingsByFormType. It stops short of explicitly naming those siblings, so differentiation requires the agent to infer it from the CIK mention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says it enables tracking filings for a company or entity; there is no explicit when-to-use, no when-not, and no named alternative among the many sibling filing tools (getFilingsBySymbol, getFilingsByFormType, getLatest8KFilings, getSecFilingExtract). The agent must derive selection criteria from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilingsByFormTypeBRead-onlyIdempotentInspect
Search for specific SEC filings by form type with the FMP SEC Filings By Form Type API. Retrieve filings such as 10-K, 10-Q, 8-K, and others, filtered by the exact type of document you're looking for.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date (YYYY-MM-DD) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| formType | Yes | Form type (e.g., 8-K, 10-K, 10-Q) | |
| from_date | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds essentially no behavior beyond that — it does not mention pagination (page/limit are in the schema), result caps, date-range requirements, or what a response looks like, and restates the API name rather than adding context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded, and no filler. The second sentence largely restates the first ('filtered by the exact type of document'), which is minor redundancy rather than a structural flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read-only filtered query with a fully documented schema and no output schema, so the description need not explain return values. Missing but relevant: the required date window and pagination expectations, which materially affect correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented, and the description's form-type examples merely duplicate the formType field description. It does not clarify that from_date and to are both required, nor how pagination interacts with limit, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Search for specific SEC filings by form type') and gives concrete form-type examples (10-K, 10-Q, 8-K), so the operation is unambiguous. It does not distinguish itself from close siblings such as getLatest8KFilings, getFilingsBySymbol, or getFilingsByCIK, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'filtered by the exact type of document you're looking for', which suggests this is the tool for form-type-based retrieval. However, there is no explicit when-to-use/when-not guidance and no named alternative for adjacent cases (e.g., retrieving by symbol or CIK), leaving the agent to infer routing from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFilingsBySymbolBRead-onlyIdempotentInspect
Search and retrieve SEC filings by company symbol using the FMP SEC Filings By Symbol API. Gain direct access to regulatory filings such as 8-K, 10-K, and 10-Q reports for publicly traded companies.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date (YYYY-MM-DD) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| symbol | Yes | Stock symbol | |
| from_date | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds nothing beyond that — no mention of pagination, result ordering, rate limits, or the fact that the call is date-bounded — so it neither contradicts nor enriches the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource. The second sentence ('Gain direct access to regulatory filings such as...') is largely promotional filler, but it does supply useful filing-type examples, so the waste is modest rather than egregious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with a fully described schema and no output schema, the definition is adequate but thin. It omits the mandatory date-range constraint and any expectation about result volume or pagination, which are the details most likely to cause a malformed first call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each of the five parameters documented inline including date formats, so the baseline of 3 applies. The description contributes no additional parameter meaning, notably omitting that symbol, from_date and to are all required, which is the one detail the schema itself conveys only structurally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search and retrieve SEC filings for a company symbol, with concrete examples of filing types (8-K, 10-K, 10-Q). The 'by symbol' scope implicitly separates it from getFilingsByCIK and getFilingsByFormType, but those siblings are never named, so differentiation relies on the agent inferring from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent with a ticker in hand would pick this over the CIK-based sibling. There is no explicit when-to-use statement, no mention that a date range is mandatory, and no routing guidance against getLatest8KFilings or getLatestFinancialFilings, which overlap heavily in intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFinancialRatiosTTMRead-onlyIdempotentInspect
Gain access to trailing twelve-month (TTM) financial ratios with the TTM Ratios API. This API provides key performance metrics over the past year, including profitability, liquidity, and efficiency ratios.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getFinancialReportJSONCRead-onlyIdempotentInspect
Access comprehensive annual reports with the FMP Annual Reports on Form 10-K API. Obtain detailed information about a company’s financial performance, business operations, and risk factors as reported to the SEC.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year of the report | |
| period | Yes | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond marketing language: no coverage of history depth, rate limits, whether all symbols have filings, or what happens when no report exists for a given year/period.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted bulk, but they are largely promotional ('comprehensive', 'detailed information about...') and spend their words restating the API name rather than front-loading operational facts an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three required parameters, no output schema, and a large sibling family of similar financial-report tools, the description should clarify return shape and relationship to the XLSX variant. It does neither, and its annual-report-only framing is incomplete for a tool that accepts quarterly periods.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (symbol, year, period) and the period enum documented in the schema, so baseline is 3. The description adds no meaning on top of that, and notably does not explain whether 'FY' vs 'Q1'-'Q4' selects different report types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb ('Access/Obtain') and a resource ('annual reports on Form 10-K'), so the broad intent is clear. However, it never states that the result is a JSON payload (only the tool name hints at that), and the 'annual reports / 10-K' framing sits awkwardly with a required 'period' parameter that accepts Q1-Q4, leaving the actual scope of retrieval ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite close siblings such as getFinancialReportXLSX, getFinancialReportsDates, getLatestFinancialFilings, and getSecFilingExtract. An agent gets no signal about which of these to pick or when a report is unavailable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFinancialReportsDatesCRead-onlyIdempotentInspect
Access the latest financial reports dates for publicly traded companies with the FMP Financial Reports Dates API. Track key financial metrics, including revenue, earnings, and cash flow, to stay informed about a company's financial performance.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds only that it returns 'latest' report dates; it does not explain whether the result is a single date or list, what period types are covered, or any rate limits. There is no contradiction, but the added behavioral context is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the resource, but the second sentence is largely irrelevant to a dates endpoint and may mislead agents into expecting metric data. It would be tighter and more accurate as a single sentence focused on report dates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description should clarify what dates are returned and in what form. It does not do so, and the revenue/earnings/cash-flow phrasing distracts from the actual return value. Annotations cover safety, but return-value clarity is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required 'symbol' parameter, and the schema already describes it as 'Stock symbol.' The description adds only that the companies are publicly traded, which is marginal and does not clarify symbol formats such as ticker or exchange suffix. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('latest financial reports dates') and scope ('publicly traded companies'), but the verb 'Access' is generic. The second sentence drifts into tracking revenue, earnings, and cash flow, which are metrics returned by other tools, not the dates this tool returns. It does not explicitly distinguish itself from date-related siblings like getEarningsTranscriptDates or getFundDisclosureDates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings such as getIncomeStatement, getEarningsReports, or getEarningsTranscriptDates. The only contextual cue is 'latest,' but no exclusions, prerequisites, or alternative-selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFinancialReportXLSXRead-onlyIdempotentInspect
Download detailed 10-K reports in XLSX format with the Financial Reports Form 10-K XLSX API. Effortlessly access and analyze annual financial data for companies in a spreadsheet-friendly format.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year of the report | |
| period | Yes | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
getFinancialScoresRead-onlyIdempotentInspect
Assess a company's financial strength using the Financial Health Scores API. This API provides key metrics such as the Altman Z-Score and Piotroski Score, giving users insights into a company’s overall financial health and stability.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
getFinancialScoresBulkCRead-onlyIdempotentInspect
The FMP Scores Bulk API allows users to quickly retrieve a wide range of key financial scores and metrics for multiple symbols. These scores provide valuable insights into company performance, financial health, and operational efficiency.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds no behavioral context beyond marketing language ("valuable insights") — nothing about how many symbols are covered, payload size, rate limits, or whether all symbols are returned at once, which matters for a bulk endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is pure promotional filler ("provide valuable insights into company performance, financial health, and operational efficiency") that tells an agent nothing actionable. The first sentence carries the real content and is reasonably front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk endpoint with no parameters and no output schema, the description should clarify scope — which universe of symbols is scored and roughly what fields come back. Instead it only asserts that scores exist, leaving the agent unable to predict the response shape or size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema declares zero parameters, so there is no parameter meaning for the description to compensate for. Baseline 4 applies; no parameter-level detail is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("retrieve ... key financial scores and metrics") plus the multi-symbol scope implied by the "Bulk" name, which distinguishes it from the sibling getFinancialScores. It does not, however, name that sibling or specify which scores are returned, so the differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance: nothing says to prefer this over getFinancialScores when covering many symbols, nor any exclusion or prerequisite. The reader must infer the bulk-vs-single tradeoff entirely 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.
getFinancialStatementFullAsReportedRead-onlyIdempotentInspect
Retrieve comprehensive financial statements as reported by companies with FMP As Reported Financial Statements API. Access complete data across income, balance sheet, and cash flow statements in their original form for detailed analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol |
getFinancialStatementGrowthRead-onlyIdempotentInspect
Analyze the growth of key financial statement items across income, balance sheet, and cash flow statements with the Financial Statement Growth API. Track changes over time to understand trends in financial performance.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
getFinancialStatementSymbolsRead-onlyIdempotentInspect
Access a comprehensive list of companies with available financial statements through the FMP Financial Statement Symbols List API. Find companies listed on major global exchanges and obtain up-to-date financial data including income statements, balance sheets, and cash flow statements, are provided.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getFMPArticlesCRead-onlyIdempotentInspect
Access the latest articles from Financial Modeling Prep with the FMP Articles API. Get comprehensive updates including headlines, snippets, and publication URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so the safety profile is covered. The description adds that results carry headlines, snippets and URLs, which is useful since there is no output schema, but it says nothing about ordering/recency guarantees, result volume, or how paging interacts with the live feed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and followed by what a caller gets back. Minor filler remains in 'with the FMP Articles API' and the vague intensifier 'comprehensive updates', neither of which carries information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return-value burden; it does so partially by naming three fields but omits ordering, volume per page and total-count behavior. For a two-parameter, paginated feed with full annotation coverage this is adequate but leaves real gaps in what a caller should expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'page' (default 0) and 'limit' (default 20) are documented in the schema with defaults. The description adds no extra meaning about paging depth caps, maximum limit, or whether page is zero- or one-based, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource (articles) and a source (Financial Modeling Prep), and lists the return fields (headlines, snippets, publication URLs). But the verb is the vague 'Access', and the phrase 'with the FMP Articles API' merely restates the tool name. It also does nothing to distinguish this general-articles feed from the many news siblings (getGeneralNews, getStockNews, getPressReleases).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which alternative to pick when the agent wants symbol-specific or category-specific news. The agent must infer from the tool name alone that this is a broad, unfiltered article feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForex1HourDataRead-onlyIdempotentInspect
Track forex price movements over the trading day with the 1-Hour Forex Interval Chart API. This tool provides hourly intraday data for currency pairs, giving a detailed view of trends and market shifts.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Forex pair symbol (e.g., EURUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getForex1MinuteDataBRead-onlyIdempotentInspect
Access real-time 1-minute intraday forex data with the 1-Minute Forex Interval Chart API. Track short-term price movements for precise, up-to-the-minute insights on currency pair fluctuations.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Forex pair symbol (e.g., EURUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the data-freshness trait ('real-time') and granularity, which is useful context beyond the annotations, but it says nothing about history depth, rate limits, or how the from/to window constrains results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability. The second sentence is largely marketing filler ('precise, up-to-the-minute insights') that restates 'real-time' without adding operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three well-documented parameters and no output schema, the definition is minimally sufficient. However, for a time-series data tool, the absence of any statement about date-range semantics, historical availability, or response shape leaves gaps an agent would want filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, from_date, and to are already documented with format hints. The description adds no meaning beyond the schema — it never mentions the date-range parameters or any symbol formatting rule — so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Access real-time 1-minute intraday forex data.' The interval granularity ('1-minute') implicitly distinguishes it from siblings like getForex5MinuteData and getForex1HourData, but it never names those alternatives, so the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Track short-term price movements' hints at a use case, but there is no explicit when-to-use guidance, no condition that selects this interval over the 5-minute or 1-hour siblings, and no prerequisites or exclusions. An agent must guess which granularity tool to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForex5MinuteDataBRead-onlyIdempotentInspect
Track short-term forex trends with the 5-Minute Forex Interval Chart API. Access detailed 5-minute intraday data to monitor currency pair price movements and market conditions in near real-time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Forex pair symbol (e.g., EURUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare read-only, idempotent, open-world behavior, so the description does not need to cover safety. It adds useful context that the data is 5-minute intraday and near real-time, but does not disclose freshness guarantees, market-hours behavior, date-range limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, but the second largely repeats the first and includes marketing framing such as 'detailed' and 'market conditions.' It could be more front-loaded around the concrete action of retrieving 5-minute forex data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full parameter descriptions and annotations, the description is minimally sufficient to understand the resource. However, it omits important operational context for an intraday data tool, especially how the from/to date range behaves and what 'near real-time' means in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents symbol, from_date, and to. The description adds no parameter-specific meaning beyond the schema, such as date inclusivity, timezone, or maximum range, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource and interval clearly: 5-minute intraday forex data for monitoring currency pair movements. It implicitly distinguishes itself from 1-minute, 1-hour, and historical-chart siblings through the stated interval, but does not explicitly name alternatives or scoping differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'track short-term forex trends' and 'monitor ... in near real-time,' suggesting this is for short-horizon intraday analysis. However, there is no explicit guidance on when to choose this over getForex1MinuteData, getForex1HourData, or the historical chart tools, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForexBatchQuotesRead-onlyIdempotentInspect
Easily access real-time quotes for multiple forex pairs simultaneously with the Batch Forex Quotes API. Stay updated on global currency exchange rates and monitor price changes across different markets.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Optional boolean to get short quotes |
getForexHistoricalFullChartRead-onlyIdempotentInspect
Access comprehensive historical end-of-day forex price data with the Full Historical Forex Chart API. Gain detailed insights into currency pair movements, including open, high, low, close (OHLC) prices, volume, and percentage changes.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Forex pair symbol (e.g., EURUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getForexHistoricalLightChartRead-onlyIdempotentInspect
Access historical end-of-day forex prices with the Historical Forex Light Chart API. Track long-term price trends across different currency pairs to enhance your trading and analysis strategies.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Forex pair symbol (e.g., EURUSD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getForexListBRead-onlyIdempotentInspect
Access a comprehensive list of all currency pairs traded on the forex market with the FMP Forex Currency Pairs API. Analyze and track the performance of currency pairs to make informed investment decisions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and idempotency profile is covered. The description adds only the mild signal that the response is a 'comprehensive'/'all pairs' set, implying no filtering or pagination, but says nothing about caching, static vs. live data, or rate limits. With annotations carrying most of the burden, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful. The second sentence, 'Analyze and track the performance of currency pairs to make informed investment decisions,' is generic marketing filler that a caller cannot act on. Roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter reference-list tool with annotations and no output schema, the description is minimally sufficient: it says what the list contains. It omits the one thing an agent would still want to know, namely what each list entry looks like (symbol, name, exchange/asset class), since there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so there is no parameter semantics to explain and the baseline is 4. However, the description also does not clarify the shape or content of the returned list (symbols vs. names vs. exchange codes), which is the closest analogue to parameter meaning. The schema is empty and coverage is 100%, so this dimension is essentially a non-issue; a 3 reflects that the description neither hurts nor helps here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the list of all currency pairs traded on the forex market, sourced from the FMP Forex Currency Pairs API. That is clear enough to distinguish it from quote/chart siblings like getForexQuote or getForexHistoricalLightChart, though the differentiation comes from the tool name rather than from any explicit statement in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. It never says this is the reference/symbol-discovery step that should precede calling getForexQuote or getForexBatchQuotes, nor does it contrast with getForexQuotes (plural, quote-based) or getCryptocurrencyList.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForexNewsRead-onlyIdempotentInspect
Stay updated with the latest forex news articles from various sources using the FMP Forex News API. Access headlines, snippets, and publication URLs for comprehensive market insights.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| from_date | No | Start date (YYYY-MM-DD) |
getForexQuoteBRead-onlyIdempotentInspect
Access real-time forex quotes for currency pairs with the Forex Quote API. Retrieve up-to-date information on exchange rates and price changes to help monitor market movements.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Forex pair symbol (e.g., EURUSD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the 'real-time' freshness claim and mentions price changes, but says nothing about rate limits, data source latency, or what happens for an invalid pair, so it adds only modest context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with the core capability stated first. The second sentence drifts into marketing phrasing ('help monitor market movements') that adds little actionable information, but the definition is not padded or rambling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations present, the essentials are covered. However, with no output schema, the description should clarify what a quote contains (price, change, bid/ask, timestamp), and it does so only vaguely via 'exchange rates and price changes.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter already documents the format with an 'e.g., EURUSD' example. The description's reference to 'currency pairs' restates the schema rather than adding new meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Access real-time forex quotes for currency pairs.' An agent can tell this is a single-pair quote tool, but the description never distinguishes it from close siblings such as getForexShortQuote, getForexQuotes, or getForexBatchQuotes, leaving the differentiator to be inferred from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage cue is the vague 'help monitor market movements' framing. There is no statement of when to prefer this tool over getForexShortQuote, getForexQuotes, or getForexBatchQuotes, and no prerequisites or exclusions, despite a dense cluster of near-identical forex siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForexQuotesBRead-onlyIdempotentInspect
Retrieve real-time quotes for multiple forex currency pairs with the FMP Batch Forex Quote API. Get real-time price changes and updates for a variety of forex pairs in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, open-world operation. The description adds useful context that the data is real-time and batch-oriented, but it does not disclose rate limits, authentication needs, return format, or how pairs are selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and uses only two sentences. There is minor redundancy, since 'real-time' is repeated and 'a variety of forex pairs' restates 'multiple forex currency pairs', but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter tool with annotations covering safety, the description is mostly sufficient. However, without an output schema, it does not explain the returned fields or whether the batch covers all pairs or a caller-specified set, which leaves meaningful ambiguity for a batch forex quote tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its single optional parameter, 'short', so the schema already carries the parameter documentation. The description does not add any meaning about what 'short format' changes or when to set it, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve real-time quotes for multiple forex currency pairs via a batch API. It clearly conveys the batch scope, but it does not distinguish this tool from the similarly named sibling getForexBatchQuotes or from the singular getForexQuote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'multiple forex currency pairs' and 'in a single request' implies this tool is for batch retrieval rather than single-pair lookup. However, it gives no explicit when-to-use guidance, no exclusions, and does not name alternatives such as getForexQuote or getForexBatchQuotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getForexShortQuoteRead-onlyIdempotentInspect
Quickly access concise forex pair quotes with the Forex Quote Snapshot API. Get a fast look at live currency exchange rates, price changes, and volume in real time.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Forex pair symbol (e.g., EURUSD) |
getForm13FFilingDatesCRead-onlyIdempotentInspect
The Form 13F Filings Dates API allows you to retrieve dates associated with Form 13F filings by institutional investors. This is crucial for tracking stock holdings of institutional investors at specific points in time, providing valuable insights into their investment strategies.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. Beyond that the description adds no behavioral context: it doesn't say which dates are returned (filing date vs. period-of-report vs. acceptance date), whether results cover all history or just recent quarters, or how many rows to expect. Annotations lower the bar, but the description still contributes nothing operational.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, which is good. The second sentence is pure filler that repeats the resource and adds no operational fact, so roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool whose annotations carry the safety profile, this is nearly adequate, but the tool exists solely to return dates and the description never clarifies which dates or their granularity. With no output schema to fall back on, that ambiguity is a genuine gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the single parameter's schema text is only 'CIK number', and the description never mentions the parameter at all. Per the high-coverage baseline this lands at 3, though it misses an easy opportunity to note CIK formatting (e.g., zero-padded 10-digit) or that the CIK must belong to an institutional filer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: retrieving dates associated with Form 13F filings by institutional investors. It is clear what the tool returns conceptually, but it never distinguishes itself from closely related siblings such as getLatestInstitutionalFilings, getFilingsByFormType, or getFilingsByCIK, so an agent must guess which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no prerequisites (e.g., that a CIK is required and where to obtain it). The second sentence is marketing rationale ('crucial for tracking... providing valuable insights') rather than any condition that would tell an agent when to call this instead of a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFullChartRead-onlyIdempotentInspect
Access full price and volume data for any stock symbol using the FMP Comprehensive Stock Price and Volume Data API. Get detailed insights, including open, high, low, close prices, trading volume, price changes, percentage changes, and volume-weighted average price (VWAP).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) |
getFundAssetExposureCRead-onlyIdempotentInspect
Discover which ETFs hold specific stocks with the FMP ETF Asset Exposure API. Access detailed information on market value, share numbers, and weight percentages for assets within ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and determinism profile is covered without the description. The description adds the shape of the returned data (market value, share count, weight percentage), but says nothing about whether all holdings are returned, pagination, or freshness of the exposure data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences is an appropriate length and the resource is front-loaded, but the vendor boilerplate ('with the FMP ETF Asset Exposure API') consumes a quarter of the text while the more critical detail — that the caller supplies a fund symbol — is left out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does supply a useful sketch of the return fields, which is genuine value. It is still incomplete for a lookup tool whose input direction is ambiguous and whose relationship to getFundHoldings is undefined, both of which an agent needs before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is documented as 'Fund symbol', so the baseline would be 3. But the description's 'which ETFs hold specific stocks' phrasing pushes the agent toward passing a stock ticker rather than a fund ticker, actively muddying the one parameter instead of clarifying it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (ETF asset exposure) and enumerates returned data (market value, share numbers, weight percentages). However, the framing sentence 'Discover which ETFs hold specific stocks' implies the lookup direction is stock → ETFs, while the tool name and schema ('Fund symbol') indicate fund → assets. It also draws no distinction from sibling getFundHoldings, which appears to cover the same territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite statements, and no mention of alternatives. With siblings like getFundHoldings, getFundInfo, getETFList, and getETFQuotes in the same family, an agent gets no help deciding which tool answers a given fund question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFundCountryAllocationCRead-onlyIdempotentInspect
Gain insight into how ETFs and mutual funds distribute assets across different countries with the FMP ETF & Fund Country Allocation API. This tool provides detailed information on the percentage of assets allocated to various regions, helping you make informed investment decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond that: it does not say what the returned allocation looks like (percentages per country, whether they sum to 100, coverage of cash/derivatives), nor how the fund symbol is resolved or what happens for an invalid or non-fund symbol.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded on the resource and country dimension. The trailing clause 'helping you make informed investment decisions' is filler that carries no operational information, but the rest is compact and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and no output schema, the essentials are only partly covered. Key gaps remain: how this differs from the fund exposure/sector-weighting siblings, and what the response actually contains, which the description never addresses despite having no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter 'symbol' is documented as 'Fund symbol', so the schema carries the parameter burden. The description never mentions the symbol argument or clarifies whether index symbols, ETF tickers and mutual fund tickers are all accepted, so it adds no meaning beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as country allocation for ETFs and mutual funds, which is more specific than the tool name alone. However it is framed as marketing copy ('Gain insight into how ETFs and mutual funds distribute assets') rather than stating a precise verb+resource, and it never distinguishes this from close siblings such as getFundAssetExposure, getFundSectorWeighting or getFundHoldings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: no mention of prerequisites, no note on which sibling to pick for sector versus country versus holdings breakdowns, and no exclusions. The agent must infer the use case from the name and the word 'countries' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFundDisclosureRead-onlyIdempotentInspect
Access comprehensive disclosure data for mutual funds with the FMP Mutual Fund Disclosures API. Analyze recent filings, balance sheets, and financial reports to gain insights into mutual fund portfolios.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Optional CIK number | |
| year | Yes | Year | |
| symbol | Yes | Fund symbol | |
| quarter | Yes | Quarter |
getFundDisclosureDatesCRead-onlyIdempotentInspect
Retrieve detailed disclosures for mutual funds and ETFs based on filing dates with the FMP Fund & ETF Disclosures by Date API. Stay current with the latest filings and track regulatory updates effectively.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Optional CIK number | |
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and idempotency profile is covered without help from the description. The description adds essentially nothing beyond that: no indication of the shape of a 'disclosure', no pagination or result-size behavior, and no note on what happens when a symbol has no filings. With annotations carrying the main burden, this lands at a 3 rather than lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the useful clause, but the second sentence is filler that would not change an agent's decision. Not bloated, but not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description still leaves an agent unsure what a 'disclosure' record contains, how many are returned, or how symbol and cik interact. The absence of output schema means the description should have sketched the payload, and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'symbol' and 'cik' are already documented as structured fields, and the high-coverage baseline would be a 3. But the description says results are keyed 'based on filing dates' when no date parameter exists in the schema, which actively points an agent toward an input it cannot supply and adds no meaning about symbol vs. cik precedence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Retrieve detailed disclosures for mutual funds and ETFs') and a namespace (FMP Fund & ETF Disclosures by Date API), which is clearer than a tautology. However, among nearby siblings like getFundDisclosure, searchFundDisclosures, getDisclosure, and getESGDisclosures, nothing distinguishes this tool, and the stated 'filing dates' orientation conflicts with a schema whose only required input is a fund symbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus getFundDisclosure or searchFundDisclosures, and no stated preconditions. The second sentence ('Stay current with the latest filings and track regulatory updates effectively') is promotional framing rather than an actionable when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFundHoldingsBRead-onlyIdempotentInspect
Get a detailed breakdown of the assets held within ETFs and mutual funds using the FMP ETF & Fund Holdings API. Access real-time data on the specific securities and their weights in the portfolio, providing insights into asset composition and fund strategies.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the definition only needs to supplement them, and it does add the scope of asset classes covered. It says nothing about response size, pagination, partial weights, or behavior for an invalid or unsupported symbol, which for a holdings breakdown that can be long matters to an agent planning a call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful. The second sentence is mostly promotional filler ('Access real-time data... providing insights into asset composition and fund strategies') and could be replaced with comparison or format information that would actually help an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, single-parameter lookup with full schema coverage and safety annotations, the definition covers what the tool returns conceptually and for which instrument types. It lacks only sibling differentiation and symbol-format detail, which are minor against this tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter and schema description coverage is 100%, so the schema already documents 'symbol'. The description adds no format guidance, such as ticker style or accepted variants, so it neither compensates for nor degrades the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a breakdown of the assets held within ETFs and mutual funds. That is clear enough to act on, but it never distinguishes itself from close siblings such as getFundAssetExposure, getFundSectorWeighting, or getFundCountryAllocation, so an agent must infer how holdings differ from asset exposure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no guidance on when to choose this tool over the other fund tools, nor any prerequisites, such as whether the fund must be an ETF or mutual fund rather than a stock. The second sentence gestures at value ('insights into asset composition and fund strategies') rather than usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFundInfoBRead-onlyIdempotentInspect
Access comprehensive data on ETFs and mutual funds with the FMP ETF & Mutual Fund Information API. Retrieve essential details such as ticker symbol, fund name, expense ratio, assets under management, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and open-world behavior, so safety and side effects are covered. The description adds useful content about what comes back (ticker, name, expense ratio, AUM) but says nothing about invalid-symbol handling or whether ETFs and mutual funds return identical shapes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler redundancy, but the opening is generic marketing ("Access comprehensive data ... with the FMP ... API") and the trailing "and more" carries no information. The concrete field list is the sentence that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with safety annotations and no output schema, the description is adequate but thin: it doesn't confirm which asset classes are supported for a given symbol, nor whether results differ between ETF and mutual fund tickers. An agent could call it, but with avoidable guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required parameter with 100% schema description coverage, so the schema already explains "symbol". The description only loosely reinforces it by saying "ticker symbol"; it adds no format, case, or lookup guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Access comprehensive data on ETFs and mutual funds" plus a specific verb/resource and named return fields (expense ratio, AUM) makes the purpose clear. It does not, however, distinguish itself from nearby fund tools like getETFList, getFundHoldings, or getMutualFundQuotes, so an agent must infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives. The description never says to use getETFList or searchSymbol first to obtain a valid symbol, nor how this differs from holdings/exposure/quote siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFundSectorWeightingBRead-onlyIdempotentInspect
The FMP ETF Sector Weighting API provides a breakdown of the percentage of an ETF's assets that are invested in each sector. For example, an investor may want to invest in an ETF that has a high exposure to the technology sector if they believe that the technology sector is poised for growth.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Fund symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that the result is a per-sector percentage breakdown, which is useful output context since no output schema exists. It does not disclose any behavioral edges — whether non-ETF or unsupported symbols return empty results, or what the response looks like for funds with no data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the text is short, which is good. However, the entire second sentence is a speculative investor scenario that adds no operational value and would be better replaced with actual guidance about what the tool returns or when to prefer it over fund holdings or asset exposure tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and no output schema, the description covers the core purpose but leaves meaningful gaps. It does not confirm whether coverage is limited to ETFs, nor describe the shape of each record (sector name plus percentage), which matters because there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Fund symbol'), so the schema already carries the semantics. The description adds nothing beyond that — it does not clarify accepted symbol formats, exchange suffixes, or whether mutual funds are valid inputs. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a breakdown of the percentage of an ETF's assets invested in each sector. That is clear enough for an agent to understand what the tool returns. It falls short of a 5 because it never distinguishes this from close siblings such as getFundAssetExposure, getFundCountryAllocation, or getFundHoldings, which an agent could easily 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. The second sentence is an investor-motivation anecdote about believing in the technology sector rather than an instruction about when this tool is the right call. An agent is left to infer that this is a lookup-by-symbol tool rather than a screener.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getGeneralNewsARead-onlyIdempotentInspect
Access the latest general news articles from a variety of sources with the FMP General News API. Obtain headlines, snippets, and publication URLs for comprehensive news coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safe-read profile is covered. The description adds a modest amount beyond that – it discloses aggregation 'from a variety of sources' and what fields come back – but says nothing about result volume, pagination depth, recency/freshness of 'latest', or how the default 20 / max 250 limit affects behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded. The second sentence is slightly redundant marketing phrasing ('comprehensive news coverage') but still carries useful information about the returned fields, so it largely earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-parameter read-only list endpoint with a fully documented schema, the description is nearly sufficient: it covers the source breadth and the shape of returned data in lieu of an output schema. It falls short only on recency semantics and on how it relates to the sibling news endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (from_date, to, page, limit) documented including defaults and max. The description mentions no parameters at all and adds no meaning beyond the schema, so the baseline 3 applies – the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve the latest general news articles, with the payload named (headlines, snippets, publication URLs). It is clear what the tool does, but it never distinguishes itself from the many news siblings (getStockNews, getCryptoNews, getForexNews, getPressReleases), leaving the agent to infer that 'general' means market-wide rather than symbol-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'general' and the phrase 'comprehensive news coverage' – the agent can guess this is the broad, non-symbol-specific news feed, but the description names no alternatives and gives no when-to-use or when-not guidance. Nothing tells the agent to prefer getStockNews when a ticker is in hand, or how to use the date window to bound results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalDowJonesChangesBRead-onlyIdempotentInspect
Access historical data for the Dow Jones Industrial Average using the Historical Dow Jones API. Analyze changes in the index’s composition and study its performance across different periods.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered; the description adds no behavioral context beyond them — no mention of what the response contains (e.g., a list of constituent change events with dates), pagination, or rate limits. The phrase 'using the Historical Dow Jones API' restates the vendor rather than disclosing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is only two sentences, but the second one ('Analyze changes... and study its performance across different periods') is generic analytical filler rather than operational information. The first sentence front-loads the resource adequately, but roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter read tool with annotations and no output schema, the description is minimally adequate: it conveys the index and the composition-change angle. It falls short of complete because an agent still cannot tell exactly what data shape comes back or how this differs from the adjacent index historical and constituents tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to explain beyond the schema; the baseline for a no-parameter tool applies. No misleading parameter claims are made.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (historical Dow Jones Industrial Average data) and clarifies the substance as changes in the index's composition, which is more specific than the bare tool name. However, it never distinguishes this from sibling index-history tools such as getHistoricalIndexFullChart or getHistoricalSP500Changes, so an agent must infer the difference from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of alternatives, and no prerequisites or ordering advice. The only guidance is the vague 'study its performance across different periods', which does not tell an agent what conditions select this tool over the many other index and chart tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalEmployeeCountBRead-onlyIdempotentInspect
Access historical employee count data for a company based on specific reporting periods. The FMP Company Historical Employee Count API provides insights into how a company’s workforce has evolved over time, allowing users to analyze growth trends and operational changes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 10000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world behavior, so safety is covered. The description adds that results are historical and organized by reporting periods, but omits details such as data source, period frequency, and pagination behavior beyond the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. The second sentence is largely promotional and restates the historical/growth idea, so it does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only endpoint with full schema coverage and clear annotations, the description is adequate but incomplete: it does not describe return fields, period granularity, or how limit affects results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, both symbol and limit are documented in the schema. The description adds no new parameter meaning; 'reporting periods' may refer to returned data rather than an input and does not clarify the limit semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific resource, historical employee count data, and the company scope, with 'historical' distinguishing it from the sibling getEmployeeCount. It could be sharper by explicitly naming the current-count sibling, but an agent can infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for analyzing workforce growth trends over reporting periods, but does not state when to choose this over getEmployeeCount or what reporting-period granularity is available. 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.
getHistoricalIndexFullChartBRead-onlyIdempotentInspect
Access full historical end-of-day prices for stock indexes using the Detailed Historical Price Data API. This API provides comprehensive information, including open, high, low, close prices, volume, and additional metrics for detailed financial analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld, so the safety profile is covered. The description adds that the response contains open, high, low, close, volume and 'additional metrics', which is genuinely useful return-shape context. It does not disclose whether the range is bounded, what the default window is, or how much history is retained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and informative. The second sentence is largely filler ('comprehensive information', 'for detailed financial analysis') padded around a short field list, so roughly half the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-shape information, and it does list the OHLCV fields. But for a tool whose only real ambiguity is 'full vs light', the omission of that distinction and of any date-range behavior leaves an agent without what it most needs to call this correctly among its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, from_date and to all documented in the schema itself including the ^GSPC example. The description's only contribution is the phrase 'end-of-day', which implies daily granularity but adds no syntax or default behavior beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Access full historical end-of-day prices for stock indexes'. The resource is unambiguous. However, it never distinguishes this 'Full' chart from its close sibling getHistoricalIndexLightChart or the intraday index endpoints, so the agent cannot tell from the description alone what 'full' adds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. The sibling list contains getHistoricalIndexLightChart, getIndex1MinuteData, getIndex5MinuteData and getIndex1HourData, all plausible choices, and the description gives no criteria for picking this one. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalIndexLightChartRead-onlyIdempotentInspect
Retrieve end-of-day historical prices for stock indexes using the Historical Price Data API. This API provides essential data such as date, price, and volume, enabling detailed analysis of price movements over time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) | |
| from_date | No | Start date (YYYY-MM-DD) |
getHistoricalIndustryPEBRead-onlyIdempotentInspect
Access historical price-to-earnings (P/E) ratios by industry using the Historical Industry P/E API. Track valuation trends across various industries to understand how market sentiment and valuations have evolved over time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| industry | Yes | Industry (e.g., Biotechnology) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered. The description adds only vague trend-tracking framing and says nothing about data granularity, whether a date range defaults, or how missing industries behave — modest added value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and specific, but the second sentence ('Track valuation trends ... understand how market sentiment and valuations have evolved over time') is marketing filler that restates the same idea twice without adding operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter read tool with full schema coverage and no output schema, the description is just barely adequate. It omits date-range behavior, expected granularity/frequency of returned series, and the relationship to the snapshot endpoint, which an agent calling it would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with per-parameter descriptions for exchange, industry, from_date and to, so the schema carries the load. The description reinforces that the primary axis is industry ('by industry'), which is useful framing but adds no syntax or default-value detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: accessing historical P/E ratios by industry, which distinguishes it from the snapshot siblings through the word 'historical'. However it never names getIndustryPESnapshot or getHistoricalSectorPE, leaving the boundary between industry-vs-sector and historical-vs-current to be inferred from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Track valuation trends ... over time' implies the use case is time-series valuation analysis rather than a point-in-time quote, but there is no explicit when-to-use/when-not statement and no reference to the snapshot alternative. Guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalIndustryPerformanceCRead-onlyIdempotentInspect
Access historical performance data for industries using the Historical Industry Performance API. Track long-term trends and analyze how different industries have evolved over time across various stock exchanges.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| industry | Yes | Industry (e.g., Biotechnology) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so safety is covered. The description adds only vague framing ('track long-term trends', 'have evolved over time') without disclosing return shape, granularity (daily/monthly), pagination, or how missing dates behave — none of which the annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, but the second ('Track long-term trends and analyze how different industries have evolved over time') is unfalsifiable marketing filler that occupies half the text without conveying callable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description bears responsibility for telling the agent what comes back — a time series? per-exchange rows? — and it does not. Combined with no differentiation from nearest siblings, an agent cannot confidently decide to call this over the snapshot or summary variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (from_date, to, exchange, industry) is already documented with examples and formats. The description only echoes 'across various stock exchanges', adding no semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb and resource ('Access historical performance data for industries') but 'performance' is undefined — it could mean price returns, market cap, or index values. Nothing distinguishes it from getIndustryPerformanceSnapshot or getIndustryPerformanceSummary, both of which sound like the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. With siblings like getIndustryPerformanceSnapshot, getHistoricalSectorPerformance, and getHistoricalIndustryPE, the description should say which question this answers (e.g., time series of industry-level performance vs. point-in-time snapshot), but it offers none.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalMarketCapARead-onlyIdempotentInspect
Access historical market capitalization data for a company using the FMP Historical Market Capitalization API. This API helps track the changes in market value over time, enabling long-term assessments of a company's growth or decline.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| limit | No | Limit on number of results (default: 100, max: 5000) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish a read-only, idempotent, open-world operation, and the description adds that the data comes from the external FMP Historical Market Capitalization API. It provides no further behavioral context about series granularity, default history, result ordering, authentication, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the data resource and provider, while the second sentence supplies a relevant trend-analysis use case. Its wording is slightly generic and repeats the API framing, but there is no substantial excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the fully documented schema and safety annotations, this is adequate for a simple one-company historical lookup. Selection and interpretation would be stronger with explicit current-versus-historical sibling guidance and details about the returned series, particularly because no output schema is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the symbol, date formats, and result-limit defaults, so the baseline is 3. The description adds no parameter-specific guidance beyond the schema, such as how the date range behaves when optional boundaries are omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly pairs the action "Access" with the resource "historical market capitalization data for a company" and explains that it shows market-value changes over time. It does not explicitly distinguish the tool from siblings such as getMarketCap or getBatchMarketCap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tracking market-value changes and making "long-term assessments of a company's growth or decline" provide a clear use case. There are no exclusions or directions to use getMarketCap for current values or getBatchMarketCap for multiple companies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalNasdaqChangesARead-onlyIdempotentInspect
Access historical data for the Nasdaq index using the Historical Nasdaq API. Analyze changes in the index composition and view how it has evolved over time, including company additions and removals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds content-level context by naming what the records contain (additions and removals), but it says nothing about how far back the history goes, whether the full history is returned in one call, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and scope. The phrase 'using the Historical Nasdaq API' is filler and the second sentence partly restates the first, but the wording stays tight overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the whole burden of describing what comes back. It hints at the record content (company additions and removals) but leaves the response shape, date coverage and granularity unstated, which is a meaningful gap for a data-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. No parameter information is missing or misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Access historical data for the Nasdaq index') and narrows the scope to index composition changes such as company additions and removals. That distinguishes it in intent from getNasdaqConstituents (current membership) and from the parallel getHistoricalSP500Changes / getHistoricalDowJonesChanges tools, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'analyze changes in the index composition' suggests a historical-change use case, but there is no explicit when-to-use statement, no exclusion of the current-constituents or chart tools, and no note on prerequisites or data coverage. An agent can infer the intent but must decide against alternatives on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalRatingsRead-onlyIdempotentInspect
Track changes in financial performance over time with the FMP Historical Ratings API. This API provides access to historical financial ratings for stock symbols in our database, allowing users to view ratings and key financial metric scores for specific dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 1, max: 10000) | |
| symbol | Yes | Stock symbol |
getHistoricalSectorPERead-onlyIdempotentInspect
Access historical price-to-earnings (P/E) ratios for various sectors using the Historical Sector P/E API. Analyze how sector valuations have evolved over time to understand long-term trends and market shifts.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| sector | Yes | Sector (e.g., Energy) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| from_date | No | Start date (YYYY-MM-DD) |
getHistoricalSectorPerformanceRead-onlyIdempotentInspect
Access historical sector performance data using the Historical Market Sector Performance API. Review how different sectors have performed over time across various stock exchanges.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| sector | Yes | Sector (e.g., Energy) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| from_date | No | Start date (YYYY-MM-DD) |
getHistoricalSP500ChangesRead-onlyIdempotentInspect
Retrieve historical data for the S&P 500 index using the Historical S&P 500 API. Analyze past changes in the index, including additions and removals of companies, to understand trends and performance over time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getHistoricalStockGradesCRead-onlyIdempotentInspect
Access a comprehensive record of analyst grades with the FMP Historical Grades API. This tool allows you to track historical changes in analyst ratings for specific stock symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered structurally. The description adds nothing behavioral beyond that: no ordering, no pagination behavior, no statement of how far back history goes, no mention that limit defaults to 100 and caps at 1000.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences, but one is filler branding ('with the FMP Historical Grades API') and the other leans on marketing phrasing ('comprehensive record'). The useful substance could fit in a single clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not say what a grade record contains (firm, action, previous/new grade, date), how results are ordered, or how far back the history reaches. For a historical-data tool this leaves the agent unable to predict the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (symbol, limit) are documented in the schema already. The description adds no format or scope detail beyond implying symbol-based lookup, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieving historical analyst grades for a stock symbol. However, it does not distinguish this from close siblings like getStockGrades, getHistoricalRatings, or getStockGradeSummary, so an agent still has to guess which 'grades' tool is right.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance at all. It never mentions getStockGrades (current grades?) or getHistoricalRatings, both of which sit right next to it in the sibling list, leaving selection ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHolderIndustryBreakdownRead-onlyIdempotentInspect
The Holders Industry Breakdown API provides an overview of the sectors and industries that institutional holders are investing in. This API helps analyze how institutional investors distribute their holdings across different industries and track changes in their investment strategies over time.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number | |
| year | Yes | Year of filing | |
| quarter | Yes | Quarter of filing (1-4) |
getHolderPerformanceSummaryCRead-onlyIdempotentInspect
The Holder Performance Summary API provides insights into the performance of institutional investors based on their stock holdings. This data helps track how well institutional holders are performing, their portfolio changes, and how their performance compares to benchmarks like the S&P 500.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number | |
| page | No | Page number (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so the safety profile is covered. The description adds mildly useful context that the payload covers holder performance, portfolio changes, and benchmark comparison, but says nothing about underlying data source (e.g., 13F filings), reporting lag, or pagination behavior — and pagination is relevant given a page parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no bloat, but they read as API marketing copy ('provides insights into...', 'This data helps track...') instead of front-loading actionable information. Roughly half the text restates that the data is about holder performance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (two parameters, fully documented schema, annotations present), and the description gestures at what the summary contains, which partly compensates for the absence of an output schema. It is still too thin on what the holder-level summary records actually look like and on the practical constraint that the caller needs a holder CIK.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both cik and page are already documented in the schema, and the baseline for high coverage applies. The description adds no meaning about the CIK format, whether it must be the holder's CIK, or how paging interacts with result size, so it neither helps nor misleads.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (institutional holder performance derived from stock holdings) and the general kind of insight returned, so the topic is clear. However, it never states a concrete operation and never distinguishes this tool from close siblings such as getFilingExtractAnalyticsByHolder, getHolderIndustryBreakdown, or getIndustryPerformanceSummary, which an agent could easily 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites, and no named alternative. The text describes what the data is rather than when an agent should call this tool instead of the many adjacent holder/institutional tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHolidaysByExchangeBRead-onlyIdempotentInspect
Access holiday schedules for specific stock exchanges using the Global Exchange Market Hours API. Find out the dates when global exchanges are closed for holidays and plan your trading activities accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date for the holidays (YYYY-MM-DD format) | |
| exchange | Yes | Exchange code (e.g., NASDAQ, NYSE) | |
| from_date | No | Start date for the holidays (YYYY-MM-DD format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered structurally. The description adds the data source ('Global Exchange Market Hours API') and the consumer intent, but says nothing about what happens when from_date/to are omitted, whether results are a flat list of dates, or how far back schedules go.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the resource stated first and the value proposition second. The closing clause about planning trading activities is somewhat promotional but still orients the agent quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter lookup this is adequate, but with no output schema the description could state the shape of the return (a list of closure dates per exchange) and what happens with optional date parameters left empty. Those omissions are the main remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the exchange code and date-range semantics are already documented in the schema. The description adds no format hints or meaning beyond what the structured fields provide, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (holiday schedules) and scope (specific stock exchanges) with a clear retrieval verb. It implicitly distinguishes itself from hour-related siblings like getExchangeMarketHours, though it never names them directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'plan your trading activities accordingly' implies the use case (checking market closures), but there is no explicit when-to-use guidance, no mention of the sibling market-hours tools, and no advice on whether dates are required or default.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHouseTradesCRead-onlyIdempotentInspect
Track the financial trades made by U.S. House members and their families with the FMP U.S. House Trades API. Access real-time information on stock sales, purchases, and other investment activities to gain insight into their financial decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), so the description's job is to add behavioral context — and it adds almost none. Worse, 'real-time information' is a misleading freshness claim for congressional trade disclosures, which are filed with statutory delay, and nothing is said about result volume, pagination, or what a trade record contains. The one useful signal (data source is FMP's House Trades API) does not compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences of reasonable length, but the second sentence is largely promotional ('gain insight into their financial decisions') and the phrase 'with the FMP U.S. House Trades API' is filler. The most actionable fact — the symbol requirement — is absent rather than front-loaded, so the concision comes at the cost of usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema, the description should at minimum explain the symbol scoping and what a returned trade record looks like. It does neither, and offers no disambiguation from the four very similar House/Senate disclosure siblings. The safety profile is covered by annotations, but the functional gaps dominate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'symbol' parameter, which normally earns a baseline 3, but the description actively points the wrong way: it describes tracking House members' trades generally, implying an unfiltered feed, while the schema requires a specific stock symbol. That omission/implied mismatch is more damaging than silence here, since an agent skimming the description would not know it must supply a ticker.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (U.S. House members' financial trades) and an action (track/access), so the domain is identifiable. But it never states the crucial operating fact that this call is scoped to a single stock symbol, and it doesn't distinguish itself from close siblings like getHouseTradesByName, getHouseTradesById, or getLatestHouseDisclosures. The marketing phrasing ('FMP U.S. House Trades API', 'gain insight into their financial decisions') pushes it toward vague purpose rather than a precise capability statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all — no mention of when to pick this over getHouseTradesByName, getHouseTradesById, getSenateTrades, or getLatestHouseDisclosures. No prerequisites, no exclusions, no context about what the required symbol selects. An agent has to infer selection logic entirely from the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHouseTradesByIdRead-onlyIdempotentInspect
Retrieve the House trading history of a single member by ID with the FMP House Trades By ID API. Use it after finding a member's ID through the profile tools to see every disclosed trade for that member.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| senateID | Yes | Congress member ID as used by FMP (e.g., P000197) |
getHouseTradesByNameRead-onlyIdempotentInspect
Search for House trading activity by Representative name with the FMP House Trades by Name API. Access detailed information on trades made by specific Representatives, including trade dates, assets, amounts, and potential conflicts of interest.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Representative name (first or last name) |
getIncomeStatementCRead-onlyIdempotentInspect
Access real-time income statement data for public companies, private companies, and ETFs with the FMP Real-Time Income Statements API. Track profitability, compare competitors, and identify business trends with up-to-date financial data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing operational — no mention of reporting lag, restatements, empty results for private companies/ETFs, or rate limits — and 'real-time' overstates what an income statement endpoint returns, which is periodic reported financials.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences of reasonable length, but the second is pure promotional filler ('track profitability, compare competitors, identify business trends') that consumes half the definition without informing tool selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full schema coverage this could be adequate, but the crowded income-statement sibling set means the description's real job is disambiguation, and it does none. No output schema exists, and nothing tells the agent what shape or coverage (annual vs. quarterly) to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (symbol, period enum, limit with default and max), so the schema carries parameter meaning fully. The description adds no interpretation of period vs. limit or defaults, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Access real-time income statement data' for public companies, private companies, and ETFs. An agent knows what it fetches, but the description never distinguishes it from the many sibling income-statement variants (TTM, Growth, AsReported, Bulk), which is the key ambiguity in this namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of when a caller should prefer getIncomeStatementTTM, getIncomeStatementGrowth, getIncomeStatementAsReported, or getIncomeStatementsBulk. 'Compare competitors and identify business trends' is a marketing benefit, not a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIncomeStatementAsReportedBRead-onlyIdempotentInspect
Retrieve income statements as they were reported by the company with the As Reported Income Statements API. Access raw financial data directly from official company filings, including revenue, expenses, and net income.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that the data is unadjusted/'as reported' from filings, which is meaningful context, but says nothing about coverage limits, pagination, or how many periods are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource, but the second sentence is largely restatement ('raw financial data directly from official company filings' repeats 'as reported'), and the 'with the As Reported Income Statements API' clause is product marketing rather than actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only fetch with full schema coverage and no output schema, the description covers purpose and data provenance adequately. It omits any indication of return shape beyond naming three line items, and gives no hint about which period conventions or history depth to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, period enum (annual/quarter) and limit (default 100, max 1000) all documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource ('Retrieve income statements') and adds the discriminating qualifier 'as they were reported by the company' / 'directly from official company filings', which separates it from the standardized getIncomeStatement. It doesn't name that sibling explicitly, so the differentiation must be inferred from the qualifier alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — 'raw financial data directly from official company filings' hints at when to prefer this over normalized statements, but there is no explicit when-to-use, when-not-to-use, or named alternative (getIncomeStatement, getIncomeStatementTTM, getFinancialStatementFullAsReported).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIncomeStatementGrowthCRead-onlyIdempotentInspect
Track key financial growth metrics with the Income Statement Growth API. Analyze how revenue, profits, and expenses have evolved over time, offering insights into a company’s financial health and operational efficiency.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, or FY) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond that—it does not mention data coverage, update frequency, required symbol scoping, pagination, or what the growth figures represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but front-loads vague phrasing ('Track key financial growth metrics') and spends the second sentence on generic promotional language about financial health and operational efficiency. It could be tightened to state the tool's scope, required input, and return type more directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with fully described parameters and safety annotations, the description is minimally adequate. However, with no output schema, it should explain what growth metrics are returned (e.g., line-item growth rates) and how they are scoped by symbol and period, which it does not do.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents symbol, period, and limit. The description does not add any meaning beyond those fields; it never mentions the required symbol, period options, or the result limit, leaving the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific domain (income statement growth metrics) and what they measure (revenue, profits, expenses over time). It does not distinguish this tool from close siblings like getIncomeStatement, getFinancialStatementGrowth, or getIncomeStatementGrowthBulk, so an agent cannot tell exactly when this variant is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives. The description only provides a general marketing-style rationale, leaving the agent to infer whether this should be chosen over sibling growth or statement tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIncomeStatementGrowthBulkBRead-onlyIdempotentInspect
The Bulk Income Statement Growth API provides access to growth data for income statements across multiple companies. Track and analyze growth trends over time for key financial metrics such as revenue, net income, and operating income, enabling a better understanding of corporate performance trends.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the useful scope fact that results span multiple companies, but says nothing about pagination, response volume, or whether every company is returned for the given year/period.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and functional; the second half ('enabling a better understanding of corporate performance trends') is promotional filler that restates the value rather than the behavior. Short overall, but only one of the two sentences earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only bulk endpoint with full schema coverage and no output schema, the definition covers what the tool returns at a conceptual level (growth metrics across companies for a given year/period). The remaining gap is the absence of any statement about result shape or record count, which is minor given the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'year' and 'period' each documented including the period enum values, so the description is not required to carry parameter meaning. It adds nothing beyond the schema about how year/period constrain the bulk results, which is the baseline expectation at full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: bulk growth data for income statements across multiple companies, and lists the metrics involved (revenue, net income, operating income). 'Bulk' plus 'growth' distinguishes it from the single-company getIncomeStatementGrowth and from non-growth getIncomeStatementsBulk siblings, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of the tradeoff versus the single-company growth endpoint, and no mention of the cost/coverage implications of a bulk call. The only usage signal is the implied 'multiple companies' scope carried by the word 'Bulk'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIncomeStatementsBulkRead-onlyIdempotentInspect
The Bulk Income Statement API allows users to retrieve detailed income statement data in bulk. This API is designed for large-scale data analysis, providing comprehensive insights into a company's financial performance, including revenue, gross profit, expenses, and net income.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year (e.g., 2023) | |
| period | Yes | Period (Q1, Q2, Q3, Q4, FY) |
getIncomeStatementTTMCRead-onlyIdempotentInspect
Access real-time income statement data for public companies, private companies, and ETFs with the FMP Real-Time Income Statements API. Track profitability, compare competitors, and identify business trends with up-to-date financial data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered structurally. The description adds no behavioral context beyond marketing copy: it does not clarify what TTM window is returned, whether data is a snapshot or rolling, how many periods come back, or what the limit parameter governs in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is pure marketing ("Track profitability, compare competitors, and identify business trends with up-to-date financial data") and consumes space without informing invocation. Worse, the front-loaded claim ("real-time") is the wrong framing for a TTM endpoint, so the structure prioritizes promotion over the one fact that matters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple — one required symbol, one optional limit, no output schema, annotations present — so the description does not need to explain return values. Still, given a large sibling family of income-statement variants (getIncomeStatement, getIncomeStatementGrowth, getIncomeStatementsBulk, getCashFlowStatementTTM), the description is incomplete in not identifying what makes the TTM variant distinct.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (symbol, limit with default 100 / max 1000) are already fully documented in the schema. The description adds nothing about either parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ("Access ... income statement data") and lists coverage (public companies, private companies, ETFs). However, it never explains "TTM" (trailing twelve months) despite that being the defining trait in the tool name, and it uses "real-time" instead, which signals a different thing. It also gives no basis for choosing it over siblings like getIncomeStatement or getIncomeStatementGrowth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all — no conditions, prerequisites, or named alternatives. The promotional phrasing ("compare competitors", "identify business trends") describes analyst outcomes, not invocation criteria, so an agent learns nothing about when this tool beats getIncomeStatement or getIncomeStatementsBulk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndex1HourDataBRead-onlyIdempotentInspect
Access 1-hour interval intraday data for stock indexes using the Intraday 1-Hour Price Data API. This API provides detailed price movements and volume within hourly intervals, making it ideal for tracking medium-term market trends during the trading day.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that the payload contains price movements and volume per hourly interval, but says nothing about date-range behavior (defaults, maximum span), data limits, or symbol format handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the interval and resource. The second sentence's closing clause ('making it ideal for tracking medium-term market trends') is mild marketing filler, but the sentence still conveys payload content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with full schema coverage and annotations, the essentials are present, and the mention of price and volume partially compensates for the missing output schema. It still lacks any guidance on date-range limits or pagination/volume of returned rows, which an agent needs to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with symbol, from_date and to all documented including the '^GSPC' example and YYYY-MM-DD format, so the schema already does the work. The description adds no meaning about how the date range interacts with the interval or what happens if dates are omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Access 1-hour interval intraday data for stock indexes,' with the interval spelled out in the name and description. That interval specificity implicitly separates it from siblings like getIndex1MinuteData and getIndex5MinuteData, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers only an implied use case ('ideal for tracking medium-term market trends during the trading day'). There is no statement of when to prefer the 1-hour interval over the 1-minute or 5-minute variants, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndex1MinuteDataARead-onlyIdempotentInspect
Retrieve 1-minute interval intraday data for stock indexes using the Intraday 1-Minute Price Data API. This API provides granular price information, helping users track short-term price movements and trading volume within each minute.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, covering the safety profile. The description adds that the data includes price movements and trading volume per minute, but does not disclose rate limits, data volume, or other operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. The second sentence is slightly redundant ('granular price information' restates the first), but the description is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full schema coverage and clear annotations, the description provides sufficient context: what data it returns and its typical use. It could mention date range handling, but the schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents the three parameters. The description adds no parameter-level meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (retrieve) and resource (1-minute interval intraday data for stock indexes). The interval implicitly distinguishes it from siblings like getIndex5MinuteData and getIndex1HourData, but it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case ('track short-term price movements and trading volume within each minute') but does not state when to choose this tool over the 5-minute or 1-hour variants, nor does it list prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndex5MinuteDataARead-onlyIdempotentInspect
Retrieve 5-minute interval intraday price data for stock indexes using the Intraday 5-Minute Price Data API. This API provides crucial insights into price movements and trading volume within 5-minute windows, ideal for traders who require short-term data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world behavior, so the safety profile is covered. The description adds that the data includes price movements and trading volume within 5-minute windows, but it does not disclose date-range limits, timezone handling, pagination, or other operational constraints. With annotations carrying the main behavioral burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the key retrieval statement and is only two sentences long. The second sentence contains promotional wording such as 'crucial insights' that adds little beyond noting trading volume, making it slightly padded but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only retrieval tool with a fully described schema and annotations, the description covers the core purpose and the kind of data returned. It omits operational details such as maximum historical range or timezone, but the input schema and annotations carry most of the remaining burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents symbol, from_date, and to with formats and examples. The description adds no parameter-level meaning beyond the asset class and interval context, so it meets the baseline without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb, resource, interval, and asset class: retrieve 5-minute interval intraday price data for stock indexes. This differentiates it from crypto/forex siblings and from the 1-minute and 1-hour index interval tools. The rest is promotional, but the tool's purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only gives a broad audience-level rationale ('ideal for traders who require short-term data') and does not say when to choose this over getIndex1MinuteData, getIndex1HourData, or chart-based siblings. No exclusions, date-range guidance, or prerequisites are stated, so usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndexListRead-onlyIdempotentInspect
Retrieve a comprehensive list of stock market indexes across global exchanges using the FMP Stock Market Indexes List API. This API provides essential information such as the symbol, name, exchange, and currency for each index, helping analysts and investors keep track of various market benchmarks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getIndexQuoteBRead-onlyIdempotentInspect
Access real-time stock index quotes with the Stock Index Quote API. Stay updated with the latest price changes, daily highs and lows, volume, and other key metrics for major stock indices around the world.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds useful behavior detail — real-time freshness and the returned metrics (price changes, daily highs/lows, volume) — but says nothing about coverage limits, rate limits, or what happens for unknown symbols.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted length, but the second sentence reads as marketing copy ('Stay updated with the latest...') and largely restates the first. The useful content — the metrics returned — is buried mid-sentence rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, annotation-covered, no-output-schema tool the definition is adequate: it names the resource, freshness, and some returned fields. It remains incomplete on symbol universe scope and on how it differs from the many sibling index tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the single symbol parameter is already documented including the '^GSPC' example. The description adds only the vague framing 'major stock indices around the world' and no extra syntax, normalization, or validation meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: fetching real-time quotes for a stock index. It does not, however, distinguish itself from close siblings such as getIndexQuotes (plural/batch) or getIndexShortQuote, so an agent cannot tell from the description alone which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus getIndexQuotes, getAllIndexQuotes, getIndexShortQuote, or the intraday/historical chart tools. It also omits whether 'symbol' must be an index symbol versus a constituent ticker, leaving selection entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndexQuotesCRead-onlyIdempotentInspect
Track real-time movements of major stock market indexes with the FMP Stock Market Index Quotes API. Access live quotes for global indexes and monitor changes in their performance.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered by structured data. The description adds only the words 'real-time' and 'live', without clarifying freshness/latency, whether it returns one index or the whole set, or how it differs from the plural 'all' sibling — which is the behavior an agent most needs to know here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the resource front-loaded, so it is not bloated. But 'monitor changes in their performance' is filler that restates 'track real-time movements', and the space would be better spent distinguishing this from its near-identical siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single optional parameter, the description carries the burden of explaining what actually comes back (one index? all indexes? which fields?) and it does not. The unresolved overlap with getIndexQuote, getIndexShortQuote, and getAllIndexQuotes leaves a genuine selection gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single optional boolean ('short' = use short format), so the schema already documents the only parameter. The description does not mention the short/long output toggle at all, but with full schema coverage the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ('Track real-time movements of major stock market indexes', 'Access live quotes for global indexes'), so the general domain is clear. However, it reads like API marketing copy and never resolves the central ambiguity: the plural name sits alongside siblings getIndexQuote, getIndexShortQuote, and getAllIndexQuotes, yet the description gives no basis for telling them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all — no mention of which sibling to pick for a single index versus all indexes, no prerequisite or input requirement (e.g. that no index symbol is supplied), and no exclusion. An agent must guess between this tool and getAllIndexQuotes or getIndexQuote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndexShortQuoteARead-onlyIdempotentInspect
Access concise stock index quotes with the Stock Index Short Quote API. This API provides a snapshot of the current price, change, and volume for stock indexes, making it ideal for users who need a quick overview of market movements.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Index symbol (e.g., ^GSPC for S&P 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety and idempotency profile is covered. The description adds that the payload is a lightweight snapshot of price/change/volume, which is useful context, but it says nothing about rate limits, staleness, or data latency that would matter for a live quote endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose. The second half ('making it ideal for users who need a quick overview of market movements') is mild marketing filler that could be replaced with a sibling comparison, but overall it is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the description adequately signals the shape of the response by naming price, change, and volume. The main missing piece is disambiguation from the other index quote tools, which is the one gap keeping it below full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single required parameter and 100% schema description coverage, including the concrete example '^GSPC for S&P 500', the schema fully carries the parameter burden. The description adds no format or validation detail beyond it, which is the baseline case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('concise stock index quotes') and enumerates the returned fields (price, change, volume), so the agent knows it is a lightweight snapshot. It does not, however, distinguish this from the sibling getIndexQuote, which by naming convention is the fuller quote, leaving the boundary to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ideal for users who need a quick overview of market movements' implies usage but never states when to prefer this over getIndexQuote or getAllIndexQuotes. There are no explicit exclusions or prerequisite conditions, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndustryClassificationListRead-onlyIdempotentInspect
Retrieve a comprehensive list of industry classifications, including Standard Industrial Classification (SIC) codes and industry titles with the FMP Industry Classification List API.
| Name | Required | Description | Default |
|---|---|---|---|
| sicCode | No | SIC code | |
| industryTitle | No | Industry title or partial title |
getIndustryPerformanceSnapshotRead-onlyIdempotentInspect
Access detailed performance data by industry using the Industry Performance Snapshot API. Analyze trends, movements, and daily performance metrics for specific industries across various stock exchanges.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| industry | No | Industry (e.g., Biotechnology) |
getIndustryPerformanceSummaryCRead-onlyIdempotentInspect
The Industry Performance Summary API provides an overview of how various industries are performing financially. By analyzing the value of industries over a specific period, this API helps investors and analysts understand the health of entire sectors and make informed decisions about sector-based investments.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year of filing | |
| quarter | Yes | Quarter of filing (1-4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered and the description does not contradict it. However, the description adds nothing beyond that: no indication of data source (filings-based, given the year/quarter params), coverage or granularity, response shape, or any limits. For a data-retrieval tool with no output schema, that is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the general purpose, but the second sentence is promotional filler ('helps investors and analysts... make informed decisions') that conveys no operational information. It is short but not dense with useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only three annotations, the description must explain what the summary returns and how it relates to periods; it does neither. An agent cannot determine whether the result is a list of industries with returns, market values, or something else, leaving it under-specified for a simple but opaque data tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both required parameters as filing year and quarter (1-4). The description's phrase 'over a specific period' loosely correlates with these but adds no meaning about how aggregation happens or whether periods are calendar or fiscal. Baseline 3 applies when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it gives an 'overview of how various industries are performing financially,' which gestures at the resource but is essentially the tool name expanded with marketing language. It never states what a 'summary' actually contains (e.g., per-industry returns or valuations) and does not distinguish itself from close siblings like getIndustryPerformanceSnapshot or getHistoricalIndustryPerformance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no mention of alternatives despite several sibling tools covering industry and sector performance. The only implicit usage signal is 'over a specific period,' which loosely points at the year/quarter parameters but never says whether this is a point-in-time or historical query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIndustryPESnapshotBRead-onlyIdempotentInspect
View price-to-earnings (P/E) ratios for different industries using the Industry P/E Snapshot API. Analyze valuation levels across various industries to understand how each is priced relative to its earnings.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) | |
| exchange | No | Exchange (e.g., NASDAQ) | |
| industry | No | Industry (e.g., Biotechnology) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered. The word "snapshot" usefully signals a point-in-time result rather than a series, but the description says nothing about what the response contains, how many industries are returned, or how the date drives the snapshot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences that front-load the verb and resource, with no filler or marketing language. The second sentence largely restates the first from an analyst's perspective, so a small amount of redundancy remains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read with full schema documentation and no output schema, the description covers the core purpose but leaves the agent guessing about required-vs-optional usage and the shape of the returned data. Adequate, but not complete enough to call without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all three parameters carry examples (NASDAQ, Biotechnology), so the schema does the heavy lifting. The description adds no meaning beyond that — it never mentions that date is required or that exchange and industry act as narrowing filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (view P/E ratios for different industries) and names the underlying API, so the agent can tell it is an industry-level rather than sector-level valuation call. It stops short of naming getSectorPESnapshot or getHistoricalIndustryPE as the alternatives, so the differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Analyze valuation levels across various industries" gives an implied analytical use case but no explicit when-to-use or when-not-to-use guidance. Nothing tells the agent to pick the historical variant for time series or the sector variant for broader groupings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getInsiderTradeStatisticsBRead-onlyIdempotentInspect
Analyze insider trading activity with the Insider Trade Statistics API. This API provides key statistics on insider transactions, including total purchases, sales, and trends for specific companies or stock symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds one useful behavioral fact beyond that — the response is summarized statistics (totals and trends) rather than a list of transactions — but says nothing about aggregation window, units, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second largely restates the first ('insider trading activity' vs 'key statistics on insider transactions'), giving the definition noticeable redundancy without extra information. It is front-loaded and readable, just padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, an agent still needs to know the granularity of the statistics (period, per-transaction vs aggregate, per-insider breakdown), and the description only gestures at 'total purchases, sales, and trends'. Adequate to identify the tool, thin on what it actually returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage, so the schema already carries the definition. The phrase 'for specific companies or stock symbols' loosely confirms that the symbol scopes the statistics, but adds no format or resolution detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (insider trade statistics: total purchases, sales, and trends) and the entity it applies to (company or stock symbol), so an agent knows what payload to expect. It does not, however, distinguish itself from close siblings such as getLatestInsiderTrading, searchInsiderTrades, or getInsiderTransactionTypes, so the boundary is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says this returns aggregates rather than individual filings, and no alternative is named. With three insider-related siblings in the list, the agent has to guess which tool answers a given question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getInsiderTransactionTypesRead-onlyIdempotentInspect
Access a comprehensive list of insider transaction types with the All Insider Transaction Types API. This API provides details on various transaction actions, including purchases, sales, and other corporate actions involving insider trading.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getIntradayChartRead-onlyIdempotentInspect
Access precise intraday stock price and volume data with the FMP Interval Stock Chart API. Retrieve real-time or historical stock data in intervals, including key information such as open, high, low, and close prices, and trading volume for each minute.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| interval | Yes | Time interval | |
| from_date | No | Start date (YYYY-MM-DD) |
getIPOCalendarRead-onlyIdempotentInspect
Access a comprehensive list of all upcoming initial public offerings (IPOs) with the FMP IPO Calendar API. Stay up to date on the latest companies entering the public market, with essential details on IPO dates, company names, expected pricing, and exchange listings.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getIPODisclosuresBRead-onlyIdempotentInspect
Access a comprehensive list of disclosure filings for upcoming initial public offerings (IPOs) with the FMP IPO Disclosures API. Stay updated on regulatory filings, including filing dates, effectiveness dates, CIK numbers, and form types, with direct links to official SEC documents.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds value by listing the returned data fields and noting direct links to official SEC documents, but it says nothing about whether results are date-windowed, how large the result set may be, or any rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated up front, which is good, but the second sentence is promotional filler ('Stay updated on...') that restates the first. The useful content (returned field names) is buried inside marketing language rather than structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description reasonably compensates by naming the fields returned. However, it omits the date-window behavior that the two parameters imply and gives no guidance on result volume, leaving an agent without a full picture of how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (from_date, to) are documented in the schema with date format. The description never mentions the date-range filtering at all, so it adds no semantic meaning beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a list of IPO disclosure filings from the FMP IPO Disclosures API, and it enumerates the content (filing dates, effectiveness dates, CIK numbers, form types, SEC links). It does not, however, distinguish this tool from close siblings such as getIPOProspectuses, getIPOCalendar or getDisclosure, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. Given the many IPO- and disclosure-related siblings, an explicit statement of how this differs from getIPOProspectuses and getDisclosure would be the single most useful addition, and it is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getIPOProspectusesRead-onlyIdempotentInspect
Access comprehensive information on IPO prospectuses with the FMP IPO Prospectus API. Get key financial details, such as public offering prices, discounts, commissions, proceeds before expenses, and more. This API also provides links to official SEC prospectuses, helping investors stay informed on companies entering the public market.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getKeyMetricsBRead-onlyIdempotentInspect
Access essential financial metrics for a company with the FMP Financial Key Metrics API. Evaluate revenue, net income, P/E ratio, and more to assess performance and compare it to competitors.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, FY, annual, or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond that — no note on how period/limit affect results, whether historical periods are returned, or how the data is sourced — so it contributes almost no transparency of its own.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, with no redundancy. The second sentence leans toward promotional phrasing ('and more to assess performance and compare it to competitors') but remains short enough to earn its place as context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three well-documented parameters and full annotations, the mechanical requirements to call the tool are covered. However, there is no output schema, so the description carries the burden of describing the returned metrics, and it does so only vaguely and arguably inaccurately (revenue and net income are statement line items rather than typical key-metric fields).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, period, and limit all documented including enum values and default/max for limit, so the baseline is 3. The description adds no meaning beyond the schema; the fields it lists are returned metrics, not parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Access essential financial metrics for a company') and names example fields (revenue, net income, P/E ratio). It is clear what the tool returns, but it never distinguishes itself from very close siblings such as getKeyMetricsTTM, getRatios, or getKeyMetricsTTMBulk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the phrase 'assess performance and compare it to competitors,' which hints at a valuation/comparison scenario. There is no explicit statement of when to prefer this over the TTM or ratios variants, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getKeyMetricsTTMBRead-onlyIdempotentInspect
Retrieve a comprehensive set of trailing twelve-month (TTM) key performance metrics with the TTM Key Metrics API. Access data related to a company's profitability, capital efficiency, and liquidity, allowing for detailed analysis of its financial health over the past year.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is carried by structured data. The description adds useful scope about what the returned metrics represent (trailing twelve months across profitability, capital efficiency, liquidity) but says nothing about units, currency, handling of companies without full TTM history, or whether missing metrics are omitted or null.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, which is the right shape. Some words are promotional filler ('comprehensive set', 'allowing for detailed analysis of its financial health over the past year') that restate the value proposition rather than adding information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with rich annotations and full schema coverage, this is adequate but thin. With no output schema present, the description could have said what the payload looks like (flat metric key/value set per symbol, date/fiscal period context), and it omits sibling disambiguation, which is the main thing an agent needs here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter and 100% schema description coverage, the schema already documents 'symbol' fully, so the baseline of 3 applies. The description does not mention the symbol argument, its format (ticker vs exchange-qualified), or how invalid symbols behave, so it adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (retrieve) and resource (TTM key performance metrics), and even enumerates the metric families covered (profitability, capital efficiency, liquidity). However, it never distinguishes itself from close siblings such as getKeyMetrics (non-TTM), getFinancialRatiosTTM, or getKeyMetricsTTMBulk, so an agent scanning the sibling list gets no help choosing this one over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says to pick this over getKeyMetrics for annual figures or over getKeyMetricsTTMBulk for multi-symbol pulls. The only hint is the implied analyst use case ('allowing for detailed analysis of its financial health'), which does not select between alternatives or state prerequisites such as a valid listing symbol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getKeyMetricsTTMBulkBRead-onlyIdempotentInspect
The Key Metrics TTM Bulk API allows users to retrieve trailing twelve months (TTM) data for all companies available in the database. The API provides critical financial ratios and metrics based on each company’s latest financial report, offering insights into company performance and financial health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds useful behavioral context that values derive from each company's 'latest financial report', which implies staleness/refresh characteristics, but it says nothing about response size, pagination, or rate limits for what is evidently a whole-database dump.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and earns its place. The second sentence drifts into marketing filler ('offering insights into company performance and financial health') rather than adding operational detail an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering safety, the description covers the basics. For a bulk endpoint that returns metrics for every company in the database, the absence of any note on payload volume, pagination behavior, or update cadence leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter meaning to add and the baseline is 4. The description correctly conveys that no filtering inputs exist by saying data is returned for all companies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('retrieve trailing twelve months (TTM) data') and scopes it to 'all companies available in the database', which distinguishes it from the single-symbol sibling getKeyMetricsTTM. It does not, however, distinguish itself from getRatiosTTMBulk or explain what 'key metrics' contains versus 'ratios'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'all companies' wording signals a whole-database pull, so an agent can infer this is the bulk alternative to getKeyMetricsTTM. There is no explicit when-to-use/when-not guidance, no warning about preferring a filtered endpoint, and no mention of the closest sibling getRatiosTTMBulk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatest8KFilingsBRead-onlyIdempotentInspect
Stay up-to-date with the most recent 8-K filings from publicly traded companies using the FMP Latest 8-K SEC Filings API. Get real-time access to significant company events such as mergers, acquisitions, leadership changes, and other material events that may impact the market.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date (YYYY-MM-DD) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| from_date | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint), so the burden is lower. The description adds meaningful domain context about what an 8-K covers, but its 'real-time access' and 'stay up-to-date' framing sits awkwardly with a tool that requires explicit from_date/to bounds, and it says nothing about result ordering, volume, or pagination behavior beyond what the schema declares.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, with no repetition of the tool name. Some marketing padding ('Stay up-to-date with', 'using the FMP Latest 8-K SEC Filings API') could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple date-windowed list endpoint with a fully documented schema, fully declared annotations, and no output schema, the description is minimally adequate. It still leaves an agent guessing on scope (all companies vs. one), result ordering, and how this differs from the cluster of neighboring filing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (from_date, to, page, limit) are documented in the schema itself. The description adds no meaning beyond that — no date-window limits, no default page size, no interaction between limit and pagination. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieves the most recent 8-K SEC filings. The example event types (mergers, acquisitions, leadership changes) confirm the resource is 8-K material-event filings rather than general filings, which distinguishes it in substance from siblings like getLatestFinancialFilings or getFilingsByFormType, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. Given the many adjacent filing tools in the sibling list (getLatestFinancialFilings, getFilingsByFormType, getFilingsBySymbol, getSecFilingExtract), the description should say why an agent picks this one — for example, that it returns all companies' 8-Ks in a date window rather than filtering by symbol or form type. Nothing here implies that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestCrowdfundingCampaignsRead-onlyIdempotentInspect
Discover the most recent crowdfunding campaigns with the FMP Latest Crowdfunding Campaigns API. Stay informed on which companies and projects are actively raising funds, their financial details, and offering terms.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 1000) |
getLatestEarningsTranscriptsBRead-onlyIdempotentInspect
Access available earnings transcripts for companies with the FMP Latest Earning Transcripts API. Retrieve a list of companies with earnings transcripts, along with the total number of transcripts available for each company.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose that this is a safe, read-only, idempotent, open-world operation. The description adds that the result is a list of companies with transcript counts, but it does not explain pagination behavior, ordering, rate limits, or what 'latest' means operationally. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core action. The second sentence largely restates the first with a bit more output detail, but there is no significant clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list endpoint with an output schema absent, the description gives a high-level return shape: companies with earnings transcripts and total counts. It omits pagination semantics and does not fully explain the return structure, but the annotations and schema cover much of the operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters (page and limit) are fully documented in the schema. The description adds no parameter-specific meaning beyond that, which is acceptable given the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieving companies that have earnings transcripts, along with the total transcript count per company. It is clear enough to distinguish from a tool that fetches an actual transcript, but it does not explicitly contrast itself with siblings such as getEarningsTranscriptList or getAvailableTranscriptSymbols.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like getEarningsTranscript, getEarningsTranscriptDates, or getAvailableTranscriptSymbols. The word 'latest' implies a use case, but the description does not state exclusions, prerequisites, or comparison criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestEquityOfferingsCRead-onlyIdempotentInspect
Stay informed about the latest equity offerings with the FMP Equity Offering Updates API. Track new shares being issued by companies and get insights into exempt offerings and amendments.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Optional CIK number to filter by | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 10, max: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered. The description adds only content categories (exempt offerings, amendments) and says nothing about freshness/update cadence of "latest", pagination behaviour, or result volume, which are the traits an agent actually needs beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences, and the resource is front-loaded, but both sentences contain promotional filler ("Stay informed about", the API name drop, "get insights into") that could be replaced with operational detail at the same length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A no-required-parameter list tool with no output schema needs the description to define the time window implied by "latest" and what a record contains. Neither is provided, leaving the agent guessing about recency scope and result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (cik, page, limit) carry their own descriptions including the default and max for limit. The description adds no additional meaning about how filtering by CIK interacts with ordering or what page numbering yields, so this sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (equity offerings) and states it covers new share issuance, exempt offerings and amendments, so the domain is clear. However, it is phrased as marketing copy ("Stay informed about...", "get insights into") and never distinguishes this latest-feed tool from close siblings such as searchEquityOfferings or getEquityOfferingsByCIK.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement, no prerequisites and no mention of alternatives, despite the presence of two obvious sibling tools covering equity offerings. An agent must infer from the name alone that this is the unfiltered recent-filings feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestFinancialFilingsBRead-onlyIdempotentInspect
Stay updated with the most recent SEC filings from publicly traded companies using the FMP Latest SEC Filings API. Access essential regulatory documents, including financial statements, annual reports, 8-K, 10-K, and 10-Q forms.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date (YYYY-MM-DD) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| from_date | Yes | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the useful scope detail that filings cover financial statements and specific form types, but omits behavior an agent needs: that no symbol/CIK filter parameter exists (so this is an unfiltered global feed over the date range) and how pagination behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences, but both are promotional filler: "Stay updated with..." and "Access essential regulatory documents..." pad the content. The actually informative part – the list of form types – arrives after marketing framing rather than being front-loaded as the operational definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, fully documented schema with annotations and no output schema, the description is minimally adequate. It leaves gaps that matter for correct invocation: that results are a date-ranged global feed with no per-company filtering, and whether page/limit defaults affect result volume.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all four parameters (from_date, to, page, limit) documented inline including the YYYY-MM-DD format. The description contributes no additional parameter meaning, which is acceptable at this coverage level but leaves it at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and verb: retrieve the most recent SEC filings from publicly traded companies, enumerating the document types (8-K, 10-K, 10-Q, annual reports). An agent can tell this is a recency-ordered filings feed. It does not, however, distinguish itself from close siblings such as getLatest8KFilings or getFilingsByFormType, which occupy adjacent territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance despite many competing siblings (getLatest8KFilings, getFilingsByFormType, getFilingsBySymbol, getFilingsByCIK, getLatestInstitutionalFilings). The only usage signal is the vague phrase "stay updated," which implies recency monitoring but never states it as a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestFinancialStatementsCRead-onlyIdempotentInspect
Access the latest financial statements for publicly traded companies with the FMP Latest Financial Statements API. Track key financial metrics, including revenue, earnings, and cash flow, to stay informed about a company's financial performance.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 250, max: 250) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds almost nothing beyond marketing: it doesn't say the result set is cross-company rather than per-company, doesn't mention the 250-result cap or how to walk pages, and gives no sense of what a returned record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second sentence ("Track key financial metrics... to stay informed about a company's financial performance") is promotional filler rather than operational information. The usable content is a single clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the burden of explaining what comes back, and it doesn't — no statement types, no period/fiscal-date semantics, no pagination behavior. Given a paged, unfiltered bulk-style endpoint, an agent has too little to call it confidently or to prefer it over the per-symbol statement tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two optional parameters (page, limit with default 250 and max 250), so the schema already carries the semantics. The description says nothing about pagination strategy, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Access the latest financial statements") and lists the metrics covered (revenue, earnings, cash flow), so an agent knows roughly what it returns. However, it never distinguishes this from close siblings such as getIncomeStatement, getBalanceSheetStatement, getCashFlowStatement, or getLatestFinancialFilings, so the boundary is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. Critically, the description says nothing about the fact that the tool takes no symbol filter and only pages through results, which is the single most important selection signal versus the symbol-scoped statement tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestHouseDisclosuresCRead-onlyIdempotentInspect
Access real-time financial disclosures from U.S. House members with the FMP Latest House Financial Disclosures API. Track recent trades, asset ownership, and financial holdings for enhanced visibility into political figures' financial activities.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no behavior beyond that: it does not disclose result ordering (latest-first?), how many records a page returns, default page size when 'limit' is omitted, or what a disclosure record actually contains. 'Real-time' is also a loose claim for periodically filed disclosure data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is largely promotional filler ('enhanced visibility into political figures' financial activities') that conveys no operational information. The pacing is fine, but the content is not front-loaded with anything actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter read tool with full schema coverage and no output schema, the description is roughly sufficient to call it correctly. Missing pagination defaults and record shape are minor given the tool's low complexity, though the lack of sibling differentiation remains a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both optional parameters ('page' and 'limit'), so the schema already carries the semantics. The description mentions neither parameter and adds no defaults, maximums, or pagination mechanics, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The resource is identifiable as 'latest House financial disclosures' from U.S. House members, but the framing is marketing copy ('Access real-time financial disclosures...with the FMP...API') rather than a precise verb+resource statement. It also blurs the boundary with siblings: 'track recent trades' overlaps with getHouseTrades, and nothing distinguishes it from getLatestSenateDisclosures or getDisclosure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus getHouseTrades, getLatestSenateDisclosures, or the other disclosure siblings. No prerequisites, no pagination guidance, and no exclusions are given, so the agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestInsiderTradingBRead-onlyIdempotentInspect
Access the latest insider trading activity using the Latest Insider Trading API. Track which company insiders are buying or selling stocks and analyze their transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date of insider trades (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish a read-only, idempotent, open-world operation, and the description adds useful context about recency and the kinds of transactions represented. It does not further explain freshness, ordering, response contents, or other behavior relevant to interpreting the latest feed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the resource and its latest-activity scope. The phrase "using the Latest Insider Trading API" is largely redundant, and the second sentence is somewhat generic, but neither creates substantial bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read operation, the description, fully documented schema, and annotations provide enough for basic invocation. Selection and interpretation would still benefit from clarifying the feed's scope, its differences from insider-trade siblings, and the returned transaction information, especially because no output schema is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting the date format, page default, and result-limit default and maximum. The description adds no parameter meaning beyond that schema, so the high-coverage baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies retrieval of the latest insider-trading activity and explains that it covers insiders buying or selling stocks. It does not explicitly distinguish this feed from siblings such as searchInsiderTrades, searchInsiderTradesByReportingName, or getInsiderTradeStatistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word "latest" and the stated goal of tracking insider purchases and sales provide general usage context. However, there is no explicit guidance on when to use this feed instead of the filtered search or statistics tools, nor clarification that it has no symbol or insider-name filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestInstitutionalFilingsCRead-onlyIdempotentInspect
Stay up to date with the most recent SEC filings related to institutional ownership using the Institutional Ownership Filings API. This tool allows you to track the latest reports and disclosures from institutional investors, giving you a real-time view of major holdings and regulatory submissions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so safety and openness are covered elsewhere. The description adds essentially nothing operational: no result ordering, no pagination behavior, no statement of how many filings come back per call, just promotional language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both largely promotional, and the second restates the first with different nouns. No front-loaded precision about scope, ordering, or limits; the verbosity does not earn its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description would need to describe what a filing record looks like and how paged results behave. Instead it omits both, and given a crowded sibling set it leaves the agent guessing about scope and result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (page, limit) carry defaults and a max in the schema. The description adds no extra meaning about paging or the default 100-result cap, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description does identify the resource (most recent SEC filings tied to institutional ownership), so the core purpose is recoverable. But it is wrapped in marketing phrasing ('real-time view of major holdings') and never distinguishes itself from close siblings like getLatest8KFilings, getLatestFinancialFilings, or getForm13FFilingDates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. With ~30 filing-related siblings, an agent gets no help deciding whether this or getForm13FFilingDates / getFilingsByFormType is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLatestMergersAcquisitionsRead-onlyIdempotentInspect
Access real-time data on the latest mergers and acquisitions with the FMP Latest Mergers and Acquisitions API. This API provides key information such as the transaction date, company names, and links to detailed filing information for further analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 1000) |
getLatestSenateDisclosuresBRead-onlyIdempotentInspect
Access the latest financial disclosures from U.S. Senate members with the FMP Latest Senate Financial Disclosures API. Track recent trades, asset ownership, and transaction details for enhanced transparency in government financial activities.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered by structured data. The description adds only the loose scope of 'recent trades, asset ownership, and transaction details' and says nothing about how far back 'latest' reaches, how filings are ordered, or whether results are paginated PDF/source records. With annotations doing the heavy lifting, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful; the second ('Track recent trades... for enhanced transparency in government financial activities') is marketing filler that earns little place. Two sentences total is not bloated, but roughly half the text is padding that could be replaced by operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 optional params, no nested objects, no output schema), and the description does sketch the content of returned filings. However, with no output schema an agent still lacks any sense of response shape, record count, or ordering, which leaves a meaningful gap for a listing endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (page, limit), so the schema already documents everything. The description mentions no parameter behavior at all — not the default page size, a maximum limit, or how pagination interacts with a 'latest' feed — so it adds nothing beyond the schema and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb and resource ('Access the latest financial disclosures from U.S. Senate members') and names the underlying FMP endpoint, so an agent knows this is a recent-filings listing call. It never differentiates itself from close siblings such as getLatestHouseDisclosures, getSenateTrades, or getDisclosure, so the agent must infer the distinction from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to select this tool over alternatives, no mention of the House-disclosure or Senate-trades siblings, and no prerequisites or exclusions stated. The phrase 'latest' implies recency but the description never explains how it relates to the more specific Senate trade lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLeveredDCFValuationCRead-onlyIdempotentInspect
Analyze a company’s value with the FMP Levered Discounted Cash Flow (DCF) API, which incorporates the impact of debt. This API provides post-debt company valuation, offering investors a more accurate measure of a company's true worth by accounting for its debt obligations.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. The description adds no further behavioral context — nothing about data freshness, whose DCF model/assumptions are used, units of the output, or whether the server computes the valuation on demand.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and resource, which is good, but the second sentence largely restates the first ('incorporates the impact of debt' vs 'accounting for its debt obligations') in promotional language that does not add operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with no output schema, the description needn't explain return values and it does convey what the tool computes. However, it leaves unclear whether the response is a single valuation figure, a full DCF projection, or assumption inputs, which an agent would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'symbol' parameter, so the schema already does the documentation work. The description mentions a 'company' but adds no syntax, exchange, or ticker-format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (levered DCF valuation) and a clear analytical verb, and the phrase 'post-debt valuation' distinguishes it conceptually from the plain DCF sibling. It never names getDCFValuation or calculateCustomLeveredDCF explicitly, so the differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The only hint is 'accounting for its debt obligations,' which weakly implies use for debt-heavy companies, but the description never routes the agent between this tool, getDCFValuation (unlevered), and calculateCustomLeveredDCF.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getLightChartRead-onlyIdempotentInspect
Access simplified stock chart data using the FMP Basic Stock Chart API. This API provides essential charting information, including date, price, and trading volume, making it ideal for tracking stock performance with minimal data and creating basic price and volume charts.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) |
getMarketCapRead-onlyIdempotentInspect
Retrieve the market capitalization for a specific company on any given date using the FMP Company Market Capitalization API. This API provides essential data to assess the size and value of a company in the stock market, helping users gauge its overall market standing.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getMarketRiskPremiumRead-onlyIdempotentInspect
Access the market risk premium for specific dates with the FMP Market Risk Premium API. Use this key financial metric to assess the additional return expected from investing in the stock market over a risk-free investment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getMostActiveStocksBRead-onlyIdempotentInspect
View the most actively traded stocks using the Top Traded Stocks API. Identify the companies experiencing the highest trading volumes in the market and track where the most trading activity is happening.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and idempotency profile is covered. The description adds only the framing that results represent live market-wide trading volume, with no mention of how many symbols are returned, the observation window (intraday vs. daily), or refresh cadence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the purpose front-loaded, which is good, but the second sentence largely restates the first ('highest trading volumes' vs. 'where the most trading activity is happening') without adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the burden of explaining the result shape, yet it never says how many stocks come back or what data accompanies them. The most consequential gap is the unresolved overlap with the sibling getActivelyTradingList, which the definition never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The declared 100% schema coverage is trivially true for an empty object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: viewing the most actively traded stocks, and clarifies the ranking criterion is trading volume. It does not distinguish itself from the near-identical sibling getActivelyTradingList, nor from getBiggestGainers, so an agent cannot route definitively between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no named alternative. The phrase about identifying high-volume companies hints at the intent but leaves the agent to infer when this beats getActivelyTradingList or the gainers/losers tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMutualFundQuotesCRead-onlyIdempotentInspect
Access real-time quotes for mutual funds with the FMP Mutual Fund Price Quotes API. Track current prices, performance changes, and key data for various mutual funds.
| Name | Required | Description | Default |
|---|---|---|---|
| short | No | Whether to use short format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that data is 'real-time' and mentions performance changes and key data fields, which is modest added context, but it says nothing about whether quotes require a symbol, rate limits, or data freshness delays.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, which is good. The second sentence is largely promotional filler ('Track current prices, performance changes, and key data') that restates the first without adding actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a quote lookup, yet neither the schema nor the description explains how a specific fund is identified — there is no symbol parameter documented, and the description does not address this gap. With no output schema and a vague single parameter, the definition leaves an agent unable to determine how to make a meaningful call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is only one optional boolean parameter ('short'), so the schema carries the burden. The description adds no explanation of what short format means or how it changes the response, leaving baseline credit only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Access real-time quotes for mutual funds') and identifies the underlying API, so the agent knows this returns fund quote data. It falls short of 5 because it never distinguishes itself from the many sibling quote tools (getQuote, getETFQuotes, getCryptoQuotes, getCommodityQuotes) beyond the word 'mutual funds' in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the other quote endpoints, no prerequisites, and no note about what input identifies a fund. The agent must infer everything about selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNasdaqConstituentsCRead-onlyIdempotentInspect
Access comprehensive data for the Nasdaq index with the Nasdaq Index API. Monitor real-time movements and track the historical performance of companies listed on this prominent stock exchange.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. Beyond that the description adds only promotional language -- nothing about what the response contains (a symbol list? company names?), whether it is a single snapshot or time-series, or any rate/refresh characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no padding, but almost all of the wording is vendor marketing rather than operational information. Nothing is front-loaded about what the tool actually returns, so the brevity is not buying clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only place the return value could be characterized, and it does not say that the result is the set of Nasdaq constituents. For a zero-arg, zero-output-schema tool, an agent is left guessing what it will receive and how to use it against the index siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description correctly implies no filtering inputs are needed, though it does not say the whole index is returned in one call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states the actual operation: returning the list of companies that make up the Nasdaq index. Instead it offers marketing copy ("Access comprehensive data for the Nasdaq index... Monitor real-time movements"), which reads like a quote/market-data tool and does not distinguish it from siblings such as getSP500Constituents, getDowJonesConstituents, getHistoricalNasdaqChanges, or getIndexList.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative for the other index constituent tools or the historical-changes tool. The phrase "monitor real-time movements" implies a real-time quote use case the tool does not appear to serve, leaving the agent to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getOwnerEarningsBRead-onlyIdempotentInspect
Retrieve a company's owner earnings with the Owner Earnings API, which provides a more accurate representation of cash available to shareholders by adjusting net income. This metric is crucial for evaluating a company’s profitability from the perspective of investors.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds that the value is derived by adjusting net income, which is useful data context, but it says nothing about period coverage, currency, or whether results are annual/quarterly/TTM.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause is front-loaded and useful, but the second sentence is promotional filler that does not help an agent invoke the tool. Half the text is marketing rather than operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and no output schema, the core is present. However, an agent still cannot tell what time period or statement frequency the returned owner earnings covers, which matters for a financial metric tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema fully documents 'symbol'. The description adds no format guidance (ticker vs exchange-qualified), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieve') plus a well-defined resource ('a company's owner earnings') and explains the metric's construction (net income adjusted). No sibling tool covers owner earnings, so it is distinguishable, though it never names the underlying API endpoint's scope (period, frequency).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers only a vague rationale ('crucial for evaluating a company's profitability from the perspective of investors') rather than when to use this instead of getKeyMetrics, getCashFlowStatement, or getRatios. There are no exclusions, prerequisites, or alternative-routing guidance for an agent choosing among ~200 financial tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPositionsSummaryBRead-onlyIdempotentInspect
The Positions Summary API provides a comprehensive snapshot of institutional holdings for a specific stock symbol. It tracks key metrics like the number of investors holding the stock, changes in the number of shares, total investment value, and ownership percentages over time.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | Year of filing | |
| symbol | Yes | Stock symbol | |
| quarter | Yes | Quarter of filing (1-4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds useful behavioral context that the data is a filing-period snapshot that varies over time and lists the metric families returned, but it omits the fact that results are scoped to a specific year/quarter filing rather than the latest data, and says nothing about response shape or rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool is and followed by the metric list. No filler or marketing padding, though the metric enumeration could be trimmed if it were replaced by clearer scoping and usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully covers the return values by listing the tracked metrics. What is missing is the filing-period semantics of the three required parameters and any routing guidance among the dense set of ownership-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents symbol, year and quarter. The description reinforces that the tool is symbol-scoped and time-varying, but never explains that year and quarter select a specific 13F-style filing period, which is the one piece of parameter meaning the schema's terse labels do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (institutional holdings snapshot for a single stock symbol) and enumerates the metrics returned (investor count, share changes, investment value, ownership percentages). It stops short of distinguishing this from related siblings such as getAcquisitionOwnership, getLatestInstitutionalFilings or getHolderPerformanceSummary, so an agent cannot tell from the text alone which of these ownership tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated prerequisites, and no named alternative. The description never says whether this is a point-in-time filing snapshot versus a time series, nor when an agent should prefer it over the many other institutional-ownership tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPressReleasesCRead-onlyIdempotentInspect
Access official company press releases with the FMP Press Releases API. Get real-time updates on corporate announcements, earnings reports, mergers, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no behavior beyond a marketing restatement: no note on date-range defaults, pagination, or that results are unfiltered across all companies -- which matters for a tool with an optional symbol-less scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, no fluff. The second sentence is somewhat promotional ('and more') but still earns a place by naming content categories.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data-access tool sitting among many near-identical news/press-release siblings, the description omits the single most important fact: whether it returns all press releases or requires a symbol, and how it relates to searchPressReleases. With no output schema, that gap leaves the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each of the four parameters documented in the schema (from_date, to, page, limit with defaults). The description adds nothing about how dates bound the query or how pagination interacts with limit, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it accesses 'official company press releases' via the FMP Press Releases API and lists the kinds of announcements (earnings, mergers). It's a clear verb+resource, but it doesn't distinguish this tool from the sibling searchPressReleases, which likely returns the same resource with filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no exclusion of the sibling searchPressReleases. An agent cannot tell from the description whether this is the unfiltered enumeration and the other the search, or how they differ.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPriceTargetConsensusRead-onlyIdempotentInspect
Access analysts' consensus price targets with the FMP Price Target Consensus API. This API provides high, low, median, and consensus price targets for stocks, offering investors a comprehensive view of market expectations for future stock prices.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getPriceTargetLatestNewsRead-onlyIdempotentInspect
Stay updated with the most recent analyst price target updates for all stock symbols using the FMP Price Target Latest News API. Get access to detailed forecasts, stock prices at the time of the update, analyst insights, and direct links to news sources for deeper analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional page number (default: 0, max: 100) | |
| limit | No | Optional limit on number of results (default: 10, max: 1000) |
getPriceTargetNewsBRead-onlyIdempotentInspect
Stay informed with real-time updates on analysts' price targets for stocks using the FMP Price Target News API. Access the latest forecasts, stock prices at the time of the update, and direct links to trusted news sources for deeper insights.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional page number (default: 0) | |
| limit | No | Optional limit on number of results (default: 10) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and idempotency are covered. The description adds value by saying what the payload contains (analyst forecasts, stock price at update time, source links), which is useful since there is no output schema. It omits pagination behavior and result ordering, which matters for a news feed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the first is promotional filler ('Stay informed with real-time updates...') and the second ends with 'for deeper insights', which conveys nothing actionable. The substantive content (what data is returned) is buried behind marketing phrasing rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only news lookup with full schema coverage and clear annotations, the description covers the return content, which is the main gap given no output schema. It still leaves the agent guessing about result ordering, pagination depth, and how it differs from the sibling getPriceTargetLatestNews, which is a real ambiguity in a large toolset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, page, and limit all documented in the schema (including defaults). The description adds no meaning beyond that — no guidance on typical page/limit use, symbol format, or whether pagination is needed to get older news. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource: analysts' price target news for stocks, including forecasts, price at time of update, and news links. An agent can tell it retrieves price-target-related news articles. However, it never distinguishes itself from the near-identical sibling getPriceTargetLatestNews, so the boundary is unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of required inputs or prerequisites, and no routing to alternatives such as getPriceTargetLatestNews, getStockGradeNews, or getPriceTargetConsensus. The opening 'Stay informed with...' is marketing framing rather than usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPriceTargetSummariesBulkRead-onlyIdempotentInspect
The Price Target Summary Bulk API provides a comprehensive overview of price targets for all listed symbols over multiple timeframes. With this API, users can quickly retrieve price target data, helping investors and analysts compare current prices to projected targets across different periods.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getPriceTargetSummaryRead-onlyIdempotentInspect
Gain insights into analysts' expectations for stock prices with the FMP Price Target Summary API. This API provides access to average price targets from analysts across various timeframes, helping investors assess future stock performance based on expert opinions.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getQuoteARead-onlyIdempotentInspect
Access real-time stock quotes with the FMP Stock Quote API. Get up-to-the-minute prices, changes, and volume data for individual stocks.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds a real behavioral trait beyond them — that quotes are real-time/up-to-the-minute — which matters for caching and freshness decisions. It says nothing about entitlements, rate limits, or whether extended-hours data is included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core capability front-loaded and no filler. There is mild redundancy between 'real-time' and 'up-to-the-minute', which cost a point but not readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, no-output-schema tool, the description covers what it does, the data categories returned, and the freshness characteristic. Only secondary details (delayed vs real-time guarantees per plan, extended-hours inclusion) are absent, which is acceptable at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter with 100% schema description coverage, so the schema already documents it. The description's phrase 'for individual stocks' loosely reinforces that symbol identifies one equity, but adds no format, exchange-suffix, or case conventions beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Access real-time stock quotes') plus the data returned (prices, changes, volume), and 'for individual stocks' signals single-symbol scope versus the batch variants. It stops short of naming siblings like getQuoteShort or getBatchQuotes, so the distinction is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'for individual stocks' implicitly routes the agent away from batch tools and toward single-symbol lookups, which is useful. However, there is no explicit when-to-use/when-not-to-use statement and no mention of the alternative quote endpoints (short quote, batch, exchange quotes) that crowd this namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getQuoteShortBRead-onlyIdempotentInspect
Get quick snapshots of real-time stock quotes with the FMP Stock Quote Short API. Access key stock data like current price, volume, and price changes for instant market insights.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds that this is real-time and mentions key fields like current price, volume, and price changes, but it does not cover auth needs, rate limits, pagination, or return format details beyond those annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two front-loaded sentences with little waste: the first states what the tool returns, and the second lists key data fields. The phrase "instant market insights" is mild marketing filler, but overall it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only quote tool with no output schema, the description gives enough to understand the returned data types. It is still incomplete for selection among the many sibling quote tools because it never explains when the short quote variant should be used instead of the full quote or batch variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single symbol parameter is documented as "Stock symbol." The description adds no syntax, constraints, or meaning beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: getting quick snapshots of real-time stock quotes, and names the FMP Stock Quote Short API. It is clear what the tool does, but it does not distinguish this short quote tool from siblings such as getQuote or getBatchQuotesShort.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Phrases like "quick snapshots" and "instant market insights" imply a lightweight real-time lookup, which gives some usage context. However, it never explicitly says when to choose this over getQuote, getBatchQuotesShort, or other quote tools, and it gives no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRatingsSnapshotRead-onlyIdempotentInspect
Quickly assess the financial health and performance of companies with the FMP Ratings Snapshot API. This API provides a comprehensive snapshot of financial ratings for stock symbols in our database, based on various key financial ratios.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 1) | |
| symbol | Yes | Stock symbol |
getRatiosCRead-onlyIdempotentInspect
Analyze a company's financial performance using the Financial Ratios API. This API provides detailed profitability, liquidity, and efficiency ratios, enabling users to assess a company's operational and financial health across various metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on number of results (default: 100, max: 1000) | |
| period | No | Period (Q1, Q2, Q3, Q4, FY, annual, or quarter) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds only a content summary and says nothing about whether results are latest-period or historical, how periods are ordered, whether pagination applies with the limit parameter, or what the response looks like — a real gap for a data-retrieval tool with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is a reasonable statement of purpose; the second is largely marketing filler ('enabling users to assess a company's operational and financial health') that repeats the first's intent. Nothing is front-loaded about the required symbol argument or the period semantics where such detail would be most useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and three parameters, the description should clarify what the returned ratio set looks like and how period/limit affect it. Instead it stays at the marketing level, leaving an agent unable to predict whether this returns one period or many, or how it differs from the TTM ratio sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: symbol, period, and limit are all documented in the schema, including the enum values and the default/max for limit. The description adds no meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear resource — financial ratios — and enumerates the categories covered (profitability, liquidity, efficiency), so an agent knows what data it returns. It does not, however, distinguish this from close siblings such as getFinancialRatiosTTM, getRatiosTTMBulk, or getKeyMetrics, which is the main ambiguity an agent faces here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no mention of the obvious alternatives (getFinancialRatiosTTM for trailing-twelve-month ratios, getRatiosTTMBulk for multi-symbol fetches). Usage is only loosely implied by the phrase 'assess a company's operational and financial health'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRatiosTTMBulkRead-onlyIdempotentInspect
The Ratios TTM Bulk API offers an efficient way to retrieve trailing twelve months (TTM) financial ratios for stocks. It provides users with detailed insights into a company’s profitability, liquidity, efficiency, leverage, and valuation ratios, all based on the most recent financial report.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getRevenueGeographicSegmentationBRead-onlyIdempotentInspect
Access detailed revenue breakdowns by geographic region with the Revenue Geographic Segments API. Analyze how different regions contribute to a company’s total revenue and identify key markets for growth.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol | |
| structure | No | Response structure |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety behavior is covered. The description adds little beyond purpose: it does not mention data source, freshness, units, or response format, which would be helpful even with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the core purpose front-loaded. Minor redundancy in 'with the Revenue Geographic Segments API' and a somewhat generic second sentence, but no significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify return shape, units, or data source; it only says 'detailed revenue breakdowns by geographic region.' Adequate for a simple read tool but incomplete about response semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents symbol, period, and structure. The description only vaguely implies a company symbol through 'company’s total revenue' and does not explain period or structure effects, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (revenue breakdown by geographic region) and action (access). It implicitly distinguishes from getRevenueProductSegmentation by geography, but does not explicitly name the sibling or scope the data source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers a use case (analyze regional contribution and identify growth markets) but provides no explicit when-to-use versus alternatives, prerequisites, or exclusions. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRevenueProductSegmentationCRead-onlyIdempotentInspect
Access detailed revenue breakdowns by product line with the Revenue Product Segmentation API. Understand which products drive a company's earnings and get insights into the performance of individual product segments.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock symbol | |
| structure | No | Response structure |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no behavioral context beyond the annotations, such as data coverage, currency, rate limits, defaults, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core capability, but the second sentence largely restates the value proposition without adding operational detail. It is not bloated, but one sentence would have conveyed nearly as much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter read-only endpoint with full schema coverage and annotations, the description is minimally sufficient. However, it omits the natural comparison with getRevenueGeographicSegmentation and does not clarify period behavior or data scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the schema, including the period and structure enums. The description does not add meaning about parameter usage, but the baseline is 3 when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource: detailed revenue breakdowns by product line. The phrase 'product line' implicitly distinguishes it from getRevenueGeographicSegmentation, but it never names that sibling or explicitly contrasts the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus getRevenueGeographicSegmentation or any other related financial statement tool. The description only says what data is available, not the conditions or prerequisites for choosing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getRSIRead-onlyIdempotentInspect
Calculate the Relative Strength Index (RSI) for a stock using the FMP RSI API. This tool helps users analyze momentum and overbought/oversold conditions based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
getSecFilingExtractCRead-onlyIdempotentInspect
The Filings Extract API allows users to extract detailed data directly from official SEC filings. This API provides access to key information such as company shares, security details, and filing links, making it easier to analyze corporate disclosures.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | CIK number | |
| year | Yes | Year of filing | |
| quarter | Yes | Quarter of filing (1-4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that the data comes 'directly from official SEC filings' and lists the categories returned, but discloses nothing about coverage limits, latency, or what a miss (unknown CIK/quarter) looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences and reasonably front-loaded, but 'making it easier to analyze corporate disclosures' is marketing filler that does not help an agent decide or invoke. The useful content is compressed into one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries more burden, and while it gestures at returned fields it does not describe the response shape or granularity (one filing vs. all filings in a quarter). Adequate with annotations, but gaps remain for a data-extraction tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cik, year, and quarter are already documented. The description adds no meaning to these parameters — it never mentions them or explains accepted formats, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it extracts data from SEC filings and names the kinds of information returned (shares, security details, filing links), so the resource and rough output are clear. However, it never says the tool is scoped to a single company-quarter extract keyed by CIK/year/quarter, and it does not distinguish itself from siblings like getFilingsByCIK or getLatestFinancialFilings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over the many filing-related siblings (getFilingsByCIK, getFilingsByFormType, getForm13FFilingDates, getDisclosure). No prerequisites, no exclusions, only implied usage from the phrase 'extract detailed data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSectorPerformanceSnapshotRead-onlyIdempotentInspect
Get a snapshot of sector performance using the Market Sector Performance Snapshot API. Analyze how different industries are performing in the market based on average changes across sectors.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) | |
| sector | No | Sector (e.g., Energy) | |
| exchange | No | Exchange (e.g., NASDAQ) |
getSectorPESnapshotARead-onlyIdempotentInspect
Retrieve the price-to-earnings (P/E) ratios for various sectors using the Sector P/E Snapshot API. Compare valuation levels across sectors to better understand market valuations.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date (YYYY-MM-DD) | |
| sector | No | Sector (e.g., Energy) | |
| exchange | No | Exchange (e.g., NASDAQ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world operation. The description adds that the result is a snapshot of sector P/E ratios, but it does not explain freshness, the significance of the required date, or the response shape beyond the basic metric.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, with the core retrieval purpose front-loaded. The use case follows clearly, though the explicit API name is slightly redundant and could be dropped without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only snapshot tool with complete schema descriptions and safety annotations, the definition is largely sufficient. It still lacks guidance on choosing between sector, industry, and historical P/E tools, which matters given the crowded sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the date, sector, and exchange parameters are already documented in the input schema. The description does not add any parameter-specific meaning beyond what the schema provides, which fits the baseline 3 when the schema handles the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve P/E ratios for sectors. It does not differentiate this tool from close siblings such as getIndustryPESnapshot or getHistoricalSectorPE, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an implied use case—comparing valuation levels across sectors—but never says when to choose this over the industry or historical P/E siblings. It provides context, but no explicit routing or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSenateNetWorthCRead-onlyIdempotentInspect
Retrieve the reported net worth records of a member of Congress with the FMP Senate Net Worth API.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| senateID | Yes | Congress member ID as used by FMP (e.g., P000197) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered by structured data. The description adds essentially nothing beyond that: no note on whether results are paginated (despite page/limit params), what a 'reported' record contains, or how historical/aggregate views differ. The word 'reported' hints at disclosure-sourced data but is not developed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler or repetition. The trailing 'with the FMP Senate Net Worth API' is mild branding redundancy that does not guide the agent, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with fully documented parameters and no output schema, the definition covers the essentials. It is still thin on how results are shaped and paginated, and gives no cue for choosing between this and the aggregated sibling, which matters given the crowded Senate/House tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the senateID format example (P000197) and pagination semantics for page/limit, so the schema carries the parameter burden. The description adds no extra meaning such as ID lookup rules or default page size; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Retrieve') and resource ('reported net worth records') and scopes it to 'a member of Congress', which pairs naturally with the required senateID. It does not distinguish itself from the close sibling getSenateNetWorthAggregated, so an agent can't tell the two apart from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance, and no mention of the obvious alternative getSenateNetWorthAggregated (or getSenateProfile/getSenatePositions) that sits alongside it. Usage must be inferred from the name and the required single-member ID parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSenateNetWorthAggregatedCRead-onlyIdempotentInspect
Retrieve aggregated net worth figures of a member of Congress with the FMP Senate Net Worth Aggregated API.
| Name | Required | Description | Default |
|---|---|---|---|
| senateID | Yes | Congress member ID as used by FMP (e.g., P000197) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so the safety profile is covered. The description adds essentially nothing beyond them — it does not explain what the aggregation covers (period, granularity, asset categories) or what happens for members with no filings; naming the FMP endpoint carries no decision value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the resource is stated before the API reference. It is short but that brevity is partly under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a near-identical sibling (getSenateNetWorth), the description should clarify what 'aggregated' returns and how it differs from the unaggregated tool. Neither is addressed, leaving the agent unable to predict the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter and the schema documents it at 100% coverage, including the format example 'P000197'. The description adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieve') and resource ('aggregated net worth figures of a member of Congress'), so the agent knows what it produces. However, it never distinguishes itself from the sibling getSenateNetWorth, and the meaning of 'aggregated' versus the non-aggregated variant is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: no mention of when to pick this over getSenateNetWorth, getSenateTrades, or getSenatePositions, and no prerequisites or exclusions. The agent must infer selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSenatePositionsRead-onlyIdempotentInspect
List the positions held by members of Congress with the FMP Senate Positions API. Filter by member ID, party or position.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit the number of results | |
| party | No | Filter by party (e.g., Republican, Democrat) | |
| position | No | Filter by position (e.g., Senator, Representative) | |
| senateID | No | Filter by congress member ID (e.g., P000197) |
getSenateProfileRead-onlyIdempotentInspect
Look up profiles of members of Congress with the FMP Senate Profiles API. Use it to find a member's ID for the trade and net worth tools.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| active | No | Only active members when true | |
| senateID | No | Filter by congress member ID (e.g., P000197) | |
| latestParty | No | Filter by most recent party | |
| latestPosition | No | Filter by most recent position |
getSenateTradesRead-onlyIdempotentInspect
Monitor the trading activity of US Senators with the FMP Senate Trading Activity API. Access detailed information on trades made by Senators, including trade dates, assets, amounts, and potential conflicts of interest.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getSenateTradesByIdRead-onlyIdempotentInspect
Retrieve the Senate trading history of a single member by ID with the FMP Senate Trades By ID API. Use it after finding a member's ID through the Senate profile tools to see every disclosed trade for that member.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Limit the number of results | |
| senateID | Yes | Congress member ID as used by FMP (e.g., P000197) |
getSenateTradesByNameARead-onlyIdempotentInspect
Search for Senate trading activity by Senator name with the FMP Senate Trades by Name API. Access detailed information on trades made by specific Senators, including trade dates, assets, amounts, and potential conflicts of interest.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Senator name (first or last name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so safety and repeatability are covered. The description adds useful scope about what is returned (trade dates, assets, amounts, conflict-of-interest flags), but says nothing about matching behavior (exact vs partial name), pagination, result limits, or how ambiguous names 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and filter. Minor waste in vendor branding ('with the FMP Senate Trades by Name API') and the promotional 'potential conflicts of interest' phrase, but nothing that obscures the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required string parameter), and with no output schema the description usefully enumerates the returned fields (dates, assets, amounts), which is the main gap it needs to fill. It falls short of 5 only because name-matching semantics and result-set behavior remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as 'Senator name (first or last name)'. The description only restates 'by Senator name' and adds no syntax, casing, or partial-match detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for Senate trading activity') and the scoping filter ('by Senator name'), which implicitly separates it from the unfiltered getSenateTrades and the ID-based getSenateTradesById. It never names those siblings explicitly, so the differentiation is inferable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name-based filter: an agent can guess this is the right tool when it has a Senator's name but not an ID. There is no explicit when-to-use/when-not guidance, no mention of getSenateTradesById or getHouseTradesByName as alternatives, and no prerequisites or coverage caveats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSMABRead-onlyIdempotentInspect
Calculate the Simple Moving Average (SMA) for a stock using the FMP SMA API. This tool helps users analyze trends and identify potential buy or sell signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds only that the computation is delegated to the FMP SMA API; it does not describe the returned series, how periodLength/timeframe shape the output, date-range behavior, or any API limits. With no output schema, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and useful. The second sentence ('helps users analyze trends and identify potential buy or sell signals') is interpretive filler that consumes space without telling an agent how to call the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a five-parameter indicator tool with no output schema, so the description bears responsibility for describing the return (presumably a dated series of SMA values). It says nothing about the response shape or how the required periodLength and timeframe affect it, leaving the agent underinformed despite well-covered annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters, including the timeframe values and date formats. The description adds no parameter-level meaning beyond the schema, which meets the baseline 3 but no more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Calculate the Simple Moving Average (SMA) for a stock.' The indicator name in the description implicitly separates it from siblings like getEMA, getWMA, getDEMA and getTEMA, but the description never explicitly contrasts them, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says the tool supports trend analysis and buy/sell signal identification, which implies a usage context, but gives no explicit when-to-use or when-to-prefer-alternatives guidance (e.g., SMA vs EMA vs RSI, or vs chart tools). Selection must be inferred from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSP500ConstituentsRead-onlyIdempotentInspect
Access detailed data on the S&P 500 index using the S&P 500 Index API. Track the performance and key information of the companies that make up this major stock market index.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getStandardDeviationBRead-onlyIdempotentInspect
Calculate the Standard Deviation for a stock using the FMP Standard Deviation API. This tool helps users analyze volatility and risk associated with historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered by structured data. The description adds only that it hits the FMP Standard Deviation API, which is trivial; it says nothing about whether results are a rolling series or a single value, default date window, units, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no bloat, but the first sentence redundantly restates the tool name twice ('Standard Deviation' and 'FMP Standard Deviation API'). The second sentence is generic interpretive filler rather than front-loaded operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an indicator tool with five parameters and no output schema, the description should say something about the shape of the returned data and how the date range and period length determine it. The schema covers inputs, but the output form and timeframe/period interaction remain undocumented anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (symbol, periodLength, timeframe, from_date, to) is already documented in the schema. The description adds no extra meaning about how periodLength interacts with timeframe or what from/to default to, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource: 'Calculate the Standard Deviation for a stock', which is unambiguous about what the tool does. It fails to distinguish itself from the many sibling indicator tools (getSMA, getEMA, getWMA, getDEMA, getTEMA, getRSI, getADX), so an agent cannot tell from the description alone why to pick this over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies usage ('analyze volatility and risk associated with historical price data'), which gives a soft hint about when this is appropriate. There are no explicit when-to-use/when-not conditions, no prerequisites, and no routing to alternatives such as the moving-average or RSI sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStockGradeLatestNewsRead-onlyIdempotentInspect
Stay informed on the latest stock rating changes with the FMP Grade Latest News API. This API provides the most recent updates on analyst ratings for all stock symbols, including links to the original news sources. Track stock price movements, grading firm actions, and market sentiment shifts in real time, sourced from trusted publishers.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional page number (default: 0, max: 100) | |
| limit | No | Optional limit on number of results (default: 10, max: 1000) |
getStockGradeNewsBRead-onlyIdempotentInspect
Stay informed on the latest analyst grade changes with the FMP Grade News API. This API provides real-time updates on stock rating changes, including the grading company, previous and new grades, and the action taken. Direct links to trusted news sources and stock prices at the time of the update help you stay ahead of market trends and analyst opinions for specific stock symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Optional page number (default: 0) | |
| limit | No | Optional limit on number of results (default: 1, max: 100) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds value by disclosing what the payload contains (grading company, old/new grade, action, external news links, price at time of update), which is real behavioral context beyond the annotations. It says nothing about result ordering, recency window, pagination behavior, or rate limits, leaving those gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded and reasonably sized, but promotional phrasing ('Stay informed', 'stay ahead of market trends and analyst opinions') consumes roughly half the text without informing tool selection. Trimming the marketing sentences would make it sharper.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, which is the main thing an agent needs here. However, for a simple three-parameter lookup tool sitting among many grade-related siblings, it omits the one thing that matters most: how it differs from getStockGradeLatestNews and the other grade tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — symbol, page, and limit are all documented in the schema with defaults and a max. The description adds no meaning beyond that, mentioning only the symbol implicitly. The baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (analyst grade changes / stock rating changes news) and lists the returned fields (grading company, previous and new grades, action taken), so the agent knows what data it yields. It stops short of differentiating from near-identical siblings such as getStockGradeLatestNews, getStockGrades, and getHistoricalStockGrades, so an agent cannot pick between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only scope cue is 'for specific stock symbols', which merely reflects the required symbol parameter. There is no statement of when to prefer this over getStockGradeLatestNews, getStockGrades, or getStockGradeSummary, and no exclusion or prerequisite is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStockGradesBRead-onlyIdempotentInspect
Access the latest stock grades from top analysts and financial institutions with the FMP Grades API. Track grading actions, such as upgrades, downgrades, or maintained ratings, for specific stock symbols, providing valuable insight into how experts evaluate companies over time.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, open-world operation. The description adds useful context about grading actions and analyst sources, but does not specify the recency window for 'latest' or how much history is returned, which matters given the existence of a historical grades sibling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably front-loaded, but it includes promotional filler such as 'providing valuable insight into how experts evaluate companies over time' and the redundant mention of the FMP Grades API. The phrase 'over time' also weakens the 'latest' framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and no output schema, the core purpose is covered. However, it omits the temporal scope of 'latest' and does not differentiate the tool from closely related grades endpoints, leaving meaningful ambiguity for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single required symbol parameter, so the baseline is 3. The description reinforces that the parameter targets a specific stock symbol but adds no format details, examples, or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: accessing the latest stock grades from analysts and institutions, including upgrades, downgrades, and maintained ratings. It is clear what the tool returns, but it does not distinguish itself from siblings such as getHistoricalStockGrades or getStockGradeSummary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied for retrieving analyst grades for a specific stock symbol, but the description gives no explicit when-to-use guidance, no exclusions, and no routing to alternatives like getHistoricalStockGrades or getStockGradeSummary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStockGradeSummaryRead-onlyIdempotentInspect
Quickly access an overall view of analyst ratings with the FMP Grades Summary API. This API provides a consolidated summary of market sentiment for individual stock symbols, including the total number of strong buy, buy, hold, sell, and strong sell ratings. Understand the overall consensus on a stock’s outlook with just a few data points.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getStockNewsRead-onlyIdempotentInspect
Stay informed with the latest stock market news using the FMP Stock News Feed API. Access headlines, snippets, publication URLs, and ticker symbols for the most recent articles from a variety of sources.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| from_date | No | Start date (YYYY-MM-DD) |
getStockPeersRead-onlyIdempotentInspect
Identify and compare companies within the same sector and market capitalization range using the FMP Stock Peer Comparison API. Gain insights into how a company stacks up against its peers on the same exchange.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
getStockPeersBulkARead-onlyIdempotentInspect
The Stock Peers Bulk API allows you to quickly retrieve a comprehensive list of peer companies for all stocks in the database. By accessing this data, you can easily compare a stock’s performance with its closest competitors or similar companies within the same industry or sector.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, openWorld, and idempotent, so the description need not restate safety. It adds useful scope information ('all stocks in the database') but says nothing about response size, pagination, or rate limits—notable for a bulk endpoint that may return a very large payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and scope. The second sentence is somewhat promotional ('easily compare a stock's performance') but still communicates the intended use case without excessive waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter bulk read with annotations covering its safety profile, the description adequately conveys what is returned (peer companies for all stocks) and why. It could be stronger by warning about the size of the full-database result or pointing to getStockPeers for single-symbol queries, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is no parameter semantics for the description to explain. The baseline of 4 applies because no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve a list of peer companies, scoped to 'all stocks in the database,' which distinguishes it from the single-symbol getStockPeers sibling. It does not explicitly name or contrast the non-bulk sibling, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the benefit statement ('compare a stock's performance with its closest competitors'), but there is no explicit when-to-use versus getStockPeers, no exclusions, and no guidance on the practical tradeoff of pulling the entire database at once.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStockPriceChangeBRead-onlyIdempotentInspect
Track stock price fluctuations in real-time with the FMP Stock Price Change API. Monitor percentage and value changes over various time periods, including daily, weekly, monthly, and long-term.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=true, so the safety and caching profile is covered structurally. The description adds the 'real-time' freshness claim, but says nothing about what the changes are measured against (prior close, prior period) or whether the response is a single snapshot. That is useful-but-thin added context against an already-covered annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability, but the second sentence spends its length on marketing phrasing ('with the FMP Stock Price Change API', 'Monitor...') and enumerates time periods that the schema does not expose. Trimming the vendor branding and clarifying the period behavior would make every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, no output schema and full annotation coverage, the description only needs to clarify period semantics and return shape, and it half-does the first while omitting the second. The advertised 'daily, weekly, monthly, and long-term' periods are not selectable through any parameter, which leaves an agent uncertain about what a call will actually return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (symbol) with 100% schema description coverage, so the schema does the documentation work and the baseline of 3 applies. The description adds nothing about accepted symbol formats, exchange suffixes, or whether multiple symbols can be passed, so it does not improve on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource (stock price fluctuations) and what is measured (percentage and value changes over daily, weekly, monthly and long-term periods), so an agent can tell this is a price-change endpoint rather than a raw quote or chart. It does not, however, distinguish itself from close siblings such as getQuote, getLightChart or getSectorPerformanceSnapshot, leaving overlap for the agent to resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of when this beats getQuote or the historical chart tools, and no explanation of how the advertised time periods are selected (there is no period parameter). The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStockRatingsBulkRead-onlyIdempotentInspect
The FMP Rating Bulk API provides users with comprehensive rating data for multiple stocks in a single request. Retrieve key financial ratings and recommendations such as overall ratings, DCF recommendations, and more for multiple companies at once.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
getStockSplitCalendarRead-onlyIdempotentInspect
Stay informed about upcoming stock splits with the FMP Stock Splits Calendar API. This API provides essential data on upcoming stock splits across multiple companies, including the split date and ratio, helping you track changes in share structures before they occur.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| from_date | No | Start date (YYYY-MM-DD) |
getStockSplitsBRead-onlyIdempotentInspect
Access detailed information on stock splits for a specific company using the FMP Stock Split Details API. This API provides essential data, including the split date and the split ratio, helping users understand changes in a company's share structure after a stock split.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 100, max: 1000) | |
| symbol | Yes | Stock symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld behavior, so the description needn't restate safety. It adds useful return context (split date and ratio) but does not disclose ordering, pagination/limit effects, empty-result behavior, or data coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and scope; the return-field sentence earns its place because there is no output schema. However 'using the FMP Stock Split Details API' and 'essential data ... helping users understand' add some marketing/implementation padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param read-only tool with full schema coverage and annotations, the description covers scope and key returned fields. It is incomplete for correct sibling selection because getStockSplitCalendar is not mentioned, and it omits pagination/limit behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both symbol and limit including default and maximum. The description adds only 'specific company' for symbol and says nothing extra about limit, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Access detailed information on stock splits') and a specific scope ('for a specific company'), making the purpose clear. It does not name or distinguish the closely related getStockSplitCalendar sibling, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for a single company's split details but gives no explicit when-to-use guidance versus getStockSplitCalendar, no exclusions, and no guidance on the optional limit. The agent must infer the choice from 'specific company' versus a calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSymbolChangesRead-onlyIdempotentInspect
Stay informed about the latest stock symbol changes with the FMP Stock Symbol Changes API. Track changes due to mergers, acquisitions, stock splits, and name changes to ensure accurate trading and analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 100) | |
| invalid | No | Optional filter for invalid symbols (default: false) |
getTEMACRead-onlyIdempotentInspect
Calculate the Triple Exponential Moving Average (TEMA) for a stock using the FMP TEMA API. This tool helps users analyze trends and identify potential buy or sell signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. Beyond that the description adds essentially nothing: it does not mention the remote FMP API's rate limits, what happens when the date range is too short for the period length, or what the returned series looks like. With annotations present the bar is lower, but there is still no substantive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the actual operation, with no redundant restatement of the tool name. The second sentence leans toward filler but is short enough not to obscure the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only place a caller could learn what comes back, and it says nothing about the shape of the response (a date/indicator value series). The input side is fully covered by the schema, so this is an adequate but incomplete definition for a time-series indicator tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so symbol, from_date, to, timeframe and periodLength are all documented in the schema itself, which sets the baseline at 3. The description contributes no additional meaning, such as the effect of periodLength on smoothing or defaults for the optional date bounds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: calculating the Triple Exponential Moving Average for a stock, and spells out the TEMA acronym. Among siblings like getSMA, getEMA, getDEMA and getWMA, the indicator name alone disambiguates it, though the description never explicitly contrasts itself with those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only contextual hint is the generic claim that it helps 'analyze trends and identify potential buy or sell signals,' which is marketing framing rather than guidance. It never says when to choose TEMA over EMA, DEMA or another indicator, and lists no prerequisites such as needing sufficient lookback history for the triple smoothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTipRanksAnalystSummaryARead-onlyIdempotentInspect
Get an aggregated rollup of every recommendation one analyst has issued over a date window with the FMP Ratings Summary by Analyst API (TipRanks partner data), including their price-target track record. The window defaults to the trailing twelve months.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the date window (YYYY-MM-DD) | |
| expertUID | Yes | TipRanks analyst identifier (expertUID), as returned by lookupTipRanksAnalyst | |
| from_date | No | Start of the date window (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety behavior is covered. The description adds useful context about aggregation and the default date window, but it does not describe response shape, pagination, or any limitations of the TipRanks partner data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no wasted wording, and it front-loads the core purpose before mentioning the default window. The API provenance is compactly stated without distracting from the tool behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only summary tool with no output schema, the description gives enough context to understand what is returned: aggregated recommendations plus price-target track record over a defaulted window. The main remaining gap is sibling differentiation in a very crowded TipRanks tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented, including that expertUID comes from lookupTipRanksAnalyst. The description adds meaningful semantics beyond the schema by stating that the date window defaults to the trailing twelve months.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: an aggregated rollup of every recommendation issued by one analyst over a date window, including price-target track record. It is clear what the tool returns, but it does not explicitly distinguish itself from closely related siblings such as getTipRanksPointInTimeRatingsByAnalyst or getTipRanksFirmSummary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: fetch an analyst-level summary when an expertUID is known, with a default trailing-twelve-month window. However, there is no explicit when-to-use guidance versus sibling tools, nor any exclusion or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTipRanksFirmSummaryARead-onlyIdempotentInspect
Get an aggregated rollup of all ratings issued by analysts at one firm over a date window with the FMP Ratings Summary by Firm API (TipRanks partner data). The firm name must match exactly (e.g. Morgan Stanley). The window defaults to the trailing twelve months.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the date window (YYYY-MM-DD) | |
| firmName | Yes | Firm name, exactly as published (e.g. Morgan Stanley) | |
| from_date | No | Start of the date window (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and open-world behavior, and the description usefully adds two things beyond them: the firm name must match exactly as published (a real failure mode), and the date window defaults to the trailing twelve months. It does not describe the shape of the rollup or how ratings are bucketed, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the purpose front-loaded and the constraints following in priority order. Nothing is padding, though the repeated 'Morgan Stanley' example duplicates the schema and could be dropped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, three-parameter aggregate tool with no output schema, the description covers what is produced, the scoping rules, and the default window. The only material gap is that it does not hint at what the rollup contains (rating distribution, counts, period), which would help an agent decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning the schema lacks: the default behavior when the window is omitted (trailing twelve months) and the exact-match requirement on firmName. Its example restates the schema's own example, which is minor duplication.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: an aggregated rollup of all ratings issued by analysts at one firm, scoped to a date window. The phrase 'by Firm' distinguishes it from the analyst- and symbol-level TipRanks siblings in spirit, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the firm-level aggregate versus per-analyst or per-symbol alternatives, but no sibling tool is named and no when-not guidance is given. The exact-match requirement on the firm name is the one concrete usage constraint provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTipRanksPointInTimeRatingsByAnalystRead-onlyIdempotentInspect
Get a point-in-time summary of a single analyst's ratings with the FMP Point in time Ratings by Analyst API (TipRanks partner data). Returns one row per symbol the analyst covers, with their latest active call, price target and track-record statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | As-of date (YYYY-MM-DD); defaults to the latest snapshot | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results (max 5000) | |
| expertUID | Yes | TipRanks analyst identifier (expertUID), as returned by lookupTipRanksAnalyst | |
| nonadjusted | No | Return price targets in their native currency instead of converting them |
getTipRanksPointInTimeRatingsBySymbolARead-onlyIdempotentInspect
Get a point-in-time summary of a symbol's analyst ratings with the FMP Point in time Ratings by Symbol API (TipRanks partner data). Collapses the rating history up to the chosen date to each analyst's latest active call, with analyst rank, success rate and average return.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | As-of date (YYYY-MM-DD); defaults to the latest snapshot | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results (max 5000) | |
| symbol | Yes | Stock symbol | |
| nonadjusted | No | Return price targets in their native currency instead of converting them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, open-world operation. Beyond that, the description adds meaningful behavioral context: the output is an aggregation of each analyst's latest active call and includes rank, success rate, and average return. It does not cover pagination or rate-limit behavior, but the schema handles pagination parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two focused sentences and front-loads the core operation. Every phrase contributes useful context about the point-in-time scope and the aggregation behavior, with no redundant restatement of the name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description usefully explains what the result represents and names key returned fields: analyst rank, success rate, and average return. It leaves pagination and default-date behavior to the schema, which is reasonable, but could say a bit more about the per-analyst row structure of the summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all five parameters. The description only broadly references the chosen date and the symbol, without adding format or constraint details beyond what the schema provides. The baseline score of 3 is appropriate when the schema does the parameter-level work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: getting a point-in-time summary of a symbol's analyst ratings. It also distinguishes the scope from the sibling by-analyst tool by stating the data is per symbol. The added explanation of collapsing rating history to each analyst's latest active call makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by framing the tool as a point-in-time summary with history collapsed up to the chosen date. It implies use for as-of snapshots rather than full historical ratings, but it does not explicitly name when to prefer or avoid sibling tools such as getTipRanksPointInTimeRatingsByAnalyst.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTipRanksSymbolSummaryRead-onlyIdempotentInspect
Get an aggregated rollup of all TipRanks ratings on one stock over a date window with the FMP Ratings Summary by Symbol API (partner data). Includes buy/hold/sell and analyst-action breakdowns and price-target accuracy. The window defaults to the trailing twelve months.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the date window (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start of the date window (YYYY-MM-DD) |
getTreasuryRatesBRead-onlyIdempotentInspect
Access real-time and historical Treasury rates for all maturities with the FMP Treasury Rates API. Track key benchmarks for interest rates across the economy.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date (YYYY-MM-DD) | |
| from_date | No | Optional start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description's useful additions are that it returns both real-time and historical data across all maturities, but it says nothing about default date behavior when 'from_date'/'to' are omitted, rate limits, or freshness of 'real-time' data — meaningful gaps for a time-series endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and data scope. The second sentence is pure promotional filler that conveys no callable information, so the text is not fully earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, fully read-only tool with two optional date params and no output schema, the definition covers the essentials of what the tool returns conceptually. It is missing the default-date behavior and a hint at the response shape (maturity buckets, date series), which an agent would need to call it confidently without arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are optional with format hints (YYYY-MM-DD), so schema handles the mechanics. The description adds no meaning beyond that — it never explains what happens with no dates, whether a range is inclusive of 'to', or what 'maturities' the response covers; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('Treasury rates') with scope qualifiers ('real-time and historical', 'all maturities'), which is enough for an agent to distinguish it from siblings like getEconomicIndicators or getIndexQuotes. It stops short of explicitly naming a sibling, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the vague marketing line 'Track key benchmarks for interest rates across the economy', which is not a when-to-use rule. There is no mention of when to prefer this over getEconomicIndicators, getMarketRiskPremium, or index chart tools, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUnadjustedChartBRead-onlyIdempotentInspect
Access stock price and volume data without adjustments for stock splits with the FMP Unadjusted Stock Price Chart API. Get accurate insights into stock performance, including open, high, low, and close prices, along with trading volume, without split-related changes.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and openWorld, so safety is covered. The description adds the meaningful behavioral trait that values are unadjusted for splits and lists the returned fields (open, high, low, close, volume), but says nothing about date-range defaults, interval/granularity, or row limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core point is front-loaded, but the text is padded with marketing phrasing ('Get accurate insights into stock performance') and the split-adjustment caveat is repeated twice ('without adjustments for stock splits' and 'without split-related changes'), plus vendor branding that adds no decision value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description lists the returned fields but not the response shape, ordering, pagination or time granularity — all important for a chart endpoint. It is adequate for calling with a symbol but leaves gaps about what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with symbol, from_date and to all documented in the schema, so the baseline of 3 applies. The description adds no date-format, default-range or required-symbol clarification beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Access stock price and volume data') and pins down the key differentiator: data is not adjusted for stock splits. That distinguishes it in spirit from chart siblings like getFullChart and getDividendAdjustedChart, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'unadjusted' framing implies when to use it (raw historical prices as traded), but there is no explicit when-to-use or when-not-to-use guidance and no alternative tool is named. An agent must infer the choice against getLightChart, getFullChart and getDividendAdjustedChart on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getUpgradesDowngradesConsensusBulkBRead-onlyIdempotentInspect
The Upgrades Downgrades Consensus Bulk API provides a comprehensive view of analyst ratings across all symbols. Retrieve bulk data for analyst upgrades, downgrades, and consensus recommendations to gain insights into the market's outlook on individual stocks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. Beyond that the description adds almost nothing behavioral: no indication of payload size for an all-symbols response, no rate-limit or quota guidance, no update frequency, and no note on whether results are paginated or complete in one call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource, which is good, but the opening restates the tool name and the closing ('gain insights into the market's outlook on individual stocks') is marketing filler that carries no operational information. It could be one tighter sentence without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameters, so the description is the only place an agent could learn what a bulk response contains — yet it does not say whether results are one record per symbol, a consensus breakdown, or timestamped changes. Annotations cover safety and there is nothing to misconfigure, so the gap is context, not correctness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema-based baseline of 4 applies; there is nothing to document. The description is consistent with a parameterless call and correctly frames the operation as retrieving all data rather than filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (analyst upgrades, downgrades, and consensus recommendations) and a specific delivery mode (bulk, across all symbols), so the agent knows this returns market-wide ratings data rather than a per-symbol lookup. It does not name or distinguish itself from the many ratings siblings (getStockRatingsBulk, getHistoricalStockGrades, getRatingsSnapshot, getStockGradeSummary), leaving differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'across all symbols' and 'bulk' implies this is the market-wide alternative to per-symbol grade/rating tools, but the description never states when to prefer it or which sibling suffices for a single symbol. No prerequisites, no exclusions, no mention of what a bulk call costs in volume.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWilliamsARead-onlyIdempotentInspect
Calculate the Williams %R for a stock using the FMP Williams %R API. This tool helps users analyze overbought/oversold conditions and potential reversal signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that the calculation uses historical price data and the FMP API, but it does not disclose return format, data freshness, or rate-limit behavior beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core action, and contains no wasted wording. The second sentence adds analytical purpose without duplicating the name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a technical-indicator tool with fully documented required parameters and read-only annotations, the description is sufficient to invoke it. However, with no output schema, it does not explain what the Williams %R response contains or how to interpret returned values, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented in the schema. The description does not add formatting or semantic detail for symbol, periodLength, timeframe, from_date, or to, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Calculate the Williams %R for a stock." It clearly identifies the indicator and data source, though it does not explicitly contrast with sibling indicator tools such as getRSI or getSMA.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage context by mentioning overbought/oversold analysis and reversal signals, but it does not state when to use this tool versus alternatives or any exclusions. The guidance is useful but not operational.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getWMARead-onlyIdempotentInspect
Calculate the Weighted Moving Average (WMA) for a stock using the FMP WMA API. This tool helps users analyze trends and identify potential buy or sell signals based on historical price data.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| symbol | Yes | Stock symbol | |
| from_date | No | Start date (YYYY-MM-DD) | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) | |
| periodLength | Yes | Period length for the indicator |
listCommoditiesCRead-onlyIdempotentInspect
Access an extensive list of tracked commodities across various sectors, including energy, metals, and agricultural products. The FMP Commodities List API provides essential data on tradable commodities, giving investors the ability to explore market options in real-time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so safety behavior is covered structurally. The description adds no real behavioral context, and 'explore market options in real-time' misleadingly implies live market data for what is a static list endpoint, while saying nothing about caching, update frequency, or result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second is pure marketing filler ('essential data', 'giving investors the ability to explore market options') that consumes half the text without adding actionable meaning. The resource is front-loaded, which is the only structural strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only source of information about what comes back, yet it never says whether results include symbol, name, sector, exchange, or availability status. For a zero-arg reference-listing tool, that returned-shape detail is the single most important thing to disclose and it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is an empty object, so there are no parameter semantics to explain; the baseline of 4 applies. The description correctly implies no filtering inputs are required, though it does not explicitly confirm the tool is argument-free.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause states a recognizable verb and resource ('list of tracked commodities'), so an agent can tell it is a list-endpoint. However, the second sentence is promotional copy from FMP's marketing page rather than a functional statement, and nothing distinguishes it from siblings like getCommodityQuotes or getCOTList that also deal with commodities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given: it never says this returns a static reference roster of symbols versus live pricing, nor points to getCommodityQuotes for actual quotes. The agent must infer the distinction from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookupTipRanksAnalystRead-onlyIdempotentInspect
Look up a TipRanks analyst by name with the FMP Analyst Directory Lookup API (partner data). Returns the expertUID used by the other TipRanks tools, the analyst's firm, star rating and performance metrics. The name must be passed exactly as published; there is no fuzzy matching.
| Name | Required | Description | Default |
|---|---|---|---|
| analystName | Yes | Analyst name, exactly as published |
searchCIKCRead-onlyIdempotentInspect
Easily retrieve the Central Index Key (CIK) for publicly traded companies with the FMP CIK API. Access unique identifiers needed for SEC filings and regulatory documents for a streamlined compliance and financial analysis process.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | The CIK number to search for | |
| limit | No | Optional limit on number of results (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no statement of what is returned, how the 'limit' interacts with matching, or whether the search is exact or partial. The remaining text is promotional rather than behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, but both are vendor marketing ('Easily retrieve…', 'with the FMP CIK API', 'streamlined compliance') rather than operational detail. It is not front-loaded with the actionable fact — that the caller supplies a CIK number.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool this could be adequate, but the description leaves the central ambiguity unresolved: whether the input is a CIK or a company identifier. With no output schema to lean on, an agent has no idea what the response looks like or how many records 'limit' governs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'cik' and 'limit' are already documented, which sets the baseline at 3. The description adds no extra meaning and arguably points the wrong way by implying a company-name lookup rather than a CIK value input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb ('retrieve') and a resource ('Central Index Key (CIK)'), so the general domain is clear. However, it frames the tool as looking up a CIK *for* a company, while the required parameter is itself a 'cik' — the actual operation is a CIK-based search. It also gives no hint of how this differs from close siblings like searchCompaniesByCIK, getCIKList, or getCompanyProfileByCIK.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The only usage framing is marketing copy about 'a streamlined compliance and financial analysis process', which does not help an agent choose this tool over the many CIK-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCompaniesByCIKCRead-onlyIdempotentInspect
Easily find company information using a CIK (Central Index Key) with the FMP SEC Filings Company Search By CIK API. Access essential company details and filings linked to a specific CIK number.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | Yes | Central Index Key (CIK) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true, so the safety profile is covered. The description adds nothing beyond that: no indication of what fields are returned, whether filings are paged, or any coverage limits of the CIK lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second largely restates the first ("company details and filings linked to a specific CIK"). The marketing phrasing "Easily find" and the vendor API name consume space without adding actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A single-parameter read tool is simple, but with no output schema the description is the only place to explain what the response contains, and it stays at the level of "essential company details and filings." Adequate to call, not adequate to predict the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter is fully documented in the schema (100% coverage), so the baseline is 3. The description only expands the acronym to "Central Index Key" and adds no format or type guidance (e.g., zero-padded string vs. integer) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb ("find") and a resource ("company information") keyed by a CIK, and repeats the API's marketing name. However, what actually comes back is vague ("essential company details and filings"), and it never distinguishes this tool from close siblings such as searchCIK, getCompanyProfileByCIK, or getFilingsByCIK.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus the many sibling lookups (searchCIK, searchCompaniesByName, searchCompaniesBySymbol, getCompanySECProfile). The agent must infer the selection rule entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCompaniesByNameBRead-onlyIdempotentInspect
Search for SEC filings by company or entity name using the FMP SEC Filings By Name API. Quickly retrieve official filings for any organization based on its name.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Company name or partial name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds that this retrieves official SEC filings via a named API, but it does not disclose matching behavior, result limits, pagination, or response shape beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the main action. The second sentence is somewhat redundant with the first and includes mild marketing language ('Quickly retrieve'), but the structure remains clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter search tool with no output schema, the description covers the basic purpose and data domain. However, it leaves open what exactly is returned and how name matching works, which matters for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single parameter is already documented as a company name or partial name. The description adds synonyms such as 'entity' and 'organization', but no additional matching semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: searching SEC filings by company or entity name. It is clear enough to distinguish name-based filing search from symbol- or CIK-based siblings, although it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'based on its name' and the single company-name parameter, but the description gives no explicit when-to-use guidance, prerequisites, or exclusions versus searchCompaniesBySymbol or searchCompaniesByCIK.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCompaniesBySymbolRead-onlyIdempotentInspect
Find company information and regulatory filings using a stock symbol with the FMP SEC Filings Company Search By Symbol API. Quickly access essential company details based on stock ticker symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock symbol |
searchCrowdfundingCampaignsBRead-onlyIdempotentInspect
Search for crowdfunding campaigns by company name, campaign name, or platform with the FMP Crowdfunding Campaign Search API. Access detailed information to track and analyze crowdfunding activities.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company name, campaign name, or platform to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and open-world behavior. The description adds no further behavioral context, such as pagination limits, result ordering, authentication requirements, or what 'detailed information' actually includes. The phrase 'Access detailed information to track and analyze crowdfunding activities' is too generic to be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two sentences, but the second sentence is generic filler ('Access detailed information to track and analyze crowdfunding activities') and the first includes a redundant vendor API name. The core purpose is front-loaded, but the text could be tightened significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter search tool with full schema coverage and clear annotations, the description is adequate but minimal. It does not explain what type of records or fields are returned, which would help an agent understand the output 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is fully documented in the schema itself. The description repeats the same fields (company name, campaign name, platform) without adding new meaning, syntax, or examples, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('crowdfunding campaigns'), and lists the searchable dimensions (company name, campaign name, platform). It does not explicitly differentiate itself from sibling tools like getLatestCrowdfundingCampaigns or getCrowdfundingCampaignsByCIK, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when searching by a specific company name, campaign name, or platform, but offers no explicit guidance on when to choose this tool over alternatives such as getLatestCrowdfundingCampaigns or getCrowdfundingCampaignsByCIK. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCryptoNewsBRead-onlyIdempotentInspect
Search for cryptocurrency news using the FMP Search Crypto News API. Retrieve news related to specific coins or tokens by entering their name or symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| symbols | Yes | Comma-separated list of cryptocurrency symbols | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and idempotency are covered structurally. The description adds only that results are tied to a supplied coin name/symbol; it says nothing about pagination defaults, result caps, date-range filtering behavior, or that results come from an external live news source beyond the openWorld annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action, with no filler. The second sentence is largely a restatement of the first and could be merged, but nothing is wasted or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter read-only search tool with no output schema, the description covers the essential purpose but omits the date-range and pagination dimensions that materially shape results. It also leaves the name-vs-symbol ambiguity unresolved, so an agent must read the schema to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the five parameters (symbols, from_date, to, page, limit) are already fully documented in the schema, establishing a baseline of 3. The description mentions only the symbol input and even loosely says 'name or symbol' while the schema requires a comma-separated symbol list, adding no real meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search for cryptocurrency news') and names the underlying FMP endpoint, so the intent is unambiguous. It does not distinguish itself from the closely related sibling getCryptoNews, which an agent would have to disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Retrieve news related to specific coins or tokens by entering their name or symbol' suggests symbol-targeted news retrieval. There is no explicit statement of when to choose this over getCryptoNews or searchStockNews/searchForexNews, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchCUSIPARead-onlyIdempotentInspect
Easily search and retrieve financial securities information by CUSIP number using the FMP CUSIP API. Find key details such as company name, stock symbol, and market capitalization associated with the CUSIP.
| Name | Required | Description | Default |
|---|---|---|---|
| cusip | Yes | The CUSIP number to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds that it uses the FMP CUSIP API and returns company name, stock symbol, and market capitalization, but it does not discuss error behavior, rate limits, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the main action and resource. The word 'Easily' is mild marketing fluff, but overall there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup with annotations covering safety, the description is largely complete. It identifies the input, the API used, and examples of returned details, though it does not enumerate the full response or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single parameter is already documented as the CUSIP number to search for. The description reinforces that the lookup is keyed by CUSIP but adds no format, validation, or syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: search and retrieve financial securities information by CUSIP number. It also names the key returned details and implicitly distinguishes this from sibling lookup tools such as searchISIN and searchSymbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the requirement to have a CUSIP number, but the description does not explicitly say when to choose this tool over sibling search tools or note any exclusions. It provides clear context without alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchEquityOfferingsBRead-onlyIdempotentInspect
Easily search for equity offerings by company name or stock symbol with the FMP Equity Offering Search API. Access detailed information about recent share issuances to stay informed on company fundraising activities.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company name or stock symbol to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety profile is covered. The description only adds that results cover 'recent share issuances' — modest extra context, with no detail on result size, ordering, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only two sentences, but they carry marketing filler ('Easily', 'stay informed on company fundraising activities') that does not help invocation. The operative content could be tightened to a single line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with full schema coverage and clear annotations, the description covers purpose and rough return content ('recent share issuances'). Little more is needed, though it could note result ordering or whether the search is fuzzy.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'name' parameter is fully documented in the schema. The description restates that name-or-symbol input is accepted but adds no extra semantics such as partial matching or ticker format. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (equity offerings) plus the search keys (company name or stock symbol). It is distinguishable from getLatestEquityOfferings and getEquityOfferingsByCIK by the free-text search, though it doesn't name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage via 'search by company name or stock symbol,' but gives no explicit when-to-use vs getLatestEquityOfferings or getEquityOfferingsByCIK, and no conditions or exclusions. The agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchExchangeVariantsRead-onlyIdempotentInspect
Search across multiple public exchanges to find where a given stock symbol is listed using the FMP Exchange Variants API. This allows users to quickly identify all the exchanges where a security is actively traded.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | The stock symbol to search for exchange variants |
searchForexNewsARead-onlyIdempotentInspect
Search for foreign exchange news using the FMP Search Forex News API. Find targeted news on specific currency pairs by entering their symbols for focused updates.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| symbols | Yes | Comma-separated list of forex pairs | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds only that results are symbol-targeted news; it says nothing about pagination depth, default 20/max 250 limits, or freshness/ordering of results, which are the traits an agent would actually want beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the actionable part (symbol-scoped targeted news) up front. The opening clause 'using the FMP Search Forex News API' is redundant with the tool name and earns little, but there is no bloat beyond that.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, read-only news search with full schema coverage and no output schema, the definition covers what it returns conceptually (targeted forex news per pair) and the schema handles dates and paging. The remaining gap is sibling differentiation, not missing call mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (symbols, from_date, to_date, page, limit) are documented in the schema including comma-separated symbol format and the limit default/max. The description restates only the symbols parameter at a high level, adding no example pair format (e.g. EURUSD) or date-window guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
State a clear verb+resource: search forex news, targeted by currency pair symbols. It does not, however, distinguish itself from the sibling getForexNews (latest forex news) or searchStockNews/searchCryptoNews, leaving the agent to infer the difference between 'search by symbol' and 'get latest'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Find targeted news on specific currency pairs by entering their symbols' implies the use case (symbol-scoped news lookups), but it never states when to choose this over getForexNews or the other search* news siblings, and gives no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchFundDisclosuresBRead-onlyIdempotentInspect
Easily search for mutual fund and ETF disclosures by name using the Mutual Fund & ETF Disclosure Name Search API. This API allows you to find specific reports and filings based on the fund or ETF name, providing essential details like CIK number, entity information, and reporting file number.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the holder to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds useful output context (CIK, entity information, reporting file number) but says nothing about matching semantics — exact vs partial name match, case sensitivity, or what happens when the name is ambiguous or returns multiple funds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded correctly, but the second is largely restatement plus filler ('This API allows you to find specific reports and filings'), and 'Easily' is promotional noise. Tightening to one sentence naming input and outputs would lose nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only search with no output schema, the description covers the input and sketches the return fields, which is adequate. Missing are match behavior and result-set size/ambiguity handling — the main things an agent needs to call a name-search correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema labels 'name' ambiguously as 'Name of the holder to search for'; the description corrects this by specifying it is the fund or ETF name. That resolves a real ambiguity the schema leaves open, which is more than baseline credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: name-based search over mutual fund and ETF disclosures, with the returned fields (CIK, entity info, file number) named. It stops short of distinguishing itself from close siblings like getFundDisclosure, getFundDisclosureDates, or getESGDisclosures, so an agent cannot tell from the description alone why name-search is preferred over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'search ... by name' implies the name-search route, but there is no explicit when-to-use statement, no exclusion, and no named alternative such as getFundDisclosure for identifier-based lookup. The agent must infer routing from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchIndustryClassificationBRead-onlyIdempotentInspect
Search and retrieve industry classification details for companies, including SIC codes, industry titles, and business information, with the FMP Industry Classification Search API.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | Central Index Key (CIK) | |
| symbol | No | Stock symbol | |
| sicCode | No | SIC code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety and idempotency profile is covered. The description adds a little value by naming the payload contents (SIC codes, titles, business information), but says nothing about how all-optional parameters combine, whether an empty filter returns everything, or result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and the returned fields enumerated. The trailing 'with the FMP Industry Classification Search API' is filler that adds no decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does carry some burden for describing returns, and it partially discharges that by naming SIC codes and industry titles. However, for a tool with three optional filters and no required parameters, it omits the crucial detail of what happens when no filter is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cik, symbol, and sicCode are already documented with their meanings; baseline 3 applies. The description's mention of SIC codes and industry titles loosely maps to sicCode but adds no matching behavior, combination rules, or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('search and retrieve') and resource ('industry classification details for companies'), and enumerates the returned content (SIC codes, industry titles, business information). It does not distinguish itself from close siblings such as getIndustryClassificationList, getAllIndustryClassification, or getAvailableIndustries, so an agent cannot rule those out from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites, and no mention of the alternative classification tools in the sibling set. The agent must infer that this is the lookup-by-company variant rather than the list-all variant from the name and the 'for companies' phrase alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchInsiderTradesRead-onlyIdempotentInspect
Search insider trading activity by company or symbol using the Search Insider Trades API. Find specific trades made by corporate insiders, including executives and directors.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 100, max: 100) | |
| symbol | No | Stock symbol | |
| companyCik | No | Company CIK number | |
| reportingCik | No | Reporting CIK number | |
| transactionType | No | Transaction type (e.g., S-Sale) |
searchInsiderTradesByReportingNameBRead-onlyIdempotentInspect
Search for insider trading activity by reporting name using the Search Insider Trades by Reporting Name API. Track trading activities of specific individuals or groups involved in corporate insider transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Reporting person's name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond the annotations: no indication of match semantics (exact vs partial name), pagination, result caps, or whether historical depth is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose. The 'using the Search Insider Trades by Reporting Name API' phrase is filler that restates the tool name and could be dropped without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with full schema coverage and no output schema, the definition is minimally sufficient, but it leaves the key practical question — whether the name is an exact match or a partial/fuzzy search — unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required parameter, so the baseline is 3. The description reinforces that the parameter is a reporting person's name but does not clarify matching behavior or accepted formats beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Search') with a specific resource ('insider trading activity') and a specific access path ('by reporting name'), which lets an agent distinguish it from symbol-based insider siblings. The second sentence and the 'using the ... API' clause are largely restatements rather than added precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Track trading activities of specific individuals or groups involved in corporate insider transactions' implies the use case, but there is no explicit statement of when to prefer this over searchInsiderTrades, getLatestInsiderTrading, or getInsiderTradeStatistics. The agent must infer the alternative from naming alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchISINARead-onlyIdempotentInspect
Easily search and retrieve the International Securities Identification Number (ISIN) for financial securities using the FMP ISIN API. Find key details such as company name, stock symbol, and market capitalization associated with the ISIN.
| Name | Required | Description | Default |
|---|---|---|---|
| isin | Yes | The ISIN number to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety and repeatability profile is covered structurally. The description adds that results carry company name, symbol, and market cap, but says nothing about behavior when an ISIN is unknown, whether multiple matches can occur, or any rate/credit limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose first, returns second, with no repetition. Minor waste in filler like 'Easily' and 'using the FMP ISIN API', which do not help an agent decide or invoke.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with no output schema, the description gives enough: the lookup key, the domain (financial securities), and the main fields returned. Only edge-case behavior (no match, multiple matches) is missing, which is a small gap given the annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'isin' parameter, so the schema already defines it; baseline 3 applies. The description adds no format detail (e.g., 12-character alphanumeric structure, case sensitivity) or examples beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (look up the ISIN record for a security) and enumerates returned fields (company name, stock symbol, market cap). The wording 'search and retrieve the ISIN' is slightly backwards since the ISIN is the input, not the output, and it does not distinguish itself from siblings like searchCUSIP or searchSymbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'for financial securities' and the ISIN parameter, so an agent can infer this is the identifier-based lookup path. However, there is no explicit when-to-use guidance and no mention of when to prefer searchCUSIP, searchSymbol, or searchName instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchMergersAcquisitionsBRead-onlyIdempotentInspect
Search for specific mergers and acquisitions data with the FMP Search Mergers and Acquisitions API. Retrieve detailed information on M&A activity, including acquiring and targeted companies, transaction dates, and links to official SEC filings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Company name to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds value by disclosing what the results contain (acquirer/target, transaction date, SEC filing links), which matters because there is no output schema. However, it says nothing about result limits, pagination, matching behavior, or what happens when the company name yields no match, so the added context is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the payload. The only waste is the vendor boilerplate 'with the FMP Search Mergers and Acquisitions API', which restates the name and could be dropped without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only search with full schema coverage, the description covers purpose and result contents adequately. But it omits both critical operational context (result caps, no-match behavior) and the competitive context (its distinction from getLatestMergersAcquisitions), which is the main thing an agent needs to pick correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies the search is keyed on company name, but adds no matching semantics beyond that. Schema coverage is 100% for the single `name` parameter, so the baseline of 3 applies: the description neither explains whether matching is exact or fuzzy, nor why a name is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ("Search") with a specific resource ("mergers and acquisitions data") and enumerates the returned fields: acquiring and targeted companies, transaction dates, SEC filing links. That is clear enough to act on, but it never names the sibling getLatestMergersAcquisitions, so the agent must work out on its own that this tool is the targeted/by-company variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Search for specific" implies a company-targeted lookup rather than a recent-activity feed, but the description never states when to use this tool instead of getLatestMergersAcquisitions and gives no prerequisites. Usage is therefore only implied and must be inferred from the single required `name` parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchNameARead-onlyIdempotentInspect
Search for ticker symbols, company names, and exchange details for equity securities and ETFs listed on various exchanges with the FMP Name Search API. This endpoint is useful for retrieving ticker symbols when you know the full or partial company or asset name but not the symbol identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 50) | |
| query | Yes | The search query to find company names | |
| exchange | No | Optional exchange filter (e.g., NASDAQ, NYSE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and side-effect behavior are covered. The description adds real context that it covers equities and ETFs across various exchanges and returns symbol, name and exchange details, but it says nothing about result volume, pagination or truncation behavior for the search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned, then the use case. The trailing 'with the FMP Name Search API' is vendor boilerplate that adds no decision value, but the rest is efficient and free of padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only lookup with a fully annotated schema and no output schema, the description covers purpose, use case and returned fields (symbols, names, exchange details), which is what an agent needs to call it. It only lacks sibling routing and result-limit guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query, limit and exchange are already documented, which sets the baseline at 3. The description only adds that queries may be full or partial names, a modest clarification of the query parameter beyond the schema's 'the search query to find company names'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search for ticker symbols, company names and exchange details for equities and ETFs. It is clear what it returns, but among very close siblings (searchSymbol, searchCompaniesByName, searchCIK, searchCUSIP, searchISIN) it does not explicitly say what makes this one different beyond 'know the name but not the symbol'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a usable trigger: use it when you know the full or partial company or asset name but not the symbol identifier. That implies the usage context, but it never names an alternative (e.g. searchSymbol or searchCompaniesByName) or states when this tool would be the wrong choice, leaving the agent to infer sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchPressReleasesBRead-onlyIdempotentInspect
Search for company press releases with the FMP Search Press Releases API. Find specific corporate announcements and updates by entering a stock symbol or company name.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| symbols | Yes | Comma-separated list of stock symbols | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the search-by-symbol framing but omits behavior an agent would want: pagination defaults, the 250-result cap, the date-range scoping, and whether coverage spans all history or recent filings only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource. The second sentence partially repeats the first ('find ... announcements' vs 'search ... press releases') and the vendor API name is low-value, but nothing is verbose enough to hurt comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of telling the agent what comes back, and it does not — no mention of headline, publish date, text or source URL. It also omits the multi-symbol comma-separated behavior and date filtering, leaving an agent to infer the shape of results from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the from_date, to, page and limit parameters are already documented in the schema and the baseline of 3 applies. The description adds nothing about date-range combination or pagination, and stating 'company name' as an input is misleading since the symbols parameter accepts comma-separated tickers only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for company press releases') and names the underlying API, so the retrieval target is unambiguous. However, it never distinguishes itself from the sibling getPressReleases, which an agent must choose between, and the mention of 'company name' conflicts with the symbol-only search semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Find specific corporate announcements and updates by entering a stock symbol' suggests targeted lookups rather than browsing. There is no explicit when-to-use/when-not, no mention of when getPressReleases or searchStockNews would be preferable, and no note that a symbol is mandatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchStockNewsBRead-onlyIdempotentInspect
Search for stock-related news using the FMP Search Stock News API. Find specific stock news by entering a ticker symbol or company name to track the latest developments.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (YYYY-MM-DD) | |
| page | No | Page number (default: 0) | |
| limit | No | Limit on number of results (default: 20, max: 250) | |
| symbols | Yes | Comma-separated list of stock symbols | |
| from_date | No | Start date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered for free. The description adds only that results come from an external FMP API and are scoped to a ticker; it says nothing about result volume, pagination behavior, or how pagination interacts with the limit cap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the verb and resource, with no filler. The second sentence is partly redundant with the first ("Find specific stock news" restates "Search for stock-related news"), which keeps it out of the top band.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only search with full schema coverage and no output schema needs only modest description, and this covers the core use case. It is still incomplete for an agent that must choose among many news endpoints, and it omits any hint that results can be paginated or date-bounded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the `symbols` parameter as "a ticker symbol or company name", which actually goes slightly beyond the schema wording (comma-separated symbols) and could mislead an agent into passing a company name; it says nothing about the from_date/to date-range parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("search stock news") plus the underlying API, and says it targets a specific ticker rather than a general news feed. It does not differentiate itself from the closely related sibling getStockNews, so an agent cannot tell from the description alone which news endpoint to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by "track the latest developments" — there is no explicit statement of when to use this versus getStockNews, getGeneralNews, or searchPressReleases, all of which appear in the sibling list. No prerequisites, no guidance on batching multiple symbols, and no note about date filtering are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSymbolBRead-onlyIdempotentInspect
Easily find the ticker symbol of any stock with the FMP Stock Symbol Search API. Search by company name or symbol across multiple global markets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional limit on number of results (default: 50) | |
| query | Yes | The search query to find stock symbols | |
| exchange | No | Optional exchange filter (e.g., NASDAQ, NYSE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety and repeatability profile is covered without help from the text. The description adds mild context by noting the search spans multiple global markets and can match on either company name or symbol. It does not disclose result size behavior, pagination interaction with the limit parameter, or what a hit looks like, which would have been valuable additions beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core capability front-loaded, which is efficient for a simple search tool. The opening word 'Easily' and the API product name are marketing filler that earn no place, keeping it short of perfect. Structure is otherwise clean with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only search tool with full schema coverage and no output schema, the description need not explain return values in detail. Still, an agent lacks any sense of whether results are a ranked list of symbol/name pairs or whether the limit cap applies per exchange, and the absence of sibling differentiation leaves the definition only minimally adequate. It is complete enough to invoke but not complete enough to invoke confidently among many near-neighbors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the query, limit, and exchange parameters are already documented in the input schema, which sets the baseline at 3. The description reinforces that queries may be either a company name or a symbol, a useful clarification about the query field. It says nothing about the exchange filter or the default of 50 results, so no meaning is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: find the ticker symbol of a stock by searching company name or symbol across global markets. That is clear enough to understand the operation at a glance. However, it does not distinguish itself from several close siblings such as searchCompaniesBySymbol, searchName, or getCompanySymbols, so an agent cannot tell from the text alone which one to reach for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies how to use it (pass a company name or a symbol) but gives no explicit guidance on when to choose it over alternatives. With a crowded family of symbol/name lookup tools in the sibling list, the absence of any routing or exclusion statement is a real gap. There is no mention of prerequisites, markets covered in concrete terms, or what to do when no match is found.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchTipRanksAnalystRatingsARead-onlyIdempotentInspect
Search individual analyst ratings sourced from TipRanks with the FMP Analyst Ratings Search API (partner data). Each row has the analyst, firm, recommendation, price target, action taken and the originating article, newest first. Filter by symbol, analyst (expertUID) and recommendation date range.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the date window (YYYY-MM-DD) | |
| page | No | Page number for pagination | |
| limit | No | Limit the number of results (max 5000) | |
| symbol | No | Filter by stock symbol | |
| expertUID | No | Filter by TipRanks analyst identifier (expertUID) | |
| from_date | No | Start of the date window (YYYY-MM-DD) | |
| nonadjusted | No | Return price targets in their native currency instead of converting them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, openWorldHint, and idempotentHint, the description adds useful context beyond safety: it identifies TipRanks partner data, states that results are ordered newest first, and lists the factual fields each row contains. It does not discuss pagination behavior or limits, but the added provenance and ordering detail are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and fits in three efficient sentences. The row-fields sentence earns its place by describing the return shape, though the API branding phrase is slightly extraneous. It contains no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by listing the key row fields and ordering. Annotations cover the safety profile, and the schema covers all seven parameters. The main remaining gap is not explaining how this search differs from the closely related TipRanks point-in-time rating tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the input schema. The description maps the filters to symbol, expertUID, and recommendation date range, but it adds no syntax, defaults, or special semantics beyond what the schema provides. The baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search individual analyst ratings sourced from TipRanks.' It also names the underlying API and summarizes the row contents, so the tool's purpose is clear. However, it never distinguishes this tool from similar siblings such as getTipRanksPointInTimeRatingsBySymbol or getTipRanksPointInTimeRatingsByAnalyst.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what can be filtered, but it does not say when to use this tool instead of the many similar TipRanks and ratings siblings. There are no explicit alternatives, prerequisites, or when-not conditions, so an agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stockScreenerRead-onlyIdempotentInspect
Discover stocks that align with your investment strategy using the FMP Stock Screener API. Filter stocks based on market cap, price, volume, beta, sector, country, and more to identify the best opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| isEtf | No | Filter ETFs | |
| limit | No | Limit number of results | |
| isFund | No | Filter funds | |
| sector | No | Filter by sector (e.g., Technology) | |
| country | No | Filter by country (e.g., US) | |
| exchange | No | Filter by exchange (e.g., NASDAQ) | |
| industry | No | Filter by industry (e.g., Consumer Electronics) | |
| betaMoreThan | No | Filter companies with beta greater than this value | |
| betaLowerThan | No | Filter companies with beta less than this value | |
| priceMoreThan | No | Filter companies with price greater than this value | |
| priceLowerThan | No | Filter companies with price less than this value | |
| volumeMoreThan | No | Filter companies with volume greater than this value | |
| volumeLowerThan | No | Filter companies with volume less than this value | |
| dividendMoreThan | No | Filter companies with dividend greater than this value | |
| avgVolumeMoreThan | No | Filter companies with average volume greater than this value | |
| dividendLowerThan | No | Filter companies with dividend less than this value | |
| isActivelyTrading | No | Filter actively trading companies | |
| marketCapMoreThan | No | Filter companies with market cap greater than this value | |
| avgVolumeLowerThan | No | Filter companies with average volume less than this value | |
| marketCapLowerThan | No | Filter companies with market cap less than this value | |
| includeAllShareClasses | No | Include all share classes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
267 tool updates
v2.9.0- Changed
calculateCustomDCF3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / input / additionalPropertiesRemoved value: -false
- Changed
calculateCustomLeveredDCF3 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / input / additionalPropertiesRemoved value: -false
- Changed
getAcquisitionOwnership2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getActivelyTradingList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getADX2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAftermarketQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAftermarketTrade2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAllExchangeMarketHours1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getAllIndexQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAllIndustryClassification2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAllShareFloat2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAnalystEstimates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableCountries1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getAvailableExchanges1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getAvailableIndustries1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getAvailableSectors1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getAvailableTranscriptSymbols1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getBalanceSheetGrowthBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBalanceSheetStatement2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBalanceSheetStatementAsReported2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBalanceSheetStatementGrowth2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBalanceSheetStatementsBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBalanceSheetStatementTTM2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBatchAftermarketQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBatchAftermarketTrade2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBatchMarketCap2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBatchQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBatchQuotesShort2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBiggestGainers1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getBiggestLosers1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getCashFlowGrowthBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCashFlowStatement2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCashFlowStatementAsReported2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCashFlowStatementGrowth2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCashFlowStatementsBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCashFlowStatementTTM2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCIKList2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCommodityQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanyExecutives2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanyNotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanyProfile2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanyProfileByCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanyProfilesBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanySECProfile2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanySymbols1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getCOTAnalysis2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCOTList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getCOTReports2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCrowdfundingCampaignsByCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrency1HourData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrency1MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrency5MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyBatchQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyHistoricalFullChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyHistoricalLightChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getCryptocurrencyQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyShortQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptoNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptoQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDCFValuation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDCFValuationsBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getDelistedCompanies2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDEMA2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDisclosure2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDividendAdjustedChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDividends2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDividendsCalendar2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDowJonesConstituents1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getEarningsCalendar2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsReports2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsSurprisesBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsTranscript2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsTranscriptDates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsTranscriptList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getEconomicCalendar2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEconomicIndicators2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEMA2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEmployeeCount2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEnterpriseValues2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEODDataBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEquityOfferingsByCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getESGBenchmarks2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getESGDisclosures2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getESGRatings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getETFHoldersBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getETFList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getETFQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getExchangeMarketHours2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getExchangeQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getExecutiveCompensation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getExecutiveCompensationBenchmark2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFilingExtractAnalyticsByHolder2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFilingsByCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFilingsByFormType2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFilingsBySymbol2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialRatiosTTM2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialReportJSON2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialReportsDates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialReportXLSX2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialScores2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialScoresBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getFinancialStatementFullAsReported2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialStatementGrowth2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialStatementSymbols1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getFMPArticles2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForex1HourData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForex1MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForex5MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexBatchQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexHistoricalFullChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexHistoricalLightChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getForexNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexShortQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForm13FFilingDates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFullChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundAssetExposure2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundCountryAllocation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundDisclosure2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundDisclosureDates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundHoldings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundInfo2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFundSectorWeighting2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getGeneralNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalDowJonesChanges1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getHistoricalEmployeeCount2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalIndexFullChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalIndexLightChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalIndustryPE2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalIndustryPerformance2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalMarketCap2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalNasdaqChanges1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getHistoricalRatings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalSectorPE2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalSectorPerformance2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalSP500Changes1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getHistoricalStockGrades2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHolderIndustryBreakdown2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHolderPerformanceSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHolidaysByExchange2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHouseTrades2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHouseTradesById2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHouseTradesByName2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatement2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatementAsReported2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatementGrowth2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatementGrowthBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatementsBulk2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIncomeStatementTTM2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndex1HourData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndex1MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndex5MinuteData2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndexList1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getIndexQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndexQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndexShortQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndustryClassificationList2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndustryPerformanceSnapshot2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndustryPerformanceSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndustryPESnapshot2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getInsiderTradeStatistics2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getInsiderTransactionTypes1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getIntradayChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIPOCalendar2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIPODisclosures2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIPOProspectuses2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getKeyMetrics2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getKeyMetricsTTM2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getKeyMetricsTTMBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getLatest8KFilings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestCrowdfundingCampaigns2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestEarningsTranscripts2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestEquityOfferings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestFinancialFilings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestFinancialStatements2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestHouseDisclosures2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestInsiderTrading2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestInstitutionalFilings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestMergersAcquisitions2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLatestSenateDisclosures2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLeveredDCFValuation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getLightChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getMarketCap2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getMarketRiskPremium1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getMostActiveStocks1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getMutualFundQuotes2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getNasdaqConstituents1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getOwnerEarnings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPositionsSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPressReleases2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPriceTargetConsensus2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPriceTargetLatestNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPriceTargetNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPriceTargetSummariesBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getPriceTargetSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getQuote2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getQuoteShort2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRatingsSnapshot2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRatios2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRatiosTTMBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getRevenueGeographicSegmentation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRevenueProductSegmentation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRSI2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSecFilingExtract2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSectorPerformanceSnapshot2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSectorPESnapshot2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateNetWorth2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateNetWorthAggregated2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenatePositions2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateProfile2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateTrades2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateTradesById2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSenateTradesByName2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getShareFloat2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSMA2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSP500Constituents1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getStandardDeviation2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockGradeLatestNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockGradeNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockGrades2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockGradeSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockPeers2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockPeersBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getStockPriceChange2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockRatingsBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getStockSplitCalendar2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockSplits2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSymbolChanges2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTEMA2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTipRanksAnalystSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTipRanksFirmSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTipRanksPointInTimeRatingsByAnalyst2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTipRanksPointInTimeRatingsBySymbol2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTipRanksSymbolSummary2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getTreasuryRates2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getUnadjustedChart2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getUpgradesDowngradesConsensusBulk1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
getWilliams2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getWMA2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
listCommodities1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
lookupTipRanksAnalyst2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCompaniesByCIK2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCompaniesByName2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCompaniesBySymbol2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCrowdfundingCampaigns2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCryptoNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchCUSIP2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchEquityOfferings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchExchangeVariants2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchForexNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchFundDisclosures2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchIndustryClassification2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchInsiderTrades2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchInsiderTradesByReportingName2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchISIN2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchMergersAcquisitions2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchName2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchPressReleases2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchStockNews2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchSymbol2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
searchTipRanksAnalystRatings2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
stockScreener2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
17 tool updates
v2.8.0- Changed
getEarningsCalendar1 field changed- added
Input schema / properties / includeReportTimesAdded value: +{ + "description": "Include report period, confirmed/estimated flag and estimated report time", + "type": "boolean" +}
- Changed
getEconomicIndicators3 fields changed- changed
Input schema / properties / from_date / descriptionPrevious value: -"Optional start date (YYYY-MM-DD)"New value: +"Optional start date (YYYY-MM-DD); the date range can span at most 90 days" - changed
Input schema / properties / name / descriptionPrevious value: -"Name of the indicator"New value: +"Indicator name, e.g. GDP, realGDP, nominalPotentialGDP, realGDPPerCapita, federalFunds, CPI, inflationRate, inflation, retailSales, consumerSentiment, durableGoods, unemploymentRate, totalNonfarmPayroll, initialClaims, industrialProductionTotalIndex, newPrivatelyOwnedHousingUnitsStartedTotalUnits, totalVehicleSales, retailMoneyFunds, smoothedUSRecessionProbabilities, 3MonthOr90DayRatesAndYieldsCertificatesOfDeposit, commercialBankInterestRateOnCreditCardPlansAllAccounts, 30YearFixedRateMortgageAverage, 15YearFixedRateMortgageAverage, tradeBalanceGoodsAndServices" - changed
Input schema / properties / to / descriptionPrevious value: -"Optional end date (YYYY-MM-DD)"New value: +"Optional end date (YYYY-MM-DD); the date range can span at most 90 days"
- Added
getEnterpriseValues - Added
getHouseTradesById - Added
getSenateNetWorth - Added
getSenateNetWorthAggregated - Added
getSenatePositions - Added
getSenateProfile - Added
getSenateTradesById - Added
getTipRanksAnalystSummary - Added
getTipRanksFirmSummary - Added
getTipRanksPointInTimeRatingsByAnalyst - Added
getTipRanksPointInTimeRatingsBySymbol - Added
getTipRanksSymbolSummary - Added
lookupTipRanksAnalyst - Added
searchTipRanksAnalystRatings - Changed
stockScreener3 fields changed- added
Input schema / properties / avgVolumeLowerThanAdded value: +{ + "description": "Filter companies with average volume less than this value", + "type": "number" +} - added
Input schema / properties / avgVolumeMoreThanAdded value: +{ + "description": "Filter companies with average volume greater than this value", + "type": "number" +} - added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "type": "number" +}
60 tool updates
v2.6.10- Changed
getADX2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCOTAnalysis2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Optional start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Optional start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCOTReports2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Optional start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Optional start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptocurrency1HourData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptocurrency1MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptocurrency5MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptocurrencyHistoricalFullChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptocurrencyHistoricalLightChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getCryptoNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getDEMA2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getDividendAdjustedChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getDividendsCalendar2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getEarningsCalendar2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getEconomicCalendar2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Optional start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Optional start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getEconomicIndicators2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Optional start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Optional start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getEMA2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getFilingsByCIK3 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "cik", - "from", - "to" -]New value: +[ + "cik", + "from_date", + "to" +]
- Changed
getFilingsByFormType3 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "formType", - "from", - "to" -]New value: +[ + "formType", + "from_date", + "to" +]
- Changed
getFilingsBySymbol3 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "symbol", - "from", - "to" -]New value: +[ + "symbol", + "from_date", + "to" +]
- Changed
getForex1HourData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getForex1MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getForex5MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getForexHistoricalFullChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getForexHistoricalLightChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getForexNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getFullChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getGeneralNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalIndexFullChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalIndexLightChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalIndustryPE2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalIndustryPerformance2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalMarketCap2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalSectorPE2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHistoricalSectorPerformance2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getHolidaysByExchange2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date for the holidays (YYYY-MM-DD format)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date for the holidays (YYYY-MM-DD format)", + "type": "string" +}
- Changed
getIndex1HourData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIndex1MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIndex5MinuteData2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIntradayChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIPOCalendar2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIPODisclosures2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getIPOProspectuses2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getLatest8KFilings3 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "from", - "to" -]New value: +[ + "from_date", + "to" +]
- Changed
getLatestFinancialFilings3 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "from", - "to" -]New value: +[ + "from_date", + "to" +]
- Changed
getLightChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getPressReleases2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getRSI2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getSMA2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getStandardDeviation2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getStockNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getStockSplitCalendar2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getTEMA2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getTreasuryRates2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Optional start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Optional start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getUnadjustedChart2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getWilliams2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
getWMA2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
searchCryptoNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
searchForexNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
searchPressReleases2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
- Changed
searchStockNews2 fields changed- removed
Input schema / properties / fromRemoved value: -{ - "description": "Start date (YYYY-MM-DD)", - "type": "string" -} - added
Input schema / properties / from_dateAdded value: +{ + "description": "Start date (YYYY-MM-DD)", + "type": "string" +}
35 tool updates
v1.0.0- Changed
getActivelyTradingList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAllExchangeMarketHours1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableCountries1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableExchanges1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableIndustries1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableSectors1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getAvailableTranscriptSymbols1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBiggestGainers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getBiggestLosers1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCompanySymbols1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCOTList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getCryptocurrencyList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDCFValuationsBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getDowJonesConstituents1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getEarningsTranscriptList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getETFList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialScoresBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getFinancialStatementSymbols1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getForexList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalDowJonesChanges1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalNasdaqChanges1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getHistoricalSP500Changes1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getIndexList1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getInsiderTransactionTypes1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getKeyMetricsTTMBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getMarketRiskPremium1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getMostActiveStocks1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getNasdaqConstituents1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getPriceTargetSummariesBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getRatiosTTMBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getSP500Constituents1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockPeersBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getStockRatingsBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
getUpgradesDowngradesConsensusBulk1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
listCommodities1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
253 tool updates
- First observed
calculateCustomDCF - First observed
calculateCustomLeveredDCF - First observed
getAcquisitionOwnership - First observed
getActivelyTradingList - First observed
getADX - First observed
getAftermarketQuote - First observed
getAftermarketTrade - First observed
getAllExchangeMarketHours - First observed
getAllIndexQuotes - First observed
getAllIndustryClassification - First observed
getAllShareFloat - First observed
getAnalystEstimates - First observed
getAvailableCountries - First observed
getAvailableExchanges - First observed
getAvailableIndustries - First observed
getAvailableSectors - First observed
getAvailableTranscriptSymbols - First observed
getBalanceSheetGrowthBulk - First observed
getBalanceSheetStatement - First observed
getBalanceSheetStatementAsReported - First observed
getBalanceSheetStatementGrowth - First observed
getBalanceSheetStatementsBulk - First observed
getBalanceSheetStatementTTM - First observed
getBatchAftermarketQuote - First observed
getBatchAftermarketTrade - First observed
getBatchMarketCap - First observed
getBatchQuotes - First observed
getBatchQuotesShort - First observed
getBiggestGainers - First observed
getBiggestLosers - First observed
getCashFlowGrowthBulk - First observed
getCashFlowStatement - First observed
getCashFlowStatementAsReported - First observed
getCashFlowStatementGrowth - First observed
getCashFlowStatementsBulk - First observed
getCashFlowStatementTTM - First observed
getCIKList - First observed
getCommodityQuotes - First observed
getCompanyExecutives - First observed
getCompanyNotes - First observed
getCompanyProfile - First observed
getCompanyProfileByCIK - First observed
getCompanyProfilesBulk - First observed
getCompanySECProfile - First observed
getCompanySymbols - First observed
getCOTAnalysis - First observed
getCOTList - First observed
getCOTReports - First observed
getCrowdfundingCampaignsByCIK - First observed
getCryptocurrency1HourData - First observed
getCryptocurrency1MinuteData - First observed
getCryptocurrency5MinuteData - First observed
getCryptocurrencyBatchQuotes - First observed
getCryptocurrencyHistoricalFullChart - First observed
getCryptocurrencyHistoricalLightChart - First observed
getCryptocurrencyList - First observed
getCryptocurrencyQuote - First observed
getCryptocurrencyShortQuote - First observed
getCryptoNews - First observed
getCryptoQuotes - First observed
getDCFValuation - First observed
getDCFValuationsBulk - First observed
getDelistedCompanies - First observed
getDEMA - First observed
getDisclosure - First observed
getDividendAdjustedChart - First observed
getDividends - First observed
getDividendsCalendar - First observed
getDowJonesConstituents - First observed
getEarningsCalendar - First observed
getEarningsReports - First observed
getEarningsSurprisesBulk - First observed
getEarningsTranscript - First observed
getEarningsTranscriptDates - First observed
getEarningsTranscriptList - First observed
getEconomicCalendar - First observed
getEconomicIndicators - First observed
getEMA - First observed
getEmployeeCount - First observed
getEODDataBulk - First observed
getEquityOfferingsByCIK - First observed
getESGBenchmarks - First observed
getESGDisclosures - First observed
getESGRatings - First observed
getETFHoldersBulk - First observed
getETFList - First observed
getETFQuotes - First observed
getExchangeMarketHours - First observed
getExchangeQuotes - First observed
getExecutiveCompensation - First observed
getExecutiveCompensationBenchmark - First observed
getFilingExtractAnalyticsByHolder - First observed
getFilingsByCIK - First observed
getFilingsByFormType - First observed
getFilingsBySymbol - First observed
getFinancialRatiosTTM - First observed
getFinancialReportJSON - First observed
getFinancialReportsDates - First observed
getFinancialReportXLSX - First observed
getFinancialScores - First observed
getFinancialScoresBulk - First observed
getFinancialStatementFullAsReported - First observed
getFinancialStatementGrowth - First observed
getFinancialStatementSymbols - First observed
getFMPArticles - First observed
getForex1HourData - First observed
getForex1MinuteData - First observed
getForex5MinuteData - First observed
getForexBatchQuotes - First observed
getForexHistoricalFullChart - First observed
getForexHistoricalLightChart - First observed
getForexList - First observed
getForexNews - First observed
getForexQuote - First observed
getForexQuotes - First observed
getForexShortQuote - First observed
getForm13FFilingDates - First observed
getFullChart - First observed
getFundAssetExposure - First observed
getFundCountryAllocation - First observed
getFundDisclosure - First observed
getFundDisclosureDates - First observed
getFundHoldings - First observed
getFundInfo - First observed
getFundSectorWeighting - First observed
getGeneralNews - First observed
getHistoricalDowJonesChanges - First observed
getHistoricalEmployeeCount - First observed
getHistoricalIndexFullChart - First observed
getHistoricalIndexLightChart - First observed
getHistoricalIndustryPE - First observed
getHistoricalIndustryPerformance - First observed
getHistoricalMarketCap - First observed
getHistoricalNasdaqChanges - First observed
getHistoricalRatings - First observed
getHistoricalSectorPE - First observed
getHistoricalSectorPerformance - First observed
getHistoricalSP500Changes - First observed
getHistoricalStockGrades - First observed
getHolderIndustryBreakdown - First observed
getHolderPerformanceSummary - First observed
getHolidaysByExchange - First observed
getHouseTrades - First observed
getHouseTradesByName - First observed
getIncomeStatement - First observed
getIncomeStatementAsReported - First observed
getIncomeStatementGrowth - First observed
getIncomeStatementGrowthBulk - First observed
getIncomeStatementsBulk - First observed
getIncomeStatementTTM - First observed
getIndex1HourData - First observed
getIndex1MinuteData - First observed
getIndex5MinuteData - First observed
getIndexList - First observed
getIndexQuote - First observed
getIndexQuotes - First observed
getIndexShortQuote - First observed
getIndustryClassificationList - First observed
getIndustryPerformanceSnapshot - First observed
getIndustryPerformanceSummary - First observed
getIndustryPESnapshot - First observed
getInsiderTradeStatistics - First observed
getInsiderTransactionTypes - First observed
getIntradayChart - First observed
getIPOCalendar - First observed
getIPODisclosures - First observed
getIPOProspectuses - First observed
getKeyMetrics - First observed
getKeyMetricsTTM - First observed
getKeyMetricsTTMBulk - First observed
getLatest8KFilings - First observed
getLatestCrowdfundingCampaigns - First observed
getLatestEarningsTranscripts - First observed
getLatestEquityOfferings - First observed
getLatestFinancialFilings - First observed
getLatestFinancialStatements - First observed
getLatestHouseDisclosures - First observed
getLatestInsiderTrading - First observed
getLatestInstitutionalFilings - First observed
getLatestMergersAcquisitions - First observed
getLatestSenateDisclosures - First observed
getLeveredDCFValuation - First observed
getLightChart - First observed
getMarketCap - First observed
getMarketRiskPremium - First observed
getMostActiveStocks - First observed
getMutualFundQuotes - First observed
getNasdaqConstituents - First observed
getOwnerEarnings - First observed
getPositionsSummary - First observed
getPressReleases - First observed
getPriceTargetConsensus - First observed
getPriceTargetLatestNews - First observed
getPriceTargetNews - First observed
getPriceTargetSummariesBulk - First observed
getPriceTargetSummary - First observed
getQuote - First observed
getQuoteShort - First observed
getRatingsSnapshot - First observed
getRatios - First observed
getRatiosTTMBulk - First observed
getRevenueGeographicSegmentation - First observed
getRevenueProductSegmentation - First observed
getRSI - First observed
getSecFilingExtract - First observed
getSectorPerformanceSnapshot - First observed
getSectorPESnapshot - First observed
getSenateTrades - First observed
getSenateTradesByName - First observed
getShareFloat - First observed
getSMA - First observed
getSP500Constituents - First observed
getStandardDeviation - First observed
getStockGradeLatestNews - First observed
getStockGradeNews - First observed
getStockGrades - First observed
getStockGradeSummary - First observed
getStockNews - First observed
getStockPeers - First observed
getStockPeersBulk - First observed
getStockPriceChange - First observed
getStockRatingsBulk - First observed
getStockSplitCalendar - First observed
getStockSplits - First observed
getSymbolChanges - First observed
getTEMA - First observed
getTreasuryRates - First observed
getUnadjustedChart - First observed
getUpgradesDowngradesConsensusBulk - First observed
getWilliams - First observed
getWMA - First observed
listCommodities - First observed
searchCIK - First observed
searchCompaniesByCIK - First observed
searchCompaniesByName - First observed
searchCompaniesBySymbol - First observed
searchCrowdfundingCampaigns - First observed
searchCryptoNews - First observed
searchCUSIP - First observed
searchEquityOfferings - First observed
searchExchangeVariants - First observed
searchForexNews - First observed
searchFundDisclosures - First observed
searchIndustryClassification - First observed
searchInsiderTrades - First observed
searchInsiderTradesByReportingName - First observed
searchISIN - First observed
searchMergersAcquisitions - First observed
searchName - First observed
searchPressReleases - First observed
searchStockNews - First observed
searchSymbol - First observed
stockScreener
TDQS
Scored across 267 tools
With 267 tools, many overlap heavily (e.g., getIncomeStatement vs getIncomeStatementTTM vs getIncomeStatementGrowth vs getIncomeStatementAsReported vs getIncomeStatementsBulk; getQuote vs getQuoteShort vs getBatchQuotes; getSenateTrades vs getSenateTradesById vs getSenateTradesByName). Descriptions help somewhat, but an agent will frequently struggle to select the correct granular variant.
Most tools use camelCase with get/search prefixes, but verb conventions are mixed (get, search, list, calculate, lookup, and noun-only stockScreener). Some near-duplicate names differ only by suffixes like Latest, TTM, or Bulk, which adds friction despite general readability.
267 tools is an extreme mismatch for a single MCP server. This far exceeds the 50+ threshold and results in an unwieldy surface where many tools are granular variants that could be consolidated.
The surface comprehensively covers equities, financial statements, ETFs, forex, crypto, news, calendars, SEC filings, insider and political trades, valuation, and technical indicators. For a financial data retrieval API, the coverage is essentially exhaustive with no obvious gaps.
Maintenance
Related MCP Connectors
Provide AI assistants with real-time access to official SEC EDGAR filings and financial data. Enab…
SEC filings and financial data for AI agents: 59 tools for statements, valuation and supply chains.
SEC-filed company financials with filing citations, plus market data, for AI agents
Financial data MCP server for Claude, ChatGPT, Cursor and Codex. Real-time stock quotes, financial statements, options flow, SEC filings, insider trades, 13F holdings, macro data and market news from gloom.sh, the open-source Bloomberg Terminal alternative.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants access to comprehensive financial data including real-time stock quotes, company fundamentals, financial statements, market analysis, economic indicators, and 250+ financial tools across 24 categories from Financial Modeling Prep API.444 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access real-time stock data, financial statements, cryptocurrency information, and market data via the Financial Modeling Prep API.4MIT
- AlicenseAqualityBmaintenanceEnables AI agents to analyze stocks, screen markets, compare peers, read earnings calls, and track sector rotations using live financial data from Financial Modeling Prep.21PolyForm Noncommercial 1.0.0
- AlicenseBqualityCmaintenanceProvides access to Financial Modeling Prep's comprehensive financial data API, enabling real-time stock quotes, company fundamentals, financial statements, market insights, analyst data, and technical indicators directly in Claude Desktop.26167 npm2MIT