Financial Modeling Prep MCP Server
Click on "Install 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 current stock quote for AAPL"
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
Model Context Protocol (MCP) server providing access to Financial Modeling Prep's comprehensive financial data API. Get real-time stock quotes, company fundamentals, financial statements, market insights, analyst data, and technical indicators directly in Claude Desktop.
Quick Navigation
Features | Installation | Tools | Usage examples | API rate limits | Development | Troubleshooting
Features
Real-time Market Data: Live stock quotes with price, volume, and market metrics
Company Information: Detailed profiles including industry, sector, and key executives
Financial Statements: Income statements, balance sheets, and cash flow statements
Market Performance: Track gainers, losers, most active stocks, and sector performance
Analyst Data: Price targets, estimates, ratings, and upgrades/downgrades
Insider Trading: Monitor insider transactions and institutional holdings
Technical Indicators: RSI, SMA, EMA with multiple timeframes
Economic Data: GDP, unemployment, inflation, treasury rates, and economic calendar
Historical Charts: Intraday data from 1-minute to 4-hour intervals
Symbol Search: Find companies by name or ticker across global exchanges
Related MCP server: Financial Modeling Prep MCP Server
Installation
Prerequisites
Node.js 18 or higher
Financial Modeling Prep API key (Get one here)
Quick Start with NPX
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"financial-modeling-prep": {
"command": "npx",
"args": [
"-y",
"@houtini/fmp-mcp"
],
"env": {
"FMP_API_KEY": "your_api_key_here"
}
}
}
}Replace your_api_key_here with your actual API key from Financial Modeling Prep.
Important: Restart Claude Desktop completely after updating the configuration.
Claude Code (CLI)
Claude Code uses a different registration mechanism -- it doesn't read claude_desktop_config.json. Use claude mcp add instead:
claude mcp add -e FMP_API_KEY=your_api_key_here -s user financial-modeling-prep -- npx -y @houtini/fmp-mcpVerify with:
claude mcp get financial-modeling-prepYou should see Status: Connected.
Available Tools
Core Market Data
get_quote
Get real-time stock quote data.
Parameters:
symbol(required): Stock ticker symbol (e.g., AAPL, TSLA, MSFT)
Returns: Current price, volume, market cap, P/E ratio, day high/low, and more.
search_symbol
Search for stock symbols by company name or ticker.
Parameters:
query(required): Search query (company name or partial ticker)
Returns: Matching symbols with company names and exchange information.
Company Fundamentals
get_company_profile
Get detailed company profile and fundamental data.
Parameters:
symbol(required): Stock ticker symbol
Returns: Company description, industry, sector, CEO, employee count, headquarters, website, and key financial metrics.
get_income_statement
Retrieve company income statement data.
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 5)
Returns: Revenue, expenses, net income, EPS, and other profitability metrics.
get_balance_sheet
Retrieve company balance sheet data.
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 5)
Returns: Assets, liabilities, shareholder equity, and detailed line items.
get_cash_flow
Retrieve company cash flow statement data.
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 5)
Returns: Operating cash flow, investing activities, financing activities, and free cash flow.
get_key_metrics
Get key financial metrics and ratios.
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 5)
Returns: P/E ratio, ROE, ROA, debt ratios, current ratio, and more.
get_financial_ratios
Get detailed financial ratios (profitability, liquidity, efficiency).
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 5)
Returns: Comprehensive ratio analysis including profitability, liquidity, and efficiency metrics.
Market Performance
get_market_gainers
Get stocks with the largest price increases.
Parameters: None
Returns: Top gaining stocks with price changes and volume.
get_market_losers
Get stocks with the largest price drops.
Parameters: None
Returns: Top losing stocks with price changes and volume.
get_most_active
Get most actively traded stocks by volume.
Parameters: None
Returns: Stocks with highest trading volume.
get_sector_performance
Get current sector performance snapshot.
Parameters:
date(optional): Date in YYYY-MM-DD format (defaults to latest)
Returns: Performance metrics for all market sectors.
Analyst Data
get_analyst_estimates
Get analyst financial estimates (revenue, EPS forecasts).
Parameters:
symbol(required): Stock ticker symbolperiod(optional): "annual" or "quarter" (default: "annual")limit(optional): Number of periods to return (default: 10)
Returns: Analyst revenue and earnings estimates with consensus figures.
get_price_target
Get analyst price target summary.
Parameters:
symbol(required): Stock ticker symbol
Returns: Average, high, low, and median price targets from analysts.
get_analyst_ratings
Get analyst ratings and upgrades/downgrades.
Parameters:
symbol(required): Stock ticker symbol
Returns: Recent analyst rating changes, upgrades, downgrades, and recommendations.
Insider Trading & Institutional
get_insider_trading
Get recent insider trading activity.
Parameters:
symbol(required): Stock ticker symbollimit(optional): Number of transactions to return (default: 100)
Returns: Insider buy/sell transactions with names, dates, and amounts.
get_institutional_holders
Get institutional ownership (13F filings).
Parameters:
symbol(required): Stock ticker symbollimit(optional): Number of holders to return (default: 100)
Returns: Top institutional holders with share counts and filing dates.
Technical Indicators
get_technical_indicator_rsi
Get Relative Strength Index (RSI).
Parameters:
symbol(required): Stock ticker symboltimeframe(required): "1min", "5min", "15min", "30min", "1hour", "4hour", "1day"period(optional): Period length (default: 14)
Returns: RSI values with timestamps for momentum analysis.
get_technical_indicator_sma
Get Simple Moving Average (SMA).
Parameters:
symbol(required): Stock ticker symboltimeframe(required): "1min", "5min", "15min", "30min", "1hour", "4hour", "1day"period(optional): Period length (default: 10)
Returns: SMA values with timestamps for trend analysis.
get_technical_indicator_ema
Get Exponential Moving Average (EMA).
Parameters:
symbol(required): Stock ticker symboltimeframe(required): "1min", "5min", "15min", "30min", "1hour", "4hour", "1day"period(optional): Period length (default: 10)
Returns: EMA values with timestamps for trend analysis.
Historical Data
get_historical_chart
Get historical price data with flexible time intervals.
Parameters:
symbol(required): Stock ticker symbolinterval(required): "1min", "5min", "15min", "30min", "1hour", "4hour"from(optional): Start date in YYYY-MM-DD formatto(optional): End date in YYYY-MM-DD format
Returns: OHLC price data with volume for the specified interval.
Economic Data
get_economic_calendar
Get upcoming economic data releases calendar.
Parameters:
from(optional): Start date in YYYY-MM-DD formatto(optional): End date in YYYY-MM-DD format
Returns: Scheduled economic announcements with dates and expected impact.
get_economic_indicator
Get economic indicator data (GDP, unemployment, inflation, etc.).
Parameters:
name(required): Indicator name (e.g., "GDP", "unemploymentRate", "CPI")from(optional): Start date in YYYY-MM-DD formatto(optional): End date in YYYY-MM-DD format
Returns: Historical values for the specified economic indicator.
Events & Calendars
get_earnings_calendar
Get upcoming earnings announcements calendar.
Parameters:
from(optional): Start date in YYYY-MM-DD formatto(optional): End date in YYYY-MM-DD format
Returns: Upcoming earnings dates with EPS estimates.
Index Data
get_sp500_constituents
Get list of S&P 500 index constituents.
Parameters: None
Returns: All companies in the S&P 500 with symbols and details.
News (Paid Feature)
get_stock_news
Get latest news articles for a stock.
Parameters:
symbol(required): Stock ticker symbollimit(optional): Number of articles to return (default: 10)
Returns: News headlines, publication dates, URLs, and article summaries.
Note: This endpoint requires a paid FMP plan.
Usage Examples
Once installed, you can interact with the MCP server directly through Claude Desktop:
Get a quote for Apple stockShow me Tesla's quarterly income statements for the last 8 quartersWhat are today's biggest market gainers?Get analyst price targets for NVIDIAShow me insider trading activity for MicrosoftCalculate the 14-day RSI for TSLA on the daily timeframeWhat's the current sector performance?Get upcoming earnings announcements for this weekShow me institutional holders of AmazonAPI Rate Limits
Financial Modeling Prep offers different pricing tiers:
Free Tier: 250 requests/day
Starter: 500 requests/day
Professional: 1,000+ requests/day
See FMP Pricing for current plans and limits.
Development
Local Installation
git clone https://github.com/houtini-ai/fmp-mcp.git
cd fmp-mcp
npm install
npm run buildClaude Desktop Configuration for Local Development
{
"mcpServers": {
"financial-modeling-prep": {
"command": "node",
"args": [
"/absolute/path/to/fmp-mcp/build/index.js"
],
"env": {
"FMP_API_KEY": "your_api_key_here"
}
}
}
}Building
npm run buildOutput goes to the build/ directory.
API Coverage
This MCP server implements 29 endpoints from the Financial Modeling Prep API:
Core Market Data (3)
Stock quotes, symbol search, company profiles
Financial Statements (6)
Income statement, balance sheet, cash flow, key metrics, financial ratios (annual & quarterly)
Market Performance (4)
Gainers, losers, most active, sector performance
Analyst Data (3)
Estimates, price targets, ratings
Insider & Institutional (2)
Insider trading, institutional holders
Technical Indicators (3)
RSI, SMA, EMA with multiple timeframes
Historical Data (1)
Intraday charts (1min to 4hour)
Economic Data (2)
Economic calendar, economic indicators
Events & Calendars (1)
Earnings calendar
Index Data (1)
S&P 500 constituents
News (1)
Stock news (paid feature)
For the complete API reference, see the FMP Developer Documentation.
Troubleshooting
MCP Server Not Appearing in Claude Desktop
Verify your
claude_desktop_config.jsonsyntax is valid JSONCheck that the
FMP_API_KEYenvironment variable is setRestart Claude Desktop completely (quit from system tray/menu bar)
Check Claude Desktop logs for error messages
API Authentication Errors
If you see 403 Forbidden errors:
Verify your API key is correct
Check you haven't exceeded your rate limit
Ensure your API key has the required permissions
Tool Execution Failures
Verify the stock symbol exists (use
search_symbolfirst)Check your internet connection
Verify FMP API is operational at status.financialmodelingprep.com
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details.
Resources
Acknowledgments
Built with the Model Context Protocol SDK by Anthropic.
Available Tools
26 toolsget_analyst_estimatesA
Get analyst financial estimates for a stock (revenue, EPS forecasts)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 10) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Get analyst financial estimates' without describing return format, pagination, default period behavior, or any side effects. This is a read operation, but the description does not explicitly confirm safety or output 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?
The description is a single sentence that is front-loaded with the core action and resource. It wastes no words and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with no output schema and no annotations, the description covers the core purpose but lacks details about return values, default limits, or period filtering. It is adequate but not comprehensive, especially given the context of many similar financial data 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 the baseline is 3. The description adds minor context by naming revenue and EPS as the estimate types, but does not explain parameter semantics beyond what the schema already provides for symbol, period, and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves analyst financial estimates for a stock, specifically revenue and EPS forecasts. This is specific enough to distinguish it from siblings like get_analyst_ratings (ratings) and get_price_target (price targets).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 analyst revenue/EPS estimates are needed, but does not explicitly mention when to use it over alternatives or provide any exclusions. Sibling tools are not referenced, leaving the agent to infer the correct choice from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_analyst_ratingsA
Get analyst ratings and upgrades/downgrades for a stock
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses that the tool returns both ratings and upgrade/downgrade actions, but lacks details on historical coverage, data source, or output 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 a single clear sentence with no filler or redundant information, appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, and while the description gives a general idea, it does not specify the response structure or scope (e.g., current vs. historical ratings). It is adequate but leaves gaps for an agent relying solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the symbol parameter with the description 'Stock ticker symbol', and the tool description adds no additional meaning. With 100% schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves analyst ratings and upgrades/downgrades for a stock, using a specific verb and resource. It distinguishes itself from siblings like get_analyst_estimates and get_price_target by focusing on ratings and rating changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool over alternatives. It does not mention exclusions, prerequisites, or scenarios where another sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balance_sheetB
Get company balance sheet statement (annual or quarterly)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 5) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It says 'Get' (implying a read operation) but does not disclose return format, data structure, potential errors, or any limitations. The annual/quarterly mention only repeats information already present in the schema enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word adds meaning, and the parenthetical efficiently conveys the period options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 schema covers all parameters, but there is no output schema and no description of return values or shape. The description suffices for a basic 'fetch statement' tool but leaves the agent to guess what the returned object 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?
The input schema covers all three parameters (symbol, period, limit) with descriptions and enum values, so the description does not need to add much. However, the description adds no extra semantic detail about how these parameters interact or what defaults apply, netting a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('company balance sheet statement'), making the tool's function immediately clear. It also adds the annual/quarterly scope, which distinguishes it from sibling financial statement tools like income statement and cash flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_income_statement or get_cash_flow. The description merely states what the tool does without offering context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flowA
Get company cash flow statement (annual or quarterly)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 5) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only adds 'annual or quarterly', which duplicates the schema enum. It does not disclose that this is a read-only operation, describe return format, or mention default behaviors for omitted 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 a single sentence that front-loads the key verb and resource with no unnecessary words. It is perfectly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with fully documented parameters, the description is minimally viable. However, with no output schema and no guidance on when to use it versus sibling tools, it could be more complete by mentioning the contents of a cash flow statement or period ordering.
Complex tools with many parameters or behaviors need more documentation. 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% coverage with descriptions for all parameters (symbol, limit, period). The description's mention of 'annual or quarterly' provides no additional semantic value beyond the schema's period enum, 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 uses a specific verb ('Get') and identifies the resource ('company cash flow statement') along with the scope ('annual or quarterly'). This clearly distinguishes it from sibling financial statement tools like get_income_statement and get_balance_sheet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a cash flow statement is needed, but it does not explicitly mention when to use this tool over alternatives or provide any prerequisites or exclusions. It is reasonable but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileA
Get detailed company profile information including description, industry, sector, CEO, and more
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits on its own. It only states what the tool returns and does not mention potential side effects, authentication requirements, data freshness, error behavior, or whether the operation is read-only. This lack of behavioral detail is a significant 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 description is a single, well-structured sentence that front-loads the core purpose and includes key examples of expected data. Every word earns its place, and there is no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema and no annotations, the description gives a reasonable sense of what is returned, despite the vague 'and more'. It does not specify the response structure or quirks, but given the simplicity, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter 'symbol' with a clear description 'Stock ticker symbol'. The tool description does not add any extra meaning about this parameter, but the baseline of 3 applies because the schema already documents it fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and a clear resource 'detailed company profile information', enumerating concrete fields like description, industry, sector, and CEO. This clearly differentiates it from sibling tools such as get_key_metrics or get_income_statement, which focus on quantitative financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by listing the type of data returned (description, industry, sector, CEO), making it obvious when this tool is appropriate. However, it does not explicitly exclude alternatives or mention when to prefer another tool among the many financial-data siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_calendarB
Get upcoming earnings announcements calendar
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date in YYYY-MM-DD format (optional) | |
| from | No | Start date in YYYY-MM-DD format (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the purpose and does not disclose return format, date range semantics, pagination, or read-only behavior. This is a minimal disclosure beyond the bare function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It is concise and immediately communicates 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 tool is simple with only two optional date parameters and no output schema. The description is adequate for basic selection and invocation, but lacks details on the response format or how 'upcoming' interacts with the date range, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. 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 two parameters ('from' and 'to' dates). The description adds no additional meaning about how these dates affect the calendar, but the schema already documents them, 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 'Get upcoming earnings announcements calendar' clearly states the tool's function with a specific verb ('Get') and resource ('earning announcements calendar'). It is unambiguous but does not explicitly differentiate from sibling calendar tools like get_economic_calendar, 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?
The description implies usage for retrieving upcoming earnings announcements, but provides no explicit guidance on when to prefer this tool over alternatives such as get_economic_calendar or get_analyst_ratings. There are no exclusions or alternative names mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_economic_calendarC
Get upcoming economic data releases calendar
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date in YYYY-MM-DD format (optional) | |
| from | No | Start date in YYYY-MM-DD format (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the basic function and does not explain return format, default date range behavior, or whether the operation is read-only. The term 'upcoming' is ambiguous given the optional from/to 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 a single concise sentence with no filler. It is front-loaded and easy to parse, containing no unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two optional parameters and no output schema, the description is too sparse. It fails to explain what the returned calendar contains, how the date range affects the results, or any default behavior. This leaves significant gaps for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions for 'from' and 'to'. The description adds no additional parameter context, so it remains at the baseline expected when the schema already documents the 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 clear verb ('Get') and resource ('upcoming economic data releases calendar'), making the function understandable. It does not explicitly differentiate from siblings like get_earnings_calendar, but the phrase 'economic data releases' provides adequate context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 alternatives. No mention of exclusions or when-not-to-use, leaving the agent without decision support relative to similar tools like get_economic_indicator or get_earnings_calendar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_economic_indicatorB
Get economic indicator data (GDP, unemployment, inflation, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date in YYYY-MM-DD format (optional) | |
| from | No | Start date in YYYY-MM-DD format (optional) | |
| name | Yes | Indicator name (e.g., GDP, unemploymentRate, CPI) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention that the tool supports date ranges (from/to), the nature of the return data (e.g., time series vs. current value), or any limitations. The one-line description adds no behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the essential purpose without redundancy. Every word contributes meaning, and it is appropriately concise for a straightforward retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a 3-parameter input, the description is too sparse. It does not clarify that the tool can filter by date range, what the response structure might look like, or any usage contexts such as economic research versus market analysis. The agent lacks essential context for correct invocation beyond parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description's examples of indicator names (GDP, unemployment, CPI) partially align with the 'name' parameter description, adding minor illustrative value, but it does not clarify date formatting or other parameter nuances 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 action ('Get') and a clear resource ('economic indicator data') with concrete examples (GDP, unemployment, inflation). This distinguishes it from siblings like get_economic_calendar (calendar events) and get_technical_indicator_* (technical analysis), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, such as get_economic_calendar for events or get_key_metrics for company-level data. It simply states what the tool does without any contextual cues or exclusions, leaving the agent to infer usage from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_ratiosC
Get detailed financial ratios (profitability, liquidity, efficiency)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 5) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'get' (implying read-only), but does not mention response format, pagination, limitations, or any other behavioral traits. This is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is front-loaded with the primary action and resource, and the parenthetical categories add useful detail without bloat. Entirely appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, combined with the schema and no annotations, is insufficient for an agent to fully understand the tool's behavior. It does not describe the structure of the returned ratios, when to use it, or what differentiates it from related tools like get_key_metrics. With no output schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The tool description adds no additional parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (financial ratios), listing key categories (profitability, liquidity, efficiency). It is specific enough but does not explicitly distinguish itself from overlapping siblings like get_key_metrics, which could also contain financial 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?
No guidance is provided on when to use this tool versus alternatives. It does not mention typical use cases, prerequisites, or exclusions, leaving the agent without context for tool selection among similar financial data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_chartC
Get historical price data with flexible time intervals
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date in YYYY-MM-DD format (optional) | |
| from | No | Start date in YYYY-MM-DD format (optional) | |
| symbol | Yes | Stock ticker symbol | |
| interval | Yes | Time interval (1min, 5min, 15min, 30min, 1hour, 4hour) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description states it 'gets' data, implying read-only behavior, but it does not disclose any important behaviors such as default date ranges, pagination limits, rate limits, or the exact format of the returned data. It adds no context beyond what the tool name already conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It gets straight to the point and is appropriately front-loaded. It is efficient and easy to parse, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a fully documented schema and no output schema, the description is too minimal. It does not explain the return format, how default date ranges are handled when from/to are omitted, or any limitations on data resolution. For a simple data-fetching tool, this leaves significant gaps for the agent to understand the tool's complete 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 coverage is 100%, with each parameter having a description. The description's phrase 'flexible time intervals' adds marginal emphasis on the interval parameter but does not add meaning beyond what the schema already provides. The baseline of 3 is appropriate because the schema handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get historical price data with flexible time intervals' uses a clear verb (Get), specifies the resource (historical price data), and indicates flexibility in time intervals. It is distinct from sibling tools like technical indicators or economic data, though it doesn't explicitly differentiate from potential alternatives that might also provide price-related data. Overall, it is clearly understandable but lacks an explicit 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 description provides no guidance on when to use this tool versus other tools. It does not mention alternatives, prerequisites, or scenarios where this tool is preferred. For instance, it doesn't say 'Use this for raw price history; for calculated indicators use get_technical_indicator_*'. Without such context, the agent is left without direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_income_statementA
Get company income statement (annual or quarterly)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 5) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action without disclosing return format, default limit behavior, or what data fields are included. It lacks details on ordering, pagination, or any other behavioral traits beyond what the schema already conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the function and the two period options. It is appropriately front-loaded with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description provides only the minimal information needed to understand the core purpose. It omits details about default limit values, return structure, or how data is organized, but the parameter schema covers the basics adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with descriptions. The description adds no additional meaning beyond what the schema provides, merely restating the period types that are already present in the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving a company income statement, with the ability to specify annual or quarterly periods, distinguishing it from sibling tools like get_balance_sheet or get_cash_flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly specify when to use this tool versus alternatives like get_balance_sheet or get_cash_flow, nor does it mention any prerequisites. Usage context is only implied by the tool name and the focus on income statement data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_tradingB
Get recent insider trading activity for a stock
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transactions to return (default: 100) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions 'recent' without defining the time window, doesn't specify whether the operation is read-only, and doesn't clarify return format or pagination. This is minimal disclosure for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that gets straight to the point. It is front-loaded with the action and contains no unnecessary words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema and no annotations, the description is incomplete. It doesn't specify what 'activity' includes, the default time range for 'recent', or the structure of the returned data. The two parameters are documented, but the overall tool behavior and output are under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions, achieving 100% coverage. The description adds no extra parameter semantics beyond confirming the stock context, so the baseline of 3 applies. No additional value is provided over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and a specific resource ('recent insider trading activity'), scoped to a stock. This distinguishes it from sibling tools like get_technical_indicator_rsi, which focus on other data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need insider trading data for a stock, but it provides no explicit guidance on when to use it instead of alternatives, nor does it mention any exclusions. The context is clear enough to infer usage, but no alternatives or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_institutional_holdersA
Get institutional ownership (13F filings) for a stock
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of holders to return (default: 100) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It reveals the data source (13F filings) but does not describe the return format, pagination, limitations, or update frequency. For a read-only data tool, this is a minimal disclosure and leaves the user guessing about the output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 8-word sentence that front-loads the action and object, with zero wasted words. It is perfectly concise and structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two well-described parameters, the description is nearly complete. The schema's 'limit' parameter description ('Number of holders to return') implies the response contains a list of holders, but the description itself does not explicitly state the return structure. This is a minor gap for a tool of this 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?
The schema description coverage is 100%, with both parameters (symbol and limit) having clear descriptions. The tool description adds no additional parameter meaning beyond what the schema already provides, so it earns the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get'), the resource ('institutional ownership'), and a clarifying detail ('13F filings') for a stock. This unambiguously distinguishes it from sibling tools like get_insider_trading or get_analyst_ratings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when institutional ownership data is needed, but it offers no explicit guidance on when to prefer it over alternatives or any exclusions. There is no mention of situations where 13F data might be unavailable or when another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_key_metricsC
Get key financial metrics (P/E, ROE, debt ratios, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of periods to return (default: 5) | |
| period | No | Period type (annual or quarter) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'get' which implies a read operation, but it doesn't explain whether it returns historical data, how 'key' is defined, or any limitations. No contradiction is present, but the information is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is efficient and without waste. It earns its place, though it could be slightly more structured to include usage context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of many similar sibling tools and the lack of annotations or output schema, the description is not complete enough. It doesn't clarify what distinguishes 'key metrics' from financial ratios, nor what the response shape or period handling is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (symbol, limit, period) with descriptions, giving a baseline of 3. The description adds a little context by naming example metrics (P/E, ROE) but does not explain how parameters affect the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action ('Get') and resource ('key financial metrics'), with examples of what those metrics are. However, it does not distinguish itself from closely related sibling tools like get_financial_ratios, which likely covers similar metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives. It does not mention scenarios, prerequisites, or exclusions relative to get_financial_ratios, get_income_statement, or similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_gainersA
Get stocks with the largest price increases (top gainers)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no additional behavioral disclosure, the description only states the basic output (top gainers). It does not mention whether the data is real-time or delayed, how many stocks are returned, whether it's US or global markets, or any other behavioral traits. The description carries the full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundancy. It immediately states the action and resource, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description provides the core purpose but lacks context on return format, timeframe, or market scope. It is minimally adequate but leaves the agent guessing about specifics such as market days or result limits.
Complex tools with many parameters or behaviors need more documentation. 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 the schema leaves nothing to explain. According to the guidelines, a tool with no parameters receives a baseline score of 4, as there are no parameter semantics to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving stocks with the largest price increases. The phrase 'top gainers' is a well-known market term, and this distinguishes it from sibling tools like get_market_losers and get_most_active.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions or conditions, and there is no comparison with related tools such as get_most_active or get_sector_performance. The agent is left without context for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_losersA
Get stocks with the largest price drops (top losers)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It accurately states the data returned but does not disclose return format, sorting, limits, or other behavioral details. It is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is concise and front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple no-argument market data tool. It clearly states what the tool does, though it could optionally mention the number of results or timeframe. Overall, sufficient for an agent to select and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the schema is trivially complete. The description does not need to explain parameters, and the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: getting stocks with the largest price drops. It uses a specific verb ('Get') and a specific resource ('stocks with the largest price drops'), which distinguishes it from sibling tools like get_market_gainers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for market losers but does not explicitly state when to use this tool versus alternatives like get_most_active or get_market_gainers. There is no clear exclusion or alternative mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_most_activeA
Get most actively traded stocks by volume
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral transparency. It only states the basic action and metric but omits details such as the time period, sort order, number of results, or output format. This leaves the agent uncertain about what exactly will be returned and how the result is structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that is front-loaded and contains no extraneous information. Every word contributes to conveying 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 tool is simple with no parameters and no output schema, so the description is expected to explain return values. It says 'most actively traded stocks by volume' which suggests a list, but does not specify the number of stocks, format, or whether it includes quotes, tickers only, or other data. It is adequately complete for a basic list tool but lacks additional contextual details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are trivially clear. The baseline of 4 applies, and the description does not need to explain any parameter meanings. It adds no unnecessary parameter-related information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get'), a specific resource ('most actively traded stocks'), and a defining criterion ('by volume'). This distinguishes it from sibling tools like get_market_gainers or get_sector_performance, which focus on different market metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the tool (when needing the most actively traded stocks by volume) but offers no explicit guidance on alternatives or exclusions. It does not mention when to prefer this over get_market_gainers or other market data tools, leaving usage context largely inferred from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_targetB
Get analyst price target summary for a stock
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It indicates a read operation, but it does not specify what the 'summary' includes (e.g., consensus, high/low, number of analysts) or how it might differ from get_analyst_estimates. This lack of behavioral context limits the agent's ability to predict the tool's output.
Agents need to know what a tool does to the 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 extraneous information. It is concise and to the point, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), but the description does not explain what a 'price target summary' contains or how it relates to sibling tools like get_analyst_estimates. While adequate for invoking the tool, it leaves selection context incomplete given the lack of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single 'symbol' parameter as 'Stock ticker symbol', and the description reinforces this with 'for a stock'. Since schema coverage is 100%, the description adds no additional parameter semantics beyond the schema, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Get' with a specific resource, 'analyst price target summary', and a scope, 'for a stock'. This clearly distinguishes it from sibling tools like get_analyst_ratings and get_analyst_estimates, making the tool's purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or alternative tools, leaving the agent to infer the appropriate context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteA
Get real-time stock quote for a symbol (e.g., AAPL, TSLA, MSFT)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol (e.g., AAPL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions 'real-time' but does not disclose possible delays, what fields the quote includes (bid/ask, volume, etc.), or any rate limits. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no redundant wording. The examples are parenthetical and do not detract from 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?
For a one-parameter, read-only tool, this description is largely sufficient. However, there is no output schema and the description does not state exactly what the returned quote contains (e.g., price, volume, timestamp), so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the symbol parameter with an example (AAPL). The description adds extra examples (TSLA, MSFT) but no meaningful new semantics. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a specific resource ('real-time stock quote') with concrete ticker examples (AAPL, TSLA, MSFT). This clearly distinguishes it from sibling tools like get_historical_chart or get_technical_indicator_rsi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'real-time stock quote' implies when to use the tool (current price lookups), but there is no explicit guidance on when not to use it or which alternative should be chosen. No exclusions or comparisons to sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_performanceC
Get current sector performance snapshot
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format (optional, defaults to latest) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states a basic action without detailing data source, frequency, time period, or limitations. This offers minimal insight beyond what the tool name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. It is appropriately sized for a simple read operation, though slightly under-specified in terms of content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not explain return values or data structure, but the tool's purpose is fairly self-explanatory. Additional context on which sectors are included or what metrics are shown would improve completeness, but it is adequate for a basic snapshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (date) with a clear description (YYYY-MM-DD, optional, defaults to latest), providing 100% coverage. The tool description adds no additional parameter context, but the schema fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('sector performance snapshot'), clearly identifying the tool's function. It distinguishes from sibling tools that focus on individual stocks or indicators, though it could be more explicit about what constitutes 'sector performance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives like get_market_gainers or get_sp500_constituents. There is no mention of scenarios where this tool is preferable or any exclusionary language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sp500_constituentsA
Get list of S&P 500 index constituents
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description implies a read-only operation ('Get list'), but it does not explicitly state that there are no side effects, nor does it mention data freshness, rate limits, or other behavioral traits. For a simple list retrieval, the description is adequately transparent, though it adds nothing beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 8 words. It contains no filler, clearly states the tool's purpose, and is appropriately sized for a parameterless list retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters and no output schema, the description is mostly complete. It states the primary output ('list of constituents'), but it does not describe the exact return structure (e.g., array of tickers, objects with company names), which could leave some ambiguity. However, given the simplicity and well-known nature of the S&P 500, the description is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter detail to add. Per the rubric, a baseline of 4 is appropriate for 0 params. The description correctly focuses on the output rather than 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 'Get list of S&P 500 index constituents' uses a specific verb ('Get') and a specific resource ('S&P 500 index constituents'), clearly distinguishing it from sibling tools that cover economic indicators, technical indicators, and company-specific data. It leaves no ambiguity about what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need the list of S&P 500 constituents) but does not explicitly state when to use this tool versus alternatives or mention any exclusions. It provides no context about scenarios where this tool is preferred over, for example, get_company_profile or get_quote, though the name and description make the purpose fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_newsA
Get latest news articles for a stock symbol
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of articles to return (default: 10) | |
| symbol | Yes | Stock ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic function, without mentioning article ordering, date range, error handling, or response structure. The word 'latest' hints at recency but adds minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the verb and resource. Every word earns its place; no redundant or vague content exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with clear schema and no annotations, the description covers the essential purpose and parameter hints. However, without an output schema, it could briefly mention the return format or behavior when no news is available to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have detailed descriptions in the schema (symbol: 'Stock ticker symbol'; limit: 'Number of articles to return (default: 10)'). The tool description only restates 'stock symbol' and adds no extra meaning for limit, so the schema carries the semantic load as expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies the resource as 'latest news articles for a stock symbol.' It clearly distinguishes from sibling tools that focus on economic indicators, technical analysis, or financial statements, none of which cover news.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving stock-related news, but provides no explicit guidance on when to use it versus alternatives, nor any exclusions. Given the clear purpose, usage is reasonably inferred, but explicit context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicator_emaB
Get Exponential Moving Average (EMA) technical indicator
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period length (default: 10) | |
| symbol | Yes | Stock ticker symbol | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic function without addressing data source, output format, or limitations such as minimum data requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the tool's purpose, and contains no filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should indicate what the tool returns, but it does not. It also lacks usage context, making it incomplete for a tool with an enum-based timeframe and default period.
Complex tools with many parameters or behaviors need more documentation. 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% coverage, describing symbol, timeframe, and period with defaults. The description itself adds no parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Get Exponential Moving Average (EMA) technical indicator'. It specifies the resource (EMA) and distinguishes from sibling tools like RSI and SMA.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided. The description does not say when to use EMA over other indicators or mention any alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicator_rsiB
Get Relative Strength Index (RSI) technical indicator
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period length (default: 14) | |
| symbol | Yes | Stock ticker symbol | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only says 'Get', which implies a read operation, but does not disclose return format (single value vs series), data frequency, or any limitations. This is a significant gap for a tool with no structured transparency annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with zero wasted words. It is front-loaded with the tool's name and core purpose, meeting the standard of every sentence 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?
With no output schema and a minimal description, the tool lacks enough context for an agent to know what the output will look like or how the optional period parameter affects results. The tool is not complex, but the description is too thin to be fully complete for autonomous 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 baseline is 3. The description adds no additional meaning about parameters—it does not explain period defaults or how timeframe affects results. All semantic weight falls on the schema, which is already sufficient, but the description does not enhance it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and specific resource 'Relative Strength Index (RSI) technical indicator', distinguishing it from sibling tools like SMA and EMA. It is precise and unambiguous about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving RSI but provides no explicit guidance on when to choose this over other indicators or any exclusions. It names the specific indicator but does not contrast with alternatives, leaving usage somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_indicator_smaB
Get Simple Moving Average (SMA) technical indicator
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period length (default: 10) | |
| symbol | Yes | Stock ticker symbol | |
| timeframe | Yes | Timeframe (1min, 5min, 15min, 30min, 1hour, 4hour, 1day) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It only states the basic function and does not disclose return format, data source, or behavioral nuances like how the period parameter affects output. While it does not contradict known behavior, the lack of detail warrants a low score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It immediately states the action and object, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema provides parameter details and the name is self-explanatory, but the description lacks context about response format, usage alternatives, or limitations. With no output schema and no annotations, the description is adequate but incomplete for a full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameter descriptions, including the period default and timeframe enum. The description adds no additional parameter meaning, meeting the baseline of 3 without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the exact resource ('Simple Moving Average (SMA) technical indicator'), clearly distinguishing it from siblings like get_technical_indicator_rsi and get_technical_indicator_ema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 no guidance on when to use this tool versus alternatives such as RSI or EMA. It lacks use cases, prerequisites, or exclusions, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_symbolB
Search for stock symbols by company name or ticker
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (company name or ticker) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the search function but does not disclose return format, match behavior (exact vs partial), pagination, rate limits, or possible errors. This is a significant gap for a 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 description is one sentence with no filler, front-loaded verb and object, and every word adds value. It is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description should explain what the agent can expect from the response. It does not describe the result structure, whether multiple matches are returned, or how to interpret the output. This makes the tool harder to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description ('Search query (company name or ticker)') matches the tool description. The description adds no additional meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'search' with specific resource 'stock symbols' and scope 'by company name or ticker'. This distinguishes it from the get_* sibling tools that retrieve data, as search_symbol is the only tool for finding symbols.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 intended use (finding symbols to use in other calls) is implied by the name and the fact that all sibling tools are data retrievers. However, there is no explicit statement of when to use this tool versus alternatives, nor any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, such as get_quote for real-time snapshots and get_historical_chart for time series. The main potential confusion is between get_key_metrics and get_financial_ratios, which both provide financial ratios but with different scopes; descriptions help clarify but some ambiguity remains.
All 26 tools follow a consistent get_<object> pattern in snake_case, with the verb 'get' always used. Technical indicators are uniformly named as get_technical_indicator_<type>, and all other tools follow the same predictable structure.
With 26 tools, the server exceeds the recommended 25-tool threshold for a coherent tool set. Although the broad financial domain justifies many endpoints, there is some redundancy (e.g., key_metrics vs. financial_ratios) and the sheer number may overwhelm agents.
The tool set provides comprehensive coverage of financial data: real-time quotes, fundamental statements, technical indicators, analyst estimates, insider trading, market statistics, and index constituents. Minor gaps exist, such as no dedicated dividend or split data, but core financial workflows are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Financial Modeling Prep MCP (/stable API; v3 deprecated 2025-08-31).
Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Give your AI deep fundamentals on US public companies — metrics, segments, peers. Free.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables AI assistants to access and analyze financial data including stock information, company fundamentals, and market insights through the Financial Modeling Prep API.100375142TypeScriptApache 2.0
- 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.375Apache 2.0
- FlicenseAqualityFmaintenanceProvides financial data from Financial Modeling Prep for AI-assisted investment research, including company profiles, financial statements, and analyst ratings. It features high-level workflow tools for market analysis and atomic tools for deep dives into valuation and institutional ownership.21
- AlicenseNot gradedqualityAmaintenanceProvides real-time stock market data for Claude Desktop and MCP-compatible clients, enabling natural language queries for quotes, historical prices, company profiles, financial statements, analyst ratings, comparisons, news, options, holdings, dividends, estimates, symbol search, and market status.19417MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/houtini-ai/fmp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server