██████╗ ██████╗ ██╗███╗ ██╗████████╗██╗ ███████╗███████╗███████╗ ██╔══██╗██╔═══██╗██║████╗ ██║╚══██╔══╝██║ ██╔════╝██╔════╝██╔════╝ ██████╔╝██║ ██║██║██╔██╗ ██║ ██║ ██║ █████╗ ███████╗███████╗ ██╔═══╝ ██║ ██║██║██║╚██╗██║ ██║ ██║ ██╔══╝ ╚════██║╚════██║ ██║ ╚██████╔╝██║██║ ╚████║ ██║ ███████╗███████╗███████║███████║ ╚═╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚══════╝
A hosted Model Context Protocol server that exposes real-time NBA and MLB games, props, sharp consensus, multi-season historical datasets, and order execution on Kalshi / Polymarket — directly inside Codex, Claude Code, or any MCP client. Sign in with Google, generate an API key, paste one snippet, done.
── [ what_you_get ]────────────────────────────────────────────────
100+ tools
Everything the Pointless app uses internally, exposed as MCP tools. Scoped to data (read-only research) or data + trading (full trading access with your own venue credentials).
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 slate tool for NBA/MLB games with odds + enrichment |
| data | find_prop_edges | Rank props by season average vs line |
| data | analyze_prop | L10 hit rate, recent form, matchup history |
| data | get_prop_progress | Live prop trajectory: current vs expected vs pace |
| data | find_arbitrage | Cross-venue (Kalshi vs Polymarket) price gaps |
| data | get_game_timeline | Minute-by-minute score + price history |
| data | load_research_dataset | Full season game dataset for custom backtests |
| data | run_analysis | Execute Python analysis against loaded datasets |
| trading | buy_prop | Place a prop order (preview → confirm) |
| trading | buy / sell / cancel | Moneyline trading on Kalshi or Polymarket |
# 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. Copy it, paste it in your terminal, done.
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). 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.