canli-mcp / Fact checks

How do I fact-check the financial figures an AI wrote?

Give the draft to canli-mcp's verify_claims tool with the company. It finds each figure in the text and checks it against the filings: confirmed, contradicted (with the filed figure and what the wrong number matches) or not reported.

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

Check these Apple figures against the filings.

The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:

{
  "name": "verify_claims",
  "arguments": {
    "company": "AAPL",
    "text": "Apple's revenue was $391 billion in fiscal 2024, and its net income was $120 billion."
  }
}

What came back

Recorded from canli-mcp 0.11.1 on 2026-10-25, with no API key set. The model read 2,167 characters.

What verify_claims returned, every row; the first columns
claimmeasureperiodclaimedunitverdictfileddifference
Apple's revenue was $391 billion in fiscal 2024, and its net income was $120 billion.revenuefiscal 2024391USD billionconfirmed391.035
Apple's revenue was $391 billion in fiscal 2024, and its net income was $120 billion.net_incomefiscal 2024120USD billioncontradicted93.73626.264
The result verify_claims sent back, in full form
{
  "ref": "r13",
  "company": {
    "cik": 320193,
    "name": "Apple Inc.",
    "ticker": "AAPL"
  },
  "summary": {
    "claims": 2,
    "confirmed": 1,
    "contradicted": 1,
    "not_reported": 0,
    "not_checkable": 0
  },
  "columns": [
    "claim",
    "measure",
    "period",
    "claimed",
    "unit",
    "verdict",
    "…"
  ],
  "rows": [
    [
      "Apple's revenue was $391 billion in fiscal 2024, and its net income was $120 billion.",
      "revenue",
      "fiscal 2024",
      391,
      "USD billion",
      "confirmed",
      "…"
    ],
    [
      "Apple's revenue was $391 billion in fiscal 2024, and its net income was $120 billion.",
      "net_income",
      "fiscal 2024",
      120,
      "USD billion",
      "contradicted",
      "…"
    ]
  ],
  "note": "Confirmed means the filed figure rounds to the claim at the claim's own precision (391 billion: within 0.5 billion). Fiscal years and quarte…",
  "limits": [
    "Checked against the US GAAP and IFRS figures companies tag in their SEC filings (10-K, 10-Q, 20-F, 40-F, and 6-K reports that carry tags); n…",
    "A figure converted to another currency is not judged: the company's own figure is shown beside it.",
    "A claim's measure and period are read from its words; read each row's measure and period before relying on a verdict."
  ]
}

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
verify_claimsmarketsCheck a draft answer's figures against the company's own filings before using them: revenue, net income, EPS, operating income, margins, growth, cash flow, assets, debt and more, for a fiscal year or quarter as the company labels it. US and foreign filers (20-F, IFRS), in their own currency. Each claim comes back confirmed, contradicted (with the filed figure and what the claimed one matches instead: another year, a quarter, a unit slip), not reported or not checkable.

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