
Buzzr Sports Engine
io.github.Buzzr-appPublished by GitHub account Buzzr-appv5.1.0Updated Oct 24, 2026
Local sports math, DFS settlement, bet analytics, and game-entertainment tools.
Overview
A local stdio MCP server that gives an assistant sports-betting math tools: DFS entry settlement, odds and parlay pricing, Kelly staking, bet-history summaries,
- What you can do
- Validate and settle daily fantasy sports entries, singly or in batches, and list book policy profiles with their verification status and sources. Remove vig from two-way markets, compare placed and closing prices, price parlays with expected value, and compute full or fractional Kelly stakes. Summarize up to 500 bets with period rollups, drawdown and streaks. Score a game's entertainment value and rank a slate of games against a taste profile.
- When to use it
- Useful when you want an assistant to check or settle PrizePicks or Underdog style slips, sanity-check odds math such as fair lines, parlay value or Kelly sizing, review a bet history, or rank games to watch. It is a calculation surface, not a live odds or account feed.
- Requirements
- Local process started with npx, requiring Node.js 22 or newer and npm. No accounts, API keys, environment variables or headers are declared. The client must launch it over stdio and treat stdout as JSON-RPC only.
Installation
In SourceWeft
- Open Buzzr Sports Engine in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@buzzr/mcp
MCP server exposing the @buzzr sports engines to AI agents — DFS settlement, odds math, and entertainment predictions as tools.
@buzzr/mcp is a Model Context Protocol stdio
server that puts the whole @buzzr engine family in front of any MCP-capable agent
(Claude Desktop, Claude Code, or your own client). All math and policy logic lives
in the underlying engines — this package is a thin, schema-validated tool surface:
@buzzr/dfs-engine— pick-em settlement with versioned compatibility and custom policies@buzzr/bets-core— no-vig fair lines, parlay pricing, expected value, Kelly staking@buzzr/entertainment-engine— ML buzz-score predictions and personalized game ranking
Install
Run it directly with npx (Node 22+). Pin the version you reviewed instead of
silently accepting a future latest release:
The server speaks MCP over stdio: JSON-RPC on stdin/stdout, logs on stderr. It exposes 11 tools with bounded inputs and outputs, and does not fetch live odds, box scores, operator accounts, or private user data.
Smithery
The Buzzr Sports Engine listing on
Smithery packages
the exact published @buzzr/[email protected] artifact as a local stdio MCPB. It is a
distribution and installation surface, not a hosted HTTP service. To add it to
Codex through Smithery:
Smithery writes the corresponding MCP configuration for the selected client. Use the direct npm command above when you need both the server package and its launcher configuration pinned explicitly.
Claude Desktop
Add this to claude_desktop_config.json from Settings → Developer → Edit
Config, then fully quit and reopen Claude Desktop:
Claude Code
For a version-controlled project configuration, add this to .mcp.json, trust
the project when prompted, and start a new Claude Code session:
Confirm it with claude mcp get buzzr; inside Claude Code, /mcp shows the
connection and discovered tool count.
Cursor
Add this to the repository's .cursor/mcp.json (or the equivalent user-level
MCP configuration), then fully restart Cursor:
Open Cursor Settings → MCP to confirm buzzr connected and exposed 11
tools. See Cursor's MCP documentation if
your installed Cursor version presents a different settings location.
Codex
The Codex CLI, IDE extension, and app share config.toml. The one-command user
setup is:
Or add the equivalent block to ~/.codex/config.toml for all projects, or to a
trusted repository's .codex/config.toml for that project only:
Run codex mcp get buzzr, then start a new Codex task after changing the
configuration.
Generic stdio MCP client
Use this process configuration in any client that accepts a command plus args:
Treat stdout as JSON-RPC only, read diagnostics from stderr, and close the child
process's stdin during shutdown. The client must perform the MCP lifecycle below;
starting npx in a terminal and seeing it remain open is normal for a stdio
server waiting for a client.
Initialization and capability discovery
The client sends initialize first. Verify the serverInfo.name field is
"buzzr", the serverInfo.version field is the installed package version, and
the response has a capabilities.tools object. Send
notifications/initialized, then call tools/list. The server returns the 11
tools in the catalog below with their input schemas. It does not advertise data
fetching, resources, or prompts.
examples/mcp-calls.json is a machine-readable JSON-RPC
transcript with the initialization expectation, exact tool discovery order, and
a safe list_book_policies → validate_dfs_entry → grade_dfs_entry workflow.
The repository replays that workflow through a real MCP client in CI.
Startup troubleshooting
- Confirm Node.js 22+ and npm are visible to the same desktop process or shell:
node --version,npm --version, andnpx --version. - Confirm the pinned release exists with
npm view @buzzr/[email protected] version, then runnpm cache verify. If npm reports cache corruption, repair npm's cache before retrying;npm cache clean --forceis a last resort because it removes the whole local cache. - GUI apps may inherit a smaller
PATHthan an interactive shell. On macOS or Linux, runcommand -v npx; on Windows, runwhere.exe npx. If the client cannot findnpx, use that absolute path ascommand(normallynpx.cmdon Windows) or launch the client from an environment where Node is onPATH. - Keep logs off stdout. A healthy manual start writes a
listening on stdiodiagnostic to stderr and waits for JSON-RPC input. - After any config, Node, PATH, or package-version change, fully quit and restart Claude Desktop, Claude Code, Cursor, or Codex. Opening only another chat tab may leave the old MCP child process and cached tool catalog in place.
Tool catalog
Tool strings, identifiers, arrays, stdio frames, concurrent calls, and serialized
results are bounded. American odds must be within [-100000, -100] or
[100, 100000]. grade_dfs_entries, closing_line_value, and
summarize_bet_history return string contractVersion: "1".
DFS policy safety
Operator-named policies are independent compatibility profiles, not official rules engines or evidence of affiliation:
- PrizePicks is experimental and partially verified. Standard payout references were reviewed on 2026-07-16 from PrizePicks Payouts and PrizePicks Potential Outcomes, with DNP behavior checked against DNPs, Reboots, and Ties. The compatibility policy treats a 2-pick Power entry with a DNP as a refund when it falls below the two-pick minimum. Other settlement behavior and variable lineup-specific payouts remain incomplete.
- Underdog is experimental and unverified. The Underdog Sports Legal Center is the recorded rules entrypoint; the current compatibility payout and settlement values have not been verified.
Displayed lineup terms are authoritative. Call list_book_policies before
grading, inspect verification and sources, and obtain explicit operator rulings
for DNPs, reboots, ties, rescues, voids, and corrections. The tool lists future
fixtures with executable: false; grading tools reject draft book IDs because
drafts are metadata, not settlement implementations.
Error contracts
- Invalid tool arguments return the same bounded
invalid_inputresult through an MCP client transport or a direct exportedtool.handler(...)call. At most eight compact validation issues are included; raw Zod errors are never returned. - Malformed JSON-RPC envelopes remain protocol errors owned by the MCP SDK and
are distinct from a valid
tools/callrequest with invalid tool arguments. validate_dfs_entryintentionally accepts a bounded candidate object and returns the engine's structured validation report.- Execution failures return generic
isError: trueresults such astool_execution_failed,entry_settlement_failed,server_busy, orresult_too_large. Internal error details are not public.
Example transcripts
"Did my PrizePicks slip hit?"
User: I had a $10 2-pick power play: LeBron over 25.5 points (he scored 31) and Curry over 27.5 (he scored 33). What's the payout?
Agent calls
grade_dfs_entry:Result:
"status": "won","payout": { "total": 30, "withdrawable": 30, "bonus": 0 }— both supplied actuals clear their lines and the submitted 3× displayed multiplier is consistent with the selected compatibility table. Confirm the actual entry details before treating this as an operator outcome.
"Is this parlay +EV?"
User: The book offers +264 on a two-leg parlay where both legs are -110/-110 markets. Worth $100?
Agent calls
parlay_valuewith{ "legs": [{ "selected": -110, "opposite": -110 }, { "selected": -110, "opposite": -110 }], "offeredAmericanOdds": 264, "stake": 100 }.Result: fair probability 0.25 (fair price +300) vs. offered +264 —
"edgePercent": -2.47and an expected loss of about $9 per $100. The agent recommends passing.
"What should I watch tonight?"
User: I'm a Lakers fan. Rank tonight's slate for me.
Agent calls
rank_gameswith the slate and{ "profile": { "favoriteTeams": ["Lakers"], "leagueAffinity": { "NBA": 0.8 } } }.Result: each game comes back with
baseScore, boundedaffinityAdjustmentandsocialAdjustment, atotalScore, and named factors ("favorite team playing", "league affinity") the agent can cite when explaining the ranking.
Embedding
The server is also exported as a library, so you can mount the same tool catalog on your own transport (in-memory for tests, HTTP, etc.):
Individual tool definitions (gradeDfsEntryTool, fairLineTool, …) are exported
too — each is { name, title, description, inputSchema, handler }, and handlers
can be called directly without any transport.
Codex skill
The repository includes a Buzzr Sports Engine skill with the 11-tool routing guide, limits, response-reading order, and operator-safety rules:
Repository contributors can prove the same one-command install without using a
published branch: npx [email protected] add . --skill buzzr-sports-engine --agent codex --yes --copy. npm run check:skill runs the official pinned
quick_validate.py, performs that local install in an isolated temporary
project, and verifies every installed skill file byte-for-byte.
Compatibility
- Node.js >= 22 is supported.
rank_gamesrequires@buzzr/entertainment-engine>= 5.0.0. Against an older engine build the tool degrades gracefully with anengine_capability_missingerror result instead of crashing the server.
Import the supported API from @buzzr/mcp. Deep src/* and dist/* imports are unsupported.
See the all-package API index and the
generated root-export reference.
Report reproducible defects in GitHub Issues. Report vulnerabilities privately through SECURITY.md. The versioning and support policy defines the supported runtime and SemVer contract.
License
Source: packages/mcp/README.md at commit 11819dd
Tools
0Version history
1- v5.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts