# KalshiSpy (remote · kalshispy.com)

What Kalshi's top-earning traders won and hold: settled wins free, live markets with an API key.

- Trust score: 85/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `kalshispy.com`: 85/100 (this document), [markdown](https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy.md), [page](https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy)

## Channel facts

- Endpoint: `https://kalshispy.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.1.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-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - 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**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1492 tokens (~298/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the KalshiSpy MCP server?

KalshiSpy is a hosted endpoint at https://kalshispy.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-kalshispy-kalshispy 'https://kalshispy.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-kalshispy-kalshispy": {
      "url": "https://kalshispy.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-kalshispy-kalshispy": {
      "type": "http",
      "url": "https://kalshispy.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-kalshispy-kalshispy]
url = "https://kalshispy.com/mcp"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add com-kalshispy-kalshispy --url 'https://kalshispy.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-kalshispy-kalshispy:
    url: "https://kalshispy.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-kalshispy-kalshispy": {
      "Transport": "http",
      "Url": "https://kalshispy.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-kalshispy-kalshispy -t streamable-http -u 'https://kalshispy.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-kalshispy-kalshispy": {
      "type": "http",
      "url": "https://kalshispy.com/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-11-05 (score 85, 0)

- [security] Stability: 0.97 → pass

### 2026-11-04 (score 85, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 2.1.1 → 2.2.0

### 2026-11-01 (score 84, +1)

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

### 2026-10-30 (score 83, +1)

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

### 2026-10-29 (score 82, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search_markets” rewrote its description, which is the text the model reads
- [functional] Server version: 2.1.0 → 2.1.1
- [cosmetic] “search_markets” reworded the description of “query”
- [cosmetic] “search_settled_wins” reworded the description of “limit”

### 2026-10-28 (score 82, +1)

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

### 2026-10-27 (score 81, 0)

- [security] The server rewrote its instructions, which are the text every model session reads

### 2026-10-26 (score 81, +1)

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

## MCP tools (5)

### `search_markets` (~303 tokens)

Search Kalshi markets by title or keywords

Find Kalshi markets by title or keywords, the way the KalshiSpy app's search works (a team, a nickname or an approximate title works). WITHOUT an API key it returns SETTLED WINS ONLY: settled markets where KalshiSpy's roster of ID-verified, high-profit Kalshi traders held the winning side (wins only, never a hit rate). WITH an Elite or Lifetime API key the same call also returns OPEN markets in `open_markets`: roster positions and named traders' recent trades on still-open markets, and it costs 1 unit of the daily quota. Always read `data.access`: it says which answer you got and, when a key was refused, why; relay that sentence rather than guessing. Call this first whenever the user names a market in words, send the words under the argument name this tool's own schema gives, and cite each market's kalshi_url. An empty list is never evidence that Kalshi has no such market. For more wins, follow `settled_wins.more`, which carries ready-made search_settled_wins arguments.

Input parameters:

- `limit` (integer): Maximum items in each list (settled wins, roster markets, recently traded markets).
- `query` (string, required): Market title or keywords, e.g. "super bowl", "fed rate" or "bitcoin". Terms of 2+ characters, at most 8. All terms must match the title, outcome or tickers.

### `search_settled_wins` (~533 tokens)

Search settled wins (comparable past markets this roster won)

Search KalshiSpy's archive of settled Kalshi markets where its roster of ID-verified, high-profit Kalshi traders held the WINNING side with positive net realized profit. Parameter and field names call these traders "whales" (whale_count, min_whales, sort=whales); in prose, call them the roster or the verified traders. Wins only: losses are not archived, so present results as "what this roster got right on markets like this", never as a hit rate. Use this BEFORE answering about any current or upcoming Kalshi market: search the same series_ticker (e.g. KXFED, KXNBA) or category and cite the comparable past wins — titles, settlement dates, trader counts and realized profit. Each result carries the Kalshi URL and a kalshispy.com detail URL you can cite. Default window is the last 90 days; widen with `from`/`to` (max 366 days). No API key needed.

Input parameters:

- `category` (string): Category key from listCategories (e.g. sports, politics, economics).
- `cursor` (string): Opaque cursor from a previous response (`page.next_cursor`). Send it with the SAME filters; changing the query invalidates it.
- `event_ticker` (string): Kalshi event ticker, e.g. KXFED-26SEP.
- `from` (string): Start of the settlement window. Default: 90 days before `to`. Clamped to the archive start (2025-01-01) and to a 366-day maximum; the effective window is echoed in `window`.
- `limit` (integer): Page size: up to 50 with an Elite or Lifetime API key, up to 20 without one (a larger value is lowered to 20).
- `min_whales` (integer): Only wins with at least this many roster traders on the winning side.
- `query` (string): Free-text search. Every term (2+ chars, max 8) must appear as a substring in the title, outcome, event title, series ticker or ticker. Example: "fed rate" or "lakers".
- `series_ticker` (string): Kalshi series ticker, e.g. KXFED, KXNBA. The best way to find "markets like this one".
- `sort` (string): recent = newest settlement first; profit = largest net profit first; whales = most whales on the winning side first.
- `to` (string): End of the settlement window (inclusive). Default: now.

### `get_settled_win` (~121 tokens)

Get one settled win by ticker

Full record of one settled Kalshi market this roster won: outcome, consensus, every roster trader on the winning side with their realized profit and picture, close and expiration times, keywords, and `hints.similar` — comparable wins in the same series to judge it against. Returns 404 when the ticker is not an archived win (the roster was not on it, or was on the losing side); the 404 carries a hint to search the series instead. No API key needed.

Input parameters:

- `ticker` (string, required): Kalshi market ticker.

### `list_categories` (~53 tokens)

List categories with settled wins

Every category that has at least one archived win, with win count, net profit and the last settlement time. Use the `key` value as the `category` filter of searchSettledWins. No API key needed.

### `get_stats` (~84 tokens)

Get archive stats

Aggregate figures for the settled-wins archive: markets won, net and winners' realized profit, first and last settlement, a per-category breakdown and the highest-profit traders in the archive. Use it for "how has this roster done overall" context, always with the wins-only caveat. `available:false` means the archive has not been published yet. No API key needed.

## Diagnostics

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

## Score history

- 2026-11-05: 85
- 2026-11-04: 85
- 2026-11-03: 84
- 2026-11-02: 84
- 2026-11-01: 84
- 2026-10-31: 83
- 2026-10-30: 83
- 2026-10-29: 82
- 2026-10-28: 82
- 2026-10-27: 81
- 2026-10-26: 81
- 2026-10-25: 80
- 2026-10-24: 80
- 2026-10-23: 80
- 2026-10-22: 79
- 2026-10-21: 79
- 2026-10-20: 78
- 2026-10-19: 78
- 2026-10-18: 77
- 2026-10-17: 77
- 2026-10-16: 76
- 2026-10-15: 76
- 2026-10-14: 76
- 2026-10-13: 75
- 2026-10-12: 75
- 2026-10-10: 74

## Common questions

### What is the KalshiSpy MCP server?

KalshiSpy is an MCP server listed in the public MCP registry as com.kalshispy/kalshispy. What Kalshi's top-earning traders won and hold: settled wins free, live markets with an API key. This page covers its hosted endpoint (https://kalshispy.com/mcp).

### Is the KalshiSpy MCP server safe to use?

KalshiSpy scores 85 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the KalshiSpy MCP server expose?

KalshiSpy exposes 5 tools: search_markets, search_settled_wins, get_settled_win, list_categories, get_stats. Their descriptions and schemas cost roughly 1,094 tokens of context every time the server is loaded.

### Does the KalshiSpy MCP server require authentication?

No. We connected to KalshiSpy without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the KalshiSpy MCP server still maintained?

KalshiSpy is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the KalshiSpy MCP server?

VerifyMCP ran 13 checks on KalshiSpy, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://kalshispy.com/mcp
- Website: https://kalshispy.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy.json
- HTML version of this page: https://verifymcp.io/servers/com-kalshispy-kalshispy/kalshispy
