ko.io
Wall Street data feed for AI agents, providing access to 100M+ source-traced SEC records, institutional holdings, insider trades, congress trading, and more via MCP tools.
README
<div align="center">
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
<img src="assets/demo.svg" alt="Claude querying NVDA institutional holders through the ko.io MCP server" width="760"/>
</div>
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/mcp
Then 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-edgar
from 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/sdk
import { 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 |
|---|---|
server/ |
The hosted MCP server (mcp.ko.io) — Cloudflare Worker, 24 tools, deployed from this repo |
docs/clients/ |
Verified setup guides for every MCP client |
python/ |
ko-edgar — official Python SDK (sync + async, typed) |
typescript/sdk/ |
@ko-io/sdk — official TypeScript SDK (Node 18+, browsers, edge) |
typescript/mcp-proxy/ |
@ko-io/mcp-sec-data — stdio bridge for clients without remote-HTTP MCP support |
cookbook/ |
10 runnable answers to real investing questions |
llms.txt |
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 | guide | claude mcp add ko-sec-data --transport http https://mcp.ko.io/mcp |
| Claude Desktop | guide | remote HTTP config or npx -y @ko-io/mcp-sec-data |
| Cursor | guide | ~/.cursor/mcp.json |
| Windsurf | guide | Cascade → MCP |
| Zed | guide | context_servers in settings |
| OpenAI Codex | guide | codex mcp add ko-sec-data --url https://mcp.ko.io/mcp |
| ChatGPT / Gemini / Grok | guide | 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.