SEC EDGAR fundamentals as agent tools: look up or screen US public companies. Free, no key, CC0.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Dated per-period cash-flow inputs for a US public company: operating cash flow, capital expenditure, net income and shares outstanding, each with its own period start and end, unit, filing date, SEC accession number and source URL. Values sharing a period end are matched on duration and currency before being grouped. Returns observations only: no discount rate, no terminal assumption, no fair value and no price target. For research and education only; not financial advice or a recommendation to buy, sell or hold.
US ticker symbol, e.g. AAPL
Dated per-period cash-flow inputs for a US public company: operating cash flow, capital expenditure, net income and shares outstanding, each with its own period start and end, unit, filing date, SEC accession number and source URL. Values sharing a period end are matched on duration and currency before being grouped. Returns observations only: no discount rate, no terminal assumption, no fair value and no price target. For research and education only; not financial advice or a recommendation to buy, sell or hold.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | US ticker symbol, e.g. AAPL |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "US ticker symbol, e.g. AAPL"
}
}
}Read short, verified primary-source passages for reviewed company events, with source URLs, section labels, dates, hashes and predecessor links where reviewed. Selective coverage only: no passages means unreviewed, not no events. Quotes normalize whitespace; financial histories are not automatically reconciled across events.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | US ticker symbol, e.g. AAPL |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "US ticker symbol, e.g. AAPL"
}
}
}Company filings, quarterly insider transaction disclosures, aliases, headquarters and legal-entity relationships, with source licenses and explicit coverage dates. Not a live trading feed. For research and education only; not financial advice or an investment signal.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | US ticker symbol, e.g. AAPL |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "US ticker symbol, e.g. AAPL"
}
}
}Census ACS resident characteristics (housing costs, income, education, occupation mix) with published 90% margins of error, plus BLS QCEW private-industry jobs, pay and year-over-year growth by NAICS code with a national reference row, for one US county by FIPS code or name. Resident and workplace populations are different and must not be combined into one rate; missing and suppressed values are unavailable, not zero. Describes a place, not any company's operating or revenue exposure. For research and education only; not financial advice.
| Argument | Type | Description |
|---|---|---|
| county* | string | County FIPS code (e.g. 48453) or name with state (e.g. "Travis, Texas"). An ambiguous name returns a candidate list rather than a guess. |
{
"type": "object",
"required": [
"county"
],
"properties": {
"county": {
"type": "string",
"description": "County FIPS code (e.g. 48453) or name with state (e.g. \"Travis, Texas\"). An ambiguous name returns a candidate list rather than a guess."
}
},
"additionalProperties": false
}Selected government Treasury yields (daily) and BLS inflation, employment and wage series (monthly), with observation dates, units and reuse provenance. Returns the last year of observations unless since is given. For research and education only; not financial advice.
| Argument | Type | Description |
|---|---|---|
| since | string | First observation date: YYYY, YYYY-MM or YYYY-MM-DD; default one year before the newest observation |
| series | string | Comma-separated series ids, e.g. treasury_10y,CUUR0000SA0 (CPI-U); omitted means all. An unknown id returns the list of ids. |
{
"type": "object",
"properties": {
"since": {
"type": "string",
"description": "First observation date: YYYY, YYYY-MM or YYYY-MM-DD; default one year before the newest observation"
},
"series": {
"type": "string",
"description": "Comma-separated series ids, e.g. treasury_10y,CUUR0000SA0 (CPI-U); omitted means all. An unknown id returns the list of ids."
}
},
"additionalProperties": false
}SEC-derived annual observations with exact dates, units and source filings for a US public company, by ticker symbol (use search_companies to find one by name), plus trailing-twelve-month figures and the latest quarterly balances (latest_interim) when a 10-Q is newer than the annual report. Pass quarters (1 to 12) or period "quarterly" for single fiscal quarters (income, cash flow and balances, each reported or the difference of two reported year-to-date figures, named in derivation); reporting says whether the quarter after the latest report has ended without a report yet. Each year also carries computed ratios (margins, return on equity, leverage, revenue_growth; any metric's change as <metric>_growth) and notes on figures that are not comparable with the year before (a restatement or a stock split between them): do not compute a change across a noted year. Includes coverage gaps, metric definitions, requested/canonical identity, dataset SHA-256 and research links. Empty annual history is unavailable, not zero; current-CIK history is not reconciled across reorganizations. Data traces to SEC EDGAR filings. For research and education only; not financial advice or a recommendation to buy, sell or hold.
| Argument | Type | Description |
|---|---|---|
| period | string | quarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default. |
| ticker* | string | US ticker symbol, e.g. AAPL |
| metrics | string | Comma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth. |
Read annual fundamentals for 1 to 20 comma-separated ticker symbols in one request. Defaults to one newest period per issuer; optional metrics projection. Each result keeps requested/canonical identity and source lineage; unknown tickers produce per-entry errors. No historical point-in-time filtering.
| Argument | Type | Description |
|---|---|---|
| period | string | quarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default. |
| metrics | string | Comma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth. |
| periods | integer | Newest annual period groups per issuer; default 1, maximum 20. |
| tickers* | string | 1 to 20 comma-separated tickers, e.g. MSFT,GOOGL,AMZN (a list of strings is also accepted) |
Find US public companies whose latest annual period fundamentals match filters (minimum revenue, margins, ROE, growth; sector; profitable-only), sorted and limited. Returns a ranked list of companies with their key figures. Data traces to SEC EDGAR filings. For research and education only; not financial advice or a recommendation to buy, sell or hold.
| Argument | Type | Description |
|---|---|---|
| q | string | Match ticker prefix, company name, industry or sector |
| sort | string | Sort column; prefix with - for descending. e.g. -revenue (default), net_margin, -return_on_equity, revenue_growth |
| limit | integer | Max results, 1 to 100 (default 25; larger values return 100) |
| offset | integer | Rows to skip, for paging through total (default 0) |
| sector | string | One of: Agriculture, Mining, Construction, Manufacturing, Transportation & Utilities, Wholesale Trade, Retail Trade, Finance & Real Estate, Services, Public Administration |
| roe_min | number | Minimum return on equity, percent |
| currency | string | Reporting currency, default USD; all for name-sorted discovery without monetary filters |
Find US public companies by name or ticker, forgiving typos, best match first: ticker, SEC CIK, readable name, exchange, SEC sector and industry, and the end of the latest annual period on file. Includes companies that have left the ticker directory (listing_status former). Use it to turn a company name into the ticker the other tools take.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most results to return (default 10) |
| query* | string | Company name or ticker, e.g. apple, berkshire, or msft |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Most results to return (default 10)"
},
"query": {
"type": "string",
"description": "Company name or ticker, e.g. apple, berkshire, or msft"
}
},
"additionalProperties": false
}Report what you needed from TickerFacts and did not get, what looked wrong, what was confusing, or what worked. Call this whenever a tool call fails or a result lacks a figure, period, company or filter your user's task needed; say what the user was trying to accomplish and exactly which fields, periods, companies or filters would have solved it. Also call it once at the end of a session that went well, naming what was useful. Reports are read by the maintainers and drive what gets added; there is no reply channel unless you give a contact. Free-text fields are bounded; nothing is published.
| Argument | Type | Description |
|---|---|---|
| kind* | string | missing_data: a company, period, metric or filter you needed is not served. wrong_data: a served figure or label looks incorrect (say which and why). confusing_response: the result or error was hard to use. feature_request: a capability that would help. works_well: what was useful. other. |
| tool | string | The tool or endpoint involved, e.g. get_fundamentals or /api/v1/screen. |
| agent | string | Your client or agent and version, e.g. "claude-code 2.1" or "acme-research-bot". |
| ticker | string | The company or companies involved, if any. |
| contact | string | An email or URL for follow-up, if the person you work for wants one. Optional; not published. |
| details | string | Anything else: the figure you expected and its source, the workaround you used, how often this comes up. |
| periods | integer | Newest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so). With quarters and no periods, the newest 1. |
| quarters | integer | Newest fiscal quarters to return in quarterly, newest first (up to 12). |
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"period": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"description": "quarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default."
},
"ticker": {
"type": "string",
"description": "US ticker symbol, e.g. AAPL"
},
"metrics": {
"type": "string",
"description": "Comma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth."
},
"periods": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Newest annual period groups to return; omitted means all available, or the newest that fit in one result (selection.note says so). With quarters and no periods, the newest 1."
},
"quarters": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Newest fiscal quarters to return in quarterly, newest first (up to 12)."
}
},
"additionalProperties": false
}| quarters |
| integer |
| Newest fiscal quarters to return in quarterly, newest first (up to 12). |
{
"type": "object",
"required": [
"tickers"
],
"properties": {
"period": {
"enum": [
"annual",
"quarterly"
],
"type": "string",
"description": "quarterly returns the newest 8 fiscal quarters (or as many as fit) unless quarters is given; annual is the default."
},
"metrics": {
"type": "string",
"description": "Comma-separated metric or ratio keys, e.g. revenue,operating_margin,free_cash_flow; omitted means all metrics and ratios. A ratio brings its inputs with it. Metrics: revenue, cost_of_revenue, gross_profit, research_and_development, operating_income, depreciation_and_amortization, ebitda (derived), net_income, eps_diluted, total_assets, total_liabilities, long_term_debt, stockholders_equity, cash_and_equivalents, operating_cash_flow, capex, free_cash_flow (derived), share_repurchases, dividends_paid, shares_outstanding, dividends_per_share, weighted_average_diluted_shares, eps_basic. Ratios: gross_margin, operating_margin, net_margin, return_on_equity, liabilities_to_equity, long_term_debt_to_equity, revenue_growth; any metric's year-over-year change as <metric>_growth, e.g. eps_diluted_growth."
},
"periods": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Newest annual period groups per issuer; default 1, maximum 20."
},
"tickers": {
"type": "string",
"description": "1 to 20 comma-separated tickers, e.g. MSFT,GOOGL,AMZN (a list of strings is also accepted)"
},
"quarters": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Newest fiscal quarters to return in quarterly, newest first (up to 12)."
}
},
"additionalProperties": false
}| exchange |
| string |
| Exchange name, e.g. Nasdaq or NYSE |
| industry | string | Industry substring, e.g. semiconductors |
| profitable | boolean | Only companies with positive net income |
| revenue_max | number | Maximum annual revenue in the selected reporting currency |
| revenue_min | number | Minimum annual revenue in the selected reporting currency (default USD) |
| include_stale | boolean | Include companies whose latest annual report ended more than about 18 months ago (default false: they stopped filing US GAAP annual reports, or are late) |
| net_income_min | number | Minimum annual net income in the selected reporting currency |
| net_margin_min | number | Minimum net margin, percent |
| gross_margin_min | number | Minimum gross margin, percent (e.g. 40) |
| total_assets_min | number | Minimum total assets in the selected reporting currency |
| debt_to_equity_max | number | Deprecated alias for liabilities_to_equity_max. Preserves the old total-liabilities definition and returns a warning; cannot be combined with the canonical parameter. |
| revenue_growth_min | number | Minimum year-over-year revenue growth, percent |
| operating_margin_min | number | Minimum operating margin, percent |
| liabilities_to_equity_max | number | Maximum total liabilities / year-end equity. Includes non-debt liabilities. |
| long_term_debt_to_equity_max | number | Maximum long-term debt including current maturities / year-end equity. Excludes short-term borrowings and leases; not total debt. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Match ticker prefix, company name, industry or sector"
},
"sort": {
"type": "string",
"description": "Sort column; prefix with - for descending. e.g. -revenue (default), net_margin, -return_on_equity, revenue_growth"
},
"limit": {
"type": "integer",
"description": "Max results, 1 to 100 (default 25; larger values return 100)"
},
"offset": {
"type": "integer",
"description": "Rows to skip, for paging through total (default 0)"
},
"sector": {
"type": "string",
"description": "One of: Agriculture, Mining, Construction, Manufacturing, Transportation & Utilities, Wholesale Trade, Retail Trade, Finance & Real Estate, Services, Public Administration"
},
"roe_min": {
"type": "number",
"description": "Minimum return on equity, percent"
},
"currency": {
"type": "string",
"description": "Reporting currency, default USD; all for name-sorted discovery without monetary filters"
},
"exchange": {
"type": "string",
"description": "Exchange name, e.g. Nasdaq or NYSE"
},
"industry": {
"type": "string",
"description": "Industry substring, e.g. semiconductors"
},
"profitable": {
"type": "boolean",
"description": "Only companies with positive net income"
},
"revenue_max": {
"type": "number",
"description": "Maximum annual revenue in the selected reporting currency"
},
"revenue_min": {
"type": "number",
"description": "Minimum annual revenue in the selected reporting currency (default USD)"
},
"include_stale": {
"type": "boolean",
"description": "Include companies whose latest annual report ended more than about 18 months ago (default false: they stopped filing US GAAP annual reports, or are late)"
},
"net_income_min": {
"type": "number",
"description": "Minimum annual net income in the selected reporting currency"
},
"net_margin_min": {
"type": "number",
"description": "Minimum net margin, percent"
},
"gross_margin_min": {
"type": "number",
"description": "Minimum gross margin, percent (e.g. 40)"
},
"total_assets_min": {
"type": "number",
"description": "Minimum total assets in the selected reporting currency"
},
"debt_to_equity_max": {
"type": "number",
"deprecated": true,
"description": "Deprecated alias for liabilities_to_equity_max. Preserves the old total-liabilities definition and returns a warning; cannot be combined with the canonical parameter."
},
"revenue_growth_min": {
"type": "number",
"description": "Minimum year-over-year revenue growth, percent"
},
"operating_margin_min": {
"type": "number",
"description": "Minimum operating margin, percent"
},
"liabilities_to_equity_max": {
"type": "number",
"description": "Maximum total liabilities / year-end equity. Includes non-debt liabilities."
},
"long_term_debt_to_equity_max": {
"type": "number",
"description": "Maximum long-term debt including current maturities / year-end equity. Excludes short-term borrowings and leases; not total debt."
}
},
"additionalProperties": false
}| summary* | string | One or two sentences: what you needed and what happened. Required. |
| use_case | string | What your user is trying to accomplish overall (the task, not the call). This is the most useful field. |
| in_reply_to | string | The id of an earlier report you are continuing (from its reply), when answering the questions it asked. |
| would_solve_it | string | The exact fields, periods, companies, filters or behaviour that would have solved it. |
| attempted_arguments | string | The arguments of the call that failed or fell short, as JSON text. |
{
"type": "object",
"required": [
"kind",
"summary"
],
"properties": {
"kind": {
"enum": [
"missing_data",
"wrong_data",
"confusing_response",
"feature_request",
"works_well",
"other"
],
"type": "string",
"description": "missing_data: a company, period, metric or filter you needed is not served. wrong_data: a served figure or label looks incorrect (say which and why). confusing_response: the result or error was hard to use. feature_request: a capability that would help. works_well: what was useful. other."
},
"tool": {
"type": "string",
"maxLength": 200,
"description": "The tool or endpoint involved, e.g. get_fundamentals or /api/v1/screen."
},
"agent": {
"type": "string",
"maxLength": 200,
"description": "Your client or agent and version, e.g. \"claude-code 2.1\" or \"acme-research-bot\"."
},
"ticker": {
"type": "string",
"maxLength": 200,
"description": "The company or companies involved, if any."
},
"contact": {
"type": "string",
"maxLength": 200,
"description": "An email or URL for follow-up, if the person you work for wants one. Optional; not published."
},
"details": {
"type": "string",
"maxLength": 2000,
"description": "Anything else: the figure you expected and its source, the workaround you used, how often this comes up."
},
"summary": {
"type": "string",
"maxLength": 500,
"minLength": 10,
"description": "One or two sentences: what you needed and what happened. Required."
},
"use_case": {
"type": "string",
"maxLength": 500,
"description": "What your user is trying to accomplish overall (the task, not the call). This is the most useful field."
},
"in_reply_to": {
"type": "string",
"maxLength": 200,
"description": "The id of an earlier report you are continuing (from its reply), when answering the questions it asked."
},
"would_solve_it": {
"type": "string",
"maxLength": 500,
"description": "The exact fields, periods, companies, filters or behaviour that would have solved it."
},
"attempted_arguments": {
"type": "string",
"maxLength": 1000,
"description": "The arguments of the call that failed or fell short, as JSON text."
}
},
"additionalProperties": false
}