{"_id":"@alecsibilia/joes-book-mcp","_rev":"6-a0afa8387a24f9d541d211f5415fa5c1","name":"@alecsibilia/joes-book-mcp","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@alecsibilia/joes-book-mcp","version":"0.1.0","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"license":"MIT","_id":"@alecsibilia/joes-book-mcp@0.1.0","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"homepage":"https://github.com/asibilia/joes-book--next#readme","bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"bin":{"joes-book-mcp":"dist/stdio.mjs"},"dist":{"shasum":"d7ae062fa47a05267de175579859bb801cde3342","tarball":"https://registry.npmjs.org/@alecsibilia/joes-book-mcp/-/joes-book-mcp-0.1.0.tgz","fileCount":4,"integrity":"sha512-ILHEJk7D+HOh/Em7qc//qSK4a6Oi7BG33c3WT95EfkobblobHGKcW2HsS36wXCb8R6KAbViKGC4SqZ8ox2DVng==","signatures":[{"sig":"MEYCIQCLzhRpQUdj69JmaGOK9JJ6r19Gq34V9e2MyGRMGOzUFgIhAI4VgM6GTJlJsvC8k+O2nnMzxgCzu5dqKXOI1D1Y4EwI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31654},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"64d09ca0042d3be41a12bb11e19d5c01ed0ad89a","scripts":{"dev":"tsup --watch","test":"JOES_BOOK_API_KEY=test-key-for-unit-tests JOES_BOOK_API_URL=https://test.example.com bun test","build":"tsup","postbuild":"chmod +x dist/stdio.mjs","type-check":"tsc --noEmit","check:drift":"bun run scripts/check-tool-drift.ts","prepublishOnly":"bun run type-check && bun run build"},"_npmUser":{"name":"alecsibilia","email":"sibilia.alec@gmail.com"},"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"_npmVersion":"11.12.1","description":"Thin stdio MCP proxy to Joe's Book Mastra API","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^3.25.20","@mastra/mcp":"^1.5.2","@mastra/core":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.7.2","@types/node":"^22.15.14"},"_npmOperationalInternal":{"tmp":"tmp/joes-book-mcp_0.1.0_1777302342609_0.6040781677388423","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package no longer             \nauthenticates to the Joe's Book MCP server (server moved to Clerk OAuth 2.1 in v0.2.3).\nConnect Claude Desktop / Claude.ai / Cursor / Windsurf as a custom HTTP connector      \npointed at https://mastra.alecsibilia.com/api/mcp/joes-book/mcp and sign in via Clerk. \nSee https://alecsibilia.com/docs/mcp for setup."},"0.2.0":{"name":"@alecsibilia/joes-book-mcp","version":"0.2.0","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"license":"MIT","_id":"@alecsibilia/joes-book-mcp@0.2.0","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"homepage":"https://github.com/asibilia/joes-book--next#readme","bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"bin":{"joes-book-mcp":"dist/stdio.mjs"},"dist":{"shasum":"5901c080a27c9fbf17e5479690e01b87872a9a70","tarball":"https://registry.npmjs.org/@alecsibilia/joes-book-mcp/-/joes-book-mcp-0.2.0.tgz","fileCount":4,"integrity":"sha512-tKpySk9awkiP8IRPV9Chzhnpf2/W4q5/OIzvC9+71xYvb31hvBJQfr16wwZl3Q9enlwQ1GaBgYZ+UQpnCaPEBA==","signatures":[{"sig":"MEQCIEUrmtSnuafJIsW6nfK4O4/SH2lxkySb2rxIjpqVOnMYAiBVTcIAyVv58wE7dn/rg1zxY16kXht0KIRwxVFZ2rF44A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31654},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"72dbb0b92ad61bb4caa712927bfc98df4fa67c66","scripts":{"dev":"tsup --watch","test":"JOES_BOOK_API_KEY=test-key-for-unit-tests JOES_BOOK_API_URL=https://test.example.com bun test","build":"tsup","postbuild":"chmod +x dist/stdio.mjs","type-check":"tsc --noEmit","check:drift":"bun run scripts/check-tool-drift.ts","prepublishOnly":"bun run type-check && bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f1a8d35f-e751-442b-87ce-6d0f553c74f1"}},"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"_npmVersion":"11.11.0","description":"Thin stdio MCP proxy to Joe's Book Mastra API","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.25.20","@mastra/mcp":"^1.5.2","@mastra/core":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.7.2","@types/node":"^22.15.14"},"_npmOperationalInternal":{"tmp":"tmp/joes-book-mcp_0.2.0_1777308512843_0.29603953334788846","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package no longer             \nauthenticates to the Joe's Book MCP server (server moved to Clerk OAuth 2.1 in v0.2.3).\nConnect Claude Desktop / Claude.ai / Cursor / Windsurf as a custom HTTP connector      \npointed at https://mastra.alecsibilia.com/api/mcp/joes-book/mcp and sign in via Clerk. \nSee https://alecsibilia.com/docs/mcp for setup."},"0.2.1":{"name":"@alecsibilia/joes-book-mcp","version":"0.2.1","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"license":"MIT","_id":"@alecsibilia/joes-book-mcp@0.2.1","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"homepage":"https://github.com/asibilia/joes-book--next#readme","bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"bin":{"joes-book-mcp":"dist/stdio.mjs"},"dist":{"shasum":"2330576f8227717088b43d4fa7219024ee4e8680","tarball":"https://registry.npmjs.org/@alecsibilia/joes-book-mcp/-/joes-book-mcp-0.2.1.tgz","fileCount":4,"integrity":"sha512-6dPWh+SN3eUXrIlIBv67wbq6Dc2QkHFPOngJIOcIIJnPMi0H9CqQjQ9Wip12s3wQy2MZBC1eomampiw8hL5sWw==","signatures":[{"sig":"MEQCIBHd77m49RXsCX8KcM91jDt5V1MZo0mmcE0iMRpfEx74AiANepqF17g7JFz94pA7IPAaeWHy639JPDde+f44yfbVGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31591},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"0cd494f9d9c95159facb81c1afa2159e773b1fe0","scripts":{"dev":"tsup --watch","test":"JOES_BOOK_API_KEY=test-key-for-unit-tests JOES_BOOK_API_URL=https://test.example.com bun test","build":"tsup","postbuild":"chmod +x dist/stdio.mjs","type-check":"tsc --noEmit","check:drift":"bun run scripts/check-tool-drift.ts","prepublishOnly":"bun run type-check && bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f1a8d35f-e751-442b-87ce-6d0f553c74f1"}},"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"_npmVersion":"11.11.0","description":"Thin stdio MCP proxy to Joe's Book Mastra API","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.25.20","@mastra/mcp":"^1.5.2","@mastra/core":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.7.2","@types/node":"^22.15.14"},"_npmOperationalInternal":{"tmp":"tmp/joes-book-mcp_0.2.1_1777310689774_0.6410738319908695","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package no longer             \nauthenticates to the Joe's Book MCP server (server moved to Clerk OAuth 2.1 in v0.2.3).\nConnect Claude Desktop / Claude.ai / Cursor / Windsurf as a custom HTTP connector      \npointed at https://mastra.alecsibilia.com/api/mcp/joes-book/mcp and sign in via Clerk. \nSee https://alecsibilia.com/docs/mcp for setup."},"0.2.2":{"name":"@alecsibilia/joes-book-mcp","version":"0.2.2","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"license":"MIT","_id":"@alecsibilia/joes-book-mcp@0.2.2","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"homepage":"https://github.com/asibilia/joes-book--next#readme","bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"bin":{"joes-book-mcp":"dist/stdio.mjs"},"dist":{"shasum":"802848476f80d221f442a90298e7be75c5f54c30","tarball":"https://registry.npmjs.org/@alecsibilia/joes-book-mcp/-/joes-book-mcp-0.2.2.tgz","fileCount":4,"integrity":"sha512-7jAHqgOjXoT/CJQYtYzU4LX/Hku/V/3PWu37zEAbNyenu2hmLFR9I9YoLrWl9vPoxIOuOEHcqu2EMnOJ7r30hg==","signatures":[{"sig":"MEQCIBrcwuA9v2mfSEdlYoBQJa6WptGOOkTJsCCkkZ9fFLzUAiAB5bMaHa8IDreLxi0krWmMioinCyInojsaLRM8XyqWVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31859},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"adae719957e828322159ba8d723725a0a57483df","scripts":{"dev":"tsup --watch","test":"JOES_BOOK_API_KEY=test-key-for-unit-tests JOES_BOOK_API_URL=https://test.example.com bun test","build":"tsup","postbuild":"chmod +x dist/stdio.mjs","type-check":"tsc --noEmit","check:drift":"bun run scripts/check-tool-drift.ts","prepublishOnly":"bun run type-check && bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f1a8d35f-e751-442b-87ce-6d0f553c74f1"}},"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"_npmVersion":"11.11.0","description":"Thin stdio MCP proxy to Joe's Book Mastra API","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.25.20","@mastra/mcp":"^1.5.2","@mastra/core":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.7.2","@types/node":"^22.15.14"},"_npmOperationalInternal":{"tmp":"tmp/joes-book-mcp_0.2.2_1777318105489_0.4825937797025901","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package no longer             \nauthenticates to the Joe's Book MCP server (server moved to Clerk OAuth 2.1 in v0.2.3).\nConnect Claude Desktop / Claude.ai / Cursor / Windsurf as a custom HTTP connector      \npointed at https://mastra.alecsibilia.com/api/mcp/joes-book/mcp and sign in via Clerk. \nSee https://alecsibilia.com/docs/mcp for setup."},"0.2.3":{"name":"@alecsibilia/joes-book-mcp","version":"0.2.3","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"license":"MIT","_id":"@alecsibilia/joes-book-mcp@0.2.3","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"homepage":"https://github.com/asibilia/joes-book--next#readme","bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"bin":{"joes-book-mcp":"dist/stdio.mjs"},"dist":{"shasum":"1278dc02b06ead72a4359b13d16cca94e23a0396","tarball":"https://registry.npmjs.org/@alecsibilia/joes-book-mcp/-/joes-book-mcp-0.2.3.tgz","fileCount":4,"integrity":"sha512-3ruZYGIssRbCrSjIpP+vXV2K/awPhYe+pajW9s7ouUGak4LyvOe65GD90qgjEAQV74k8jlW3gp2mp9+AoyC5Bw==","signatures":[{"sig":"MEQCIEXF1asBZQ3x1wY19mZfQsqXb686fMe+0XUjt3/wt8hDAiBxf/qVa8DeLmxftybPpsAtFh14K1+ImuR+Uhw7g8lO5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31859},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"d8ab0e14c56f3787694080e5c730d87c5847d639","scripts":{"dev":"tsup --watch","test":"JOES_BOOK_API_KEY=test-key-for-unit-tests JOES_BOOK_API_URL=https://test.example.com bun test","build":"tsup","postbuild":"chmod +x dist/stdio.mjs","type-check":"tsc --noEmit","check:drift":"bun run scripts/check-tool-drift.ts","prepublishOnly":"bun run type-check && bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f1a8d35f-e751-442b-87ce-6d0f553c74f1"}},"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"_npmVersion":"11.11.0","description":"Thin stdio MCP proxy to Joe's Book Mastra API","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.25.20","@mastra/mcp":"^1.5.2","@mastra/core":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.7.2","@types/node":"^22.15.14"},"_npmOperationalInternal":{"tmp":"tmp/joes-book-mcp_0.2.3_1777342738642_0.7775379544604721","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package no longer             \nauthenticates to the Joe's Book MCP server (server moved to Clerk OAuth 2.1 in v0.2.3).\nConnect Claude Desktop / Claude.ai / Cursor / Windsurf as a custom HTTP connector      \npointed at https://mastra.alecsibilia.com/api/mcp/joes-book/mcp and sign in via Clerk. \nSee https://alecsibilia.com/docs/mcp for setup."}},"time":{"created":"2026-04-27T15:05:42.451Z","modified":"2026-04-28T02:26:04.691Z","0.1.0":"2026-04-27T15:05:42.750Z","0.2.0":"2026-04-27T16:48:32.987Z","0.2.1":"2026-04-27T17:24:49.897Z","0.2.2":"2026-04-27T19:28:25.706Z","0.2.3":"2026-04-28T02:18:58.784Z"},"bugs":{"url":"https://github.com/asibilia/joes-book--next/issues"},"license":"MIT","homepage":"https://github.com/asibilia/joes-book--next#readme","keywords":["claude","joes-book","mcp","model-context-protocol","sports-betting"],"repository":{"url":"git+https://github.com/asibilia/joes-book--next.git","type":"git","directory":"packages/joes-book-mcp"},"description":"Thin stdio MCP proxy to Joe's Book Mastra API","maintainers":[{"name":"alecsibilia","email":"sibilia.alec@gmail.com"}],"readme":"# @alecsibilia/joes-book-mcp\n\n> ⚠️ **Deprecated** — Use [mcp-remote](https://www.npmjs.com/package/mcp-remote) instead.\n> Configure your MCP client to point at `https://mastra.alecsibilia.com/api/mcp/joes-book/mcp`.\n> See the [updated docs](https://alecsibilia.com/docs/mcp) for full setup.\n\nThin stdio MCP proxy to Joe's Book Mastra API. Exposes Joe's Book sports-betting tools to any MCP-compatible client (Claude Desktop, Cursor, etc.) over the Model Context Protocol.\n\n## Requirements\n\n- **Node.js >=22.13.0**\n\n## Install\n\n```bash\nnpx -y @alecsibilia/joes-book-mcp\n```\n\n## Configuration\n\n### Claude Desktop\n\nAdd the following to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"joes-book\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alecsibilia/joes-book-mcp\"],\n      \"env\": {\n        \"JOES_BOOK_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd the following to your Cursor MCP config (`~/.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"joes-book\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alecsibilia/joes-book-mcp\"],\n      \"env\": {\n        \"JOES_BOOK_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Windsurf\n\nAdd the following to your Windsurf MCP config (`~/.codeium/windsurf/mcp_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"joes-book\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alecsibilia/joes-book-mcp\"],\n      \"env\": {\n        \"JOES_BOOK_API_KEY\": \"YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n### Environment Variables\n\n| Variable | Required | Default |\n|---|---|---|\n| `JOES_BOOK_API_KEY` | **Yes** | — |\n| `JOES_BOOK_API_URL` | No | `https://mastra.alecsibilia.com` |\n\nOnly `JOES_BOOK_API_KEY` is required. `JOES_BOOK_API_URL` defaults to the production API — only override it if you are running a local Mastra instance.\n\nGet your API key at [alecsibilia.com/protected/user](https://alecsibilia.com/protected/user).\n\n## Available Tools\n\n### Data Ingestion\n\n| Tool | Description |\n|---|---|\n| `mlb-fetch-schedule` | Fetches today's MLB schedule with lineups and probable pitchers |\n| `mlb-fetch-batter-stats` | Fetches season hitting stats for a specific MLB batter |\n| `mlb-fetch-pitcher-stats` | Fetches season pitching stats for a specific MLB pitcher |\n| `mlb-fetch-savant-stats` | Fetches Statcast batter leaderboard from Baseball Savant (CSV) |\n| `mlb-fetch-events` | Fetches today's MLB events from The Odds API |\n| `mlb-fetch-player-props` | Fetches batter prop odds for a specific MLB game event |\n| `mlb-fetch-aggregated-odds` | Fetches and aggregates MLB player prop odds across multiple games |\n| `datagolf-fetch-live-stats` | Fetches PGA tournament field + model probabilities from DataGolf |\n| `datagolf-check-tournament-active` | Checks if a PGA tournament is currently active |\n| `pga-fetch-outrights` | Fetches outright betting odds from DataGolf for PGA tournament markets |\n| `nhl-fetch-schedule` | Fetch today's NHL schedule and starting goalies |\n| `nhl-fetch-player-stats` | Fetch NHL player stats for prop analysis |\n| `nhl-fetch-odds` | Fetch NHL event odds from The Odds API |\n\n### Analyzers\n\n| Tool | Description |\n|---|---|\n| `mlb-rank-hr-candidates` | Ranks MLB batters for home run prop bets using a deterministic composite score |\n| `mlb-rank-batter-prop-candidates` | Ranks MLB batters for general prop bets (hits, RBIs, total bases) |\n| `mlb-rank-batter-all-markets` | Ranks MLB batter candidates across all three prop types in a single call |\n| `pga-rank-finish-candidates` | Ranks PGA players for finish position props using DataGolf model probabilities |\n| `nhl-rank-candidates` | Ranks NHL player prop candidates using a deterministic composite score |\n| `parlay-check-correlation` | Detects correlated legs in a parlay — same player, same team, or same game overlaps |\n| `parlay-validate-odds-band` | Validates a parlay's combined odds fall within an acceptable American odds range |\n\n### Composition\n\n| Tool | Description |\n|---|---|\n| `parlay-retrieve-patterns` | Retrieves patterns from the pattern store with hygiene filters and time-decay weighting |\n| `parlay-compose` | Composes a parlay from ranked candidates via LLM with a 3-attempt fallback ladder |\n| `parlay-grade` | Grades a resolved parlay — computes hit rate and pattern confidence adjustments |\n| `parlay-submit` | Validates a completed parlay and saves as a draft to Joe's Book |\n| `parlay-report-outcome` | Reports the outcome of a resolved parlay and triggers grading + pattern updates |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}