NHL on Kalshi: tonight's games and goal scorers vs a model, plus Stanley Cup odds vs Polymarket.
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 "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.
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%.
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 "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 "where is the arbitrage" and "Kalshi vs Polymarket price gaps". Cross-venue gaps on the same sports contract (NFL, NBA, NHL, MLB) against Polymarket's international book: the gap in pp, the WATCH/ARB signal, the cheaper venue and whether both contracts settle the same way (settlement_match). Free: the top 3 gaps in full; Pro returns the whole board.
| Argument | Type | Description |
|---|---|---|
| minGap | number | string | Minimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string ("3", "3pp", "3%"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"minGap": {
"type": [
"number",
"string"
],
"description": "Minimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string (\"3\", \"3pp\", \"3%\")."
}
}
}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 "NHL predictions tonight" and "Stanley Cup odds". Tonight's NHL games on Kalshi — moneyline, puck line, totals, period markets — as Market · Model · Fair, starting goalies checked first. market=goals: anytime and first-goal contracts; market=futures: Cup, conference and division markets on Kalshi and Polymarket (international book) vs a 10,000-season sim. Free.
| Argument | Type | Description |
|---|---|---|
| team | string | Optional NHL club to filter — code (CAR, EDM, LAK), Kalshi code (LA, TB), nickname ("Oilers") or city ("Edmonton"). |
| limit | number | string | null | Max rows (default 16). Values above 40 are clamped to 40. |
| market | any | game = tonight's board (moneyline, puck line, totals, periods); goals = player-goal contracts; futures = Stanley Cup + season markets. One of: game · goals · futures. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"team": {
"type": "string",
"maxLength": 40,
"description": "Optional NHL club to filter — code (CAR, EDM, LAK), Kalshi code (LA, TB), nickname (\"Oilers\") or city (\"Edmonton\")."
},
"limit": {
"type": [
"number",
"string",
"null"
],
"description": "Max rows (default 16). Values above 40 are clamped to 40."
},
"market": {
"anyOf": [
{
"type": "string"
},
{
"enum": [
"game",
"goals",
"futures"
],
"type": "string"
}
],
"description": "game = tonight's board (moneyline, puck line, totals, periods); goals = player-goal contracts; futures = Stanley Cup + season markets. One of: game · goals · futures."
}
}
}Use for "how accurate is your model" and "what's your track record". Every graded PredictionMarketsPicks signal per engine (bitcoin, gold, silver, oil, weather, NHL) and the daily editorial call (POTD): W-L, net P/L, a 95% win-rate range and the current model era, and the NFL model's backtest. WATCH calls are reported apart.
| Argument | Type | Description |
|---|---|---|
| lane | string | Optional lane: bitcoin, gold, silver, oil, weather, nhl, potd, nfl — or an engine slug. Omit for every lane. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lane": {
"type": "string",
"maxLength": 40,
"description": "Optional lane: bitcoin, gold, silver, oil, weather, nhl, potd, nfl — or an engine slug. Omit for every lane."
}
}
}