ai. tickerscout/ ticker-scout
by tickerscout.ai · remote · no sign-in to list tools · v3.0.1 · published by ai.tickerscout
Agent-native SEC data, 20 tools: statements assembled, any line item, filings synthesized. No key.
20 tools: 2 change things and 18 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads18Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http ticker-scout https://mcp.tickerscout.ai/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnget_statements
The server marks "get_statements" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_statements" says "get": a word for reading.
- Warnguide
The server marks "guide" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "start": a word for a change.
- Infoget_figure
The description is 2,281 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...e error names the closest fields; list_company_figures lists every field by name."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
20 tools
Changes things 2Claude Code: ask
get_statementsThe income statement, balance sheet or cash flow statement, as the company reports it with line items in reported order, for any fiscal year, quarter, year to date or trailing twel…1 finding
Why it is in this group
- The name "get_statements" says "get": a word for reading.
- The input takes a statement or command to run (input.statement), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_statements" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_statements" says "get": a word for reading.
Description, as the server wrote it The income statement, balance sheet or cash flow statement, as the company reports it with line items in reported order, for any fiscal year, quarter, year to date or trailing twelve months. `statement` picks one (default: every statement and table held for the period, including segments and industry metrics). `period` picks the periods (default: every period in the latest record: up to three fiscal years, the latest quarter and its prior-year comparative, year to date, trailing twelve months) and searches older records when the latest does not hold it; 'ttm' and 'ytd' return those blocks with their derivation notes. A period earlier than the data held returns that the data does not go back that far, and what is held. Each period carries its dates, source form and accession. All money is in actual dollars (not thousands, not millions), per-share figures in dollars per share (per ADS for a foreign issuer that has one), share counts in actual shares, split-adjusted. A foreign issuer's figures are converted to US dollars at the rate recorded on each period. include_sources=true adds the sec.gov link for every figure the filing tags.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
guideStart here if unsure.1 finding
Why it is in this group
- The description's first verb is "start": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "guide" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "start": a word for a change.
Description, as the server wrote it Start here if unsure. How Ticker Scout's tools fit together: what a record is versus a period, the period syntax every period argument accepts, units and currency, how figures are cited and linked to sec.gov, which tool answers common questions, and the standard figures (with the words get_figure and compare_companies accept for each). No arguments.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 18Claude Code: allow
compare_companiesOne standard figure for two to ten companies side by side: revenue, net income, EPS, operating income, free cash flow, debt, cash, equity or any other standard figure listed in get…No findings
Why it is in this group
- The name "compare_companies" says "compare": a word for reading.
Description, as the server wrote it One standard figure for two to ten companies side by side: revenue, net income, EPS, operating income, free cash flow, debt, cash, equity or any other standard figure listed in get_figure. Defaults to each company's latest discrete period (its latest quarter, or its latest fiscal year if that is newer); pass period='latest annual', 'ttm', 'latest quarter' or a fiscal year. Fiscal calendars differ between companies, so each row states its own period and dates, and the field it was read from; a company that does not report the figure, or the period, gets a row saying so rather than failing the call. All money is in actual dollars (not thousands, not millions), per-share figures in dollars per share (per ADS for a foreign issuer that has one), share counts in actual shares, split-adjusted. A foreign issuer's figures are converted to US dollars at the rate recorded on each period.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_companyCompany identity and coverage manifest: name, CIK, exchange, state of incorporation, SIC industry, the fiscal period of the latest data, the SEC filings that record is built from (…No findings
Why it is in this group
- The name "get_company" says "get": a word for reading.
Description, as the server wrote it Company identity and coverage manifest: name, CIK, exchange, state of incorporation, SIC industry, the fiscal period of the latest data, the SEC filings that record is built from (the annual report and the latest quarterly report, each with its own fiscal year, filing date, accession number and EDGAR link), every published record with its permanent URLs, and the predicted next filing date and form (a prediction from filing history; a filing date is not an earnings date). Pass `record` for an earlier record's manifest.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_company_metricsMeasures a company reports outside its GAAP statements, as it defines them: `operating` KPIs (users, subscribers, paid memberships, bookings, stores, RevPAR, deliveries, backlog, r…No findings
Why it is in this group
- The name "get_company_metrics" says "get": a word for reading.
Description, as the server wrote it Measures a company reports outside its GAAP statements, as it defines them: `operating` KPIs (users, subscribers, paid memberships, bookings, stores, RevPAR, deliveries, backlog, remaining performance obligations), `non_gaap` measures (adjusted EPS, adjusted operating income, EBITDA, FFO for a REIT, core earnings, with the reconciling figures held), `bank` metrics (CET1 and other capital ratios, net interest margin, efficiency ratio, average balances and yields, credit quality) and `insurance` metrics (premiums, underwriting results, combined and loss ratios, investment income, float, book value). Default: every kind this company reports. These are the company's own definitions from its filings or earnings release. Every period in the latest record by default, or the periods named by `period`. Actual dollars (not millions), shares split-adjusted, a foreign issuer's figures in US dollars.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_data_notesThe record's explanation of itself, to read before relying on an unusual figure or concluding one is missing: its sourcing notes (how the statement template was chosen, which filin…No findings
Why it is in this group
- The name "get_data_notes" says "get": a word for reading.
Description, as the server wrote it The record's explanation of itself, to read before relying on an unusual figure or concluding one is missing: its sourcing notes (how the statement template was chosen, which filing each statement was read from, how a discrete quarter was derived, what was reclassified or restated), period-level notes on coverage, its list of uncertainties (figures the filings do not disclose, periods presented only year to date, items that could not be reconciled), and which standard figures are absent from the latest fiscal year and quarter. Where a filing does not disclose a figure it is omitted and the omission explained, never zeroed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_eventsDigest of a company's material current reports (Form 8-K; 6-K for a foreign issuer) over roughly the trailing five quarters, read from the filings and their exhibits: earnings rele…No findings
Why it is in this group
- The name "get_events" says "get": a word for reading.
Description, as the server wrote it Digest of a company's material current reports (Form 8-K; 6-K for a foreign issuer) over roughly the trailing five quarters, read from the filings and their exhibits: earnings releases and guidance, management and board changes, dividends and buybacks announced, debt offerings and credit facilities, mergers and acquisitions, shareholder votes, restructuring and legal matters, each dated and citing its SEC accession number. Returns the full digest by default; it is short. Pass `section` as a heading or a topic (earnings, management changes, capital returns, debt and financing, m&a, governance, restructuring, legal) to narrow it, or index=true for a one-line, dated index of every item. Pass `record` for the digest as of an earlier record.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_figureGet any figure for a company: revenue, net income, EPS, free cash flow, debt, a segment's revenue, a bank's CET1 ratio, a KPI.1 finding
Why it is in this group
- The name "get_figure" says "get": a word for reading.
Findings
- Info
The description is 2,281 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...e error names the closest fields; list_company_figures lists every field by name."
Description, as the server wrote it Get any figure for a company: revenue, net income, EPS, free cash flow, debt, a segment's revenue, a bank's CET1 ratio, a KPI. Pass a standard name or synonym and it returns the field this company uses for it, named; pass a field name or path from the record and it returns exactly that field; otherwise fields whose names contain all the words. Case, spaces and underscores do not matter. Standard figures: revenue, cost_of_revenue, gross_profit, gross_margin_pct, research_and_development, sga, operating_expenses, operating_income, interest_expense, net_interest_income, noninterest_income, provision_for_credit_losses, pretax_income, income_tax, effective_tax_rate, net_income, diluted_eps, basic_eps, diluted_shares, basic_shares, depreciation_and_amortization, cash, total_assets, total_liabilities, total_debt, long_term_debt, short_term_debt, shareholders_equity, current_assets, current_liabilities, goodwill, intangible_assets, inventories, accounts_receivable, accounts_payable, property_and_equipment, retained_earnings, shares_outstanding, operating_cash_flow, capital_expenditures, free_cash_flow, investing_cash_flow, financing_cash_flow, dividends_paid, dividends_per_share, share_repurchases, stock_based_compensation, acquisitions. Every value leads with its name_in_record and json_path, so what is returned is never relabeled, and carries its dates, form and accession. Every value carries the SEC accession number of the filing it came from and, where the filing tags the number, a sec.gov link that opens the filing at the line printing it. Default: every period in the latest record. `period` narrows to a fiscal year, quarter, 'ttm', 'ytd' or 'latest', searching older records; period='all' returns the full history held, oldest first, as annual and quarterly series (the newer record's value wins where two hold the same period, because it carries any restatement). All money is in actual dollars (not thousands, not millions), per-share figures in dollars per share (per ADS for a foreign issuer that has one), share counts in actual shares, split-adjusted. A foreign issuer's figures are converted to US dollars at the rate recorded on each period. When nothing matches, the error names the closest fields; list_company_figures lists every field by name.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_filingsThe SEC filings behind a company's data.No findings
Why it is in this group
- The name "get_filings" says "get": a word for reading.
Description, as the server wrote it The SEC filings behind a company's data. Without `accession`: every accession number the record cites across the financial statements, the 10-K/10-Q narrative and the 8-K events digest, newest first, each with its form (10-K, 10-Q, 8-K, 20-F, 6-K, DEF 14A...), filing date where stated, EDGAR index URL, document URL where known and every use (which periods' figures came from it, which narrative or events sections cite it); plus the annual and quarterly report the record is built from. With `accession` (dashes optional): everything about that one filing, including the full text of every narrative and events passage that cites it, e.g. what an 8-K announced; every published record is searched unless `record` is given. An accession number (0001045810-26-000075 = filer CIK 0001045810, year 2026, sequence 75) is the SEC's permanent ID for a filing, the thing to cite. For the sec.gov line behind one figure, use get_figure.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_financialsIncome statement, balance sheet and cash flow, already assembled from a company's SEC filings, for up to three fiscal years plus the latest quarter, year to date and trailing twelv…No findings
Why it is in this group
- The name "get_financials" says "get": a word for reading.
Description, as the server wrote it Income statement, balance sheet and cash flow, already assembled from a company's SEC filings, for up to three fiscal years plus the latest quarter, year to date and trailing twelve months, with segment tables, per-share figures and the record's own notes. This is the published financials.json, whole or by top-level section. Already assembled: no XBRL concept selection, no deriving a discrete quarter from year-to-date columns, no scale factor to infer. Section names differ per company, so call with no sections first (or read available_sections) and then request only what you need. Request the figure_sources section by name for a sec.gov link to the line of the filing that prints each figure; a whole-file call leaves it out. All money is in actual dollars (not thousands, not millions), per-share figures in dollars per share (per ADS for a foreign issuer that has one), share counts in actual shares, split-adjusted. A foreign issuer's figures are converted to US dollars at the rate recorded on each period. For one statement or one period, searching older records too, use get_statements; for one figure, get_figure.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_key_figuresThe headline for a company's most recent reported period: revenue, net income, diluted EPS and similar, each with its exact dollar amount, prior-year value, year-over-year change, …No findings
Why it is in this group
- The name "get_key_figures" says "get": a word for reading.
Description, as the server wrote it The headline for a company's most recent reported period: revenue, net income, diluted EPS and similar, each with its exact dollar amount, prior-year value, year-over-year change, the record field it was read from and its SEC accession number; plus a one-paragraph written summary and question-and-answer pairs built from those figures. Start here for any 'how did X do' or 'how much did X earn' question. Far smaller than get_financials. Pass `record` for an earlier record's headline. For any other figure, or a figure across periods, use get_figure.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_margins_and_ratiosProfitability margins and balance-sheet ratios for every period: every margin and rate the record itself stores (gross margin %, operating margin %, effective tax rate, segment mar…No findings
Why it is in this group
- The name "get_margins_and_ratios" says "get": a word for reading.
Description, as the server wrote it Profitability margins and balance-sheet ratios for every period: every margin and rate the record itself stores (gross margin %, operating margin %, effective tax rate, segment margins, efficiency ratio and the like), plus gross, operating, net and free-cash-flow margin, working capital and current ratio calculated here from the period's own figures, each labeled as calculated with its formula and the exact fields used, so it can be checked. A ratio is calculated only when both figures are in the same period of the same record; nothing is estimated. Every period in the latest record by default, or the periods named by `period`.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_narrativeQualitative synthesis of a company's latest annual and quarterly reports, condensed from the filings themselves rather than from news: business description, risk factors with chang…No findings
Why it is in this group
- The name "get_narrative" says "get": a word for reading.
Description, as the server wrote it Qualitative synthesis of a company's latest annual and quarterly reports, condensed from the filings themselves rather than from news: business description, risk factors with changes since the prior filing flagged, annual MD&A, the current quarter, legal proceedings and subsequent events. Called without `section` it returns an INDEX: every section with its size, first sentence and subsection headings, because the full document is large. Then pass `section` as a heading or subsection heading from the index, or as a topic (business, risk factors, md&a, current quarter, subsequent events, legal), which finds the matching sections whatever this company calls them ('legal' also pulls legal items from the 8-K digest), or 'all' for everything. Pass `record` for the narrative as of an earlier record. To find a keyword anywhere, use search_text.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_reporting_conventionsHow to read a company's numbers before comparing or converting them: the units statement (actual dollars, not millions), reporting currency and, for a foreign issuer such as TSMC, …No findings
Why it is in this group
- The name "get_reporting_conventions" says "get": a word for reading.
Description, as the server wrote it How to read a company's numbers before comparing or converting them: the units statement (actual dollars, not millions), reporting currency and, for a foreign issuer such as TSMC, the conversion policy and each period's exact exchange rate with its source (average rate for income and cash flow, closing rate for the balance sheet, stated as foreign currency per US dollar); the ADR ratio and per-share basis (per ADS for a foreign issuer that has one); stock splits adjusted for and any as-reported pre-split values; the fiscal year end and convention; the business type and statement template; the accounting basis (US GAAP, IFRS); and any definitions the record gives for its own line items and segments. All money is in actual dollars (not thousands, not millions), per-share figures in dollars per share (per ADS for a foreign issuer that has one), share counts in actual shares, split-adjusted. A foreign issuer's figures are converted to US dollars at the rate recorded on each period. Every period's dates are in list_periods.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_segmentsHow a company's results split, exactly as it reports them: `segments` (reportable segment revenue, operating income or profit, and whatever else it discloses per segment: assets, c…No findings
Why it is in this group
- The name "get_segments" says "get": a word for reading.
Description, as the server wrote it How a company's results split, exactly as it reports them: `segments` (reportable segment revenue, operating income or profit, and whatever else it discloses per segment: assets, capex, managed-basis results for a bank, business-unit earnings for a conglomerate), `revenue_by_product` (revenue by product, service, end market, platform, channel or customer type, e.g. NVIDIA's Data Center, Apple's iPhone and Services), and `revenue_by_geography` (by country or region, with long-lived assets by geography where held). Default: all three. Table names differ by company and are returned as the record names them. Every period in the latest record by default, or the periods named by `period`. Actual dollars (not millions), shares split-adjusted, a foreign issuer's figures in US dollars. If the company reports none, the response says so and lists the tables it does have.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_companiesThe public companies Ticker Scout covers, with the fiscal period of each one's latest data, every published record held and the predicted date of its next SEC filing, plus a covera…No findings
Why it is in this group
- The name "list_companies" says "list": a word for reading.
Description, as the server wrote it The public companies Ticker Scout covers, with the fiscal period of each one's latest data, every published record held and the predicted date of its next SEC filing, plus a coverage summary (company count, last update, filers by latest form, foreign issuers). Call this first when you do not know whether a company is covered, or to turn a company name into a ticker. Coverage is S&P 500 companies plus major foreign issuers that file with the SEC.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_company_figuresDiscover which figures a company's record holds and what it calls them.No findings
Why it is in this group
- The name "list_company_figures" says "list": a word for reading.
Description, as the server wrote it Discover which figures a company's record holds and what it calls them. Without `query`: standard_figures maps each standard figure (revenue, net income, EPS, cash, debt and the rest) to the name THIS company's record gives it (Apple's revenue is total_net_sales, JPMorgan's is total_net_revenue), and other_figures holds every remaining figure grouped by its statement or table (segments, revenue_by_* breakdowns, key metrics, bank and insurance tables, non-GAAP measures), keyed by path, with its values. With `query`: only the fields whose names contain every word ('data center', 'cet1', 'comparable sales', 'backlog', 'subscribers'), plus the standard figure the words name, if any. Every name and path returned can be passed to get_figure exactly as written. `block` limits to one table. A listing defaults to the latest fiscal year and latest quarter, a search to every period in the latest record; pass `period` for others.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_periodsHow far back the data goes for one company: every fiscal year and every quarter Ticker Scout holds, across every published record, with each period's start and end dates, length in…No findings
Why it is in this group
- The name "list_periods" says "list": a word for reading.
Description, as the server wrote it How far back the data goes for one company: every fiscal year and every quarter Ticker Scout holds, across every published record, with each period's start and end dates, length in days, source form and accession, and which records carry it; the year-to-date and trailing-twelve-months blocks; the fiscal year end and whether the company runs 52/53-week years; and the list of published records (each the snapshot built when one 10-Q or 10-K was filed, with its permanent URLs). Fiscal years are the company's own: NVIDIA's FY2027 ends in January 2027, Apple's FY2026 in September 2026.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_upcoming_filingsEvery covered company expected to file a 10-Q or 10-K (or 6-K / 20-F) within the next N days, soonest first, with the predicted date and form and the period currently held.No findings
Why it is in this group
- The name "list_upcoming_filings" says "list": a word for reading.
Description, as the server wrote it Every covered company expected to file a 10-Q or 10-K (or 6-K / 20-F) within the next N days, soonest first, with the predicted date and form and the period currently held. Use it to see whose data refreshes soon. Dates are predictions from each company's filing history, not announced dates, and a filing date is not an earnings date: most companies release earnings on an 8-K days or weeks before the 10-Q or 10-K. One company's next filing is in get_company.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_textFind what a company's filings say about a keyword.No findings
Why it is in this group
- The name "search_text" says "search": a word for reading.
Description, as the server wrote it Find what a company's filings say about a keyword. Searches the 10-K/10-Q narrative, the 8-K events digest and the financial record's sourcing notes, and returns the paragraphs and list items that contain every word of the query, best first, each in full with its section and subsection, plus a ranked list of the sections that mention it most (to read one whole with get_narrative or get_events). Case-insensitive; double quotes match an exact phrase. Examples: 'buyback authorization', '"remaining performance obligations"', 'China export', 'credit facility', 'goodwill impairment', 'CEO'.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 3.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http ticker-scout https://mcp.tickerscout.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__ticker-scout__list_companies",
"mcp__ticker-scout__get_company",
"mcp__ticker-scout__get_key_figures",
"mcp__ticker-scout__get_financials",
"mcp__ticker-scout__get_narrative",
"mcp__ticker-scout__get_events",
"mcp__ticker-scout__list_periods",
"mcp__ticker-scout__get_segments",
"mcp__ticker-scout__get_company_metrics",
"mcp__ticker-scout__get_margins_and_ratios",
"mcp__ticker-scout__get_figure",
"mcp__ticker-scout__list_company_figures",
"mcp__ticker-scout__compare_companies",
"mcp__ticker-scout__search_text",
"mcp__ticker-scout__get_filings",
"mcp__ticker-scout__get_reporting_conventions",
"mcp__ticker-scout__get_data_notes",
"mcp__ticker-scout__list_upcoming_filings"
],
"ask": [
"mcp__ticker-scout__get_statements",
"mcp__ticker-scout__guide"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as ticker-scout. Review it before you use it.