canli-mcp / Stock screens
Can an AI agent screen stocks by fundamentals?
Yes. canli-mcp's screen_companies tool screens every US-listed company on figures from their filings, such as revenue growth, margins or valuation, and sorts the result.
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
Which US companies have more than $100 billion in revenue?
The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:
{
"name": "screen_companies",
"arguments": {
"filters": [
{
"metric": "revenue",
"op": ">",
"value": 100000000000
}
],
"sort_by": "revenue",
"limit": 10
}
}What came back
Recorded from canli-mcp 0.11.1 on 2026-10-25, with no API key set. The model read 4,213 characters.
| ticker | name | cik | exchange | period end | revenue |
|---|---|---|---|---|---|
| AMZN | AMAZON COM INC | 1018724 | Nasdaq | 2025-12-31 | 716924000000 |
| WMT | Walmart Inc. | 104169 | Nasdaq | 2026-01-31 | 713163000000 |
| UNH | UNITEDHEALTH GROUP INC | 731766 | NYSE | 2025-12-31 | 447567000000 |
| AAPL | Apple Inc. | 320193 | Nasdaq | 2025-09-27 | 416161000000 |
| MCK | MCKESSON CORP | 927653 | NYSE | 2026-03-31 | 403430000000 |
| GOOGL | Alphabet Inc. | 1652044 | Nasdaq | 2025-12-31 | 402836000000 |
| CVS | CVS HEALTH Corp | 64803 | NYSE | 2025-12-31 | 402067000000 |
| BRK-B | BERKSHIRE HATHAWAY INC | 1067983 | NYSE | 2025-12-31 | 371444000000 |
The result screen_companies sent back, in full form
{
"ref": "r19",
"period": "FY2025 (calendar frame CY2025)",
"universe": 3861,
"matched": 36,
"columns": [
"ticker",
"name",
"cik",
"exchange",
"period_end",
"revenue"
],
"rows": [
[
"AMZN",
"AMAZON COM INC",
1018724,
"Nasdaq",
"2025-12-31",
716924000000
],
[
"WMT",
"Walmart Inc.",
104169,
"Nasdaq",
"2026-01-31",
713163000000
],
[
"UNH",
"UNITEDHEALTH GROUP INC",
731766,
"NYSE",
"2025-12-31",
447567000000
],
[
"AAPL",
"Apple Inc.",
320193,
"Nasdaq",
"2025-09-27",
416161000000
],
[
"MCK",
"MCKESSON CORP",
927653,
"NYSE",
"2026-03-31",
403430000000
],
[
"GOOGL",
"Alphabet Inc.",
1652044,
"Nasdaq",
"2025-12-31",
402836000000
],
"…"
],
"corrected": {
"reason": "a figure from a different filing (often a proxy statement) disagreed with the company's own 10-K or 10-Q, which was used",
"columns": [
"ticker",
"metric",
"frame_value",
"report_value",
"report"
],
"rows": [
[
"CVX",
"net_income",
12300000000,
12299000000,
"10-K 0000093410-26-000078"
]
]
},
"definitions": {
"revenue": "XBRL Revenues or RevenueFromContractWithCustomerExcludingAssessedTax, else SalesRevenueNet, else RevenueFromContractWithCustomerIncludingAss…"
},
"sources": [
"https://data.sec.gov/api/xbrl/frames/us-gaap/Revenues/USD/CY2025.json",
"https://data.sec.gov/api/xbrl/frames/us-gaap/RevenueFromContractWithCustomerExcludingAssessedTax/USD/CY2025.json",
"https://data.sec.gov/api/xbrl/frames/us-gaap/RevenueFromContractWithCustomerIncludingAssessedTax/USD/CY2025.json",
"https://data.sec.gov/api/xbrl/frames/us-gaap/NetIncomeLoss/USD/CY2025.json",
"https://data.sec.gov/api/xbrl/frames/us-gaap/ProfitLoss/USD/CY2025.json",
"https://data.sec.gov/api/xbrl/frames/us-gaap/Assets/USD/CY2025Q4I.json"
],
"limits": [
"From SEC EDGAR and the other named sources as published; Canli Capital does not edit or verify the filers' statements.",
"Not investment advice.",
"XBRL frames give one value per filer for the fiscal period that best overlaps the calendar period, as most recently filed; filers tag line i…",
"Listing is SEC's ticker-and-exchange file: a company that has just moved its ticker to a new holding company (Exxon Mobil, 2026) is listed u…"
]
}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 tools behind the answer
| Tool | Pack | What it does |
|---|---|---|
screen_companies | markets | Screen every US-listed company (thousands, from SEC XBRL frames) on fundamentals: revenue, growth, margins, ROE, ROA, free cash flow, R&D intensity, leverage and more, for a calendar year or each company's fiscal year ending in a date window, with filters, ranking and optional valuation (price, market cap, P/E, P/S, FCF yield). Implausible figures (tagging slips) are held out and listed apart. |
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
