NegativeEV MCP server
Grade any MLB, WNBA, PGA or ATP bet against thousands of play-by-play game simulations, from inside your AI client.
Whether a bet is worth taking depends on tonight's lineups, today's injuries, and the weather at first pitch. None of that is in a model's weights. Asked cold, a model answers fluently and wrongly. This server returns a probability counted from simulations of the actual game: each leg's simulated win probability, the probability the sportsbook's price implies, and the edge between them.
This is a hosted remote server. There is nothing to build or run from this repo. The repo is the server's public face and carries a mirror of its registry record (server.json).
Connect
No API key, no signup. Anonymous calls work immediately. The server speaks plain Streamable HTTP, so any MCP client can connect to https://negativeev.com/mcp.
Claude Code
claude mcp add --transport http negativeev https://negativeev.com/mcp
Claude Desktop and claude.ai
Settings → Connectors → Add custom connector, then paste https://negativeev.com/mcp as the URL.
Cursor
Add {"negativeev": {"url": "https://negativeev.com/mcp"}} under mcpServers in ~/.cursor/mcp.json. Also listed on cursor.directory.
VS Code (Copilot)
code --add-mcp '{"name":"negativeev","type":"http","url":"https://negativeev.com/mcp"}'
ChatGPT
Settings → Security and login → enable Developer mode, then add https://negativeev.com/mcp as a connector at chatgpt.com/plugins. Developer mode is required for custom MCP connectors and is available on Pro, Plus, Business, Enterprise and Education accounts on the web.
There is also a Claude Code plugin that wraps this server: jessejohnsohn/negativeev-bet-checker. Install with claude plugin install negativeev-bet-checker.
Opening https://negativeev.com/mcp in a browser shows the same install steps.
Tools
| Tool | What it does |
|---|---|
check_bet | Grades a bet written as plain text, including a multi-leg parlay in one string. Returns each leg's simulated probability, the implied probability from the price, and the edge. It prices a bet you name. It does not search the board for value. |
get_slate | Says whether there is a checkable slate right now. Free. Spends no check. |
get_usage | Reports checks remaining and when the next frees up. Free. Spends no check. |
Call get_slate first to confirm there is a checkable slate. check_bet spends one of the caller's checks only when the bet fully grades, and every result says so outright in its status and check_spent fields. A bet that comes back ungraded was understood. It is simply not on the simulated slate, so re-sending it with different wording returns the same answer. Check get_slate instead.
Limits and auth
Anonymous calls share a per-device quota of 100 checks a day, on its own counter. Signing in makes checks unlimited, with a pace cap of 1000 checks an hour. Send a signed-in user's access token as Authorization: Bearer. Details at negativeev.com/auth.md. An invalid or expired token is rejected with a 401 rather than silently downgraded, so re-authenticate rather than retrying anonymously.
Details
| Endpoint | https://negativeev.com/mcp |
| Transport | Streamable HTTP (stateless) |
| Sports | MLB, WNBA, PGA, ATP |
| Registry name | com.negativeev/bet-checker |
| Auth | Optional bearer token, details at negativeev.com/auth.md |
| Server card | /.well-known/mcp/server-card.json |
| Cost | Free |
NegativeEV checks bets. It takes no bets and sells no picks.