Skip to content

Integrate · MCP server

SEC filing data, inside your AI agent

One MCP server, 24 typed tools. Claude, Cursor, Windsurf, Zed, Codex and any other MCP client get the same rows as the Terminal and the REST API, with the quarter and form to cite.
Free tier: 200 calls a day. MCP tool calls and REST requests share one quota.

Connect a client

Same endpoint in every client. Works without a key in demo mode.

Claude Code: run in your terminal.

claude mcp add ko-sec-data --transport http https://mcp.ko.io/mcp
  • Add the server: paste the config for your client, or point any MCP client at https://mcp.ko.io/mcp (streamable HTTP).
  • Without a key the server runs in demo mode. To use your plan's quota, append ?api_key=YOUR_KEY to the URL, or in Claude Code add --header "Authorization: Bearer YOUR_KEY". Create a key
  • Ask in plain language, for example “Which positions did Berkshire Hathaway add in Q2 2026?” The agent picks the tools; each tool call counts as one API call.

From the question to the filing

The server is a stateless pass-through to the same API; nothing is generated in between.

  1. Request
    AI agent
    A question or task
  2. Transport
    MCP server
    Tool call + arguments
  3. Data
    ko.io API
    Normalised source rows
  4. Original
    SEC · House · Senate
    Filings the rows came from
Responses carry filing context: the form, the period and the filer.

One server, every agent

Streamable HTTP at https://mcp.ko.io/mcp. Each tool is a typed wrapper over one REST route, so an answer can be checked against the same row in the Terminal.

MCPStreamable HTTP24 tools

Example

What the agent sends, gets back and answers

One question, one tool call. The tool answers in text with rounded figures; the exact values are in the REST row behind it, and the filing is one click away. Check an agent's answer as you would any analyst's.

ExampleAn MCP client connected to ko.io

How many Apple shares did Berkshire Hathaway hold at the end of Q2 2026, and how big is the position?

Calledget_institution_holdings{ institution: "Berkshire Hathaway", limit: 3 }

Interpreted "Berkshire Hathaway" as Berkshire Hathaway Inc (CIK 1067983).

13F Holdings — Quarter: 2026-06-30

Tool result excerpt: first three positions
TickerValueSharesWeight
AAPL$65.95B227.92M22.04%
AXP$51.28B151.61M17.14%
GOOG$37.76B105.98M12.62%

Berkshire Hathaway reported 227.92 million Apple shares for the quarter ending June 30, 2026, worth $65.95 billion. At 22.04% of the reported portfolio it is Berkshire's largest position, ahead of American Express at 17.14%. The share count is unchanged from the prior quarter.

Source: 13F‑HR, period 2026-06-30, SEC EDGAR (opens the filing on sec.gov)

Check it: GET /api/v1/holdings/1067983?ticker=AAPL returns 227,917,808 shares · $65,950,296,923 · 22.04%
tools/callMCP request params
{
  "name": "get_institution_holdings",
  "arguments": {
    "institution": "1067983",
    "limit": 1
  }
}
REST row behind the tool · data[0]
cik
1067983
SEC Central Index Key of the filer
quarter_date
2026-06-30
Portfolio date the 13F reports
ticker
AAPL
Mapped from CUSIP 037833100
shares_held
227,917,808
Sum of 12 information-table lines
holding_value
$65.95B
Reported value, exact 65,950,296,923
portfolio_weight_pct
22.04%
Share of the $299.25B reported total
action
UNCHANGED
Change against the prior quarter
CIK
1067983
Lines summed
12
Shares
227,917,808
Value
$65.95B
SourceSEC EDGAR13F-HR0001193125-26-352200 ↗period 2026-06-30filed 2026-08-14

get_institution_holdings wraps GET /api/v1/holdings/:cik and returns the latest quarter; the row above is AAPL as the API returned it on 2026-09-23. Rows do not carry the accession: sec_list_filings lists the filer's filings and sec_get_filing_index opens one.

Reference

24 tools

19 work on the free tier; the rest need a paid plan. Each tool is a typed wrapper over one REST route.

24 tools

ToolReturnsREST routePlan
Institutions
list_institutionsFind 13F filers by name/api/v1/institutionsFree
get_institution_holdingsA manager's 13F portfolio for a quarter/api/v1/holdings/:cikFree
Stocks
get_stock_profileCompany profile and key figures/api/v1/stocks/:tickerFree
get_stock_priceDaily OHLCV price history/api/v1/stock-price/:tickerFree
get_stock_financialsHistorical 10-K / 10-Q line items/api/v1/stocks/:ticker/financials/historicalFree
get_stock_holdersInstitutional holders of a ticker/api/v1/stock-holders/:tickerFree
get_stock_activityQuarter-over-quarter holder activity/api/v1/stock-holders/:tickerFree
Insiders
get_insider_tradesForm 4 trades by a company's insiders/api/v1/executive-trades/:tickerFree
list_insider_tradersLatest insider trades across the market/api/v1/insider-tradesFree
get_form144_noticesForm 144 proposed-sale notices/api/v1/form144-noticesFree
Congress
get_congress_tradesSTOCK Act trades across members/api/v1/congress-tradesFree
get_congress_memberOne member's disclosed trades/api/v1/congress-trades/:memberFree
Crypto ETFs
get_crypto_exposureSpot crypto-ETF ownership summary/api/v1/crypto/exposure-summaryFree
get_crypto_holdersInstitutions holding a spot crypto ETF/api/v1/crypto/institutional-holdersFree
get_crypto_holderOne institution's crypto-ETF positions/api/v1/crypto/holder/:cikFree
SEC filings
sec_list_filingsA filer's EDGAR filings by form and date/api/v1/filings/:cikFree
sec_get_filing_indexThe documents inside one filing/api/v1/filings/:cik/:accessionFree
sec_get_filing_documentThe text of a filing document/api/v1/filings/:cik/:accession/filePaid
Market structure
get_ftd_dataSEC fails-to-deliver by ticker/api/v1/sec/ftdFree
Macro
get_treasury_yieldsDaily Treasury par yield curve/api/v1/treasury/yieldsPaid
get_fed_ratesFed funds, SOFR and reference rates/api/v1/fed/ratesPaid
get_economic_indicatorsCPI, PPI and other BLS series/api/v1/economic/indicatorsPaid
get_financial_stressOFR Financial Stress Index/api/v1/stress/ofrPaid
Search
searchResolve a ticker, institution or person/api/v1/searchFree

Server: https://mcp.ko.io/mcp · stateless, streamable HTTP. ChatGPT, Gemini, Grok or your own backend can call the same data over REST: see the API reference.

Access

Quotas and limits

Free tier
200calls / day
Paid plans raise it to 20,000 and more.
One quota
MCP and REST share it
One tool invocation = one call. A single question can trigger several.
Over the limit
HTTP 429 with rate-limit headers
The daily quota resets at 00:00 UTC.
Demo mode
No key, rate-limited per IP
Paid-only tools need a key on a paid plan.

Connect your agent

Demo mode works without a key; the free tier includes 200 calls a day.