Skip to main content
Glama

fmp-mcp

Financial intelligence for your AI agent — powered by live market data.

Give Claude (or any MCP-compatible AI) the ability to analyze stocks, screen markets, compare peers, read earnings calls, and track sector rotations — all grounded in real financial data from Financial Modeling Prep.

This isn't a raw API wrapper. Each tool is purpose-built for a specific analytical task, composing multiple data sources into structured, analysis-ready outputs designed for AI consumption.

Tool surface below was verified against fmp/server.py on 2026-04-30. The repo build exposes 20 MCP tools; the two estimate-revision tools require the estimates extra plus database access for useful live results.

What your AI can do

Market Intelligence

  • get_market_context — One-call market snapshot: indices, sectors, gainers/losers, economic events

  • get_sector_overview — Sector and industry performance with P/E valuations

  • get_news — Stock-specific or broad market news

  • get_events_calendar — Earnings, dividends, splits, and IPO calendars

  • get_economic_data — Economic indicators and high-impact event tracking

Fundamental Analysis

  • fmp_fetch — Direct access to 60+ financial data endpoints (income statements, balance sheets, cash flows, key metrics, and more)

  • fmp_market_cap_check — Compare current market cap against the latest annual filing value

  • compare_peers — Side-by-side peer comparison across 12 financial ratios

  • get_earnings_transcript — Parsed earnings calls with speaker attribution and Q&A sections

Stock Screening & Discovery

  • screen_stocks — Screen by sector, market cap, beta, dividend, volume, and more

  • get_institutional_ownership — Institutional holder analytics and ownership trends

  • get_insider_trades — Insider transaction flow and statistics

  • get_etf_holdings — ETF/fund holdings, sector and country allocation

Technical Analysis

  • get_technical_analysis — Composite signals from 7 indicators (SMA, EMA, RSI, MACD, Bollinger, ADX, Williams %R) with buy/sell scoring

Analyst Sentiment

  • get_estimate_revisions — Historical EPS/revenue estimate revision trends

  • screen_estimate_revisions — Screen for estimate momentum across a universe of stocks

Data Discovery

  • fmp_list_endpoints — Browse all 60+ available data endpoints by category

  • fmp_describe — Get parameter documentation for any endpoint

  • fmp_search — Search for companies by name or ticker

  • fmp_profile — Company profile with sector, industry, and key stats

Related MCP server: Financial Modeling Prep MCP Server

Install

pip install fmp-mcp

Optional estimate-revision tools (requires PostgreSQL):

pip install "fmp-mcp[estimates]"

Configuration

Set your API key:

export FMP_API_KEY="your_key"

Optional settings:

  • FMP_CACHE_DIR — Custom cache directory (default: ~/.cache/fmp-mcp/)

  • FMP_CACHE_MAXSIZE — Max in-memory cache entries (default: 200)

Run

fmp-mcp

Or register it with Claude Code from the repo root:

claude mcp add fmp-mcp --scope user \
  -- python3 -m fmp.server

You can also use a generic MCP config:

{
  "mcpServers": {
    "fmp-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["fmp-mcp"],
      "env": { "FMP_API_KEY": "your_key" }
    }
  }
}

How it's different

Raw API wrapper

fmp-mcp

Approach

Expose every endpoint 1:1

Purpose-built analytical tools

Output

Raw JSON, dozens of fields

Structured, summarized, analysis-ready

Composition

One API call per tool

Multiple sources stitched together

AI-optimized

Generic descriptions

Tool descriptions and schemas designed for LLM tool selection

Caching

None

Per-endpoint disk caching with configurable refresh strategies

Requirements

  • docs/reference/FMP_ENDPOINTS.md — registered endpoint catalog

  • docs/reference/MCP_SERVERS.md — server registration and troubleshooting

Available Tools

21 tools
compare_peersA

Compare a stock against its peers on key financial ratios.

Fetches the peer group for a stock and builds a side-by-side comparison of financial ratios including valuation, profitability, margins, and leverage. By default, auto-discovery is operating-peer oriented. For dividend payout, buyback, and shareholder-return questions, pass peer_context="capital_allocation" or metric="dividend_payout" so the peer set favors mature dividend-paying capital-allocation comps over no-dividend growth operating peers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of peers to include (default: 5, max: 10).
peersNoOptional comma-separated peer tickers (e.g., "MSFT,GOOGL,META"). If not provided, peers are auto-discovered via FMP.
formatNoOutput format: - "summary": Comparison table with key metrics (P/E, P/B, P/S, ROE, ROA, gross/operating/net margin, debt/equity, current ratio, dividend yield, PEG ratio) - "full": All TTM ratios for each peer (60+ metrics)summary
metricNoOptional metric hint used to infer peer_context.
symbolYesStock symbol to compare (e.g., "AAPL", "MSFT").
fiscal_yearNoOptional fiscal year for supported annual metric comparisons. For "FY24", pass 2024. Currently supports metric="dividend_payout_ratio".
peer_contextNoOptional peer-selection context. Use "capital_allocation" for payout ratio, dividend, buyback, or shareholder-return metrics.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description must fully disclose behavior. It describes that the tool fetches peer groups (auto-discovery) and builds a side-by-side comparison, and notes the default operating-peer orientation. However, it omits details about whether it mutates data, required permissions, rate limits, or side effects, which given the absence of annotations, leaves some gaps.

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

Conciseness5/5

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

The description is concise (7 sentences) and well-structured: it opens with the primary purpose, then details the output, and ends with specific usage guidelines. Every sentence adds value, and the critical information (purpose and key usage notes) is front-loaded.

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

Completeness4/5

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

