canli-mcp / 13F holdings

How can an AI agent read a hedge fund's 13F holdings?

Ask canli-mcp's fund_holdings tool for the manager. It reads the 13F filings on SEC EDGAR, lists the top positions with value and share counts, and can compare a quarter with the one before to show what was bought and sold.

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

What does Berkshire Hathaway hold, and what changed last quarter?

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

{
  "name": "fund_holdings",
  "arguments": {
    "manager": "Berkshire Hathaway",
    "top": 10,
    "compare": true
  }
}

What came back

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

What fund_holdings returned, the first rows
issuerclasscusipput callvaluesharesweight
APPLE INCCOM037833100659502969232279178080.2204
AMERICAN EXPRESS COCOM025816109512823192751516107000.1714
COCA COLA COCOM191216100325080000004000000000.1086
ALPHABET INCCAP STK CL A02079K30528157599351787911670.0941
BANK OF AMER CORPCOM060505104275437909754833940150.092
CHEVRON CORPORATIONCOM16676410013986141890843758560.0467
OCCIDENTAL PETE CORPCOM674599105128682053042649414310.043
CHUBB LIMITEDCOMH1467J10411670066615342491830.039
The result fund_holdings sent back, in full form
{
  "ref": "r12",
  "counts_note": "entries_total counts the filing's information-table rows (as on its cover page); positions_total merges rows of the same security; rows list…",
  "manager": {
    "cik": 1067983,
    "name": "BERKSHIRE HATHAWAY INC",
    "ticker": "BRK-B",
    "matched_by": "name"
  },
  "period": "2026-06-30",
  "filed": "2026-08-14",
  "accession": "0001193125-26-352200",
  "total_value": 299253556246,
  "entries_total": 89,
  "positions_total": 29,
  "rows_shown": 10,
  "matches_cover_page": true,
  "cover_page": {
    "entries": 89,
    "value": 299253556246
  },
  "columns": [
    "issuer",
    "class",
    "cusip",
    "put_call",
    "value",
    "shares",
    "…"
  ],
  "rows": [
    [
      "APPLE INC",
      "COM",
      "037833100",
      null,
      65950296923,
      227917808,
      "…"
    ],
    [
      "AMERICAN EXPRESS CO",
      "COM",
      "025816109",
      null,
      51282319275,
      151610700,
      "…"
    ],
    [
      "COCA COLA CO",
      "COM",
      "191216100",
      null,
      32508000000,
      400000000,
      "…"
    ],
    [
      "ALPHABET INC",
      "CAP STK CL A",
      "02079K305",
      null,
      28157599351,
      78791167,
      "…"
    ],
    [
      "BANK OF AMER CORP",
      "COM",
      "060505104",
      null,
      27543790975,
      483394015,
      "…"
    ],
    [
      "CHEVRON CORPORATION",
      "COM",
      "166764100",
      null,
      13986141890,
      84375856,
      "…"
    ],
    "…"
  ],
  "changes_since": {
    "period": "2026-03-31",
    "accession": "0001193125-26-226661",
    "columns": [
      "change",
      "issuer",
      "cusip",
      "put_call",
      "shares_before",
      "shares_now",
      "…"
    ],
    "rows": [
      [
        "new",
        "D R HORTON INC",
        "23331A109",
        null,
        0,
        3564,
        "…"
      ],
      [
        "exited",
        "CONSTELLATION BRANDS INC",
        "21036P108",
        null,
        632890,
        0,
        "…"
      ],
      [
        "added",
        "ALPHABET INC",
        "02079K305",
        null,
        54249798,
        78791167,
        "…"
      ],
      [
        "added",
        "ALPHABET INC",
        "02079K107",
        null,
        3585215,
        27188433,
        "…"
      ],
      [
        "added",
        "DELTA AIR LINES INC",
        "247361702",
        null,
        39809456,
        57320000,
        "…"
      ],
      [
        "added",
        "LENNAR CORP",
        "526057104",
        null,
        10099642,
        13111741,
        "…"
      ],
      "…"
    ],
    "counts": {
      "new": 1,
      "exited": 1,
      "added": 7,
      "reduced": 6
    }
  },
  "source": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/56757.xml",
  "limits": [
    "From SEC EDGAR as filed; Canli Capital does not edit or verify the filers' statements.",
    "Not investment advice.",
    "A 13F lists long positions in US-listed equities and options at quarter end, filed up to 45 days later; it omits shorts, cash, most non-US h…"
  ]
}

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
fund_holdingsmarketsA fund manager's 13F holdings for a quarter (latest by default): positions by value with portfolio weights, the total checked against the filing's cover page, and what changed since the previous quarter (new, exited, added, reduced).

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