Crypto Markets Desk

Kalshi 15-minute crypto markets, perps funding, liquidation math and bitcoin model edges.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
76%
Naming quality
86%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,018Tokens (tool definitions)
~3.3 KBTypical response size
Significant attention impact (2.36% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "crypto": {
      "url": "https://predictionmarketspicks.com/api/mcp-crypto/mcp?via=registry"
    }
  }
}

Remote endpoints

https://predictionmarketspicks.com/api/mcp-crypto/mcp?via=registrystreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢fifteen_min_board(series, asset_class, open_only, limit)

Use for "what is the ETH 15-minute market doing" and "which Kalshi 15-minute markets are open". Every Kalshi 15-minute up-or-down series — crypto, metals, energy, FX — with window status, YES price, close time, target price, what it settles on and the up rate over the last 96 windows, plus the same window on Polymarket (international) for BTC, ETH, SOL and XRP with each venue's settlement index, and our Bitcoin top-of-hour rule (WATCH mode). Pass series ("eth", "KXBTC15M") or asset_class.

Input Schema

{
  "type": "object",
  "properties": {
    "series": {
      "description": "One series: ticker (KXETH15M) or asset (\"eth\", \"gold\", \"euro\").",
      "type": "string",
      "maxLength": 40
    },
    "asset_class": {
      "description": "crypto · commodity · currency · all (default all).",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "crypto",
            "commodity",
            "currency",
            "all"
          ]
        }
      ]
    },
    "open_only": {
      "description": "Only series with a window open right now (default false).",
      "type": "boolean"
    },
    "limit": {
      "description": "Max rows (default 30). Values above 40 are clamped to 40.",
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "tell_user": {
      "description": "Show this sentence to the user first.",
      "type": "string"
    },
    "timestamp": {
      "type": "string"
    },
    "data_freshness": {},
    "sources": {},
    "needs_input": {},
    "example_call": {},
    "rows": {
      "description": "Kalshi 15-minute series: window status, YES price, close time, target, settlement source, up rate."
    },
    "our_model": {
      "description": "Bitcoin only: our published top-of-hour rule — status (WATCH until it passes), paper record, last graded call, next decision time, and current_call: the bot's own :55 decision for the open window (PLAY = live, WATCH = paper)."
    },
    "as_of": {
      "description": "When the board was read."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢perps_board(asset, limit)

Use for "Kalshi perps funding rate" and "how much leverage on Kalshi gold perps". Every Kalshi perpetual future: price, 24h volume, open interest, max leverage long and short, funding cadence, and what funding has cost a long since launch. Pass asset ("btc", "gold") for one.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "description": "One perp: symbol or name (\"btc\", \"gold\", \"XAG\").",
      "type": "string",
      "maxLength": 30
    },
    "limit": {
      "description": "Max rows (default 25). Values above 30 are clamped to 30.",
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "tell_user": {
      "description": "Show this sentence to the user first.",
      "type": "string"
    },
    "timestamp": {
      "type": "string"
    },
    "data_freshness": {},
    "sources": {},
    "needs_input": {},
    "example_call": {},
    "rows": {
      "description": "Kalshi perps: price, 24h volume, open interest, max leverage, funding."
    },
    "as_of": {
      "description": "When the board was read."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢perp_liquidation(asset, side, leverage, margin, entry, ...)

Use for "where does a 5x bitcoin long liquidate on Kalshi". Estimates a Kalshi perp's liquidation price and the % move to it from Kalshi's risk parameters (a 5x BTC long is about 8% away, not the 20% the 100÷leverage rule implies), plus fees and expected funding. An estimate; Kalshi's app shows the exact one. Assets: btc, eth, sol, xrp, doge, hype, link, gold, silver, platinum, palladium. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "asset": {
      "description": "The perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "btc",
            "eth",
            "sol",
            "xrp",
            "doge",
            "hype",
            "link",
            "gold",
            "silver",
            "platinum",
            "palladium"
          ]
        }
      ]
    },
    "side": {
      "description": "Direction. One of: long · short.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "long",
            "short"
          ]
        }
      ]
    },
    "leverage": {
      "description": "Leverage, e.g. 5 or \"5x\". Capped at Kalshi’s maximum for the size and side.",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "margin": {
      "description": "Margin in dollars (default 1000). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\").",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "entry": {
      "description": "Entry price (default: the live price). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\").",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "hold_days": {
      "default": 7,
      "description": "Days held, for the funding estimate (default 7).",
      "type": "number",
      "minimum": 0,
      "maximum": 365
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢commodity_edge(commodity, tickers)

Use for "gold edge today" and "oil or bitcoin trade signal". The Kalshi daily gold, silver or WTI strike, or hourly bitcoin strike, with the largest PMP model edge, as a ticket: side, entry price, resolve criterion, model probability, edge, tier and quarter-Kelly size. Pass tickers[] to check a watchlist. Pro — sign in with PredictionMarketsPicks, or a Pro API key.

Input Schema

{
  "type": "object",
  "properties": {
    "commodity": {
      "description": "Which commodity edge to read (needed for a real answer). One of: silver · bitcoin · gold · oil.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "silver",
            "bitcoin",
            "gold",
            "oil"
          ]
        }
      ]
    },
    "tickers": {
      "description": "Optional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge).",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢calculate_ev(marketPrice, yourProbability)

Use for "is this contract mispriced" and "what is my edge". Give a Kalshi or Polymarket price in cents and your own probability; returns the % expected-value edge and a BUY / SELL / SKIP read.

Input Schema

{
  "type": "object",
  "properties": {
    "marketPrice": {
      "description": "Current contract price in cents (1–99), equal to the implied probability in %. Required for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%.",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "yourProbability": {
      "description": "Your own estimate of the true probability the contract resolves YES, in % (0–100). Required for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%.",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "tell_user": {
      "description": "Show this sentence to the user first.",
      "type": "string"
    },
    "timestamp": {
      "type": "string"
    },
    "data_freshness": {},
    "sources": {},
    "needs_input": {},
    "example_call": {},
    "edge_pct": {
      "description": "Expected-value edge, %."
    },
    "edge_pp": {
      "description": "Your probability minus the price, pp."
    },
    "signal": {
      "description": "BUY / SELL / SKIP."
    },
    "interpretation": {
      "description": "Plain-English read."
    },
    "market_price_cents": {
      "description": "Price used, cents."
    },
    "your_probability_pct": {
      "description": "Probability used, %."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢kelly_size(winProbability, marketPrice, bankroll, fraction)

Compute the optimal Kelly position size for a prediction-market contract. Given your win probability, the market price (which sets the payout), your bankroll, and a Kelly fraction (full / half / quarter / eighth), returns the dollar stake and a risk rating. Use for "how much should I stake", "what is my position size", "Kelly sizing for this trade".

Input Schema

{
  "type": "object",
  "properties": {
    "winProbability": {
      "description": "Your probability the contract resolves YES, in % (0–100). Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%.",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "marketPrice": {
      "description": "Contract price in cents (1–99). Sets the payout ratio. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%.",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "bankroll": {
      "description": "Total bankroll in dollars (e.g. 1000). Optional — omit it and the result is the % of bankroll to stake, without a dollar figure. Accepts a number or a numeric string (\"1000\", \"$1,000\").",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "fraction": {
      "description": "Kelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "full",
            "half",
            "quarter",
            "eighth"
          ]
        }
      ]
    }
  },
  "required": [
    "winProbability",
    "marketPrice"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "tell_user": {
      "description": "Show this sentence to the user first.",
      "type": "string"
    },
    "timestamp": {
      "type": "string"
    },
    "data_freshness": {},
    "sources": {},
    "needs_input": {},
    "example_call": {},
    "stake_dollars": {
      "description": "Suggested stake in dollars (when a bankroll was given)."
    },
    "full_kelly_pct": {
      "description": "Full-Kelly fraction of bankroll, %."
    },
    "applied_fraction_pct": {
      "description": "The fraction applied, %."
    },
    "rating": {
      "description": "Qualitative read of the sizing."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢convert_probability(value, format)

Convert between implied probability, American odds, and decimal odds. Give one value and its format and get all three back (American odds carry no commas, e.g. +441 or -200). Use for "what is +150 as a probability", "convert 62% to American odds", "decimal to implied odds".

Input Schema

{
  "type": "object",
  "properties": {
    "value": {
      "description": "The numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\").",
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ]
    },
    "format": {
      "description": "Format of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string",
          "enum": [
            "probability",
            "american",
            "decimal"
          ]
        }
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "tell_user": {
      "description": "Show this sentence to the user first.",
      "type": "string"
    },
    "timestamp": {
      "type": "string"
    },
    "data_freshness": {},
    "sources": {},
    "needs_input": {},
    "example_call": {},
    "probability_pct": {
      "description": "Implied probability, %."
    },
    "american_odds": {
      "description": "American odds, no commas."
    },
    "decimal_odds": {
      "description": "Decimal odds."
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools