npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@buzzr/mcp

v5.0.0

Published

MCP server exposing the @buzzr sports engines to AI agents — DFS settlement, odds math, and entertainment predictions as tools.

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:

Install

Run it directly with npx (Node 22+):

npx -y @buzzr/mcp

The server speaks MCP over stdio: JSON-RPC on stdin/stdout, logs on stderr.

Claude Desktop

Add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "buzzr": {
      "command": "npx",
      "args": ["-y", "@buzzr/mcp"]
    }
  }
}

Claude Code

claude mcp add buzzr -- npx -y @buzzr/mcp

or in .mcp.json:

{
  "mcpServers": {
    "buzzr": {
      "command": "npx",
      "args": ["-y", "@buzzr/mcp"]
    }
  }
}

Tool catalog

| Tool | Engine | What it does | | -------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | grade_dfs_entry | @buzzr/dfs-engine | Settle a DFS pick-em entry: applies the book policy (ties, DNPs, flex tables) and returns status, payout split, per-leg decisions, and explanation codes. | | validate_dfs_entry | @buzzr/dfs-engine | Run the engine's runtime validators against a candidate entry; returns structured error/warning issues without settling. | | list_book_policies | @buzzr/dfs-engine | Enumerate the registered DFS books (built-in stable policies plus draft fixtures) with play types and policy status. | | fair_line | @buzzr/bets-core | Remove the vig from a two-sided market: fair probability, fair American odds, overround, and edge vs. the offered price. | | parlay_value | @buzzr/bets-core | Price a parlay: per-leg no-vig probabilities, fair combined odds, edge of the offered price, optional expected value. | | kelly_stake | @buzzr/bets-core | Kelly-criterion stake sizing with fractional-Kelly support (defaults to quarter-Kelly). | | predict_game_buzz | @buzzr/entertainment-engine | Predict a game's 1–10 entertainment (buzz) score with model confidence and weighted factor breakdown. | | rank_games | @buzzr/entertainment-engine | Rank candidate games for a user's taste profile: base score plus bounded personal-affinity and social adjustments. |

Every tool validates its input with zod before touching an engine, and returns results as JSON text content. Failures come back as structured MCP error results (isError: true with { "error": { "code", "message" } }) instead of protocol errors — agents can read and recover from them.

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:

{
  "entryId": "slip-1",
  "bookId": "prizepicks",
  "playTypeId": "power",
  "stake": 10,
  "displayedMultiplier": 3,
  "legs": [
    { "legId": "l1", "playerName": "LeBron James", "league": "NBA", "propType": "points", "line": 25.5, "direction": "over", "actual": 31 },
    { "legId": "l2", "playerName": "Stephen Curry", "league": "NBA", "propType": "points", "line": 27.5, "direction": "over", "actual": 33 }
  ]
}

Result: "status": "won", "payout": { "total": 30, "withdrawable": 30, "bonus": 0 } — both legs won, the 2-pick power table pays 3x.

"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_value with { "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.47 and 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_games with the slate and { "profile": { "favoriteTeams": ["Lakers"], "leagueAffinity": { "NBA": 0.8 } } }.

Result: each game comes back with baseScore, bounded affinityAdjustment and socialAdjustment, a totalScore, 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.):

import { createBuzzrMcpServer, allTools } from '@buzzr/mcp';

const server = createBuzzrMcpServer();
await server.connect(myTransport);

Individual tool definitions (gradeDfsEntryTool, fairLineTool, …) are exported too — each is { name, title, description, inputSchema, handler }, and handlers can be called directly without any transport.

Compatibility

  • Node.js >= 22
  • rank_games requires @buzzr/entertainment-engine >= 5.0.0. Against an older engine build the tool degrades gracefully with an engine_capability_missing error result instead of crashing the server.

License

MIT