canli-mcp / Financial statements
How can an AI agent read a company's financial statements from SEC filings?
canli-mcp's financial_statements tool reads the income statement, balance sheet and cash flow straight from the XBRL a company filed with the SEC. Several years come joined in one table, and a restated figure is shown beside the one first reported, so the agent quotes the filing rather than its memory.
Free and MIT-licensed. No account and no API key. Or run claude mcp add canli -- npx -y canli-mcp in Claude Code.
Ask it
Give me Apple's income statement for the last few years, from the filings.
The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:
{
"name": "financial_statements",
"arguments": {
"company": "AAPL",
"statement": "income",
"period": "annual",
"filings": 2
}
}What came back
Recorded from canli-mcp 0.11.1 on 2026-10-25, with no API key set. The model read 4,636 characters.
| line | concept | 12 months to 2025-09-27 | 12 months to 2024-09-28 | 12 months to 2023-09-30 | 12 months to 2022-09-24 |
|---|---|---|---|---|---|
| Net sales | us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | 416161 | 391035 | 383285 | 394328 |
| Cost of sales | us-gaap:CostOfGoodsAndServicesSold | 220960 | 210352 | 214137 | 223546 |
| Gross margin | us-gaap:GrossProfit | 195201 | 180683 | 169148 | 170782 |
| Operating expenses: | us-gaap:OperatingExpensesAbstract | ||||
| Research and development | us-gaap:ResearchAndDevelopmentExpense | 34550 | 31370 | 29915 | 26251 |
| Selling, general and administrative | us-gaap:SellingGeneralAndAdministrativeExpense | 27601 | 26097 | 24932 | 25094 |
| Total operating expenses | us-gaap:OperatingExpenses | 62151 | 57467 | 54847 | 51345 |
| Operating income | us-gaap:OperatingIncomeLoss | 133050 | 123216 | 114301 | 119437 |
The result financial_statements sent back, in full form
{
"ref": "r2",
"company": {
"cik": 320193,
"name": "Apple Inc.",
"ticker": "AAPL"
},
"period": "annual",
"filings": {
"columns": [
"accession",
"form",
"filed",
"period",
"index"
],
"rows": [
[
"0000320193-25-000079",
"10-K",
"2025-10-31",
"2025-09-27",
"https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm"
],
[
"0000320193-24-000123",
"10-K",
"2024-11-01",
"2024-09-28",
"https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/0000320193-24-000123-index.htm"
]
]
},
"income": {
"title": "CONSOLIDATED STATEMENTS OF OPERATIONS",
"units": "USD ($) shares in Thousands, $ in Millions",
"money_scale": 1000000,
"shares_scale": 1000,
"columns": [
"line",
"concept",
"12 months to 2025-09-27",
"12 months to 2024-09-28",
"12 months to 2023-09-30",
"12 months to 2022-09-24"
],
"rows": [
[
"Net sales",
"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
416161,
391035,
383285,
394328
],
[
"Cost of sales",
"us-gaap:CostOfGoodsAndServicesSold",
220960,
210352,
214137,
223546
],
[
"Gross margin",
"us-gaap:GrossProfit",
195201,
180683,
169148,
170782
],
[
"Operating expenses:",
"us-gaap:OperatingExpensesAbstract",
null,
null,
null,
null
],
[
"Research and development",
"us-gaap:ResearchAndDevelopmentExpense",
34550,
31370,
29915,
26251
],
[
"Selling, general and administrative",
"us-gaap:SellingGeneralAndAdministrativeExpense",
27601,
26097,
24932,
25094
],
"…"
],
"sources": [
"https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/R3.htm",
"https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/R3.htm"
]
},
"units_note": "Values are as each statement shows them: units gives the scale of money and shares (\"$ in Millions\"), and money_scale and shares_scale are t…",
"limits": [
"From the XBRL statements the company filed, as SEC renders them; Canli Capital does not edit or verify them. Labels are the company's own.",
"Not investment advice."
]
}Prices, filings and statistics are as the sources published them on that day; run the call again for today's. Nothing here is investment advice.
The same answer as a view
In a host that draws MCP Apps, view: true shows the person the whole result and gives the model a summary. Watch it, then try it: below the clip is canli-mcp's real view, playing a recording.
The view loads here.
The tools behind the answer
| Tool | Pack | What it does |
|---|---|---|
financial_statements | markets | A company's financial statements exactly as filed: income statement, balance sheet, cash flow and equity statement from its 10-K (or 10-Q), with its own line labels, each line's XBRL concept and the values as the filing shows them (units say the scale). Joins several filings by period; a line a later filing restated, or that a stock split changed, is shown beside its first-reported figure, never mixed in. |
Add canli-mcp
claude mcp add canli -- npx -y canli-mcp{ "mcpServers": { "canli": { "command": "npx", "args": ["-y", "canli-mcp"] } } }https://canlicapital.com/mcp/canliEverything canli-mcp does · How it compares with other finance MCP servers
