canli-mcp / Every annual report
How can I search every annual report a company has filed for one subject?
canli-mcp's filing_memory reads every annual report a company has on EDGAR, on your machine, and returns the best passages and how often a subject came up each year, free with no key. Across Coca-Cola's 33 reports back to 1994, the year 2000 problem is counted only in those for 1997, 1998 and 1999.
Price: $0 to run. Updated 2026-11-02. Free and MIT-licensed, with no account and no API key. Or run claude mcp add canli -- npx -y canli-mcp in Claude Code.
Ask it
What has Coca-Cola said about the year 2000 problem across its annual reports?
The agent finds the tool through canli-mcp's find_tool and runs it through run_tool. This is the call:
{
"name": "filing_memory",
"arguments": {
"company": "KO",
"query": "year 2000 computer systems",
"also": [
"Y2K"
],
"years": 33,
"limit": 3,
"per_year": 1
}
}What came back
Recorded from canli-mcp 0.16.0 on 2026-11-02, with no API key set. The model read 7,214 characters.
| filed | period end | form | prose words | mentions | mentions per 10000 words |
|---|---|---|---|---|---|
| 2026-02-20 | 2025-12-31 | 10-K | 82443 | 0 | 0 |
| 2025-02-20 | 2024-12-31 | 10-K | 82545 | 0 | 0 |
| 2024-02-20 | 2023-12-31 | 10-K | 81479 | 0 | 0 |
| 2023-02-21 | 2022-12-31 | 10-K | 82477 | 0 | 0 |
| 2022-02-22 | 2021-12-31 | 10-K | 83184 | 0 | 0 |
| 2021-02-25 | 2020-12-31 | 10-K | 88622 | 0 | 0 |
| 2020-02-24 | 2019-12-31 | 10-K | 90005 | 0 | 0 |
| 2019-02-21 | 2018-12-31 | 10-K | 94657 | 0 | 0 |
The result filing_memory sent back, in full form
{
"ref": "r4",
"company": {
"cik": 21344,
"name": "COCA COLA CO"
},
"query": "year 2000 computer systems",
"also": [
"Y2K"
],
"counted_as": "a paragraph holding most of the query's words, weighted by how rare each word is",
"reports_read": 33,
"earliest": "1994-03-14",
"latest": "2026-02-20",
"columns": [
"filed",
"period_end",
"form",
"prose_words",
"mentions",
"mentions_per_10000_words"
],
"rows": [
[
"2026-02-20",
"2025-12-31",
"10-K",
82443,
0,
0
],
[
"2025-02-20",
"2024-12-31",
"10-K",
82545,
0,
0
],
[
"2024-02-20",
"2023-12-31",
"10-K",
81479,
0,
0
],
[
"2023-02-21",
"2022-12-31",
"10-K",
82477,
0,
0
],
[
"2022-02-22",
"2021-12-31",
"10-K",
83184,
0,
0
],
[
"2021-02-25",
"2020-12-31",
"10-K",
88622,
0,
0
],
"…"
],
"passages": {
"columns": [
"filed",
"period_end",
"item",
"counts_as_mention",
"score",
"text",
"…"
],
"rows": [
[
"1999-03-29",
"1998-12-31",
"14",
true,
23.12,
"YEAR 2000 Certain computer programs written with two digits rather than four to define the applicable year may experience problems handling …",
"…"
],
[
"1998-03-09",
"1997-12-31",
"14",
true,
22.66,
"YEAR 2000 In prior years, certain computer programs were written using two digits rather than four to define the applicable year. These prog…",
"…"
],
[
"2000-03-09",
"1999-12-31",
"14",
true,
17.53,
"- -- The uncertainties of litigation, as well as other risks and uncertainties detailed from time to time in our Company's Securities and Ex…",
"…"
]
]
},
"sources": [
"SEC EDGAR: the company's annual reports"
],
"limits": [
"This matches words, ranked by how rare and how frequent they are. It does not understand meaning: a passage can use the words and be about s…",
"A count follows what lawyers choose to write as much as what is happening. A rise is a change in the words, not evidence of the event.",
"Tables and short headings are left out. Reports older than about 2001 are plain text, and their sections may not be identified."
]
}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 |
|---|---|---|
filing_memory | markets | Everything one company has said about a subject across every annual report it has on EDGAR, back to the 1990s where they exist: the best passages with links, how often it came up each year, and optionally how that moved with a margin, tested against chance. Reads the reports on this machine; no key. Supply the company's likely words in also and all_of, since a company rarely uses yours. |
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
