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.

What screen_companies returned, the first rows
tickernamecikexchangeperiod endrevenue
AMZNAMAZON COM INC1018724Nasdaq2025-12-31716924000000
WMTWalmart Inc.104169Nasdaq2026-01-31713163000000
UNHUNITEDHEALTH GROUP INC731766NYSE2025-12-31447567000000
AAPLApple Inc.320193Nasdaq2025-09-27416161000000
MCKMCKESSON CORP927653NYSE2026-03-31403430000000
GOOGLAlphabet Inc.1652044Nasdaq2025-12-31402836000000
CVSCVS HEALTH Corp64803NYSE2025-12-31402067000000
BRK-BBERKSHIRE HATHAWAY INC1067983NYSE2025-12-31371444000000
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

From canli-mcp's tool index
ToolPackWhat it does
screen_companiesmarketsScreen 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 Code
claude mcp add canli -- npx -y canli-mcp
Cursor, Claude Desktop or any MCP client
{ "mcpServers": { "canli": { "command": "npx", "args": ["-y", "canli-mcp"] } } }
claude.ai, ChatGPT or any client that takes a URL
https://canlicapital.com/mcp/canli

Everything canli-mcp does · How it compares with other finance MCP servers

Related questions