Given the tool's complexity (7 parameters), the presence of an output schema, and no annotations, the description covers the main behavior (peer comparison, ratio types) and provides specific usage guidance for edge cases (dividend/buyback). It might miss explaining the output format beyond the summary/full distinction, but the output schema likely handles that. Overall, it is sufficiently complete.

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

Parameters4/5

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

Schema coverage is 100% (all 7 parameters described in schema), but the description adds valuable context beyond what the schema provides. For example, it explains that peer_context='capital_allocation' favors mature dividend-paying comps and that metric hints can infer peer_context. This extra guidance helps agents use parameters correctly.

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

Purpose5/5

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

The description starts with a clear verb-resource pair: 'Compare a stock against its peers on key financial ratios.' It specifies the action (compare), the object (stock against peers), and the content (financial ratios including valuation, profitability, margins, leverage). This distinguishes it from sibling tools like fmp_profile (single stock) or get_market_context (broader market).

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

Usage Guidelines4/5

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

The description provides specific guidance on when to use the peer_context='capital_allocation' or metric='dividend_payout' for dividend/buyback questions, and notes that default auto-discovery is operating-peer oriented. While it gives clear context, it does not explicitly state when not to use this tool or name alternatives among siblings.

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

fmp_describeA

Get detailed documentation for an FMP endpoint.

Discovery tool to understand what parameters an endpoint accepts. Use this before calling fmp_fetch to know required vs optional params.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointYesName of the endpoint (e.g., "income_statement", "historical_price_adjusted").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states it's a discovery tool returning documentation, implying safe read-only behavior, but does not explicitly mention no side effects, speed, or access requirements. Slightly more detail would enhance transparency.

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

Conciseness5/5

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

Three short, front-loaded sentences with no fluff. Each sentence adds value: purpose, role as discovery tool, and usage tip.

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

Completeness5/5

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

Given the output schema exists, return values need not be explained. The description fully covers purpose, usage, and context for a simple documentation tool. It is complete and self-sufficient.

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

Parameters4/5

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

Schema coverage is 100% for the single endpoint parameter, and the description adds examples like 'income_statement', 'historical_price_adjusted', which clarify naming conventions beyond the schema's generic description.

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

Purpose5/5

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

The description clearly states it 'Get detailed documentation for an FMP endpoint' and positions it as a discovery tool. It distinguishes from sibling tools like fmp_fetch (which fetches data) and fmp_list_endpoints (which lists endpoints).

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

Usage Guidelines5/5

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

Explicitly advises 'Use this before calling fmp_fetch to know required vs optional params', providing clear when-to-use guidance. The sibling tool list further aids decision-making.

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

fmp_fetchA

Fetch data from any registered FMP endpoint.

This is the primary data fetching tool. Use fmp_list_endpoints to discover available endpoints, and fmp_describe to see required parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFiling type filter (for sec_filings endpoint, e.g., "10-K", "10-Q").
yearNoFiscal year (for earnings_transcript endpoint).
limitNoMaximum number of records to return.
queryNoSearch query (for search endpoint).
outputNoOutput mode: inline records or CSV file path.inline
periodNoReporting period for financial statements ("annual" or "quarter").
symbolNoStock symbol (e.g., "AAPL", "MSFT"). Required for most endpoints.
columnsNoOptional columns filter as JSON array or comma-separated string.
quarterNoQuarter 1-4 (for earnings_transcript endpoint).
to_dateNoEnd date for price/rate data (YYYY-MM-DD format).
endpointYesName of the FMP endpoint. Common endpoints: - income_statement: Income statement data. `date` is period-end/as-of date. - balance_sheet: Balance sheet data. `date` is period-end/as-of date. - cash_flow: Cash flow statement data. `date` is period-end/as-of date. - key_metrics: Financial ratios and metrics. `date` is period-end/as-of date; `marketCap` is period-aligned, not current. - key_metrics_ttm: TTM metrics; FMP does not surface a period-end column. - historical_price_eod: Raw end-of-day prices and FX pair closes. For historical FX, use symbols such as USDTWD with from_date/to_date, then label basis as management_guidance_fx_assumption when guidance provides the FX rate or fmp_historical_fx_exact_date / fmp_historical_fx_previous_close when using FMP daily closes. - historical_price_adjusted: Adjusted stock prices - dividends: Dividend history - analyst_estimates: Analyst EPS/revenue estimates - price_target: Analyst price targets - earnings_transcript: Earnings call transcripts - sec_filings: SEC filing metadata
from_dateNoStart date for price/rate data (YYYY-MM-DD format).
use_cacheNoWhether to use cached data (default: True). Set False for fresh data.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Fetch data' but does not disclose read-only nature, side effects, rate limits, error behavior, or any other behavioral traits. The minimal description leaves significant gaps.

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

Conciseness5/5

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

Two sentences, zero wasted words. Front-loaded with the core action and immediately provides usage guidance. Highly concise and structured.

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

Completeness2/5

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

Despite 13 parameters and an output schema, the description is extremely brief. It does not explain how to construct queries, interpret results, or handle common scenarios. It relies too heavily on other tools and schema, making it incomplete for a primary tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it relies entirely on the schema for parameter details. The mention of fmp_describe is about discovery, not semantics.

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

Purpose5/5

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

Description clearly states 'Fetch data from any registered FMP endpoint' with a specific verb and resource. It distinguishes from sibling tools fmp_list_endpoints and fmp_describe by positioning itself as the primary fetching tool, which is explicit.

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

Usage Guidelines4/5

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

Explicitly instructs to use fmp_list_endpoints for discovery and fmp_describe for parameters. Provides clear context for when to use this tool vs alternatives, though no explicit when-not scenarios are mentioned.

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

fmp_list_endpointsA

List available FMP data endpoints.

Discovery tool to see what data is available. Use this first to understand what endpoints exist before fetching data.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category. Available categories: - prices: Historical stock prices - treasury: Treasury rates - dividends: Dividend history - search: Company search and profiles - fundamentals: Financial statements (income, balance, cash flow) - analyst: Analyst estimates and price targets - transcripts: Earnings call transcripts - filings: SEC filing metadata

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It indicates the tool is a read-only discovery tool, which is safe, but does not detail behavior like what happens without a category filter (likely lists all). Output schema exists but is not referenced.

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

Conciseness5/5

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

Two short, front-loaded sentences with zero waste. Every word serves a purpose.

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

Completeness5/5

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

For a simple listing tool with one optional parameter and an output schema, the description is complete. It covers purpose, usage, and discovery context without missing critical information.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The tool description adds no additional meaning to the 'category' parameter beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool lists available FMP endpoints, using specific verb 'list' and resource 'endpoints'. It positions itself as a discovery tool, distinguishing from sibling data-fetching tools like fmp_fetch.

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

Usage Guidelines5/5

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

Explicitly states to 'Use this first to understand what endpoints exist before fetching data,' providing a clear when-to-use and implicitly when-not-to-use (when actual data is needed, use other tools).

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

fmp_market_cap_checkA

Compare current profile market cap against latest annual key_metrics market cap.

Use this when fmp_profile.mktCap and fmp_fetch(endpoint="key_metrics") marketCap values appear to disagree. The profile value is a current snapshot; the latest annual key_metrics value is aligned to that row's period-end date.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol (e.g., "AAPL", "MSFT", "GOOGL").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description fully carries the burden. It discloses that the comparison is between a current snapshot and a period-end value, adding context about the nature of the discrepancy. No side effects mentioned; appropriate for a read-only comparison.

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

Conciseness5/5

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

Two concise sentences: first states purpose, second gives usage guidance. No wasted words, front-loaded.

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

Completeness5/5

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

For a simple tool with one parameter and an output schema, the description is complete: it explains the tool's purpose, when to use it, and the difference between the compared values. No gaps.

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

Parameters3/5

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

Schema description coverage is 100% (single parameter 'symbol' with examples). The description adds no additional meaning beyond what the schema already provides; baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Compare current profile market cap against latest annual key_metrics market cap') with specific resources and distinguishes from siblings by naming the exact endpoints.

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

Usage Guidelines4/5

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

Provides explicit context when to use the tool (when fmp_profile.mktCap and fmp_fetch endpoint marketCap values disagree) and explains the difference between the two values, but does not explicitly state when not to use or list alternatives.

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

fmp_profileA

Get detailed company profile information as a current FMP /profile snapshot.

Returns comprehensive company data including sector, industry, description, CEO, employees, website, and key financial metrics. The profile mktCap field is price times shares as of the API call time, or up to 1 week stale when served from cache. FMP does not include a snapshot timestamp on this endpoint. For historical period-aligned market cap, use fmp_fetch(endpoint="key_metrics", period="annual") and read the date field on each row.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoStock symbol (e.g., "AAPL", "MSFT", "GOOGL").
tickerNoAlias for symbol, accepted for consistency with other ticker-keyed tools.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description carries full burden. It discloses that mktCap may be stale (up to 1 week from cache) and that no timestamp is included. This is transparent about data freshness and potential misleading values.

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

Conciseness5/5

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

The description is concise with two focused paragraphs. The first states purpose and return fields; the second addresses data freshness and provides an alternative. No redundant or unnecessary sentences.

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

Completeness5/5

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

With an output schema present, the description doesn't need to detail return values. It covers the main behavioral traits (data freshness, snapshot nature) and provides an alternative for historical data. Complete for a profile-lookup tool.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds that ticker is an alias for symbol, which is already implied by the schema. No additional semantic value beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it gets 'detailed company profile information' and lists specific fields (sector, industry, description, CEO, employees, website, key financial metrics). It distinguishes from siblings by noting an alternative for historical market cap.

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

Usage Guidelines5/5

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

The description explicitly gives when-to-use guidance: for historical period-aligned market cap, use fmp_fetch instead. It also warns about potential staleness of mktCap, helping the agent decide if this tool is appropriate.

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

get_earnings_transcriptA

Parse and navigate an earnings call transcript.

Splits the raw transcript into structured sections: prepared remarks and Q&A with per-speaker segments and grouped Q&A exchanges.

IMPORTANT — default mode is summary (metadata only). This protects your context window. Full text is returned only when you explicitly request format="full".

Recommended workflow:

  1. Call with default format="summary" to see the speaker list, word counts, and exchange count (costs ~1 KB of context)

  2. Identify the section or speaker you need

  3. Call again with format="full" and specific filters (section, filter_role, filter_speaker) to read only that content

  4. Each text field is capped at max_words (default 3000). Set max_words=None to remove the cap (use with caution). Note: If format="full" is used WITHOUT any filters (no section, filter_role, or filter_speaker), a bounded preview is returned instead (first 3 segments per section, 500 words each, 2 exchanges). Add at least one filter to get full content with max_words control.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYesFiscal year of the earnings call (e.g., 2024).
formatNoOutput format: - "summary": Metadata only — speaker list, word counts, exchange count. No text content. This is the DEFAULT. Use this first to scout the transcript before reading full text. - "full": Text content for all matching segments, truncated to max_words per field.summary
outputNoOutput mode: - "inline": Return content in MCP response (default). - "file": Write full untruncated markdown to disk and return metadata + absolute file_path.inline
symbolYesStock symbol (e.g., "AAPL", "MSFT", "NVDA").
quarterYesQuarter 1-4.
sectionNoWhich section to return: - "all": Both prepared remarks and Q&A (default) - "prepared_remarks": Management presentations only - "qa": Q&A session onlyall
max_wordsNoMaximum words per text field when format="full". Default 3000. Set to None for unlimited (use with caution — CEO prepared remarks can exceed 5K words). Ignored when format="summary" or output="file".
filter_roleNoFilter to segments by role: - "CEO", "CFO", "COO", "CTO": C-suite executives - "Analyst": Sell-side analysts asking questions - "IR": Investor Relations host - "Operator": Call operator
filter_speakerNoFilter to segments by this speaker (substring match, e.g., "Cook" matches "Tim Cook"). Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

No annotations exist, so the description carries full responsibility. It thoroughly discloses key behaviors: default format is summary to protect context, full mode returns bounded preview when unfiltered, max_words cap, and output mode differences (inline vs file). This covers potential pitfalls and resource usage.

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

Conciseness4/5

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

The description is well-structured with bullet points and clear sections, but it is somewhat lengthy. The recommended workflow is stated in two places (paragraph form and list), introducing minor redundancy. Still, it is easy to scan and logically ordered.

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

Completeness5/5

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

Given the 9 parameters and the existence of an output schema, the description covers all critical aspects: parameter explanations, behavioral nuances, workflow guidance, and trade-offs. It prepares the agent for complex usage scenarios like avoiding massive context consumption.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds significant value beyond parameter names and types. It explains default values, interactions (e.g., max_words ignored in summary or file mode), filtering behavior (substring match, case-insensitive), and the bounded preview logic. This rich contextual information is essential for correct usage.

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

Purpose5/5

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

The description clearly identifies the tool as parsing and navigating earnings call transcripts, explaining the structured output (prepared remarks and Q&A). It distinguishes itself from sibling tools, which are other financial data retrieval tools, by focusing specifically on earnings transcript content and navigation.

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

Usage Guidelines4/5

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

The description provides a step-by-step recommended workflow: start with summary to scout, then use full with filters. It warns about context window size, explains the bounded preview behavior when no filters are provided, and describes when to use inline vs file output. However, it does not explicitly state when not to use this tool or compare to alternatives.

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

get_economic_dataA

Get economic indicators or upcoming economic events.

Fetches macroeconomic data from FRED via FMP. Use indicator mode for time series data (GDP, CPI, unemployment, etc.) or calendar mode for upcoming/recent economic releases.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoData type to fetch: - "indicator": Economic indicator time series (requires indicator_name) - "calendar": Upcoming economic events with forecasts and actualsindicator
limitNoOptional cap for indicator mode (most recent N rows).
formatNoOutput format: - "summary": Latest value, trend, and key context - "full": Complete time series or event listsummary
outputNoOutput mode for indicator full data: inline or file.inline
countryNoCountry filter for calendar mode (default: "US").US
to_dateNoEnd date in YYYY-MM-DD format (optional).
from_dateNoStart date in YYYY-MM-DD format (optional).
use_cacheNoUse cached data when available (default: True).
indicator_nameNoIndicator to fetch (required for indicator mode). Available: GDP, realGDP, CPI, inflationRate, federalFunds, unemploymentRate, totalNonfarmPayroll, initialClaims, consumerSentiment, retailSales, durableGoods, industrialProductionTotalIndex, housingStarts, totalVehicleSales, smoothedUSRecessionProbabilities, 30YearFixedRateMortgageAverage, tradeBalanceGoodsAndServices.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the data source (FRED via FMP) and output modes, but does not disclose caching behavior, rate limits, or mutable side effects. The description is adequate but could be improved.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose. It is concise and well-structured, with no redundant information.

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

Completeness4/5

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

Given the tool's complexity (9 parameters) and the presence of an output schema, the description provides a sufficient overview. It explains the two modes and mentions output formats, but lacks details on prerequisites or error handling. Still, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema, e.g., listing available indicators (partially) which is already in the schema. It provides a high-level overview but does not significantly enhance understanding of parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's purpose: fetching economic indicators or events. It explicitly names the two modes and distinguishes from sibling tools (e.g., no other tool focuses on economic data).

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use each mode: 'Use indicator mode for time series data... or calendar mode for upcoming/recent economic releases.' It does not explicitly mention when not to use or list alternatives, but the context is clear and sufficient.

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

get_estimate_revisionsA

Get estimate revision history for one ticker and fiscal period.

Reads snapshots through the hosted estimates API backed by the monthly collection job. If fiscal_date is omitted, defaults to the nearest available upcoming fiscal period for the ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoEstimate horizon: - "quarter": Quarterly estimates (default) - "annual": Annual estimatesquarter
tickerYesTicker symbol (e.g., "AAPL", "MSFT").
fiscal_dateNoFiscal period date (YYYY-MM-DD). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context such as the data source ('hosted estimates API backed by the monthly collection job') and default behavior for omitted 'fiscal_date'. Without annotations, these details are valuable for understanding data freshness and default handling.

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

Conciseness5/5

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

The description is two sentences front-loaded with the core purpose. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given that an output schema exists, the description need not explain return values. It covers purpose, data source, and default behavior. Minor omission: could mention data ordering or pagination, but overall adequate for a simple retrieval tool.

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

Parameters4/5

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

With 100% schema description coverage, the baseline is 3. The description adds context by explaining that omitting 'fiscal_date' defaults to the nearest upcoming fiscal period, which is not in the schema description.

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

Purpose5/5

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

The description clearly states the tool 'Get[s] estimate revision history for one ticker and fiscal period.' It specifies the verb, resource, and scope, distinguishing it from sibling tools like 'screen_estimate_revisions' which likely screen across multiple entities.

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

Usage Guidelines3/5

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

The description implies usage for a specific ticker and period but does not explicitly state when to use or avoid this tool, nor does it mention alternatives beyond the implied distinction from screening tools.

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

get_etf_holdingsC

Get ETF/fund composition across holdings, sector/country weights, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows in summary mode for holdings/exposure/disclosure (default: 25).
formatNoOutput format: - "summary": Normalized section outputs - "full": Raw endpoint payloadssummary
outputNoOutput mode for full holdings section: inline or file.inline
symbolYesETF symbol (e.g., "SPY", "QQQ", "VTI").
includeNoOptional section subset as JSON array or comma-separated string. Valid sections: "holdings", "sectors", "countries", "info", "exposure", "disclosure". Default: all sections.
use_cacheNoUse cached data when available (default: True).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavior like caching, rate limits, or read-only nature. It only states what is retrieved, not how it behaves (e.g., no mention of live vs delayed data, or that it supports caching via the use_cache parameter). Minimal behavioral context.

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

Conciseness4/5

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

Single sentence, 13 words, no fluff. Very concise, but it sacrifices detail. Could add a second sentence for usage guidance while remaining concise.

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

Completeness2/5

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

Despite having an output schema (so return values need no explanation), the description lacks coverage of behavioral aspects (no annotations) and does not explain how parameters like limit, format, and output affect results. Incomplete for a 6-parameter tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no extra parameter meaning beyond the schema. Mentioning 'holdings, sector/country weights, and metadata' aligns with the include parameter options, but does not enrich semantics.

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

Purpose4/5

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

The description clearly states it retrieves ETF/fund composition including holdings, sector/country weights, and metadata. This distinguishes it from siblings like fmp_profile (company profile) and get_sector_overview (sector-level data). However, it does not differentiate from fmp_fetch or fmp_search, which could also retrieve ETF data.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. For instance, it does not explain when to prefer this over fmp_fetch or get_market_context. The description simply states the action without usage context.

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

get_events_calendarA

Fetch upcoming corporate events: earnings, dividends, splits, or IPOs.

Can show market-wide calendars or filter to specific symbols. Useful for tracking upcoming catalysts and corporate actions. Date ranges wider than 90 days are split into FMP-compatible windows internally. Note: For portfolio-aware auto-fill, use get_portfolio_events_calendar on portfolio-reads-mcp.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return (max: 500). If omitted, defaults to 20 for unfiltered event_type="all", otherwise 50. Applied after symbol filtering and date sorting.
formatNoOutput format: - "summary": Key event info (date, symbol, type-specific fields) - "full": Complete event data from FMPsummary
symbolsNoComma-separated tickers to filter results (e.g., "AAPL,MSFT").
to_dateNoEnd date in YYYY-MM-DD format (default: today + 30 days). Requests may span more than 90 days; the tool splits them internally because FMP calendar endpoints accept max 90-day windows per call.
from_dateNoStart date in YYYY-MM-DD format (default: today).
event_typeNoCalendar type: - "earnings": Earnings dates with EPS estimates (default) - "dividends": Ex-dividend dates and amounts - "splits": Stock split dates - "ipos": Upcoming IPO dates - "all": All event types merged and sorted by dateearnings

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses internal date range splitting but omits authentication, rate limits, and read-only nature. Adequate but not comprehensive.

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

Conciseness5/5

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

Five sentences, each serving a purpose: purpose statement, capability, usefulness, behavioral note, and alternative tool. No redundancy, front-loaded.

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

Completeness4/5

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

Complex tool with 6 params and no annotations; description covers core functionality, usage alternatives, and a key behavioral quirk. Output schema exists, so return format is not needed. Missing error handling or authorization hints, but overall sufficient.

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

Parameters3/5

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

Input schema covers all 6 parameters with full descriptions (100%). The description adds only the date splitting context for from_date/to_date, which is a minor addition beyond the schema.

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

Purpose4/5

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

Clearly states it fetches corporate events (earnings, dividends, splits, IPOs) with symbol filtering. However, it does not distinguish itself from sibling tools like get_earnings_transcript, which might overlap in functionality.

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

Usage Guidelines4/5

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

Provides a clear alternative (get_portfolio_events_calendar) for portfolio-aware use, and notes date range splitting. Lacks guidance on when to use vs other event-related siblings.

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

get_insider_tradesB

Get insider buying/selling activity and summary statistics for a stock.

Fetches recent insider transactions and aggregate insider trading stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax trade rows to return in summary mode (default: 20).
formatNoOutput format: - "summary": Normalized recent trades and key stats - "full": Raw endpoint payloadssummary
symbolYesStock symbol (required, e.g., "AAPL").
use_cacheNoUse cached data when available (default: True).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It mentions fetching recent transactions and aggregate stats but does not clarify recency limits, caching behavior, or potential side effects beyond what is in the schema.

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

Conciseness4/5

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

The description is concise with two sentences. The first sentence clearly states purpose, though there is slight redundancy between the two sentences.

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

Completeness3/5

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

Given the tool has 4 parameters and an output schema, the description covers the core functionality. However, it lacks context on when to use different format options or how caching works, making it minimally adequate.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter has a description in the schema. The tool description does not add extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it retrieves insider buying/selling activity and summary statistics for a stock, specifying the resource and action. It distinguishes itself from sibling tools like get_institutional_ownership by focusing specifically on insider trades.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_institutional_ownership or fmp_fetch. There is no mention of prerequisites, optimal contexts, or exclusions.

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

get_institutional_ownershipA

Get institutional ownership analytics for a stock.

Combines institutional holder-level data with aggregate ownership summary metrics to show which institutions are accumulating or reducing positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoOptional filing year filter.
limitNoMax holder rows to return in summary mode (default: 20).
formatNoOutput format: - "summary": Normalized top holders and key ownership summary - "full": Raw endpoint payloadssummary
symbolYesStock symbol (e.g., "AAPL", "MSFT").
quarterNoOptional filing quarter filter (1-4).
use_cacheNoUse cached data when available (default: True).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions combining data types but omits details on caching (use_cache param), rate limits, authentication, error handling, or output structure beyond 'summary' and 'full' formats. This leaves significant gaps.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence gives the primary purpose, and the second adds relevant detail. Information is front-loaded and efficiently presented.

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

Completeness3/5

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

Given 6 parameters and an output schema, the description adequately states what the tool returns but lacks guidelines on when to use it and behavioral details. It is functional but incomplete for an agent needing full context.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions, so baseline is 3. The tool description adds context about combining holder-level and aggregate data, which relates to the format parameter, but does not provide additional meaning beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the tool retrieves institutional ownership analytics for a stock, combining holder-level data with aggregate metrics. It names a specific resource and verb, and its purpose is distinct from siblings like get_etf_holdings or fmp_profile.

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

Usage Guidelines3/5

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

The description implies usage for institutional ownership data but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_etf_holdings for ETF data). No exclusions or conditions are mentioned, making the guidance minimal.

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

get_market_contextA

Get a one-call market snapshot across indices, sectors, movers, and events.

Useful for quick "what's happening in the market?" checks. Fetches major index moves, sector heatmap, top gainers/losers, most active names, and upcoming high-impact economic events.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: - "summary": Curated top items (top 5 movers/events) - "full": Same normalized fields with no item limitssummary
includeNoOptional section filter as JSON array or comma-separated string. Available sections: - "indices": S&P 500, Dow Jones, Nasdaq, Russell 2000 - "sectors": Sector performance heatmap - "gainers": Top daily gainers - "losers": Top daily losers - "actives": Most active by volume - "events": Upcoming high-impact economic events Default: all sections.
use_cacheNoUse cached data when available (default: True).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses what data is fetched (indices, sectors, movers, events) and parameter effects (format limits, section filtering, caching). Lacks details on data staleness or error handling.

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

Conciseness5/5

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

Two short, front-loaded paragraphs. First sentence conveys purpose; second paragraph adds operational detail. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given 3 optional parameters, no required inputs, and presence of output schema, the description sufficiently covers tool purpose and parameter usage. Minor gap: no mention of performance or data currency.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description reaffirms parameter effects already in schema (e.g., format controls item limits, include selects sections), adding minimal extra meaning.

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

Purpose5/5

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

Description states 'Get a one-call market snapshot across indices, sectors, movers, and events', clearly specifying the verb, resource, and scope. It distinguishes from siblings (e.g., get_news, get_sector_overview) by offering a comprehensive overview.

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

Usage Guidelines4/5

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

Explicitly says 'Useful for quick "what's happening in the market?" checks', indicating when to use the tool. However, it does not mention when not to use or provide explicit alternatives among siblings.

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

get_newsA

Fetch news articles for stocks or the broad market.

Three modes: stock-specific news, general market news, and company press releases. Requires symbols for stock and press modes. Note: For portfolio-aware auto-fill, use get_portfolio_news on portfolio-reads-mcp.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoNews source: - "stock": Per-symbol news articles (default) - "general": Broad market news (symbols ignored) - "press": Official company press releasesstock
limitNoMax articles to return, 1-50 (default: 10).
formatNoOutput format: - "summary": Headline, date, source, snippet per article - "full": Complete article datasummary
qualityNoSource quality filter (default: "trusted"): - "trusted": Wire services + credible journalism (default) - "wire": Official press releases only (BusinessWire, PR Newswire, etc.) - "journalism": Credible financial journalism only (WSJ, Bloomberg, etc.) - "all": No filtering — includes all sourcestrusted
symbolsNoComma-separated tickers (e.g., "AAPL,MSFT"). Required for "stock" and "press" modes.
to_dateNoEnd date in YYYY-MM-DD format (optional).
from_dateNoStart date in YYYY-MM-DD format (optional).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so the description carries the full burden. It discloses that symbols are required for stock and press modes, and that general mode ignores symbols. While it doesn't cover rate limits or error handling, the operational behavior (modes and parameter dependencies) is clear. No contradictions with annotations (none exist).

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

Conciseness5/5

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

Extremely concise and well-structured: a one-sentence purpose, a bulleted list of modes, and a note about an alternative tool. Every sentence adds value and the description is front-loaded with the most important information.

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

Completeness5/5

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

Given the presence of an output schema (stated in context signals), the description does not need to explain return values. With 7 parameters fully described in the schema, the description covers usage modes and alternatives, providing sufficient context for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds minimal extra meaning beyond the schema; it summarizes modes and symbol requirements, but the schema already documents all parameters comprehensively with detailed descriptions.

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

Purpose5/5

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

The description clearly states 'Fetch news articles for stocks or the broad market' and enumerates three specific modes (stock-specific, general market, company press releases). It distinguishes itself from the sibling tool get_portfolio_news by noting the portfolio alternative.

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

Usage Guidelines5/5

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

Explicitly describes the three modes and when to use each, including the requirement of symbols for stock and press modes. Provides a direct alternative tool (get_portfolio_news) for portfolio-aware auto-fill, guiding the agent away from this tool in that context.

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

get_price_performance_windowsA

Get compact benchmark-relative price-performance windows.

Use this for historical-coincidence evidence when a workflow needs 3-5 outperformance/underperformance periods. It fetches adjusted historical prices for the stock and benchmark, aligns common trading dates, computes rolling returns, and returns only the largest non-overlapping windows. This avoids raw historical-price CSV parsing for ordinary stock-move analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock symbol to analyze.
to_dateNoOptional end date (YYYY-MM-DD). Defaults to today.
directionNoboth, outperformance, or underperformance.both
from_dateNoOptional start date (YYYY-MM-DD). Defaults to lookback_years ago.
use_cacheNoWhether to use cached FMP data.
max_windowsNoMaximum windows to return (1-10).
window_daysNoCommon-trading-day window length for each return slice.
lookback_yearsNoDefault lookback when from_date is omitted.
benchmark_symbolNoBenchmark symbol for relative returns (default SPY).SPY

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided; description explains internal steps (fetch, align, compute, filter) but omits auth or rate limits, which are not critical for this read-only tool.

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

Conciseness5/5

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

Three concise sentences front-loading purpose, usage, and internal steps with no waste.

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

Completeness4/5

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

Describes algorithm and output (non-overlapping windows); output schema exists, so additional detail is not needed.

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

Parameters3/5

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

Schema coverage is 100%; description adds context on overall algorithm but not parameter-specific details beyond schema.

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

Purpose5/5

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

Description clearly states the tool fetches adjusted prices, aligns dates, computes rolling returns, and returns non-overlapping windows, distinguishing it from raw CSV parsing.

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

Usage Guidelines4/5

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

Explicitly recommends use for historical-coincidence evidence needing 3-5 periods, but does not specify when not to use or compare to siblings.

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

get_sector_overviewA

Get sector or industry performance and valuation overview.

Combines daily performance snapshot and P/E ratio snapshot into a unified heatmap view. Supports both sector-level and industry-level granularity.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoSnapshot date in YYYY-MM-DD format (optional, defaults to latest).
levelNoGranularity level: - "sector": GICS sector level (default, ~11 sectors) - "industry": More granular industry levelsector
formatNoOutput format: - "summary": Sector heatmap with performance + valuation - "full": Complete raw data from all endpointssummary
sectorNoFilter to one sector or industry (e.g., "Technology", "Energy", "Healthcare"). If not provided, returns all sectors/industries.
symbolsNoOptional symbols as JSON array or comma-separated string for per-stock P/E comparison mode. Example: '["AAPL","MSFT","NVDA"]' or "AAPL,MSFT,NVDA". Cannot be combined with `sector`.
use_cacheNoUse cached data when available (default: True).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It mentions combining daily performance and P/E ratio into a heatmap and supports granularity. However, it does not disclose data source, staleness, caching behavior, or limitations. The use_cache parameter is in the schema but not highlighted in the description.

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

Conciseness5/5

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

The description is two sentences, concise and front-loaded. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the presence of an output schema and full parameter documentation, the description is mostly complete. It explains the tool's purpose and output format. However, it could briefly mention that date defaults to latest and that sector/symbols are filters.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; it only provides a general overview of the output. No specific parameter details are elaborated in the description.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'sector or industry performance and valuation overview'. It specifies that it combines daily performance and P/E ratio into a heatmap, distinguishing it from sibling tools like get_price_performance_windows or get_market_context.

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

Usage Guidelines3/5

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

The description implies usage for obtaining a unified sector/industry heatmap, but does not explicitly state when to use this tool versus alternatives (e.g., compare_peers or get_market_context). No exclusion criteria or scenarios are provided.

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

get_technical_analysisA

Get composite technical analysis for a single stock or ETF.

Fetches multiple technical indicators and provides trend direction, momentum signals, volatility analysis, and support/resistance levels with an overall buy/sell signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: - "summary": Current signals and key values - "full": Signals plus complete time series datasummary
last_nNoOptional cap for recent points per indicator in full mode.
outputNoOutput mode for full time series: inline or file.inline
symbolYesStock or ETF symbol to analyze (e.g., "AAPL", "SPY").
timeframeNoCandle timeframe for analysis: - "1day": Daily (default, most common) - "1hour", "4hour": Intraday swing - "1min", "5min", "15min", "30min": Intraday scalping1day
use_cacheNoUse cached indicator data when available (default: True).
indicatorsNoOptional indicator subset as JSON array or comma-separated string. Options: "sma", "ema", "rsi", "adx", "williams", "macd", "bollinger". Default: all indicators.
period_overridesNoOverride default period lengths. Example: {"sma_periods": [10, 50, 200], "rsi_period": 21}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It outlines the type of analysis provided (trend, momentum, volatility, support/resistance, buy/sell signal) but does not mention caching behavior (though the use_cache parameter hints at it), rate limits, or error handling. The description is adequate but leaves some behavioral aspects implicit.

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

Conciseness5/5

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

The description is extremely concise: only two sentences that convey the core functionality. Every sentence is informative, with no redundant or extraneous information. It is optimally sized for an agent to quickly grasp the tool's purpose.

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

Completeness4/5

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

Given the tool's complexity (8 parameters, output schema exists), the description provides a solid overview of what is returned (trend, momentum, volatility, support/resistance, buy/sell signal). The existence of an output schema reduces the need to detail return values. However, the description could mention the available output modes (full/summary) and timeframe options to enhance completeness. Overall, it is well-rounded but leaves a few details to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the parameter descriptions already in the schema. It mentions 'multiple technical indicators' but does not elaborate on parameters like format, last_n, output, or indicators. Thus, it provides minimal additional value for parameter understanding.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get composite technical analysis for a single stock or ETF.' It specifies the resource (single stock/ETF) and the action (get composite technical analysis). The sibling tools include generic fetch and market context tools, making this tool distinct as a focused technical analysis provider.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus its siblings (e.g., fmp_fetch, get_market_context). There is no mention of prerequisites, alternatives, or conditions that would make this tool more appropriate than others. The agent must infer usage from the tool name and description alone.

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

screen_estimate_revisionsA

Screen a ticker universe for material estimate momentum.

Compares latest estimates against a lookback snapshot (days ago) and returns per-ticker deltas/direction. By default, trivial revisions are filtered out unless either EPS changed by at least 1% of baseline consensus or revenue changed by at least 0.5% of baseline consensus. If tickers is omitted, screens the full stored universe.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window for baseline comparison (default: 30).
periodNoEstimate horizon: - "quarter": Quarterly estimates (default) - "annual": Annual estimatesquarter
tickersNoOptional tickers as JSON array or comma-separated string. Example: '["AAPL","MSFT"]' or "AAPL,MSFT".
directionNoFilter direction: - "up": Positive estimate revisions only - "down": Negative estimate revisions only - "all": Return all directions (default)all
min_eps_delta_pctNoMinimum absolute EPS change as decimal fraction of baseline EPS consensus. Default 0.01 = 1%.
include_immaterialNoIf true, return rows below materiality thresholds annotated with `is_material=false` instead of filtering them.
min_revenue_delta_pctNoMinimum absolute revenue change as decimal fraction of baseline revenue consensus. Default 0.005 = 0.5%.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description fully carries behavioral disclosure. It explains the comparison logic, materiality thresholds, filtering directions, and the effect of omitting tickers. However, it doesn't describe the return format or any side effects, though an output schema exists.

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

Conciseness4/5

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

The description is concise with two paragraphs, front-loaded with purpose, and each sentence adds value. It could be more structured, but it's clear and efficient.

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

Completeness5/5

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

The description competently covers all inputs, default behavior, materiality logic, and optional parameters. Given the output schema exists, return format is not needed. It is complete for a tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100%, so description adds only marginal value beyond schema. It does provide context on default behavior and how thresholds work, but the parameter meanings are already clear from the schema.

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

Purpose5/5

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

The description clearly states the tool screens a ticker universe for material estimate momentum, compares latest estimates against a lookback snapshot, and returns per-ticker deltas/direction. It specifies default filtering criteria and optional parameters, making the purpose distinct from sibling tools like get_estimate_revisions or screen_stocks.

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

Usage Guidelines4/5

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

The description explains when to use the tool (to screen for estimate momentum) and details default behavior and parameter overrides. It doesn't explicitly state when not to use or mention alternative tools, but the sibling tool names provide indirect guidance.

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

screen_stocksA

Screen stocks by fundamental criteria (sector, market cap, beta, dividend, etc.).

Searches the full universe of stocks and ETFs using financial filters. Combine multiple criteria to narrow results.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default: 50).
formatNoOutput format. Exposed as Literal["full", "summary"]; values are case-sensitive: - "summary": Key metrics per result (symbol, name, sector, market cap, price, beta) - "full": All available fields from the screenersummary
is_etfNoSet to true to screen ETFs only, false for stocks only.
sectorNoSector filter (e.g., "Technology", "Healthcare", "Energy").
countryNoCountry filter (e.g., "US", "GB", "JP").
is_fundNoSet to true to screen funds only, false to exclude funds.
beta_maxNoMaximum beta.
beta_minNoMinimum beta (market sensitivity).
exchangeNoExchange filter (e.g., "NASDAQ", "NYSE", "LSE").
industryNoIndustry filter (e.g., "Software", "Biotechnology").
price_maxNoMaximum stock price.
price_minNoMinimum stock price.
volume_maxNoMaximum average daily volume.
volume_minNoMinimum average daily volume.
dividend_maxNoMaximum annual dividend per share.
dividend_minNoMinimum annual dividend per share.
market_cap_maxNoMaximum market capitalization in USD.
market_cap_minNoMinimum market capitalization in USD (e.g., 10000000000 for $10B).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Describes search and filtering behavior but does not explicitly state read-only nature, limitations, authentication, or rate limits. Adequate but lacks depth.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no fluff. Efficiently communicates the tool's function and usage.

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

Completeness4/5

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

Given 18 parameters (none required) and existence of output schema, description adequately explains the tool's capability. Could be slightly more explicit about return format, but output schema covers that.

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

Parameters3/5

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

Schema coverage is 100%. Description only lists a few criteria ('sector, market cap, beta, dividend') without adding meaning beyond the detailed schema descriptions. Baseline score of 3.

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

Purpose4/5

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

Clearly states 'Screen stocks by fundamental criteria' with examples, distinguishing from siblings like 'compare_peers' or 'screen_estimate_revisions'. Could be more specific about what 'screen' entails (filter and return results).

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

Usage Guidelines3/5

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

Provides context: 'Searches the full universe of stocks and ETFs' and 'Combine multiple criteria to narrow results.' No explicit when-not or alternatives, but is adequate for a filtering tool.

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

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, covering specific financial data domains (e.g., profile, transcripts, insider trades, economics, screening). Even overlapping areas like fmp_profile and fmp_fetch are differentiated by description.

Naming Consistency3/5

Tool names are inconsistent: some use the 'fmp_' prefix (fmp_fetch, fmp_describe) while others use 'get_' (get_news, get_earnings_transcript) or 'screen_' (screen_stocks). This mixed convention may confuse an agent.

Tool Count5/5

With 21 tools covering a broad range of financial data (company, market, technical, events, ownership, etc.), the count is well-scoped for a comprehensive financial data MCP server.

Completeness5/5

The tool surface covers major financial analysis areas: profile, peers, market context, price performance, technical, sector, news, events, earnings transcripts, insider trades, institutional ownership, ETF holdings, economic data, and screening. The generic fmp_fetch endpoint fills any remaining gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    C
    quality
    A
    maintenance
    Enables AI assistants to access and analyze financial data including stock information, company fundamentals, and market insights through the Financial Modeling Prep API.
    100
    375
    142
    TypeScript
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    375
    Apache 2.0
  • F
    license
    A
    quality
    F
    maintenance
    Provides 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

Latest Blog Posts

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/henrysouchien/fmp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server