# io.github.SharpLu/ko-mcp (remote · mcp.ko.io)

Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

- Trust score: 69/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.ko.io`: 69/100 (this document), [markdown](https://verifymcp.io/servers/sharplu-ko-mcp/mcp.md), [page](https://verifymcp.io/servers/sharplu-ko-mcp/mcp)

## Channel facts

- Endpoint: `https://mcp.ko.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 24 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2574 tokens (~107/item across 24 items; 24 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 94% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http sharplu-ko-mcp https://mcp.ko.io/mcp
```

### Codex

```toml
[mcp_servers.sharplu-ko-mcp]
url = "https://mcp.ko.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sharplu-ko-mcp": {
      "type": "remote",
      "url": "https://mcp.ko.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sharplu-ko-mcp --url https://mcp.ko.io/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sharplu-ko-mcp:
    url: "https://mcp.ko.io/mcp"
```

### Other

```json
{
  "mcpServers": {
    "sharplu-ko-mcp": {
      "type": "http",
      "url": "https://mcp.ko.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 65, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 64)

First indexed and scored.

## MCP tools (24)

### `get_institution_holdings` (~123 tokens)

Get current stock holdings of an institutional investor (hedge fund, mutual fund, pension fund) from their latest SEC 13F filing. Returns top positions with share counts, values, and quarter-over-quarter changes.

Input parameters:

- `institution` (string, required): Institution CIK number (e.g. '1067983'), slug (e.g. 'berkshire-hathaway'), or name (e.g. 'Berkshire Hathaway') — names are resolved automatically.
- `limit` (integer): Results per page
- `page` (integer): Page number

### `list_institutions` (~72 tokens)

List top institutional investors (hedge funds, mutual funds, etc.) tracked in the SEC 13F database. Supports search by name and pagination.

Input parameters:

- `limit` (integer): Results per page
- `page` (integer): Page number
- `search` (string): Search by institution or founder name

### `get_stock_profile` (~66 tokens)

Get a company's profile — sector, market cap, price, P/E ratio, 52-week range, beta, dividend yield, and other key financials.

Input parameters:

- `ticker` (string, required): Stock ticker symbol (e.g. 'AAPL', 'NVDA', 'MSFT')

### `get_stock_holders` (~82 tokens)

Get top institutional holders of a stock from SEC 13F filings. Shows which hedge funds, mutual funds, and pension funds own the most shares, with quarter-over-quarter changes.

Input parameters:

- `limit` (integer): Results per page
- `page` (integer): Page number
- `ticker` (string, required): Stock ticker symbol (e.g. 'NVDA')

### `get_stock_activity` (~78 tokens)

Get institutional buying/selling activity trend for a stock over multiple quarters. Shows how many institutions are buying vs selling, net share changes, and value flows — useful for detecting accumulation or distribution patterns.

Input parameters:

- `quarters` (integer): Number of quarters to return (default 8 = 2 years)
- `ticker` (string, required): Stock ticker symbol

### `get_stock_price` (~110 tokens)

Get historical daily stock prices (OHLC). Returns a summary by default; set series=true to get the full daily price series (for backtesting / charting).

Input parameters:

- `limit` (integer): Max rows of the daily series to return when series=true.
- `period` (string): Look-back window
- `series` (boolean): If true, return the full daily OHLC series (up to `limit` rows) instead of just a summary.
- `ticker` (string, required): Stock ticker symbol

### `get_insider_trades` (~103 tokens)

Get insider/executive stock trades (SEC Form 4) for a company. Shows CEO, CFO, directors, and other officers buying or selling their own company's stock — a key signal for institutional investors.

Input parameters:

- `executive_cik` (string): Filter by specific executive CIK (from list_insider_traders)
- `limit` (integer): Max trades to return
- `ticker` (string, required): Stock ticker symbol (e.g. 'AAPL')

### `list_insider_traders` (~96 tokens)

List executives/insiders who have recently traded their company stock. Filter by role (CEO only or all executives). Useful for finding notable insider buying/selling activity across the market.

Input parameters:

- `limit` (integer)
- `page` (integer)
- `role` (string): Filter by role (case-insensitive): CEO, executive/officer, or all
- `search` (string): Search by name or ticker

### `get_congress_trades` (~324 tokens)

Search individual stock trades disclosed by U.S. Congress members (House and Senate) under the STOCK Act. Returns a markdown table of transactions: member name, chamber, ticker, buy/sell type, transaction date, disclosure date (the gap between the two reveals reporting delay), dollar amount range, and owner (self/spouse/joint). Use for questions like 'What did Nancy Pelosi trade recently?', 'Which members bought NVDA?', or 'Show the largest Senate trades this quarter'. Filter by chamber, party, state, ticker, or member name; sort by traded value, trade count, or recency. For one member's profile and complete trading history, use get_congress_member instead.

Input parameters:

- `chamber` (string): Congressional chamber: house, senate, or all (default all)
- `limit` (integer): Trades per page, 1-50 (default 20)
- `page` (integer): Page number for pagination (default 1)
- `party` (string): Filter by party — D=Democrat, R=Republican, I=Independent
- `search` (string): Full or partial member name, e.g. 'Pelosi' or 'Dan Crenshaw'
- `sort` (string): Sort order — volume (most traded value), trades (most trades), recent (latest first)
- `state` (string): Member 2-letter U.S. state code, e.g. CA or TX
- `ticker` (string): Stock ticker symbol to filter by, e.g. NVDA or AAPL

### `get_congress_member` (~88 tokens)

Get detailed trading history of a specific U.S. Congress member. Shows individual trades with transaction types, amounts, and disclosure dates.

Input parameters:

- `limit` (integer)
- `member` (string, required): Member slug (e.g. 'nancy-pelosi', 'dan-crenshaw'). Use get_congress_trades or search to find exact slugs.
- `page` (integer)

### `search` (~85 tokens)

Search across institutions, stocks, and insider traders in the ko.io SEC database. Use this first when you have a name but need the CIK number, ticker, or slug to use with other tools.

Input parameters:

- `limit` (integer): Max results per category
- `query` (string, required): Search query — company name, ticker, person name, or institution name (min 2 characters)

### `get_form144_notices` (~101 tokens)

Get SEC Form 144 filings — notices of proposed sale of restricted/controlled securities by insiders. Filed before selling, these signal upcoming insider sales. Complements Form 4 (post-trade) with pre-trade intent.

Input parameters:

- `insider_cik` (string): Filter by insider's CIK number
- `limit` (integer): Max notices to return
- `ticker` (string): Filter by stock ticker (e.g. 'AAPL')

### `sec_list_filings` (~156 tokens)

List an entity's SEC filings from EDGAR (most recent first), each with its accession number. Provide the company's CIK (use search or get_stock_profile to find it). Returns accession numbers to pass to sec_get_filing_index / sec_get_filing_document.

Input parameters:

- `cik` (string, required): Company CIK number (e.g. '320193' for Apple)
- `form_type` (string): Exact SEC form filter, e.g. '10-K', '13F-HR', '8-K'
- `from` (string): Earliest filing date, ISO YYYY-MM-DD
- `limit` (integer): Max filings to return
- `to` (string): Latest filing date, ISO YYYY-MM-DD

### `sec_get_filing_index` (~87 tokens)

Enumerate every file in a single SEC filing (primary document, exhibits, images, XBRL, the full .txt submission). Pass a file name from here to sec_get_filing_document.

Input parameters:

- `accession_no` (string, required): Accession number, e.g. '0000320193-23-000106'
- `cik` (string, required): Company CIK number

### `sec_get_filing_document` (~152 tokens)

Get a source document from a SEC filing, served by ko.io. Returns a ko.io LINK to the rendered document (open in a browser) plus, optionally, an extracted text excerpt. Never returns the whole file — for full content, open the link or request a specific section.

Input parameters:

- `accession_no` (string, required): Accession number, e.g. '0000320193-23-000106'
- `cik` (string, required): Company CIK number
- `file` (string): File name within the filing (from sec_get_filing_index). Omit for the primary document.
- `include_excerpt` (boolean): Include a text excerpt (first ~6000 chars) in the response

### `get_stock_financials` (~105 tokens)

Get quarterly or annual financial statements for a company (revenue, net income, EPS, margins, cash flow, debt ratios) from SEC 10-K/10-Q filings.

Input parameters:

- `limit` (integer): Number of periods to return (default 8)
- `period_type` (string): Period type — quarterly (10-Q) or annual (10-K)
- `ticker` (string, required): Stock ticker symbol (e.g. 'AAPL', 'MSFT')

### `get_treasury_yields` (~72 tokens)

Get U.S. Treasury yield curve data — daily yields for maturities from 1-month to 30-year. Essential for understanding interest rate environment and yield curve shape.

Input parameters:

- `days` (integer): Days of daily history to return, 1-3650 (default 30 = last month)

### `get_fed_rates` (~146 tokens)

Get daily U.S. policy and money-market interest rates as a markdown table: Effective Fed Funds Rate, SOFR, Prime Rate, and benchmark Treasury yields (3M, 2Y, 10Y, 30Y) per date, newest first. Use for monetary-policy questions like 'Where is the Fed funds rate now?' or 'How has SOFR moved this quarter?', or to compare policy rates against long-end yields for inversion analysis. Covers up to 10 years of daily history. For the full Treasury curve across all maturities, use get_treasury_yields instead.

Input parameters:

- `days` (integer): Number of days of history (default 30)

### `get_economic_indicators` (~103 tokens)

Get U.S. economic indicators from BLS — CPI (inflation), PPI (producer prices), Non-farm Payrolls (employment), Unemployment Rate, JOLTS. Filter by category.

Input parameters:

- `category` (string): Category (case-insensitive): cpi/inflation, ppi, nfp/payrolls, unemployment, jolts, or all
- `days` (integer): Number of days of history (default 365)

### `get_ftd_data` (~76 tokens)

Get SEC Failures-to-Deliver (FTD) data for a stock. High FTD quantities may indicate naked short selling or settlement issues.

Input parameters:

- `days` (integer): Number of days of history (default 90)
- `ticker` (string, required): Stock ticker symbol (e.g. 'GME', 'TSLA')

### `get_financial_stress` (~54 tokens)

Get the OFR Financial Stress Index — a daily indicator of stress in global financial markets. Values above 0 indicate above-average stress.

Input parameters:

- `days` (integer): Number of days of history (default 365)

### `get_crypto_exposure` (~75 tokens)

Get a market-wide summary of institutional exposure to US spot crypto ETFs (Bitcoin ETF complex: IBIT, FBTC, GBTC, etc.) from the latest quarter of SEC 13F filings. Returns total institutional USD held, quarter-over-quarter change, and a per-ETF breakdown (holders, USD, QoQ).

### `get_crypto_holders` (~114 tokens)

List institutional investors holding US spot crypto ETFs (Bitcoin ETF complex), ranked by total USD held, from the latest quarter of SEC 13F filings. Optionally filter to holders of a specific ETF via the `product` parameter (e.g. 'IBIT').

Input parameters:

- `limit` (integer): Results per page
- `page` (integer): Page number
- `product` (string): Filter to holders of a specific spot crypto ETF ticker, e.g. 'IBIT', 'FBTC', 'GBTC'.

### `get_crypto_holder` (~106 tokens)

Get one institution's spot crypto-ETF holdings (Bitcoin ETF complex): its per-ETF positions in the latest filed quarter (shares, USD, QoQ change, action) plus its rank among all crypto-ETF holders. Use a CIK number (find it with get_crypto_holders or the search tool).

Input parameters:

- `institution` (string, required): Institution CIK number (e.g. '1512857' for Brevan Howard) or name (e.g. 'BlackRock').

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sharplu-ko-mcp/mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 68
- 2026-07-31: 68
- 2026-07-30: 67
- 2026-07-29: 66
- 2026-07-28: 66
- 2026-07-27: 65
- 2026-07-26: 64

## Links

- Remote endpoint: https://mcp.ko.io/mcp
- Repository: https://github.com/SharpLu/ko-mcp
- Website: https://ko.io/
- Changelog RSS feed: https://verifymcp.io/servers/sharplu-ko-mcp/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/sharplu-ko-mcp/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/sharplu-ko-mcp/mcp
