Koskamo

BetsBeats MCP

A free, read-only MCP server that allows agents to verify sealed sports picks via SHA-256 hashes, read the public pick record, and perform odds math including converting odds, calculating expected value, and determining parlay payouts.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

BetsBeats MCP logo, by BetsBeatsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by BetsBeats
MCP endpoint (Streamable HTTP)
https://api.betsbeats.com/mcp
Vendor documentation

What you can do with it

  • Verify sealed sports picks using SHA-256 hashes
  • Read the public record of past picks
  • Convert sports betting odds
  • Calculate expected value and parlay payouts

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
betsbeats 1.0.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
0 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

BetsBeats seals each daily pick with a SHA-256 commitment before kick-off and publishes every result, losses included. Use verify_pick to check a pick hash, get_record and get_results to read the public record, and the odds tools (convert_odds, expected_value, parlay_payout) for arithmetic. Before a pick settles only its hash and times are shown; the selection is revealed afterwards. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

Tools

6 advertised

verify_pick — Verify Pick
Advertised by the server during the last successful anonymous check.
Advertised read-only

Verify a sealed BetsBeats pick from its SHA-256 commitment hash (full 64 hex characters, or a prefix of 16 or more). Before the pick settles this only confirms the hash exists and returns sealed_at and kickoff_at. After settlement it returns the revealed preimage, recomputes SHA-256 on the server and reports matches=true/false, plus the result and a verify_url. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

verify_pick input schema
{
  "type": "object",
  "required": [
    "hash"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "description": "Commitment hash: 64 hex characters, or a unique prefix of at least 16."
    }
  }
}
verify_pick annotations
{
  "title": "Verify Pick",
  "readOnlyHint": true
}
get_record — Get Record
Advertised by the server during the last successful anonymous check.
Advertised read-only

The public running record of the BetsBeats main pick: wins, losses, voids (a void is a push or no pick), the current streak and the date range, exactly as shown on the results page. Losses are included. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

get_record input schema
{
  "type": "object",
  "properties": {}
}
get_record annotations
{
  "title": "Get Record",
  "readOnlyHint": true
}
get_results — Get Results
Advertised by the server during the last successful anonymous check.
Advertised read-only

Settled BetsBeats picks for one day (YYYY-MM-DD): the main pick and extras with commitment hashes, selections, odds and results. Only days that are already settled and public are returned. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

get_results input schema
{
  "type": "object",
  "required": [
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "Day to read, YYYY-MM-DD."
    }
  }
}
get_results annotations
{
  "title": "Get Results",
  "readOnlyHint": true
}
convert_odds — Convert Odds
Advertised by the server during the last successful anonymous check.
Advertised read-only

Convert betting odds between american (+150, -110), decimal (2.5), fractional (3/2) and implied probability (0.4 or 40%). Decimal d = 1 + n/d for fractions, 1 + a/100 for +a, 1 + 100/a for -a; implied probability = 1/decimal. Pure math, no data lookup. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

convert_odds input schema
{
  "type": "object",
  "required": [
    "odds",
    "format"
  ],
  "properties": {
    "odds": {
      "type": "string",
      "description": "The odds value, e.g. \"+150\", \"2.5\", \"3/2\", \"0.4\"."
    },
    "format": {
      "enum": [
        "american",
        "decimal",
        "fractional",
        "probability"
      ],
      "type": "string",
      "description": "Format of the odds value."
    }
  }
}
convert_odds annotations
{
  "title": "Convert Odds",
  "readOnlyHint": true
}
expected_value — Expected Value
Advertised by the server during the last successful anonymous check.
Advertised read-only

Expected value of a wager from odds and your own win probability (percent, 0-100). EV = stake * (p*(decimal-1) - (1-p)); break-even probability = 1/decimal; edge = p - break-even. The probability is your input, not a prediction by BetsBeats. For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

expected_value input schema
{
  "type": "object",
  "required": [
    "odds",
    "format",
    "win_probability_percent"
  ],
  "properties": {
    "odds": {
      "type": "string",
      "description": "The odds value, e.g. \"-110\", \"1.91\", \"10/11\"."
    },
    "stake": {
      "type": "number",
      "description": "Stake for the EV amount. Default 100."
    },
    "format": {
      "enum": [
        "american",
        "decimal",
        "fractional"
      ],
      "type": "string",
      "description": "Format of the odds."
    },
    "win_probability_percent": {
      "type": "number",
      "description": "Your estimated chance of winning, 0-100 exclusive."
    }
  }
}
expected_value annotations
{
  "title": "Expected Value",
  "readOnlyHint": true
}
parlay_payout — Parlay Payout
Advertised by the server during the last successful anonymous check.
Advertised read-only

Payout of a parlay (accumulator) of 2 to 20 legs that all win: combined decimal odds = product of leg decimals; payout = stake * combined; profit = payout - stake; combined implied probability = 1 / combined (legs assumed independent). For adults 21+ only. Entertainment and analysis; no wins are promised and past results do not predict future ones. BetsBeats does not take bets.

parlay_payout input schema
{
  "type": "object",
  "required": [
    "legs"
  ],
  "properties": {
    "legs": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "odds",
          "format"
        ],
        "properties": {
          "odds": {
            "type": "string",
            "description": "e.g. \"-110\", \"1.91\", \"5/2\"."
          },
          "format": {
            "enum": [
              "american",
              "decimal",
              "fractional"
            ],
            "type": "string"
          }
        }
      },
      "description": "2 to 20 legs."
    },
    "stake": {
      "type": "number",
      "description": "Stake. Default 100."
    }
  }
}
parlay_payout annotations
{
  "title": "Parlay Payout",
  "readOnlyHint": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1037 ms
95th percentile latency
1037 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1037 ms · metadata changed · 6 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http betsbeats-mcp https://api.betsbeats.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add betsbeats-mcp --url https://api.betsbeats.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable betsbeats-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "betsbeats-mcp": {
      "url": "https://api.betsbeats.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "betsbeats-mcp": {
      "type": "streamableHttp",
      "url": "https://api.betsbeats.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start betsbeats-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "betsbeats-mcp": {
      "type": "http",
      "url": "https://api.betsbeats.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http betsbeats-mcp https://api.betsbeats.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "betsbeats-mcp": {
      "url": "https://api.betsbeats.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "betsbeats-mcp": {
      "serverUrl": "https://api.betsbeats.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like BetsBeats MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.