Skip to main content
Glama

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.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.8/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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 tools
check_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
betYesThe bet text, e.g. 'Shohei Ohtani over 1.5 total bases -120'
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 slateA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNoOne of: MLB, WNBA, PGA, ATP. Omit to get every live sport.
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 remainingA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Live sports betting odds, cross-book +EV, and graded player-prop resolution across 13 books.
    11
    550
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Real-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.
    2
    24
    296
    190
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.