██████╗ ██████╗ ██╗███╗ ██╗████████╗██╗ ███████╗███████╗███████╗ ██╔══██╗██╔═══██╗██║████╗ ██║╚══██╔══╝██║ ██╔════╝██╔════╝██╔════╝ ██████╔╝██║ ██║██║██╔██╗ ██║ ██║ ██║ █████╗ ███████╗███████╗ ██╔═══╝ ██║ ██║██║██║╚██╗██║ ██║ ██║ ██╔══╝ ╚════██║╚════██║ ██║ ╚██████╔╝██║██║ ╚████║ ██║ ███████╗███████╗███████║███████║ ╚═╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚══════╝
A hosted Model Context Protocol server for sport-dependent NBA, MLB, NFL, College Football, and PGA schedules, props, Picks, and historical research. Generic loaded datasets are available for NBA, MLB, and PGA; football uses typed query and replay paths. Guarded Kalshi / Polymarket execution is available only for enabled sports and markets, including manual Kalshi execution for exact EPL match-result contracts. College Football execution remains dark. Connect from Codex, Claude Code, or any MCP client.
── [ mcp_profiles ]────────────────────────────────────────────────
Pointless exposes focused MCP profiles so hosted chat apps do not have to load the entire tool registry at once. Use one profile per connector/session when possible.
| profile | endpoint | best for |
|---|---|---|
| core | https://pointless-agent-service-7bjvrfi3aa-uc.a.run.app/mcp/coreCompact sports data catalog: slate, team/player data, props, markets, sharp reads, strategy summaries. | Claude app custom connector, daily questions, and ordinary research. |
| research | https://pointless-agent-service-7bjvrfi3aa-uc.a.run.app/mcp/researchHistorical datasets, Python analysis, shard reducers, backtests, saved research context, and research agents. | Claude app custom connector for typed backtests, or NBA/MLB/PGA dataset analysis. |
| trading | https://pointless-agent-service-7bjvrfi3aa-uc.a.run.app/mcp/tradingPortfolio, orders, strategy mutations, and order execution tools. Requires trading scope. | Dedicated trading sessions after you have linked venue credentials. |
| full | https://pointless-agent-service-7bjvrfi3aa-uc.a.run.app/mcpFull legacy catalog for clients that handle large MCP registries well. | Claude Code, Codex, Cursor, Zed, and advanced MCP clients. |
── [ what_you_get ]────────────────────────────────────────────────
100+ tools
Current app and research capabilities exposed as MCP tools, with coverage documented per tool and sport. Scoped to data (read-only research) or data + trading (guarded execution on enabled paths with your own venue credentials; NCAAF is limited to server-authorized exact Kalshi Picks).
28 slash-command workflows
Sport-aware multi-step prompts for the questions that actually matter at tip-off and first pitch — backtest-gated, no invented precision. Plus 7 agent system-prompts for power users.
| scope | tool | description |
|---|---|---|
| data | query_slate | Canonical NBA/MLB/NFL/NCAAF/PGA slate; enrichment varies by sport |
| data | query_prop_data | Filtered NBA/MLB/NCAAF prop markets; NCAAF grading fails closed |
| data | get_props_board | The persisted MLB/NFL/NCAAF/PGA board shown in the app |
| data | get_daily_picks | Published MLB/NFL/NCAAF/Tennis/PGA Picks with sport-native receipts |
| data | query_ncaaf_game_data | NCAAF snapshots, history, context receipts, and capability truth |
| data | execute_strategy_replay_packet | Typed, read-only sport-native strategy replay and backtests |
| data | load_research_dataset | Generic dataset fallback for NBA, MLB, and PGA; no NFL/NCAAF shard path |
| data | run_analysis | Execute Python analysis against a supported loaded dataset |
| trading | buy_prop | Place a prop order on an execution-enabled market (preview → confirm) |
| trading | buy / sell / cancel | Guarded venue orders on enabled paths, including exchange-listed NCAAF markets |
# full list appears in codex / claude code after install — this is a sampler
- $ /morning-briefDaily digest: overnight settlements, open positions, today's slate, pending actions
- $ /gamesSchedule table + what's interesting tonight (lopsided/tight, injury swings, strategy proximity, movers, arbs)
- $ /strategies-tonightActive strategies ranked by proximity, pregame vs live-only separation, dead strategy flags
- $ /injury-impactToday's status changes, line movement, tradeable teammate usage angles
- $ /why-moved <market>Why this market moved: price history, whale activity, sharp timing, injury/news, cross-venue context
- $ /lineup-watchTrack or set up lineup-change watches — surprise actives, late scratches, role shifts that swing props
- $ /best-props [budget]Tonight's best props with L10/H2H validation + a Conversation Stat per pick
- $ /best-ml [budget]Moneyline slate validated by historical backtests — no fake model, just data
- $ /player <name>Season baseline, L10 trend, tonight's status, live props, Conversation Stat
- $ /prop-focus <player> <stat>Deep dive on a single prop with hit rate, trend, and matchup history
- $ /leaders [stat]League leaders with playable context — plays tonight? line vs baseline? RESPECTED/FADING/CHASING
- $ /whats-unusualReal market anomalies only: movers, volume spikes, whale trades, cross-venue arbs. No picks.
- $ /parlay-builder [budget]2-3 lotto ticket combos: 5-6 legs across games + stat types, big payout, small cost
- $ /sharp-boardTracked sharp picks board: source agreement, conflicts, which ideas are worth pricing
- $ /edge-auditAudit edge candidates for stale prices, thin samples, sharp overlap, and liquidity before you bet
- $ /strategy-builderGuided intake for new strategies: templates, condition vocabulary, sizing + exit choices
- $ /strategy-reportDeep dive into strategy performance, win rate trends, optimization ideas
- $ /correlation-checkFlag same-game, same-team, same-player, opposite-side clusters across positions or proposed legs
- $ /week-review [days]Calendar in text form: daily breakdown, bet size buckets, top 5 teams won/lost on, story of the week
- $ /portfolioFull portfolio health check with P&L, exposure, and recommendations
- $ /pregameFull pregame prep for tonight's slate
- $ /best-exitsRank open positions by exit urgency — what to sell, trim, or protect, with executable liquidity
- $ /clv-reportAudit entry quality vs closing-line value: true CLV where available, proxy where not
── [ install ]─────────────────────────────────────────────────────
- 01get your key
Sign in with Google — a key is generated automatically. No forms, no decisions.
pointless@mcp ~ %$ ! open https://pointless-nba.vercel.app/mcp/setup
# run this from codex / claude code, or just open the url in a browser
- 02paste the command
The setup page gives you a single terminal command that creates .mcp.json in your project. Claude Code/Codex can use the full URL. Claude app custom connectors should use the profile URL that matches the chat: /mcp/core, /mcp/research, or /mcp/trading.
pointless@mcp ~ %echo '{"mcpServers":{"pointless":{"type":"http","url":"...","headers":{"Authorization":"Bearer pk_live_..."}}}}' > .mcp.json# the real command has your key pre-filled — just copy + paste
- 03restart codex / claude code
mcp__pointless__* tools appear. Try /best-props or ask “what NBA games are on tonight?”
# want to trade? link your kalshi/polymarket keys at /mcp/account
── [ auth · security ]───────────────────────────────────────────
Scopes
- data — read-only. Everything the Pointless research terminal shows: games, props, injuries, sharp consensus, historical datasets. Never touches your exchange accounts.
- trading — adds order execution (buy, sell, cancel, buy_prop) on enabled sport and exact live exchange-market paths. Requires you to have configured your Kalshi / Polymarket credentials separately in Pointless; those are encrypted at rest and never shared with the MCP client.
What's stored
- The API key itself is SHA-256-hashed server-side — we can't recover the plaintext. If you lose it, revoke and generate a new one.
- Revoke any key instantly from /account. Revocation takes effect within ~60 seconds.
- Every MCP tool call is scoped to your Firebase user — no other user can see or touch your positions, balances, or strategy history through your key.