Skip to main content
Glama

NHL Markets Desk

Server Details

NHL on Kalshi: tonight's games and goal scorers vs a model, plus Stanley Cup odds vs Polymarket.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
predictionmarketspicks/mcp
GitHub Stars
0
Server Listing
PredictionMarketsPicks Quant

TDQS

Score is being calculated.

Available Tools

6 tools
calculate_evCalculate EV EdgeA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketPriceNoCurrent 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%.
yourProbabilityNoYour 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%.

Output Schema

ParametersJSON Schema
NameRequiredDescription
signalNoBUY / SELL / SKIP.
edge_ppNoYour probability minus the price, pp.
sourcesNo
edge_pctNoExpected-value edge, %.
tell_userNoShow this sentence to the user first.
timestampNo
needs_inputNo
example_callNo
data_freshnessNo
interpretationNoPlain-English read.
market_price_centsNoPrice used, cents.
your_probability_pctNoProbability used, %.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safe, side-effect-free nature is covered structurally. The description adds useful domain scope by tying the tool to Kalshi and Polymarket prices and previews the verdict output, but says nothing about rate limits, accuracy assumptions, or edge cases (e.g. price at 0/100).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the trigger/question framing is front-loaded, followed by the inputs and the returned outputs. No filler, no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not explain the return payload, and with 100% schema coverage it need not document parameters. It covers purpose, trigger, and output shape. The remaining gap is cluster-level: no pointer to kelly_size for follow-on position sizing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema descriptions already enumerate every accepted input format (55, "55%", "55¢", "$0.55", 0.55, American odds). The description only paraphrases this as "in cents and your own probability", which is actually narrower than the schema. Baseline 3 is correct when the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific function: take a market price plus the user's own probability and return the % EV edge and a BUY/SELL/SKIP read. That is a clear verb+resource with an output preview. It does not distinguish itself from the related sibling kelly_size, which an agent might reasonably confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for 'is this contract mispriced' and 'what is my edge'" gives an explicit when-to-use trigger in the user's own vocabulary. It offers no exclusions and never names the obvious downstream alternative (kelly_size for sizing once edge is known), so sibling routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_probabilityConvert Probability / OddsA
Read-only
Inspect

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
valueNoThe numeric value to convert. Needed for a real answer, with format. Accepts a number or a numeric string ("+150", "62%", "2.5").
formatNoFormat of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourcesNo
tell_userNoShow this sentence to the user first.
timestampNo
needs_inputNo
decimal_oddsNoDecimal odds.
example_callNo
american_oddsNoAmerican odds, no commas.
data_freshnessNo
probability_pctNoImplied probability, %.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the bar is low. The description still adds real behavioral context beyond them: the output always contains all three representations, and American odds use the no-comma convention (+441 or -200). It does not restate return format in detail, but an output schema exists so that is not required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then output convention, then trigger examples. No filler, and the critical formatting caveat is parenthetical rather than buried. The quoted example phrases are slightly redundant with the purpose sentence, keeping this just below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A pure two-parameter, read-only converter with an output schema, full schema description coverage and safety annotations. The description covers what it does, what comes back, the input convention quirk, and when to reach for it — nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3. The description earns above baseline by explaining the no-comma American convention and illustrating accepted input strings ('+150', '62%', '2.5'), which clarifies the number-or-string typing in the schema. It does not, however, add anything not already implied about the range or enum semantics of `format`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Convert) and the exact resources (implied probability, American odds, decimal odds), and states the round-trip behavior (give one, get all three). An agent can immediately distinguish this from calculate_ev or kelly_size, which compute value or stake rather than reformat an odds figure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete trigger phrasings ('what is +150 as a probability', 'convert 62% to American odds', 'decimal to implied odds'), which is strong positive routing. It stops short of naming a sibling as the alternative or stating when-not to use it (e.g. if you want expected value, use calculate_ev), so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_arbitrageFind Sports Arbitrage GapsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
minGapNoMinimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string ("3", "3pp", "3%").

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, openWorld, non-destructive), and the description adds substantial behavior beyond them: the exact signal vocabulary (WATCH/ARB), the fields returned (gap in pp, cheaper venue, settlement_match), and a tier gate — free returns only the top 3 gaps while Pro returns the full board. That tiering and settlement-comparison context is exactly what an agent needs to interpret results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the use case in the first sentence, then lists the returned quantities compactly, and closes with the free/Pro distinction. Slightly dense with quoted trigger phrases and jargon, but every clause carries information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so: it enumerates the output fields and the free/Pro result-set sizes. For a one-optional-parameter read tool, an agent has everything needed to call it and interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and minGap's accepted formats (number or "3pp"/"3%") and default/WATCH-threshold meaning are already documented in the schema. The description mentions the WATCH/ARB signal and "top 3 gaps" but adds no new syntax or filtering semantics beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource — cross-venue arbitrage gaps on the same sports contract between Kalshi and Polymarket — and names the concrete deliverables (gap in pp, WATCH/ARB signal, cheaper venue, settlement_match). This is clearly separable from siblings like ladder_arb, combo_edge, or scan_mispricings, which cover different products or strategies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit user-phrasing triggers ("where is the arbitrage", "Kalshi vs Polymarket price gaps") that map well to intent, plus a free-vs-Pro condition. It does not name an alternative tool or state when not to use it, so the routing guidance stops short of full 5-level specificity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kelly_sizeKelly Position SizeA
Read-only
Inspect

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
bankrollNoTotal 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").
fractionNoKelly fraction to apply. Half-Kelly is the common sharp-money default. One of: full · half · quarter · eighth.
marketPriceYesContract 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%.
winProbabilityYesYour 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%.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ratingNoQualitative read of the sizing.
sourcesNo
tell_userNoShow this sentence to the user first.
timestampNo
needs_inputNo
example_callNo
stake_dollarsNoSuggested stake in dollars (when a bankroll was given).
data_freshnessNo
full_kelly_pctNoFull-Kelly fraction of bankroll, %.
applied_fraction_pctNoThe fraction applied, %.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully adds that the tool is a pure computation returning a stake amount and a risk rating, which tells the agent there are no side effects. It doesn't discuss edge cases such as invalid probabilities or the meaning of the risk rating, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with the core action and its inputs/outputs before the example triggers. Every sentence earns its place, though the trailing quoted-phrase list is slightly listy and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still concisely previews the return ('dollar stake and a risk rating'), and it names all four inputs with the optional bankroll implication clear via the schema. For a stateless calculator this is fully sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter in detail (bankroll optionality, accepted price/probability formats, fraction values). The description restates the same inputs — 'win probability, market price (which sets the payout), your bankroll, a Kelly fraction (full / half / quarter / eighth)' — adding only the note that market price sets the payout. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Compute the optimal Kelly position size for a prediction-market contract') and goes on to name the exact inputs and outputs, so it is clearly separable from siblings like calculate_ev and convert_probability. An agent knows immediately what this tool returns (dollar stake + risk rating).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete triggering phrases — "how much should I stake", "what is my position size", "Kelly sizing for this trade" — which give clear context for when to reach for this tool. It stops short of naming when NOT to use it or pointing to alternative siblings (e.g. calculate_ev for edge, not sizing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nhl_edgeNHL Edge — Goal Light model vs KalshiA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional NHL club to filter — code (CAR, EDM, LAK), Kalshi code (LA, TB), nickname ("Oilers") or city ("Edmonton").
limitNoMax rows (default 16). Values above 40 are clamped to 40.
marketNogame = tonight's board (moneyline, puck line, totals, periods); goals = player-goal contracts; futures = Stanley Cup + season markets. One of: game · goals · futures.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered; the description adds real context beyond them — data sources (Kalshi, Polymarket as an international book), the "starting goalies checked first" precondition, the 10,000-season sim backing futures, and the "Free" cost note. It stops short of describing latency, rate limits, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the trigger phrases and then moves through scope, output shape and market modes in three dense sentences with little redundancy. The em-dash and middle-dot notation (Market · Model · Fair) is compact but adds a small parsing burden.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter, read-only tool with no output schema, the description supplies the essentials: what the rows represent, the two data sources, and the market modes. The output format summary compensates for the missing output schema, though it does not describe row granularity or error cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining what each market value actually yields (goals = anytime and first-goal contracts; futures = Cup, conference and division markets), which goes beyond the schema's terser "player-goal contracts" and "Stanley Cup + season markets". It adds no detail on team or limit, but those are fully documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (tonight's NHL games on Kalshi priced as Market · Model · Fair) and enumerates the market types, so an agent can tell it serves NHL betting-model comparisons. It does not use an explicit verb like "get" or "list", and sibling differentiation rests entirely on the word "NHL" rather than a named contrast with tools like nfl_edge.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for 'NHL predictions tonight' and 'Stanley Cup odds'" gives concrete trigger queries that map directly to the tool, and the market=goals / market=futures clauses clarify which mode serves which need. No exclusions or named alternatives are given, so an agent must infer when not to reach for it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

track_recordTrack Record — our graded signals, winners and losersA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
laneNoOptional lane: bitcoin, gold, silver, oil, weather, nhl, potd, nfl — or an engine slug. Omit for every lane.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds a genuinely useful interpretive note that WATCH calls are reported separately, but says nothing about data freshness, grading lag, or how the 'current model era' is bounded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, trigger phrases front-loaded ahead of the content inventory, no filler. The second sentence is dense with enumerated metrics but each item is a distinct return field, so the length is earned rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so reasonably: it names the metrics (W-L, net P/L, 95% range, model era, backtest) and the separate WATCH reporting. It could still clarify ordering, per-engine grouping, or grading recency for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the lane parameter's allowed values are fully listed in the schema, so the schema already does the heavy lifting. The description's engine list (bitcoin, gold, silver, oil, weather, NHL, POTD, NFL) merely mirrors the schema's lane values, adding no new semantics such as default behavior or slug format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb/resource combination — every graded signal per engine plus the daily editorial call — and enumerates exactly what metrics come back (W-L, net P/L, 95% win-rate range, model era, NFL backtest). No sibling covers accuracy/track-record reporting, so an agent can route here unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Opens with explicit trigger phrasings ('how accurate is your model', 'what's your track record'), which is clear when-to-use guidance. It does not name an alternative or an exclusion case, so it stops short of the top tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedcalculate_ev
    • First observedconvert_probability
    • First observedfind_arbitrage
    • First observedkelly_size
    • First observednhl_edge
    • First observedtrack_record

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    24/7 autonomous monitoring and edge detection for prediction markets (Kalshi & Polymarket). Features causal tree analysis, orderbook depth tracking, cross-venue comparison, and real-time alerts.
    16
    196 npm
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Prediction market probability oracle for AI agents. 26 tools across 500+ live markets from Kalshi and Polymarket. Cross-source arbitrage detection, structured TPF signals, Kelly Criterion sizing, agent performance tracking, and webhook alerts.
    9
    22 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Prediction-market MCP server for Kalshi and Polymarket: market search, live order books and quotes, each venue's fee schedule, fee-aware no-arbitrage checks across related event contracts, and paper orders that walk the book.
    2
    13
    76 PyPI
    493
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Unified access to prediction market data from Kalshi and Polymarket, enabling natural language queries for real-time odds, orderbooks, and trade history.
    6 npm
    11
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.