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

A
Description quality
100%
Schema completeness
79%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,496Tokens (tool definitions)
~3.3 KBTypical response size
Moderate attention impact (1.95% 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": {
    "weather": {
      "url": "https://predictionmarketspicks.com/api/mcp-weather/mcp"
    }
  }
}

Remote endpoints

https://predictionmarketspicks.com/api/mcp-weather/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸข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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools