Koskamo

DepthFeed MCP

An official MCP server operated by DepthFeed that enables AI agents to retrieve live and historical order-book depth data for prediction markets such as Polymarket, Kalshi, and Limitless. It provides tools for market search, snapshot retrieval, and order book access via a Streamable HTTP endpoint.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

DepthFeed MCP logo, by DepthFeedVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by DepthFeed
You need:Add a DepthFeed API key (`Authorization: Bearer df_…`) to unlock all 7 assets, Kalshi, Limitless, the full ladder, and deep history
MCP endpoint (Streamable HTTP)
https://api.depthfeed.com/mcp
Vendor documentation

What its tools do

15 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

15 of 15 have a description · 15 of 15 declare behavior hints · 12 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to depthfeed.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve live and historical order-book depth for Polymarket, Kalshi, and Limitless
  • Search for specific prediction markets across supported venues
  • Access market snapshots and candle data for backtesting strategies
  • Monitor wallet intelligence and book audits for public Polymarket wallets

Source and maintenance

Vendor evidenceRegistry 0.1.0

Protocol and capabilities

Server
depthfeed 0.0.1
MCP protocol negotiated in check
2025-11-25
Tools
15 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

DepthFeed serves prediction-market order-book depth and history for Polymarket, Kalshi, and Limitless across BTC/ETH/SOL/XRP/DOGE/BNB/HYPE up/down markets. Paid data plans can use polymarket_all_markets for the complete current Polymarket universe in a compact MARKET_NAME | PRICE | DEADLINE format. Then use the *_search_markets tools or the returned market ids to inspect depth and history with *_get_orderbook / *_get_snapshots tools for live and historical depth; `screener` gives a cross-venue top-of-book view. Without an API key you are on the keyless demo tier (BTC + Polymarket, top-of-book only). Set a DepthFeed API key (Authorization: Bearer df_…, from https://depthfeed.com) to unlock all coins, Kalshi, Limitless, the full ladder, and deep history. Timestamps accept ms-epoch or ISO-8601.

Tools

15 advertised

polymarket_all_markets
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Paid data plan required. Return every active Polymarket market across all categories, not only crypto. AI execution credits do not unlock this export. The text result is one LLM-readable line per market: MARKET_NAME | OUTCOME PRICES | DEADLINE | MARKET_ID. The sweep fails closed if complete pagination cannot be verified and includes timestamp, count, source-page count, and SHA-256.

polymarket_all_markets input schema
{
  "type": "object",
  "properties": {}
}
polymarket_all_markets annotations
{
  "title": "All Polymarket markets",
  "readOnlyHint": true,
  "openWorldHint": true
}
polymarket_search_markets
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List Polymarket up/down crypto prediction markets for a coin. Returns market id, slug, window, status and timing. Use the returned id/slug with polymarket_get_market or polymarket_get_snapshots.

polymarket_search_markets input schema
{
  "type": "object",
  "properties": {
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "type": {
      "type": "string",
      "description": "Filter by market window/type, e.g. 5m, 15m, 1h, 4h, 24h."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Page size (1–100)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    },
    "end_time": {
      "type": "string",
      "description": "Filter: markets active at/before this time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "resolved": {
      "type": "boolean",
      "description": "true → only resolved markets, false → only active."
    },
    "start_time": {
      "type": "string",
      "description": "Filter: markets active at/after this time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    }
  }
}
polymarket_search_markets annotations
{
  "title": "Search Polymarket markets",
  "readOnlyHint": true,
  "openWorldHint": true
}
polymarket_get_market
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Fetch a single Polymarket market by id (market_id) or by slug. Provide exactly one of market_id or slug.

polymarket_get_market input schema
{
  "type": "object",
  "properties": {
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "slug": {
      "type": "string",
      "description": "Market slug (alternative to market_id)."
    },
    "market_id": {
      "type": "string",
      "description": "Market id from polymarket_search_markets."
    }
  }
}
polymarket_get_market annotations
{
  "title": "Get Polymarket market",
  "readOnlyHint": true,
  "openWorldHint": true
}
polymarket_get_snapshots
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Historical order-book snapshots (time series) for one Polymarket market. Use interval to downsample and include_orderbook for the full ladder. History depth is gated by plan.

polymarket_get_snapshots input schema
{
  "type": "object",
  "required": [
    "market_id"
  ],
  "properties": {
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "fill": {
      "enum": [
        "ffill",
        "none"
      ],
      "type": "string",
      "description": "ffill returns ONE ROW PER BUCKET for the whole window, carrying the last captured book into buckets that held no capture. Each row then carries `filled` (0 = a capture, 1 = carried forward) and `as_of_ts`, the moment that book was recorded. Requires `interval`. Without it, `interval` returns only the buckets that held a capture — a short series means the market is quoted infrequently, not that data is missing."
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Page size (1–1000)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    },
    "end_time": {
      "type": "string",
      "description": "End of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "interval": {
      "type": "string",
      "description": "Downsample bucket — 30s, 1m, 5m, 1h, up to 1d. Returns the newest book in each bucket. Omit for every recorded book change."
    },
    "market_id": {
      "type": "string",
      "description": "Market id from polymarket_search_markets."
    },
    "start_time": {
      "type": "string",
      "description": "Start of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "include_orderbook": {
      "type": "boolean",
      "description": "Include the full bid/ask ladder per snapshot (default top-of-book)."
    }
  }
}
polymarket_get_snapshots annotations
{
  "title": "Polymarket order-book history",
  "readOnlyHint": true,
  "openWorldHint": true
}
kalshi_search_markets
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List Kalshi crypto markets (full yes/no depth, DepthFeed-exclusive). Every account plan; the keyless demo surface returns a 402 upsell.

kalshi_search_markets input schema
{
  "type": "object",
  "properties": {
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "type": {
      "type": "string",
      "description": "Filter by market window/type."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Page size (1–100)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    }
  }
}
kalshi_search_markets annotations
{
  "title": "Search Kalshi markets",
  "readOnlyHint": true,
  "openWorldHint": true
}
kalshi_get_orderbook
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Latest yes/no order-book depth for a Kalshi market by ticker. Every account plan; only the keyless demo surface is refused.

kalshi_get_orderbook input schema
{
  "type": "object",
  "required": [
    "ticker"
  ],
  "properties": {
    "ticker": {
      "type": "string",
      "description": "Kalshi market ticker from kalshi_search_markets."
    }
  }
}
kalshi_get_orderbook annotations
{
  "title": "Get Kalshi order book",
  "readOnlyHint": true,
  "openWorldHint": true
}
kalshi_get_snapshots
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Historical yes/no depth snapshots for a Kalshi market by ticker. Every account plan; history is bounded by your plan window.

kalshi_get_snapshots input schema
{
  "type": "object",
  "required": [
    "ticker"
  ],
  "properties": {
    "fill": {
      "enum": [
        "ffill",
        "none"
      ],
      "type": "string",
      "description": "ffill returns ONE ROW PER BUCKET for the whole window, carrying the last captured book into buckets that held no capture. Each row then carries `filled` (0 = a capture, 1 = carried forward) and `as_of_ts`, the moment that book was recorded. Requires `interval`. Without it, `interval` returns only the buckets that held a capture — a short series means the market is quoted infrequently, not that data is missing."
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Page size (1–1000)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    },
    "ticker": {
      "type": "string",
      "description": "Kalshi market ticker."
    },
    "end_time": {
      "type": "string",
      "description": "End of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "interval": {
      "type": "string",
      "description": "Downsample bucket — 30s, 1m, 5m, 1h, up to 1d. Returns the newest book in each bucket. Omit for every recorded book change."
    },
    "start_time": {
      "type": "string",
      "description": "Start of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    }
  }
}
kalshi_get_snapshots annotations
{
  "title": "Kalshi order-book history",
  "readOnlyHint": true,
  "openWorldHint": true
}
kalshi_get_candles
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Hourly OHLC candles (yes bid, yes ask, traded price) plus volume and open interest for a Kalshi market. This is the only history that exists for non-crypto Kalshi markets — Kalshi serves no historical order book — and it reaches back up to a year, far past the order-book capture. `price` is null in periods with no trade. Every account plan; history is bounded by your plan window.

kalshi_get_candles input schema
{
  "type": "object",
  "required": [
    "ticker"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 500,
      "minimum": 1,
      "description": "Page size (1–500)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    },
    "ticker": {
      "type": "string",
      "description": "Exact Kalshi market ticker from kalshi_search_markets (never constructed from a timestamp)."
    },
    "end_time": {
      "type": "string",
      "description": "End of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "interval": {
      "type": "string",
      "description": "Candle period. Only 1h (60m) is recorded; omit for the default."
    },
    "start_time": {
      "type": "string",
      "description": "Start of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    }
  }
}
kalshi_get_candles annotations
{
  "title": "Kalshi candle history",
  "readOnlyHint": true,
  "openWorldHint": true
}
limitless_search_markets
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List currently-open Limitless (Base CLOB) markets, DepthFeed-exclusive. Every account plan; only the keyless demo surface is refused.

limitless_search_markets input schema
{
  "type": "object",
  "properties": {
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "type": {
      "type": "string",
      "description": "Filter by market window/type."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Page size (1–100)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    }
  }
}
limitless_search_markets annotations
{
  "title": "Search Limitless markets",
  "readOnlyHint": true,
  "openWorldHint": true
}
limitless_get_orderbook
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Latest L2 depth (bids desc / asks asc) for a Limitless market by slug. Every account plan; only the keyless demo surface is refused.

limitless_get_orderbook input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Limitless market slug from limitless_search_markets."
    }
  }
}
limitless_get_orderbook annotations
{
  "title": "Get Limitless order book",
  "readOnlyHint": true,
  "openWorldHint": true
}
limitless_get_snapshots
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Historical L2 depth snapshots (time series) for a Limitless market by slug. Every account plan; history is bounded by your plan window.

limitless_get_snapshots input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "fill": {
      "enum": [
        "ffill",
        "none"
      ],
      "type": "string",
      "description": "ffill returns ONE ROW PER BUCKET for the whole window, carrying the last captured book into buckets that held no capture. Each row then carries `filled` (0 = a capture, 1 = carried forward) and `as_of_ts`, the moment that book was recorded. Requires `interval`. Without it, `interval` returns only the buckets that held a capture — a short series means the market is quoted infrequently, not that data is missing."
    },
    "slug": {
      "type": "string",
      "description": "Limitless market slug."
    },
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "minimum": 1,
      "description": "Page size (1–1000)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response's pagination.next_cursor."
    },
    "end_time": {
      "type": "string",
      "description": "End of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "interval": {
      "type": "string",
      "description": "Downsample bucket — 30s, 1m, 5m, 1h, up to 1d. Returns the newest book in each bucket. Omit for every recorded book change."
    },
    "start_time": {
      "type": "string",
      "description": "Start of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    }
  }
}
limitless_get_snapshots annotations
{
  "title": "Limitless order-book history",
  "readOnlyHint": true,
  "openWorldHint": true
}
bars
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

OHLCV price bars for US equities and ETFs, Binance spot pairs, and perpetual futures. One minute is the finest resolution; 5Min, 15Min, 1Hour and 1Day are rolled up from it and say so with `derived`. Spell a crypto pair the way the venue does (BTCUSDT, not BTC) and a perpetual with a .P suffix (BTCUSDT.P) — spot and perp are different instruments at different prices. BTCU, ETHU and WLDU are each both a US ETF and a Binance pair, and resolve to the equity — pass venue=binance to reach the pair instead. Optional `venue` selects the market explicitly: us-equities, binance (spot) or binance-futures (perpetuals). Bounded by the same plan history window as every other read (403 HISTORY_LIMIT_EXCEEDED past it); the plan also sets how many symbols one request may carry.

bars input schema
{
  "type": "object",
  "required": [
    "symbols"
  ],
  "properties": {
    "symbols": {
      "type": "string",
      "description": "Comma-separated symbols, e.g. \"AAPL,BTCUSDT,BTCUSDT.P\". 3 per request on Explorer, 8 Quant, 16 Research, 32 Desk."
    },
    "end_time": {
      "type": "string",
      "description": "End of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    },
    "timeframe": {
      "type": "string",
      "description": "1Min (default), 5Min, 15Min, 1Hour or 1Day."
    },
    "start_time": {
      "type": "string",
      "description": "Start of time as ms-epoch or ISO-8601. History is clamped to your plan's window."
    }
  }
}
bars annotations
{
  "title": "Equity & crypto price bars",
  "readOnlyHint": true,
  "openWorldHint": true
}
backtest_paths
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Mid-price path per Polymarket market for backtesting, resampled to a fixed interval and bounded to each market's own lifetime so post-settlement books cannot leak in as risk-free fills. Returns {interval_seconds, markets:{<market_id>:{points:[[ts_ms, price_up, coin_price], …]}}} — up to 1000 points per market. Pass 1 to 50 market ids from polymarket_search_markets. History is bounded by the plan window and the interval floor by plan; both fail closed rather than silently coarsening.

backtest_paths input schema
{
  "type": "object",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "string",
      "description": "Comma-separated Polymarket market ids, 1 to 50, from polymarket_search_markets."
    },
    "coin": {
      "enum": [
        "btc",
        "eth",
        "sol",
        "xrp",
        "doge",
        "bnb",
        "hype"
      ],
      "type": "string",
      "default": "btc",
      "description": "Crypto asset. Every account plan reaches all seven; only the keyless demo surface is BTC-only."
    },
    "interval": {
      "type": "integer",
      "description": "Resample interval in seconds (default 60). The floor is set by plan; a finer value is refused, not rounded."
    }
  }
}
backtest_paths annotations
{
  "title": "Backtest price paths",
  "readOnlyHint": true,
  "openWorldHint": true
}
screener
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Cross-venue top-of-book snapshot for all assets across Polymarket, Kalshi, and Binance — a one-shot overview of the current state. No arguments.

screener input schema
{
  "type": "object",
  "properties": {}
}
screener annotations
{
  "title": "Cross-venue screener",
  "readOnlyHint": true,
  "openWorldHint": true
}
whoami
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Show the current session's plan, rate limits, history window, and coin access (reflects keyless demo vs. your API key).

whoami input schema
{
  "type": "object",
  "properties": {}
}
whoami annotations
{
  "title": "Show plan & limits",
  "readOnlyHint": true,
  "openWorldHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
829 ms
95th percentile latency
829 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 829 ms · metadata changed · 15 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http depthfeed-mcp https://api.depthfeed.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add depthfeed-mcp --url https://api.depthfeed.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable depthfeed-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "depthfeed-mcp": {
      "url": "https://api.depthfeed.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "depthfeed-mcp": {
      "type": "streamableHttp",
      "url": "https://api.depthfeed.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start depthfeed-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "depthfeed-mcp": {
      "type": "http",
      "url": "https://api.depthfeed.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http depthfeed-mcp https://api.depthfeed.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.depthfeed.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "depthfeed-mcp": {
      "serverUrl": "https://api.depthfeed.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like DepthFeed MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run DepthFeed MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing