Server definition
- Hash
- sha256:af67826b74460ad56640583eb8e8113ea394962bbe3921c09009c8d7b7bf0fc9
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "Grade MLB, WNBA, PGA, and ATP bets against NegativeEV's thousands of play-by-play game simulations. Call get_slate first to confirm there's a checkable slate; check_bet spends one of the caller's checks only when the bet fully grades, and every check_bet result says so outright (`status`, `check_spent`), so read those rather than inferring from the numbers. A bet that came 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. get_usage shows what's left. Anonymous calls share a per-device quota of 100 checks a day; send a signed-in user's Supabase access token as `Authorization: Bearer` to raise that to 1000 an hour (see https://negativeev.com/auth.md). An invalid or expired token is rejected with 401 rather than silently downgraded, so re-authenticate rather than retrying anonymously.",
"tools": [
{
"description": "Check a specific sports bet against thousands of play-by-play game simulations: each leg's simulated probability, the sportsbook's implied probability, and the edge. Send the bet as plain text - teams or players, market, line, odds. A parlay in one string is graded leg by leg and priced as a whole. Call this first; nothing has to be set up, and a missing slate, an unrecognized bet, or an unsupported market comes back as a plain `status` without spending a check. It prices a bet the caller names and never suggests one, so there is nothing to send for \"what should I bet tonight\". Every result leads with `status` and `check_spent` and says whether re-wording would change anything; when it says no, it means no. Covers MLB, WNBA, PGA, and ATP. A game that already started still checks, against the simulations from before it began.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"bet": {
"description": "The bet text, e.g. 'Shohei Ohtani over 1.5 total bases -120'",
"type": "string"
}
},
"required": [
"bet"
],
"type": "object"
},
"name": "check_bet",
"outputSchema": null
},
{
"description": "Which of MLB, WNBA, PGA, and ATP have a checkable slate right now - at least one simulated game that has not started. Pass `sport` for one; omit it for all. Free, spends no check. It is not required before `check_bet`, which reports a missing slate itself at no cost. Call it to answer \"what can be checked today\", or after a `no_slate` or `ungraded` result, which mean the game is not on the simulated slate rather than that the bet was worded wrong.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"sport": {
"description": "One of: MLB, WNBA, PGA, ATP. Omit to get every live sport.",
"enum": [
"MLB",
"WNBA",
"PGA",
"ATP"
],
"type": "string"
}
},
"type": "object"
},
"name": "get_slate",
"outputSchema": null
},
{
"description": "How many bet checks the caller has left and when the next one frees up - 100 a day shared per device anonymously, 1000 an hour with a signed-in user's token. Free, spends no check. It grades nothing, so it is not a step before a check: call it when a check comes back refused for quota, or before working through a long list of bets.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_usage",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:af67826b74460ad56640583eb8e8113ea394962bbe3921c09009c8d7b7bf0fc9 | sha256sum