canli-mcp / Filing search
How can an AI agent search SEC filings?
canli-mcp's search_filings tool runs a full-text search over SEC EDGAR filings by phrase, form, company and date, and read_filing opens any result by section, so the agent quotes the filing it found.
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 has Apple said about tariffs in its 10-Qs?
The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:
{
"name": "search_filings",
"arguments": {
"query": "tariffs",
"forms": [
"10-Q"
],
"company": "AAPL",
"limit": 5
}
}What came back
Recorded from canli-mcp 0.11.1 on 2026-10-25, with no API key set. The model read 1,752 characters.
| filed | form | filer | period | accession | document | url |
|---|---|---|---|---|---|---|
| 2025-05-02 | 10-Q | Apple Inc. (AAPL) (CIK 0000320193) | 2025-03-29 | 0000320193-25-000057 | aapl-20250329.htm | source |
| 2025-08-01 | 10-Q | Apple Inc. (AAPL) (CIK 0000320193) | 2025-06-28 | 0000320193-25-000073 | aapl-20250628.htm | source |
| 2026-01-30 | 10-Q | Apple Inc. (AAPL) (CIK 0000320193) | 2025-12-27 | 0000320193-26-000006 | aapl-20251227.htm | source |
| 2026-05-01 | 10-Q | Apple Inc. (AAPL) (CIK 0000320193) | 2026-03-28 | 0000320193-26-000013 | aapl-20260328.htm | source |
| 2026-07-31 | 10-Q | Apple Inc. (AAPL) (CIK 0000320193) | 2026-06-27 | 0000320193-26-000020 | aapl-20260627.htm | source |
The result search_filings sent back, in full form
{
"ref": "r23",
"query": "tariffs",
"total": 56,
"columns": [
"filed",
"form",
"filer",
"period",
"accession",
"document",
"…"
],
"rows": [
[
"2025-05-02",
"10-Q",
"Apple Inc. (AAPL) (CIK 0000320193)",
"2025-03-29",
"0000320193-25-000057",
"aapl-20250329.htm",
"…"
],
[
"2025-08-01",
"10-Q",
"Apple Inc. (AAPL) (CIK 0000320193)",
"2025-06-28",
"0000320193-25-000073",
"aapl-20250628.htm",
"…"
],
[
"2026-01-30",
"10-Q",
"Apple Inc. (AAPL) (CIK 0000320193)",
"2025-12-27",
"0000320193-26-000006",
"aapl-20251227.htm",
"…"
],
[
"2026-05-01",
"10-Q",
"Apple Inc. (AAPL) (CIK 0000320193)",
"2026-03-28",
"0000320193-26-000013",
"aapl-20260328.htm",
"…"
],
[
"2026-07-31",
"10-Q",
"Apple Inc. (AAPL) (CIK 0000320193)",
"2026-06-27",
"0000320193-26-000020",
"aapl-20260627.htm",
"…"
]
],
"next": "read_filing with company and accession (and document for an exhibit) returns the text.",
"source": "https://efts.sec.gov/LATEST/search-index (EDGAR full-text search, filings from 2001)",
"limits": [
"From SEC EDGAR as filed; Canli Capital does not edit or verify the filers' statements.",
"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 tools behind the answer
| Tool | Pack | What it does |
|---|---|---|
search_filings | markets | Full-text search across all SEC filings since 2001 (EDGAR full-text search): which companies mention a phrase, filtered by form, filer and dates. Quote phrases. |
read_filing | markets | The text of an SEC filing: the latest of a form, or one by accession. For a 10-K or 10-Q, section returns one item ("risk factors", "md&a", "business", "market risk", "legal proceedings", or a number such as "1A"); without it the result lists the items and their lengths. document reads an exhibit, such as an 8-K's press release ("EX-99.1"). find returns only the passages with given words ("employees", "buyback"), the fastest way to a fact in a long filing; otherwise long text pages with offset. |
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
