Prerequisites

  • An ssmd API key with datasets:read scope
  • uv (Python package manager)
  • Claude Code or Claude Desktop

1. Install the MCP Server

git clone https://github.com/aaronwald/ssmd.git
cd ssmd/ssmd-mcp
uv sync

2. Configure Environment

Create ssmd/ssmd-mcp/.env:

SSMD_API_URL=https://api.varshtat.com
SSMD_API_KEY=sk_live_...

3. Add to Claude Code

Create or edit .mcp.json in your project root:

{
  "mcpServers": {
    "ssmd": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ssmd/ssmd-mcp", "ssmd-mcp"],
      "env": {
        "SSMD_API_URL": "https://api.varshtat.com",
        "SSMD_API_KEY": "sk_live_..."
      }
    }
  }
}

4. Add to Claude Desktop

Edit the config file:

macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "ssmd": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ssmd/ssmd-mcp", "ssmd-mcp"],
      "env": {
        "SSMD_API_URL": "https://api.varshtat.com",
        "SSMD_API_KEY": "sk_live_..."
      }
    }
  }
}

Available Tools

query_trades

Trade aggregation by ticker — count, volume, price range

query_prices

Latest price snapshots per instrument

query_events

Event-level trade summaries grouped by parent event

query_volume

Cross-feed daily volume summary

lookup_market

Market metadata lookup by ID across all exchanges

list_feeds

Available feeds with date ranges and message types

check_freshness

Data freshness per feed — flags stale pipelines

Example Queries

Once configured, ask Claude:

"What were the most traded Kalshi markets today?"
"Show me Kraken futures prices"
"How fresh is the polymarket data?"
"Look up market KXBTCD-26FEB28-T105249.99"

Data Schema Reference

Full column definitions for all feeds and message types are in the Parquet Schema Reference.

Detailed WebSocket message schemas per exchange: