Commodities Markets Desk
Kalshi gold, silver, oil and crypto: live 15-minute markets, perps liquidation, and model edges.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"commodities": {
"url": "https://predictionmarketspicks.com/api/mcp-commodities/mcp"
}
}
}Remote endpoints
https://predictionmarketspicks.com/api/mcp-commodities/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢fifteen_min_board(series, asset_class, open_only, limit)
Kalshi's 15-minute up-or-down markets, live: every trading series (bitcoin, ETH, XRP, SOL, gold, silver, WTI oil, natural gas, copper, platinum, palladium, EUR/USD, GBP/USD, USD/JPY, Coin Race and more) with whether a window is open, the YES price (two-sided mid), the window's close time, Kalshi's target price, what the series settles on, and the share of the last 96 windows that settled up. Pass `series` for one market ("eth", "KXETH15M", "natural gas") or `asset_class` to filter. Also lists the pre-launch S&P 500, Nasdaq 100 and Treasury-yield series. Free, no key. Use for "what is the ETH 15 minute market doing", "which Kalshi 15-minute markets are open", "KXBTC15M price now", "how does the Kalshi gold 15-minute market settle".
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": {
"default": 30,
"description": "Max rows (default 30).",
"type": "integer",
"minimum": 1,
"maximum": 40
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢perps_board(asset, limit)
Every Kalshi perpetual future, live: price, 24h volume, open interest, Kalshi's max leverage (long and short at a $1,000 position), funding cadence, and what funding has cost a long since launch (annualized, plus the share of windows that paid nothing). Pass `asset` for one perp ("btc", "gold", "silver", "ETH"). Free, no key. Use for "Kalshi perps funding rate", "how much leverage on Kalshi gold perps", "list Kalshi perps", "what does holding a Kalshi BTC perp cost".
Input Schema
{
"type": "object",
"properties": {
"asset": {
"description": "One perp: symbol or name (\"btc\", \"gold\", \"XAG\").",
"type": "string",
"maxLength": 30
},
"limit": {
"default": 25,
"description": "Max rows (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 30
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢perp_liquidation(asset, side, leverage, margin, entry, ...)
Estimate where a Kalshi perp position liquidates, from Kalshi’s published risk parameters calibrated against Kalshi’s app: liquidation price and the % move to it (vs the 100÷leverage rule, which Kalshi’s maintenance margin makes far too generous — a 5x bitcoin long is about 8% from liquidation, not 20%), plus round-trip fees and expected funding over the hold. Kalshi caps leverage by size and side; the estimate says when it applied the cap. An ESTIMATE — Kalshi's app shows the exact figure once a position is open. Assets: btc, eth, sol, xrp, doge, hype, link, gold, silver, platinum, palladium. Free, no key. Use for "where does a 5x bitcoin long liquidate on Kalshi", "Kalshi gold perp 10x liquidation price", "how far can silver move before my Kalshi short is liquidated".
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
}
},
"required": [
"asset",
"side",
"leverage"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢commodity_edge(commodity, tickers)
Get today's highest-conviction gold, silver, WTI oil or bitcoin trade signal from the PMP edge model — the Kalshi daily gold (KXGOLDD), daily silver (KXSILVERD), daily WTI (KXWTI) or hourly bitcoin (KXBTCD) strike with the largest model edge, as a trade ticket: entry side and price, resolve criterion, model probability, edge in percentage points, confidence tier, and quarter-Kelly sizing. Pro key required. Use for "gold edge today", "silver edge today", "oil trade signal", "bitcoin trade signal", "is there a commodity edge". Pass tickers[] to check specific Kalshi markets — e.g. paste your Kalshi Pro screener watchlist (returns the signal only if it matches the strike PMP is modeling).
Input Schema
{
"type": "object",
"properties": {
"commodity": {
"description": "Which commodity edge to read. 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"
}
}
},
"required": [
"commodity"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢market_pulse(topic)
The US macro-health composite (0–100) and regime plus the six category scores (growth, labor, inflation, rates, liquidity, sentiment). The composite and the regime call are free without a key, always, along with 2 category scores; one email returns 4 and Pro returns all six. Use for "how is the US economy", "macro regime", "risk-on or risk-off". (NFL edges moved to the dedicated nfl_edge tool.)
Input Schema
{
"type": "object",
"properties": {
"topic": {
"default": "macro",
"description": "macro = US macro-health composite (the only topic — NFL is now the nfl_edge tool).",
"type": "string",
"enum": [
"macro"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢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. 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"
]
}
]
}
},
"required": [
"value",
"format"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢calculate_ev(marketPrice, yourProbability)
Calculate the expected-value edge on a Kalshi or Polymarket prediction-market contract. Given the current market price (in cents, i.e. the implied probability) and your own probability estimate, returns the % edge and a BUY / SELL / SKIP signal with a plain-English read. Use for "is this contract mispriced", "what is my edge", "should I take this position". From the PredictionMarketsPicks desk, which publishes a settled per-engine record — every signal graded against the market that priced it, wins and losses both: predictionmarketspicks.com/track-record.
Input Schema
{
"type": "object",
"properties": {
"marketPrice": {
"description": "Current contract price in cents (1–99), equal to the implied probability in %. 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). Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%.",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"required": [
"marketPrice",
"yourProbability"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢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": {
"default": "half",
"description": "Kelly fraction to apply. Half-Kelly is the common sharp-money default.",
"type": "string",
"enum": [
"full",
"half",
"quarter",
"eighth"
]
}
},
"required": [
"winProbability",
"marketPrice"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence