ko.io
ko.io — Wall Street data feed for AI agents
One command connects Claude, Cursor, Windsurf, Zed, Codex, and any MCP client to 100M+ source-traced SEC records. Every answer traces to a real filing.
Website · Docs · MCP Setup · Get a free key · Pricing
30-second start
In an AI agent (MCP) — works instantly, no key needed:
claude mcp add ko-sec-data --transport http https://mcp.ko.io/mcpThen ask: "who is buying NVDA?", "what did Congress trade last month?", "which institutions hold spot BTC ETFs?" — the agent calls real tools and cites real filings.
Over REST — keyless demo mode:
curl "https://api.ko.io/api/v1/institutions?search=berkshire&demo=true"In Python:
pip install ko-edgarfrom ko_edgar import KoClient
ko = KoClient() # demo mode; KoClient(api_key="ko_live_...") for your quota
for h in ko.stocks.holders("NVDA"):
print(h["name"], h["holding_value"], h["action"])In TypeScript:
npm install @ko-io/sdkimport { KoClient } from "@ko-io/sdk";
const ko = new KoClient(); // or { apiKey: "ko_live_..." }
const { rows } = await ko.congress.trades({ sort: "recent" });Free keys are 200 calls/day, forever, no credit card → ko.io/console.
What's in this repo
Directory | What it is |
The hosted MCP server (mcp.ko.io) — Cloudflare Worker, 24 tools, deployed from this repo | |
Verified setup guides for every MCP client | |
| |
| |
| |
10 runnable answers to real investing questions | |
Machine-readable map of every tool and endpoint |
The MCP server in server/ is the exact code running at
https://mcp.ko.io/mcp — every push deploys it. You can also self-host it on
your own Cloudflare account (cd server && npx wrangler deploy); it proxies
to api.ko.io with your API key, so your quota and plan follow you. The data
pipelines behind the API run as a managed service (dual-region, 3-replica
ClickHouse, 26 pipelines refreshing on each source's publication schedule).
Note:
ko-edgaris live on PyPI (pip install ko-edgar). The npm packages@ko-io/sdkand@ko-io/mcp-sec-datapublish shortly. The hosted MCP endpoint and REST API work today.
Connect your client
Client | Guide | One-liner |
Claude Code |
| |
Claude Desktop | remote HTTP config or | |
Cursor |
| |
Windsurf | Cascade → MCP | |
Zed |
| |
OpenAI Codex |
| |
ChatGPT / Gemini / Grok | REST API / Custom GPT Actions |
To use your own quota in any client, append ?api_key=YOUR_KEY to the server
URL, or send Authorization: Bearer YOUR_KEY.
The data
Dataset | Coverage | Free tier |
13F institutional holdings | 85M+ rows, 2013 → today, family-consolidated | ✅ |
Insider trades (Forms 3/4/5) | 11M+ transactions, open-market classified | ✅ |
Congress trading | STOCK Act disclosures, both chambers | ✅ |
Crypto ETF exposure | Institutional spot-BTC-ETF holdings from 13F | ✅ |
Form 144 | Planned insider sales (forward-looking) | ✅ |
Fails-to-deliver + Reg SHO | Short-side stress footprints | ✅ |
Stock prices & financials | Daily OHLCV + XBRL-derived statements | ✅ |
SEC filings gateway | Any filing document, signed shareable links | list/index ✅ · documents Pro |
Macro (Treasury, Fed, CPI, OFR stress) | Daily federal sources | Pro |
All data is source-traced through the pipeline, and the filings gateway can pull the underlying SEC documents — so your agent cites real filings instead of inventing numbers.
The 24 MCP tools
Institutions: get_institution_holdings · list_institutions ·
Stocks: get_stock_profile · get_stock_holders · get_stock_activity ·
get_stock_price · get_stock_financials ·
Insiders: get_insider_trades · list_insider_traders ·
Congress: get_congress_trades · get_congress_member ·
Crypto: get_crypto_exposure · get_crypto_holders · get_crypto_holder ·
Filings: sec_list_filings · sec_get_filing_index · sec_get_filing_document ·
Short data: get_ftd_data ·
Search: search · Form 144: get_form144_notices ·
Macro (Pro): get_treasury_yields · get_fed_rates ·
get_economic_indicators · get_financial_stress
Full parameter reference: llms.txt · ko.io/docs
Why not scrape EDGAR directly?
Excellent open-source tools exist for pulling raw filings from SEC EDGAR (e.g. sec-edgar-mcp — if you need one company's raw documents in a local process, it's a fine choice). ko.io solves a different problem — the questions raw EDGAR can't answer:
Raw EDGAR access | ko.io | |
"Get AAPL's latest 10-K" | ✅ | ✅ (filings gateway) |
"Who is buying NVDA across all institutions?" | ❌ needs every 13F parsed | ✅ 122ms |
"Berkshire's portfolio, 52 quarters back" | ❌ parse 50+ filings live | ✅ precomputed |
"Vanguard's 7 filing entities as one manager" | ❌ | ✅ family consolidation |
Congress trades, FTD, macro, crypto exposure | ❌ not in EDGAR | ✅ |
Works in web-based AI (claude.ai, ChatGPT) | ❌ local process | ✅ hosted MCP |
Setup | Python env + install | one command, zero install |
Plans
Demo (no key) | Free | Pro $29/mo | Team $99/mo | |
Calls/day | limited | 200 | 20,000 | 200,000 |
Rows/request | 500 | 500 | 5,000 | 50,000 |
Core SEC data | ✅ | ✅ | ✅ | ✅ |
History depth | latest | latest | full | full |
Macro (Treasury/Fed/CPI/stress) | — | — | ✅ | ✅ |
Bulk export | — | — | — | ✅ |
Quota resets 00:00 UTC. MCP and REST share one quota. Details →
Contributing
Issues and PRs welcome — see CONTRIBUTING.md. Security reports: SECURITY.md.
MIT © ko.io