Weather Markets Edge Desk
Kalshi weather markets: daily-high board beside the NWS forecast, live edges, EV, Kelly, base rates.
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": {
"weather": {
"url": "https://predictionmarketspicks.com/api/mcp-weather/mcp"
}
}
}Remote endpoints
https://predictionmarketspicks.com/api/mcp-weather/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
๐ขedge_alerts(feed, min_tier, since, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"feed": {
"description": "Comma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all.",
"type": "string"
},
"min_tier": {
"description": "Minimum confidence tier (returns that tier and above).",
"type": "string",
"enum": [
"SPECULATIVE",
"MODERATE",
"STRONG"
]
},
"since": {
"description": "ISO-8601 timestamp โ only alerts created after it.",
"type": "string"
},
"limit": {
"description": "Max alerts to return (default 25). Values above 100 are clamped to 100.",
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
{
"type": "null"
}
]
}
},
"$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. 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": {}
}๐ขbase_rate_gap(marketPrice, baseRateId, baseRateValue)
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. Free, no key.
Input Schema
{
"type": "object",
"properties": {
"marketPrice": {
"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%.",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"baseRateId": {
"description": "Known base-rate id to look up (includes sample size + source).",
"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"
]
},
"baseRateValue": {
"description": "Your own base rate in % (0โ100), used when no baseRateId is given.",
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}๐ขbayes_update(prior, evidence)
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".
Input Schema
{
"type": "object",
"properties": {
"prior": {
"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%.",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"evidence": {
"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 }]. A single item may be sent as one object.",
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"description": "Optional short caption for this evidence. Defaults to \"Evidence 1\", \"Evidence 2\", โฆ",
"type": "string"
},
"likelihoodIfTrue": {
"description": "P(observing this evidence | hypothesis is true), in % (0โ100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\").",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"likelihoodIfFalse": {
"description": "P(observing this evidence | hypothesis is false), in % (0โ100). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\").",
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"required": [
"likelihoodIfTrue",
"likelihoodIfFalse"
]
}
}
},
"$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. Free, no key. Every PMP engine signal is graded in public: predictionmarketspicks.com/track-record.
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": {
"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"
}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": {}
}Community
Evidence