Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "game_projection" and "tonight_slate"
⟨20 unchanged words⟩ compare for it. Returns the pre-game win probability (NBA: our projection, blended with the market while the model learns; `prediction.blended` says when) and projected margin, the consensus spread and total ⟨78 unchanged words⟩
⟨35 unchanged words⟩ live or final scores, pre-game win probabilities (NBA: our projection, blended with the market while the model learns) and the consensus line (signed in: the ⟨39 unchanged words⟩
Changed the definition of "defense_vs_position", "find_game", "game_projection" and 5 more
⟨19 unchanged words⟩ centers', 'defenses vs TE'). Returns whateveryeach NBA or NFL team allows per game toeacha position group (NBA: G, F, C, withpace;pace rank; NFL: QB, RB, WR, TE),witheach number as [value, leagueranksrank] (1 = allows the most);.windowWithout `position` the NBA answer lists each group's ten softest teams (`data_more` counts the rest) and the NFL's the softest half: pass `position` for every team, as for the fewest allowed. Window
Unknown → Live
First tool surface recorded: 12 tools (server version 1.2.0)
https://api.keelstats.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 5 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨54 unchanged words⟩ start time, state, week (NFL),score,eachpageside'surlteam (id and abbreviation) and score, and the pair's matchuppage.page; each game's page is `game_url` with its id in place of {id}. Not for the whole slate (tonight_slate) or ⟨7 unchanged words⟩
⟨25 unchanged words⟩ pre-game win probability and projected margin, thesportsbookconsensus spread and total,withthe teams compared, leaders, recent form and who is out; signed in, also the market's vig-free chanceand, the model against it and the line,recentandATStheform,head-to-head; with Keel Stats Pro theteamsabsencecomparedcosts,leaders,positionformmatchups,meetingsrecordsandagainst theinjuryclosereport;andakeyProplayers,accountandalsowithgets`detail` "full" the model's factorweights,weights.absenceThecosts,answer'sposition`account.held`matchupsnamesandwhatATStherecords.caller's plan left out. Needs a game_id from tonight_slate or find_game. Not ⟨9 unchanged words⟩
{"properties":{"detail":{"description":"\"compact\" (default) or \"full\" (Keel Stats Pro): adds the model's factor weights and strengths.","enum":["compact","full"],"type":"string"},"game_id":{"description":"Numeric game ID ( ⟨7 unchanged words⟩ :"integer"},"include_breakdown":{"description":"SetOldertrueform(requiresofKeeldetailStats\"full\":Pro)truetoaddsincludethe model factor weights,player absence costs, position matchups, and ATS records. Defaults to true when signed(requiresinKeelwithStatsPro.
⟨30 unchanged words⟩ NFL: yards, touchdowns, EPA), Keel Impactwith its rank, current injury status, his recent box lines (five without an account, ten signed in) and, when thelastbookstenhavegames.priced his next game, one compact row per stat as props_research gives it. With Keel Stats Pro, `detail` adds the book-by-book odds, closing lines, game log, history and alternate ladders. The answer's `account.held` names what the caller's plan left out. Not for on/off or teammate splits (player_splits_and_on_off) or prop lines (props_research).
{"properties":{"detail":{"description":"Keel Stats Pro: \"compact\" (default), \"full\" (the long answer), or a comma-separated list of sections: \"books\", \"ladders\", \"closes\", \"games\", \"history\" (as in props_research).","type":"string"},"league":{"description":"League (\"nba\" ⟨46 unchanged words⟩
⟨41 unchanged words⟩ a teammate). Returns those splits for theseason.season (NBA: on/off, situations and milestones, `detail` naming the ones wanted; NFL: his usage row and the team's busiest, `detail` "full" for every player). Requires Keel Stats Pro; the answer says so when the account has none. Not for season averages or recent games: use player_profile.
{"properties":{"detail":{"description":"\"compact\" (default), \"full\" (NFL: every player of the team's usage), or a comma-separated list of NBA sections: \"on_off\", \"situations\", \"milestones\".","type":"string"},"league":{"description":"League (\"nba\" ⟨54 unchanged words⟩
Player Props Research, Model & Cheat Sheet(Pro)
⟨10 unchanged words⟩ lines, how often he clears a line,book-by-book prices,or today's prop board. Returns, for a player_id, one compact row per stat with a line for hisupcomingnextlines,game:book-by-booktheoddsconsensus line andmovesbook count,linehiscomparisonslast(averagesfive games against it and his season average; signed in,L5/L10/L20/seasonthe last ten and his record against the closing line; with Keel Stats Pro also L20 and season hit rates,modeltheprobability)opening line and move,histheover/under/pushmodel'srecordprobability against the market's, the best price at the books and the matchup, and with `detail` the book-by-book odds, closing lines, game log, history and alternateladders;ladders.withoutWithoutonea player_id, today's prop board (Pro: modelprobabilityedge andmarkettheedge,dailyoptionallycheatforsheet).oneThegame_id)answer'sand`account.held`thenamesdailywhatcheatthesheet.caller'sRequiresplanKeelleftStatsout.Pro.NotResearchforonlypicks: it is research only and never gives a pick.
⟨10 unchanged words⟩ prop board.","type":"string"},"detail":{"description":"With a player_id (Keel Stats Pro): \"compact\" (default), \"full\" (every section, the long answer), or a comma-separated list of sections: \"books\" (book-by-book odds and history), \"ladders\" (alternate lines graded), \"closes\" (closing lines per game), \"games\" (the game log with closes), \"history\" (record against the close by season).","type":"string"},"game_id":{"description":"Optional numeric game ID ⟨28 unchanged words⟩ :"Optional numeric player ID to inspect hisupcominglines,book-by-book odds, line comparisons, closing-lineforrecord,theandnextladders.game. Omit for the daily propboard and cheat sheet.board.","type":"integer"},"stat":{"description":"Optional stat code:fornarrowstheadailyplayer'sboard
⟨9 unchanged words⟩ :"Player Props Research, Model & Cheat Sheet(Pro)"}
⟨25 unchanged words⟩ 'BOS'); it is accent- and typo-tolerant. Returnsthe matchingupNBAtoandsixNFLmatching players and four teams per league with their numeric ids (`players_more` and the like say there are more: narrow the query); each list's pageurls.is a template such as `player_url` with the id in place of {id}. Not for stats: call player_profile or team_profile with the id.
⟨21 unchanged words⟩ ). Returns that day's games with game_id, teams (id and abbreviation), times (US Eastern), live or final scores, pre-game win probabilities and the consensus line (signed in: the market's chance and the model's edge), last-game starters (NBA) and recent injury statuschanges.changes; each game's page is `game_url` with its id in place of {id}. Not for a game weeks away or one ⟨4 unchanged words⟩