canli-fundamentals-mcp
Provides point-in-time access to Apple's SEC XBRL company fundamentals, including first reported, latest, and as-known-as-of values for measures like revenue, net income, EPS, assets, liabilities, and restatement tracking.
Provides point-in-time access to Toyota's SEC/IFRS XBRL fundamentals, enabling queries for revenue, net income, and other measures with historical restatement tracking.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@canli-fundamentals-mcpWhat did Apple report as of 31 December 2018?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
canli-fundamentals-mcp
SEC company fundamentals point in time, as an MCP server. For any value a company reported in XBRL, it tells your AI assistant three things: what was first reported, what the latest filing says, and what was known on a given date. Every value comes with the filing behind it.
That difference matters. Apple's diluted EPS for fiscal 2018 was 11.91 in the annual reports of 2018 and 2019, and 2.98 in the 2020 report, after its 4-for-1 split. A backtest that reads today's data for a 2018 decision uses a number nobody saw in 2018. Apple's accounts payable at the end of fiscal 2017 was first reported as $49.05B and changed to $44.24B a year later. Of 3,827 annual periods Apple has reported, 190 now read differently from their first report, not counting 35 per-share and share-count changes from its stock splits.
npx -y canli-fundamentals-mcpClaude Code:
claude mcp add canli-fundamentals -- npx -y canli-fundamentals-mcpHosted, no install (claude.ai connectors, ChatGPT, Cursor, or any client that takes a URL):
claude mcp add --transport http canli-fundamentals https://canlicapital.com/mcp/fundamentalsClaude Desktop, Cursor or any MCP client (mcpServers in its config):
{
"mcpServers": {
"canli-fundamentals": { "command": "npx", "args": ["-y", "canli-fundamentals-mcp"] }
}
}Then ask things like "What did Apple report as of 31 December 2018?", "Which of Microsoft's annual numbers were restated?", "Show Toyota's revenue since 2015" or "Show every filing that reported Apple's 2017 accounts payable".
Tools
Tool | What it returns |
| For each measure, the most recent period filed on or before a date and its value as it stood then. Flags values later restated ( |
| One measure over time, newest first: |
| Periods whose latest value differs from the first report, with both values, the percent change and a cause: |
| Every filing that reported one period of one measure, oldest first. |
| The concepts a company reports and the plain names it supports, with units, period counts, date range and restated-period counts. |
Companies are named by ticker (AAPL) or SEC CIK (320193). All five tools are read-only.
Naming a measure
Use a plain name and the server follows the measure across the tags a company has used for it.
Apple's revenue was SalesRevenueNet until fiscal 2017 and
RevenueFromContractWithCustomerExcludingAssessedTax from 2018; Toyota's figures moved from us-gaap
to IFRS. Each value names the tag it came from.
Plain name | Tags, in order of preference |
| Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, RevenueFromContractWithCustomerIncludingAssessedTax, SalesRevenueNet, ifrs-full:Revenue, ifrs-full:RevenueFromContractsWithCustomers |
| NetIncomeLoss, ifrs-full:ProfitLossAttributableToOwnersOfParent, ProfitLoss, ifrs-full:ProfitLoss |
| OperatingIncomeLoss, ifrs-full:ProfitLossFromOperatingActivities |
| GrossProfit, ifrs-full:GrossProfit |
| EarningsPerShareDiluted or Basic, ifrs-full:DilutedEarningsLossPerShare or BasicEarningsLossPerShare |
| Assets or Liabilities, and the ifrs-full tags of the same name |
| StockholdersEquity, ifrs-full:EquityAttributableToOwnersOfParent, StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest, ifrs-full:Equity |
| CashAndCashEquivalentsAtCarryingValue, ifrs-full:CashAndCashEquivalents, CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents |
| NetCashProvidedByUsedInOperatingActivities, ifrs-full:CashFlowsFromUsedInOperatingActivities |
| WeightedAverageNumberOfDilutedSharesOutstanding, ifrs-full:AdjustedWeightedAverageShares |
| dei:EntityCommonStockSharesOutstanding, CommonStockSharesOutstanding |
Common variants work too (sales, revenues, EPS, total_assets). Any XBRL tag also works
(AccountsPayableCurrent), us-gaap by default; a tag that exists in two taxonomies is read from
both, and a prefix picks one (us-gaap:Assets, dei:EntityCommonStockSharesOutstanding). A tag the
company stopped using comes back with newer_series, naming the plain name that continues it.
Related MCP server: edgar-mcp
Where the numbers come from, and how you can check them
For every company in its reference, canlicapital.com serves the SEC's XBRL companyfacts response byte for byte, as a gzip snapshot, and names the snapshot's SHA-256 in the company's record. This server:
resolves the ticker from
https://canlicapital.com/api/v1/company-tickers.json;reads the company record at
/company-data/{CIK}.json;downloads the snapshot it names and refuses it unless its SHA-256 matches;
computes everything else on your machine.
Those GETs are the only network traffic. Each result names the snapshot (its date, hash, URL and the SEC URL it came from), so you can fetch the same file from the SEC and compare.
How periods are handled:
A period is its start and end date. A quarter and a year-to-date figure that end on the same day are different periods, and values are never merged across them.
Durations of 350 to 380 days are annual (52- and 53-week years included). Durations of 80 to 125 days are quarterly, which covers 12- to 17-week quarters such as Kroger's 16-week first quarter. Anything else (six- and nine-month year-to-date figures) appears only under
periods: "all".A balance (an instant) takes the kind of the report that first carried it: year-end balances are first reported in annual reports, interim balances in 10-Qs and 6-Ks.
first_reportedis the earliest filing by filed date, then accession number. Withas_of, only filings made on or before that date exist, for every basis, so nothing filed later can leak in.When one filing reports a period under two tags of a plain name, the value comes from the tag that first reported the period, so a second definition in the same filing is not read as a revision.
Filing-fee exhibits (the
ffdtaxonomy) and registration statements (424B prospectuses, S- and F- forms) are left out: they repeat facts that are not periodic results.A split is recognised when the change matches a split ratio the company reported (
StockholdersEquityNoteStockSplitConversionRatio1). With no reported ratio, a per-share or share change by a whole ratio from 2 to 20 is markedsplit_likely. Both are left out ofrestatementsunlessinclude_splitsis set. A value that changed and later went back to its first report is counted inchanged_then_reverted, not listed.
Limits
Values are as the SEC's companyfacts API reports them in the snapshot named with each result. Filings made after the snapshot date are missing: each result gives the snapshot's
age_days, andsnapshot_notesays so whenas_ofis later than the snapshot.tag_changemeans the first and latest values come from different tags of a plain name. That can be a real restatement or two definitions of the measure; read both filings.Results are capped at about 14,000 characters of rows, newest first;
truncatedsays when rows were cut.filedis the date a filing reached EDGAR. To avoid lookahead, treat a value as known from the next trading day after it was filed.A changed value can be a restatement, a reclassification or a correction; the accession number names the filing to read.
Coverage is the SEC filers in the Canli company reference (6,415 tickers). A company outside it returns an error naming its CIK.
Company-reported data. Not investment advice.
Settings
Variable | Default | What it does |
|
| Where snapshots are cached, named by their SHA-256, so a cached file can never go stale. Set it to an empty value to keep nothing on disk. Memory holds the eight most recently used companies. |
|
| The site to read from. |
Part of the Canli MCP family
canli-validation-mcp: checks whether a backtest is real (deflated Sharpe, probability of overfitting, minimum track record).
canli-research-mcp: Canli Capital's open research record.
Code MIT. The SEC filings and XBRL facts are U.S. government works in the public domain; Canli Capital's selection and derived data are CC BY 4.0 (credit "Canli Capital (canlicapital.com)").
This server cannot be deployed
Maintenance
Related MCP Connectors
Point-in-time, survivorship-free SEC EDGAR fundamentals + smart-money signals for AI agents.
Primary-source SEC filing intelligence and financial/disclosure reconciliation for AI agents.
SEC filing intelligence for AI agents. Financials, screening, peer comparison for 5,000+ companies.
Agent-native SEC filing data: statements assembled, filings read and synthesized. No API key.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides access to SEC filings and detailed XBRL financial data for all publicly traded U.S. companies. It enables users to search for company info, retrieve historical metrics like revenue and assets, and compare financial performance across different industries.61-
- AlicenseAqualityBmaintenanceProvides access to SEC EDGAR financial data, enabling AI agents to fetch company filings, financial metrics, and narrative sections. It supports natural-language metric searching and extracts structured data from 10-K, 10-Q, and 8-K reports.6169 PyPIMIT
- AlicenseAqualityBmaintenanceEnables AI agents to query US public company financial data from SEC filings, with tools for resolving tickers, listing filings, retrieving financial concepts, comparing companies, extracting filing sections, and full-text search. It surfaces data ambiguities like tag variations, restatements, and fiscal-year misalignment rather than hiding them.6MIT
- AlicenseBqualityCmaintenanceEnables asking questions about US public companies' SEC filings, returning exact XBRL figures with their tags and accession numbers alongside narrative answers cited to specific filing sections with sec.gov links. Its tools let clients search companies, pull metrics and multi-year financials, compare firms, and index or check ingestion status of filings, with retrieval scoped per company.7MIT