bet-checker
Server Details
Grade any MLB, WNBA, PGA or ATP bet against thousands of play-by-play game simulations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- negative-ev/negativeev-mcp
- GitHub Stars
- 0
- Server Listing
- NegativeEV
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.8/5 across 3 of 3 tools scored.
Each tool has a completely distinct purpose: check_bet grades a specific bet, get_slate checks game availability, and get_usage tracks quota consumption. There is no overlap or ambiguity between them, and the descriptions reinforce their separation clearly.
All tool names follow a consistent verb_noun pattern: check_bet, get_slate, get_usage. This makes the API predictable and easy to navigate, and there are no mixed conventions or vague verbs.
Three tools is a very appropriate size for this focused betting-checker service. Each tool plays an essential role in the workflow (pre-check slate, grade bet, manage quota) without any redundancy or bloat.
The tool surface covers the full lifecycle needed for the domain: checking if a slate is available, grading a bet, and monitoring usage limits. There are no obvious gaps—the service is self-contained for its stated purpose.
Available Tools
3 toolscheck_betCheck a betAInspect
Grade a sports bet against NegativeEV's game simulations. Input the bet as plain text (teams/players, market, line, odds); a multi-leg parlay in one string is graded leg by leg and priced as a whole. Use it when the caller has a SPECIFIC bet to evaluate — it prices a bet you name, it does not search for good bets, so there is nothing to send for 'what should I bet tonight'. Call get_slate first if it isn't known that today's games are simulated. Every result leads with status: graded (every leg scored — this is the only status that spends a check), partial (some legs scored), ungraded (the bet was understood but no leg is covered by the sims), no_bet_found (no bet recognized in the text), or no_slate, unsupported_market, unsupported_sport. When a leg doesn't score, ungraded_legs[].reason says why and retry.rephrasing_helps says whether re-wording could change the answer — it is false whenever the bet parsed, so do NOT resend the same bet in different words to work around an ungraded result. Covers MLB, WNBA, PGA, and ATP; any other sport returns unsupported_sport. Games that already started still grade, against the simulations from before first pitch (a pre-game projection, flagged as such).
| Name | Required | Description | Default |
|---|---|---|---|
| bet | Yes | The bet text, e.g. 'Shohei Ohtani over 1.5 total bases -120' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnly=false, openWorld=true, destructive=false. The description adds extensive behavioral context: only 'graded' spends a check, all possible statuses are enumerated, ungraded_legs.reason and retry.rephrasing_helps are explained, sports coverage is listed, and started games still grade against pre-game projections flagged as such. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but densely informative. Every sentence earns its place: purpose, usage boundary, alternative tool, statuses, retry semantics, sport coverage, and edge cases. It is well-structured with clear labels and backticked status names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description is remarkably complete. It covers invocation intent, all possible statuses, leg-level failure reasons, retry guidance, sport exclusions, and behavior for already-started games. An agent has everything needed to decide when and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single 'bet' parameter with an example, so baseline is 3. The description adds meaningful semantics: input as plain text with teams/players, market, line, odds; multi-leg parlays in one string graded leg by leg; and notes that re-wording won't change a parsed ungraded bet. This goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Grade' and clearly identifies the resource: a sports bet against NegativeEV's game simulations. It also distinguishes itself from siblings by explicitly stating it prices a bet you name rather than searching for good bets, contrasting with get_slate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use it when the caller has a SPECIFIC bet to evaluate' and tells what not to send ('what should I bet tonight'). It also directs callers to invoke get_slate first when slate coverage is uncertain and warns against rephrasing to bypass ungraded results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_slateToday's slateARead-onlyInspect
Whether there is a checkable slate right now (at least one simulated, not-yet-started game) in each live sport: MLB, WNBA, PGA, and ATP. Pass sport to ask about one; omit it for all of them. This is the free pre-check for check_bet: call it before grading when it isn't known that today's games are simulated, and call it after an ungraded result instead of re-wording the bet, because ungraded means the game isn't on the simulated slate rather than that the wording was wrong. Free — spends no check.
| Name | Required | Description | Default |
|---|---|---|---|
| sport | No | One of: MLB, WNBA, PGA, ATP. Omit to get every live sport. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds meaningful context beyond that: it is 'Free — spends no check,' it is a real-time 'right now' check, and it clarifies the meaning of an 'ungraded' result. This substantially helps the agent predict behavior without contradicting the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, and each sentence adds distinct value: what it checks, how to use the parameter, and when/why to call it. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately conveys the return concept ('whether there is a checkable slate... in each live sport') and covers cost, timing, and relationship to check_bet. For a simple optional-parameter status tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of the single optional `sport` parameter, including enums and omit behavior. The description reinforces this ('Pass sport to ask about one; omit it for all of them') but does not add new semantic beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('whether there is') and names the exact resource (checkable slate in MLB, WNBA, PGA, ATP). It distinguishes itself from sibling tools by explicitly calling this the 'free pre-check for check_bet,' making its role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use and when-not-to-use guidance: 'call it before grading when it isn't known that today's games are simulated' and 'call it after an ungraded result instead of re-wording the bet.' It also names the alternative (check_bet) and explains why, which is exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageChecks remainingARead-onlyInspect
How many bet checks the caller has left and when the next one frees up — the daily allowance for anonymous callers, the hourly pace window for accounts. Call it before grading several bets in one turn, to know how many will fit, and after a check is refused for quota, to know when to retry. It reports the budget only; check_bet is what spends it. Free — spends no check.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already indicates a non-destructive read operation. The description adds valuable context beyond that: it is free (spends no check), and it distinguishes anonymous callers (daily allowance) from accounts (hourly pace window). This enriches the agent's understanding of quota behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the core purpose, and every sentence adds value. It efficiently covers what, when, and why without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description clearly states what information is returned (number of checks remaining and timing of next free check) and covers the relevant quota variations. It is complete for this simple, read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter constraints. The baseline for 0 params is 4, and the description appropriately explains what the tool reports rather than focusing on parameters. It effectively communicates the tool's input-independent nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it reports how many bet checks remain and when the next one frees up. It distinguishes itself from siblings by explicitly stating that `check_bet` spends the quota, while `get_usage` only reports it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: call it before grading several bets to know how many will fit, and after a check is refused for quota to know when to retry. It also clarifies the alternative: `check_bet` is the tool that actually consumes checks, so `get_usage` is informational.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityCmaintenanceProvides AI agents with professional-grade tools for expected value calculation, Monte Carlo predictions, historical backtesting, and portfolio risk management in sports betting.

PropLineofficial
AlicenseAqualityAmaintenanceLive sports betting odds, cross-book +EV, and graded player-prop resolution across 13 books.115501MIT- AlicenseAqualityCmaintenanceSchedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.3162MIT
- AlicenseAqualityAmaintenanceReal-time tennis data for ATP, WTA, Challenger and ITF: live scores, player rankings, match-winner odds, and model win-probability. 12 read-only tools; a tier-gated endpoint returns a plain-English explanation of which plan it needs rather than a bare 403. Requires a paid API key.224296190MIT
Your Connectors
Sign in to create a connector for this server.