Kalshi weather markets: daily-high board beside the NWS forecast, live edges, EV, Kelly, base rates.
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."
}
}
}Update a prior probability with one or more pieces of evidence using Bayes theorem. Given a prior and a list of evidence items (each with P(evidence | true) and P(evidence | false)), returns the posterior probability and the per-step chain. Use for "update my estimate with new information", "posterior probability", "how does this news change the odds".
| Argument | Type | Description |
|---|---|---|
| prior | number | string | Prior probability the hypothesis is true, in % (0–100). Needed for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%. |
| evidence | array | One or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ "likelihoodIfTrue": 80, "likelihoodIfFalse": 20 }]. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"prior": {
"type": [
"number",
"string"
],
"description": "Prior probability the hypothesis is true, in % (0–100). Needed for a real answer. Accepts 55, \"55%\", \"55¢\", \"$0.55\", 0.55 or American odds (+120 / -150) — all read as 55%."
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"likelihoodIfTrue",
"likelihoodIfFalse"
],
"properties": {
"label": {
"type": "string",
"description": "Optional short caption for this evidence. Defaults to \"Evidence 1\", \"Evidence 2\", …"
},
"likelihoodIfTrue": {
"type": [
"number",
"string"
],
"description": "P(observing this evidence | hypothesis is true), in % (0–100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
},
"likelihoodIfFalse": {
"type": [
"number",
"string"
],
"description": "P(observing this evidence | hypothesis is false), in % (0–100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
}
}
},
"minItems": 1,
"description": "One or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ \"likelihoodIfTrue\": 80, \"likelihoodIfFalse\": 20 }]."
}
}
}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%."
}
}
}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 "any edge on Kalshi" and "weather trade signals". Our model alerts on Kalshi — weather, bitcoin/silver/gold/oil, mispricings — with feed, tier, side, price, model probability, edge and link. Real time with Pro; free is delayed 24h without the thesis. One identical, impersonal feed for every subscriber; filters only select. Informational, not investment advice.
| Argument | Type | Description |
|---|---|---|
| feed | string | Comma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all. |
| limit | number | string | null | Max alerts to return (default 25). Values above 100 are clamped to 100. |
| since | string | ISO-8601 timestamp — only alerts created after it. |
| min_tier | any | Minimum confidence tier (returns that tier and above). One of: SPECULATIVE · MODERATE · STRONG. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"feed": {
"type": "string",
"description": "Comma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max alerts to return (default 25). Values above 100 are clamped to 100."
},
"since": {
"type": "string",
"description": "ISO-8601 timestamp — only alerts created after it."
},
"min_tier": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"SPECULATIVE",
"MODERATE",
"STRONG"
],
"type": "string"
}
],
"description": "Minimum confidence tier (returns that tier and above). One of: SPECULATIVE · MODERATE · STRONG."
}
}
}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%."
}
}
}Use for "Kalshi NYC high temperature odds". Every open Kalshi daily-high strike in 13 cities: YES price, settlement station and source, the strict-comparison rule, close time, and the NWS forecast high beside it. Pass city ("nyc", "KXHIGHCHI"). Market data only.
| Argument | Type | Description |
|---|---|---|
| day | any | today · tomorrow · all (default). |
| city | string | City name or series ("nyc", "KXHIGHTBOS"). Omit for all. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"day": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"today",
"tomorrow",
"all"
],
"type": "string"
}
],
"description": "today · tomorrow · all (default)."
},
"city": {
"type": "string",
"maxLength": 40,
"description": "City name or series (\"nyc\", \"KXHIGHTBOS\"). Omit for all."
}
}
}