Skip to main content
Glama
tylerbody

TKB Picks MCP

by tylerbody

TKB Picks MCP Server (v1.1.1)

MCP server wrapping SportsGameOdds (odds, schedules, props, results) and BALLDONTLIE (injuries, standings) for building TKB Picks betting threads across MLB, WNBA, NFL, and CFB.

Deploy

Render Web Service, Node environment:

  • Build command: npm install && npm run build

  • Start command: npm start

  • Env vars: SGO_API_KEY, BDL_API_KEY

  • MCP endpoint: https://<your-app>.onrender.com/mcp

  • Health check: /health

Related MCP server: MLB V3 Scores MCP Server

Tools (15)

Tool

Purpose

tkb_get_schedule

Games by date/range/team. CFB tiering: top25 / power4 / rivalry

tkb_get_odds

Moneyline, spread, total, player props. Pricing guardrail enforced

tkb_get_period_odds

Half / quarter / inning markets

tkb_get_yes_no_prop

Milestone markets (first TD, any HR, double-double)

tkb_get_futures

Season-long markets (MVP, win totals, division)

tkb_get_players

Roster + playerIDs for an event or team

tkb_get_player_hit_rate

Real counted hit rate, DNP-excluded, season-labelled

tkb_get_injuries

Injury reports, multi-shape team resolution

tkb_get_team_record

Overall record from standings

tkb_get_team_split

Home/road via BDL standings; head-to-head via events

tkb_get_game_weather

MLB + NFL + CFB, roof-aware

tkb_grade_pick

Resolve a posted pick to WIN/LOSS/PUSH

tkb_get_api_usage

SGO quota and rate-limit monitoring

tkb_debug_raw_event

Diagnostic: raw SGO event

tkb_debug_raw_injuries

Diagnostic: raw BDL injuries

What changed in v1.1.0

Correctness

  • Injury team resolution now handles NFL (full_name) and MLB/WNBA (display_name); comment field reads comment, short_comment, description, or long_comment. Previously every NFL record returned team: "unknown" with no detail.

  • Empty team-filtered injury results no longer report "this is a good sign." When team-data coverage is below 50% the tool returns CANNOT VERIFY instead of a false all-clear.

  • includeOpposingOdds corrected to includeOpposingOddIDs. The old name is not a real SGO parameter and was silently ignored on every request.

  • Pricing guardrail: a market is only usable if a real sportsbook priced it. SGO's modelled fairOdds is never published. This prevents the NFL Week 1 case where an unpriced prop returned "-137" on both sides with no line.

  • Hit rates are labelled by season, so prior-season games can't masquerade as current form.

Cost and performance

  • New /players endpoint replaces using the debug event dump for playerIDs.

  • Home/road splits use BDL standings (one free call) instead of tallying up to 100 billed SGO event objects, and now also return point differential, streak, and division/conference records.

  • BDL injury pagination raised to per_page=100 from the default 25.

  • tkb_get_api_usage exposes quota. SGO bills per event object returned, and hit-rate checks are the heaviest consumer.

New coverage

  • NFL stadiums (all 32) and CFB stadiums with roof types, enabling weather beyond MLB.

  • CFB tiering filters out the Division II teams SGO's NCAAF feed returns, plus a named-rivalry list.

  • Futures and pick grading.

Fixed in v1.1.1 (both found by live testing v1.1.0)

Bookmaker attribution in the pricing guardrail. SGO's byBookmaker map contains a literal key named unknown. The guardrail treated it as a real sportsbook, so the NFL Week 1 Drake Maye prop still returned -137 on both sides sourced to "unknown". It also accepted SGO's cross-book consensus bookOdds when no named book had priced anything. A price is now only usable if it is traceable to a named sportsbook. unknown, consensus, average, and fair are all rejected.

MLB standings field names. BALLDONTLIE does not share a standings schema across sports. MLB returns home / road / total / intra_division / streak where NFL returns home_record / road_record / overall_record / division_record / win_streak. Only the NFL names were read, so every MLB standings lookup missed and fell back to tallying up to 100 billed SGO event objects. A new src/services/standingsNormalizer.ts resolves every known alias, prefers MLB's numeric home_wins / home_losses over string parsing, and adds runs per game and last-ten to the output. Team matching is exact-first so "Chicago White Sox" cannot match "Chicago Cubs" on shared location.

Known gaps

  • CFB injuries are unavailable through BALLDONTLIE on the current plan. Use preview articles for notable CFB injuries.

  • Retractable roofs are never assumed. Roof status is a same-day team decision; the weather tool flags these for manual verification.

  • CFB top-25 filtering takes rankings as an input rather than looking them up, because SGO does not expose a verified ranking field. Pass the current Top 25.

  • Player props appear close to game time. A live test showed 6 markets on an NFL preseason game, 266 on Week 1 five weeks out, and 1,180 on an MLB game starting within the hour. Build threads inside the normal pre-game window.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP Server implementation that integrates the Balldontlie API, to provide information about players, teams and games for the NBA, NFL and MLB.
    4
    123
    26
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP Server that enables interaction with MLB scores and statistics via the SportsData.io MLB V3 Scores API, allowing users to access baseball data through natural language queries.
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for NBA live data and stats, providing read-only tools to query live scores, box scores, player info, standings, and more from NBA.com.
    15
    15
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Sports Game Odds MCP — wraps the Sports Game Odds API (sportsgameodds.com)

  • NBA MCP — player, team, and game data via the BallDontLie API

  • The hockey data API. Stats, odds, and everything between. REST API and MCP server.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tylerbody/tkb-picks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server