Kalshi macro: Fed rate odds, gold, silver, oil and bitcoin edges, 15-min markets, Kelly sizing.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use for "how does this price compare to history" and "is the market ignoring the base rate". Compares a market price with the historical base rate for a class of events: the gap in pp, a signal, and sample-size quality. Pass a known baseRateId (the parameter lists them) or your own baseRateValue.
Known base-rate id to look up (includes sample size + source). One of: incumbent_reelected · fed_hold_unemp_below_4 · fed_cut_cpi_above_3 · recession_called_12mo · sp500_positive_year · bitcoin_above_100k_eoy · gdp_growth_above_2 · cpi_above_3 · senate_incumbent_wins_primary · vix_below_20_eoy · interest_rate_cut_next_meeting · major_sports_upset.
Current market price in cents / implied probability % (0–100). Needed for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
Your own base rate in % (0–100), used when no baseRateId is given.
Use for "how does this price compare to history" and "is the market ignoring the base rate". Compares a market price with the historical base rate for a class of events: the gap in pp, a signal, and sample-size quality. Pass a known baseRateId (the parameter lists them) or your own baseRateValue.
| Argument | Type | Description |
|---|---|---|
| baseRateId | any | Known base-rate id to look up (includes sample size + source). One of: incumbent_reelected · fed_hold_unemp_below_4 · fed_cut_cpi_above_3 · recession_called_12mo · sp500_positive_year · bitcoin_above_100k_eoy · gdp_growth_above_2 · cpi_above_3 · senate_incumbent_wins_primary · vix_below_20_eoy · interest_rate_cut_next_meeting · major_sports_upset. |
| marketPrice | number | string | Current market price in cents / implied probability % (0–100). Needed for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| baseRateValue | number | Your own base rate in % (0–100), used when no baseRateId is given. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"baseRateId": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"incumbent_reelected",
"fed_hold_unemp_below_4",
"fed_cut_cpi_above_3",
"recession_called_12mo",
"sp500_positive_year",
"bitcoin_above_100k_eoy",
"gdp_growth_above_2",
"cpi_above_3",
"senate_incumbent_wins_primary",
"vix_below_20_eoy",
"interest_rate_cut_next_meeting",
"major_sports_upset"
],
"type": "string"
}
],
"description": "Known base-rate id to look up (includes sample size + source). One of: incumbent_reelected · fed_hold_unemp_below_4 · fed_cut_cpi_above_3 · recession_called_12mo · sp500_positive_year · bitcoin_above_100k_eoy · gdp_growth_above_2 · cpi_above_3 · senate_incumbent_wins_primary · vix_below_20_eoy · interest_rate_cut_next_meeting · major_sports_upset."
},
"marketPrice": {
"type": [
"number",
"string"
],
"description": "Current market price in cents / implied probability % (0–100). Needed for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"baseRateValue": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Your own base rate in % (0–100), used when no baseRateId is given."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| marketPrice | number | string | 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%. |
| yourProbability | number | string | 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%. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"marketPrice": {
"type": [
"number",
"string"
],
"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%."
},
"yourProbability": {
"type": [
"number",
"string"
],
"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%."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| tickers | array | 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). |
| commodity | any | Which commodity edge to read (needed for a real answer). One of: silver · bitcoin · gold · oil. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"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)."
},
"commodity": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"silver",
"bitcoin",
"gold",
"oil"
],
"type": "string"
}
],
"description": "Which commodity edge to read (needed for a real answer). One of: silver · bitcoin · gold · oil."
}
}
}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".
| Argument | Type | Description |
|---|---|---|
| value | number | string | The numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| format | any | Format of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"value": {
"type": [
"number",
"string"
],
"description": "The numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"format": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"probability",
"american",
"decimal"
],
"type": "string"
}
],
"description": "Format of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal."
}
}
}Use for "will the Fed cut, hold or hike" and "next FOMC meeting odds". Live Kalshi odds for each remaining 2026 FOMC meeting: the next meeting's full strike breakdown and days-until, the rate path, the current fed funds rate, and a next-meeting cross-venue check against Polymarket and CME futures, with the gap in pp.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}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 a graded record of the two venues on the same Bitcoin windows, and our Bitcoin top-of-hour strategy (v2 — the version our bot trades live, with its live and paper record). Pass series ("eth", "KXBTC15M") or asset_class.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | null | Max rows (default 30). Values above 40 are clamped to 40. |
| series | string | One series: ticker (KXETH15M) or asset ("eth", "gold", "euro"). |
| open_only | boolean | Only series with a window open right now (default false). |
| asset_class | any | crypto · commodity · currency · all (default all). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 30). Values above 40 are clamped to 40."
},
"series": {
"type": "string",
"maxLength": 40,
"description": "One series: ticker (KXETH15M) or asset (\"eth\", \"gold\", \"euro\")."
},
"open_only": {
"type": "boolean",
"description": "Only series with a window open right now (default false)."
},
"asset_class": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"crypto",
"commodity",
"currency",
"all"
],
"type": "string"
}
],
"description": "crypto · commodity · currency · all (default all)."
}
}
}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".
| Argument | Type | Description |
|---|---|---|
| bankroll | number | string | 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"). |
| fraction | any | Kelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth. |
| marketPrice* | number | string | 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%. |
| winProbability* | number | string | 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%. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"winProbability",
"marketPrice"
],
"properties": {
"bankroll": {
"type": [
"number",
"string"
],
"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\")."
},
"fraction": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"full",
"half",
"quarter",
"eighth"
],
"type": "string"
}
],
"description": "Kelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth."
},
"marketPrice": {
"type": [
"number",
"string"
],
"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%."
},
"winProbability": {
"type": [
"number",
"string"
],
"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%."
}
}
}The US macro-health composite (0–100) and regime plus the six category scores (growth, labor, inflation, rates, liquidity, sentiment). Returns the composite, the regime call and 2 category scores without an account, 4 to a signed-in account, and all six with Pro. Use for "how is the US economy", "macro regime", "risk-on or risk-off".
| Argument | Type | Description |
|---|---|---|
| topic | any | macro = the US macro-health composite (the only topic). One of: macro. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"topic": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"macro"
],
"type": "string"
}
],
"description": "macro = the US macro-health composite (the only topic). One of: macro."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| side | any | Direction. One of: long · short. |
| asset | any | The perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium. |
| entry | number | string | Entry price (default: the live price). Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| margin | number | string | Margin in dollars (default 1000). Accepts a number or a numeric string ("+150", "62%", "2.5"). |
| leverage | number | string | Leverage, e.g. 5 or "5x". Capped at Kalshi’s maximum for the size and side. |
| hold_days | number | Days held, for the funding estimate (default 7). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"side": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"long",
"short"
],
"type": "string"
}
],
"description": "Direction. One of: long · short."
},
"asset": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"btc",
"eth",
"sol",
"xrp",
"doge",
"hype",
"link",
"gold",
"silver",
"platinum",
"palladium"
],
"type": "string"
}
],
"description": "The perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium."
},
"entry": {
"type": [
"number",
"string"
],
"description": "Entry price (default: the live price). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"margin": {
"type": [
"number",
"string"
],
"description": "Margin in dollars (default 1000). Accepts a number or a numeric string (\"+150\", \"62%\", \"2.5\")."
},
"leverage": {
"type": [
"number",
"string"
],
"description": "Leverage, e.g. 5 or \"5x\". Capped at Kalshi’s maximum for the size and side."
},
"hold_days": {
"type": "number",
"default": 7,
"maximum": 365,
"minimum": 0,
"description": "Days held, for the funding estimate (default 7)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| asset | string | One perp: symbol or name ("btc", "gold", "XAG"). |
| limit | number | string | null | Max rows (default 25). Values above 30 are clamped to 30. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"asset": {
"type": "string",
"maxLength": 30,
"description": "One perp: symbol or name (\"btc\", \"gold\", \"XAG\")."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 25). Values above 30 are clamped to 30."
}
}
}