Skip to main content
This page is generated from go/mcpserver/tool_schemas.json, the tool schema file the MCP server embeds and advertises over tools/list. Names, parameters, defaults, and required flags stay in sync with what the live server actually accepts, because the table rows come from that file, not from hand-typed notes.
Call any of these over MCP at https://financialdatasets.rip/mcp. See MCP Server for client setup. Only 15 of the 27 tools also have a REST route. See Coverage for the gap between the two.

Status legend

get_income_statement, get_balance_sheet, get_cash_flow_statement, and get_financial_metrics default period differently depending on transport. The MCP tool schema default is ttm, as published in the tool schema. The REST route for the same data defaults an omitted period to annual instead. Pass period explicitly on both transports.
Defaults on this page are the MCP tool schema defaults, what a tool call uses when you omit a parameter. The REST facade documented in the API Reference sets its own defaults per route, and they do not always match. get_filings’ MCP default limit is 100. The REST /filings route defaults an omitted limit to 10. Pass parameters explicitly when a default matters to you.

Company Information

get_company_facts

Live, validated Looks up a US public company by ticker in Monid’s company catalog and returns its ticker and registered name. Cik lookup is declared for schema parity, but any call that sets cik is rejected with a bad_request error. Only the ticker path is routed. The response schema has room for market cap, sector, exchange, SIC codes, and similar attributes, but this server sources ticker and name only; every other field is left out rather than filled with a guess.

Financial Statements

get_balance_sheet

Live, validated Returns a company’s balance sheet. Assets, liabilities, and shareholders’ equity as of each report_period, one row per report_period, built from its reported financial statements and joined with filing metadata where this server can source it. As_reported is accepted for schema parity, but any true value is rejected with a bad_request error: this server always returns the standardized fields, never a filer’s raw as-reported line items.

get_cash_flow_statement

Live, validated Returns a company’s cash flow statement. Operating, investing, and financing cash flows for each report_period, one row per report_period, built from its reported financial statements and joined with filing metadata where this server can source it. As_reported is accepted for schema parity, but any true value is rejected with a bad_request error: this server always returns the standardized fields, never a filer’s raw as-reported line items.

get_income_statement

Live, validated Returns a company’s income statement. Revenue, expenses, and net income for each report_period, one row per report_period, built from its reported financial statements and joined with filing metadata where this server can source it. As_reported is accepted for schema parity, but any true value is rejected with a bad_request error: this server always returns the standardized fields, never a filer’s raw as-reported line items.

Financial Metrics

get_financial_metrics

Live, validated Returns a company’s historical financial-metrics series. Margins, per-share figures, and turnover and leverage ratios computed from its reported financial statements. One row per report_period. Because historical market values (share price, market capitalization) are not sourceable for past periods without inventing numbers, this server omits every metric derived from them: enterprise_value, the price_to_* ratios, EV multiples, free_cash_flow_yield, peg_ratio, return_on_invested_capital, currency, and filing_datetime never appear. Margin, ROE, and ROA figures use each period’s ending balance; turnover ratios use the average of the period’s opening and ending balances. TTM rows additionally omit the filing-identity fields (accession_number, form_type, filing_url, filing_date), since a trailing-twelve-month window spans more than one filing.

get_financial_metrics_snapshot

Live, validated Returns a single current snapshot of a company’s key financial metrics. Market capitalization, valuation ratios such as P/E, and similar live indicators. Built from the most recent quote and statement data this server can source right now. Use get_financial_metrics instead for a historical series across multiple periods.

Earnings

get_earnings

Live, validated Returns a flat list of EarningsRecord objects, each carrying ticker, report_period, fiscal_period, currency, source_type, filing_date, filing_url, accession_number, and a quarterly and/or annual block with revenue, EPS, and surprise-versus-estimate figures. This server composes every record from a company’s 10-K or 10-Q filing only; 8-K earnings releases and 20-F foreign-filer reports are not sourced. Pass ticker to fetch up to 5 of that company’s most recent earnings records, newest filing_date first. Omit ticker to pull the market-wide feed instead: this server walks the Nasdaq earnings calendar, resolves each reporting company’s latest 10-K/10-Q earnings row in parallel, and returns up to 5 rows sorted by filing_date descending, skipping any ticker it cannot resolve rather than failing the whole request.

Stock Prices

get_stock_price

Live, validated Returns the latest live price snapshot for a stock: current price, trading volume, and the day’s open, high, low, and close, sourced from Monid’s real-time summary route.

get_stock_prices

Live, validated Returns historical OHLCV price bars for a stock across a date range. This server always sources daily bars and, for interval values other than ‘day’, aggregates them locally into week/month/year bars; ‘second’ and ‘minute’ are declared in the schema for parity but are rejected with a bad_request error, since sub-day granularity is not sourced. Interval_multiplier is accepted for schema parity, but only its default of 1 is honored. Any other value is rejected. Despite the schema’s stated defaults, this server requires both start_date and end_date; omitting either is rejected rather than defaulting to a trailing year or today. Bars come back in ascending time order, and each bar’s time is the bar’s end date in UTC.

News

get_news

Live, validated Fetches recent news articles about a company, matched to its ticker through entity search and sorted newest first. Ticker is required: this server does not route the market-wide, tickerless news feed the wider schema describes, so leaving it out is rejected with a bad_request error.

SEC Filings

get_filing_items

Live, validated Fetches one or more sections (“items”) from a company’s 10-K, 10-Q, or 8-K SEC filing. For example Item 1 (Business), Item 1A (Risk Factors), or Item 9.01 (Financial Statements and Exhibits). Supply year to target a specific filing year; for 10-Q filings, quarter narrows further to one quarter. Omit year and this server automatically resolves the ticker’s most recently filed matching filing instead of requiring one. Accession_number narrows the match when several filings of the requested type and year exist, which matters most for 8-K, where a company can file more than once a year. Set item to one or more codes from list_filing_item_types to return only those sections; leave it out to return every section this server can extract from the filing.

get_filings

Live, validated Lists SEC filings for a ticker, including each filing’s accession number, form type, report date, and document URL. Pass ticker to identify the company; cik is accepted for schema parity, but every call that sets it is rejected with a bad_request error. Only the ticker path is routed. Filing_type narrows results to one of ‘10-K’, ‘10-Q’, ‘8-K’, ‘20-F’, or ‘6-K’; limit bounds how many filings come back.

list_filing_item_types

Live, validated Lists every filing-section code this server recognizes for get_filing_items’ item parameter, grouped by filing_type (10-K, 10-Q, 8-K). Each entry’s description field carries the section’s official SEC title, so this catalog also serves as a lookup table for what each item code covers. No parameters.

Segmented Financials

get_segmented_financials

Implemented, unverified live Extracts segment-level breakdowns. Revenue, operating income, and depreciation by product or business segment; assets, goodwill, and long-lived assets by segment; and capital expenditure by segment. From a company’s most recent annual 10-K, through document extraction rather than a segments database. Period only accepts ‘annual’ today; passing ‘quarterly’ is rejected with a bad_request error, since this server extracts from the annual 10-K only. The report_period filters narrow the extracted segment records to a range or an exact date.

Operating KPIs

get_kpi_guidance

Implemented, unverified live Extracts forward-looking KPI guidance issued by company management from a company’s single most recent matching SEC filing: its latest 10-K for period=‘annual’ or latest 10-Q for period=‘quarterly’. Data comes from document extraction, not an internal guidance database. Metric_name filters the extracted set to one guidance metric. Report_period_gte and report_period_lte check whether that one filing’s report_period falls in the given range: if it does not, this server returns an empty list rather than searching earlier filings. This server applies no per-account gating; every caller with a valid Monid key gets the same access.

get_kpi_metrics

Implemented, unverified live Extracts KPI-taxonomy metrics. Subscriber counts, ARPU, units sold, and similar operating metrics. From a company’s single most recent matching SEC filing: its latest 10-K for period=‘annual’ or latest 10-Q for period=‘quarterly’. Data comes from document extraction, not an internal metrics database. Metric_name filters the extracted set to one metric. Report_period_gte and report_period_lte check whether that one filing’s report_period falls in the given range: if it does not, this server returns an empty list rather than searching earlier filings. This server applies no per-account gating; every caller with a valid Monid key gets the same access.

get_kpi_non_gaap

Implemented, unverified live Extracts non-GAAP metrics a company reports about itself. Adjusted EBITDA, company-defined Free Cash Flow, and similar figures. From its single most recent matching SEC filing: the latest 10-K for period=‘annual’ or latest 10-Q for period=‘quarterly’. Data comes from document extraction, not an internal metrics database. Metric_name filters the extracted set to one metric. Report_period_gte and report_period_lte check whether that one filing’s report_period falls in the given range: if it does not, this server returns an empty list rather than searching earlier filings. This server applies no per-account gating; every caller with a valid Monid key gets the same access.

Interest Rates

get_interest_rates

Implemented, unverified live Returns the current policy interest rate of the Federal Reserve, the European Central Bank, the Bank of England and the Bank of Japan, each read from the bank’s own publication: the Fed target-range midpoint, the ECB deposit facility rate, the BOE Bank Rate, and the BOJ rate from its newest Statement on Monetary Policy PDF. Each is dated by its decision. No parameters are accepted. A bank whose page cannot be read in a given call is left out; if none can be, the call fails. No parameters.

Index Funds

get_index_fund

Implemented, unverified live Returns an ETF or index fund’s current holdings and each position’s weight (percent of net assets), scraped from the fund’s public holdings fact sheet rather than pulled from an SEC filing feed. The response has a fund header (name, as-of date, total and returned holding counts) followed by holdings sorted by weight descending. As_of narrows to the composition in effect on or before that date; if the routable fact sheet is dated after as_of, this server answers not_found instead of guessing an earlier composition. Asset_class filters holdings to ‘equity’ or ‘bond’ instruments; omit it for everything the fact sheet lists. Limit and offset page through the holdings list.

Insider Trades

get_insider_trades

Live, validated Lists insider (officer, director, or major-shareholder) buy and sell transactions for a company, sourced from the SEC Form 4 feed. The feed returns at most 15 rows per query, so a larger limit is clamped rather than rejected. Name matches case-insensitively against the feed’s full insider-relationship text (for example ‘Cook’ matches ‘Timothy D Cook - Chief Executive Officer’), not a bare person name.

Insider Ownership

get_insider_ownership

Not implemented This server does not yet implement insider-ownership statements: every call returns a typed not-implemented error before any upstream request is made, so it never costs the caller and never returns invented data. Its intended interface mirrors SEC Form 3 (an insider’s day-one ownership statement) and Form 5 (the annual statement): what officers, directors, and 10%+ owners hold. Common shares, options, RSUs. As distinct from get_insider_trades, which is meant to cover the buy/sell events in between.

Institutional Holdings

get_institutional_holdings

Implemented, unverified live Returns SEC Form 13F institutional-holdings rows for a security, each carrying the filer’s CIK and name alongside the position, sourced from the SEC Form 4 provider’s institutional-holdings route. Pass ticker to see which institutional filers hold that security. Filer_cik is accepted for schema parity, but every call that sets it is rejected with a bad_request error. This server routes only the ticker path, not a per-filer lookup. Report_period narrows to one quarter-end date; report_period_gte/report_period_lte bound a range. Without a report_period filter, this server returns the most recent quarter the underlying route has on file for the ticker.

get_institutional_investors

Not implemented This server does not yet implement institutional-filer discovery: every call returns a typed not-implemented error before any upstream request is made, so it never costs the caller and never returns invented data. Once live, it is meant to list SEC 13F filers with their CIK and most recently reported name, with an optional name-prefix filter to help locate the filer_cik that get_institutional_holdings expects.

Beneficial / Activist Ownership

get_beneficial_owners

Not implemented This server does not yet implement beneficial-owner discovery: every call returns a typed not-implemented error before any upstream request is made, so it never costs the caller and never returns invented data. Once live, it is meant to list the reporting persons behind SEC Schedule 13D/13G stakes (holders of more than 5% of a company’s shares), pairing each with its SEC filer CIK, and to accept an optional name prefix so callers can locate the filer_cik that get_beneficial_ownership expects.

get_beneficial_ownership

Not implemented This server does not yet implement beneficial-ownership lookups: every call returns a typed not-implemented error before any upstream request is made, so it never costs the caller and never returns invented data. Its intended interface mirrors SEC Schedules 13D and 13G, which cover stakes of more than 5% of a share class: 13D signals activist intent (proxy fights, board seats, pushing for a sale), while 13G stakes are passive, typically held by large asset managers. A caller would supply exactly one of ticker (which owners hold this company) or filer_cik (which stakes this owner holds); type would narrow to activist or passive; history, once implemented, would return a stake’s full amendment trail instead of only its latest state. Coverage was scoped to begin January 2025.

Stock Screener

list_stock_screener_filters

Live, validated Lists the exact filter fields, operators, and allowed values screen_stocks currently executes: ‘exchange’ (operator ‘eq’, one of NASDAQ/NYSE/AMEX) and ‘market_cap’ (operator ‘eq’, one of the bucket labels mega/large/mid/small/micro/nano). The screen_stocks parameter schema has room for many more fields across income-statement, balance-sheet, cash-flow, and company-attribute metrics, but this server only ever routes the two fields listed here; the rest are declared for schema parity and are rejected with a bad_request error if used. No parameters.

screen_stocks

Live, validated Screens stocks with the Nasdaq stock screener, but only two fields are wired up in this server: ‘exchange’ (one of ‘NASDAQ’, ‘NYSE’, ‘AMEX’) and ‘market_cap’ (one of the bucket labels ‘mega’, ‘large’, ‘mid’, ‘small’, ‘micro’, ‘nano’. Not a numeric threshold). Supply one or two filter objects, each using operator ‘eq’ with a string value; any other field, operator, numeric value, or repeated field is rejected with a bad_request error before this server spends anything. Call list_stock_screener_filters first to see the exact set this server executes. Currency is accepted for schema parity, but only ‘USD’ (the default) is honored; any other value is rejected.