TKB Picks MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TKB Picks MCPGet today's NBA schedule, odds, and injury report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TKB Picks MCP Server
Wraps SportsGameOdds (odds/schedule/stats) and BALLDONTLIE (injuries) into MCP tools for Claude to use when building TKB Picks threads.
Tools (9)
tkb_get_schedule- game schedule, date/team/conference filteringtkb_get_odds- moneyline/spread/total, or an individual player's over/under proptkb_get_player_hit_rate- real recent-game-log hit-rate checktkb_get_injuries- structured injury status from BALLDONTLIEtkb_get_team_split- home/road/opponent-specific win-loss records (computed from event tallying)tkb_get_team_record- NEW overall team record from SGO's real standings data (fast, no tallying)tkb_get_yes_no_prop- milestone-style betstkb_get_period_odds- period-specific linestkb_debug_raw_event- diagnostic tool, dumps raw SGO event JSON
Related MCP server: MLB V3 Scores MCP Server
This round's fixes (batched, from real API documentation - SGO's OpenAPI spec + BALLDONTLIE's official docs)
1. BALLDONTLIE injuries team: "unknown" bug - fixed.
Root cause confirmed via BALLDONTLIE's own docs example (their stats endpoint response shape): team is a SIBLING field on the record, not nested inside player. Original code assumed player.team, which was always undefined. Fixed to check the sibling team field first, falling back to the nested path in case the injuries endpoint differs from stats (not independently confirmed for injuries specifically - flag if team: "unknown" still appears after this fix, since that would mean the injuries endpoint has a genuinely different shape).
2. New tkb_get_team_record tool.
SGO's official OpenAPI spec confirms teams have a real standings object (wins, losses, record, last5, streak) directly available via /teams - no need to fetch and tally every event ourselves for a simple overall record. Added as a new, separate tool rather than rewriting the existing (now-working) tkb_get_team_split, to avoid risking a working tool for an enhancement. Use tkb_get_team_record for "what's their record," tkb_get_team_split for home/road/opponent-specific splits (standings doesn't break those out).
3. Confirmed correct (no code change needed, but now certain rather than assumed):
periodID: "game"for full-game stats - confirmed directly from SGO's OpenAPI spec exampleoddID format
{statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID}- confirmedPeriod codes
1h,2h,1q,2q,3q,4q- confirmed via SGO's official AI context doc (previously only1ix5was independently confirmed)
Previously fixed (still in effect, from earlier rounds)
Debug tool crash (oversized odds payload) - capped to first 5 markets
Yes/No prop crash - same root cause, same fix
tkb_get_odds/tkb_get_scheduleteamName search pulling entire history instead of recent/upcoming - both now boundedstartTimeISO"unknown" - fixed, real field isstatus.startsAttkb_get_oddsmoneyline/spread broken without explicitside- entity/side computation fixedtkb_get_player_hit_rate/tkb_get_team_splitpulling unbounded non-recent history - both now bounded to a ~220-day trailing window
Still genuinely unverified
Player
teamIDupdate speed after a real trade - can only be tested live against an actual tradeWhether the
teamsibling-field fix (item 1 above) is fully correct for the injuries endpoint specifically, vs. only confirmed for stats
Operational notes
Render free tier cold starts: first request after idle can be slow/fail. Check Logs tab to distinguish cold-start from a real crash.
MCP connector caching: if new tools/behavior don't show up after redeploy, remove and re-add the connector.
Start Command must be exactly npm start.
Deploy to Render
Upload this folder's contents to the GitHub repo (overwrite existing files)
Render auto-redeploys if connected
Verify:
https://YOUR-SERVICE.onrender.com/healthRemove/re-add the MCP connector if tools seem stale
Adding NBA/NHL later
Get a BALLDONTLIE subscription for that sport
Add one entry to
SPORT_CONFIGinsrc/constants.tsPush to GitHub
Local development
npm install
npm run build
SGO_API_KEY=xxx BDL_API_KEY=xxx npm startThis server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceAn MCP Server implementation that integrates the Balldontlie API, to provide information about players, teams and games for the NBA, NFL and MLB.Last updated410226MIT
- Flicense-qualityDmaintenanceAn 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.Last updated
- Flicense-qualityDmaintenanceAn MCP Server that provides access to NHL (National Hockey League) scores and statistics via the SportsData.io NHL v3 Scores API.Last updated
- AlicenseAqualityBmaintenanceMCP 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.Last updated15241MIT
Related MCP Connectors
Sports Game Odds MCP — wraps the Sports Game Odds API (sportsgameodds.com)
The hockey data API. Stats, odds, and everything between. REST API and MCP server.
The Odds API MCP — sportsbook odds across 70+ books, 30+ leagues
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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