The Odds Gap
Ask The Odds Gap sports betting price questions from your AI assistant.
사용해야 할까요
품질 및 안전성
발견 사항 (1)
- LOWsite_info에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"answers": {
"url": "https://theoddsgap.com/assistant/v1/mcp"
}
}
}원격 엔드포인트
https://theoddsgap.com/assistant/v1/mcpstreamable-http할 수 있는 일
도구 목록
도구 (11)
🟢ask(question)
Ask one whole sports betting price question in plain English, the way a person would: which book pays the most for a bet, hedge math on a ticket, a parlay price, a game's board, a past result or how a line has moved. Returns a plain-sentence answer, the time the prices were scanned and a link to the matching page on theoddsgap.com. When a question could mean more than one game, it returns the choices as plain text to ask again with. Prices may have moved since the scan. Information only: it places no bets and gives no picks.
입력 스키마
{
"type": "object",
"properties": {
"question": {
"description": "One whole question, for example 'where is the best price on the Lions moneyline' or 'hedge my Ravens ticket at +240 for $50'.",
"maxLength": 400,
"type": "string"
}
},
"required": [
"question"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢calc(text)
Runs a betting calculation on numbers you supply: convert odds between formats, implied probability, payout on a stake, the no-vig price of two sides, hold, breakeven, a parlay of typed odds, or an arb or hedge split on typed prices. Uses only the numbers given, no market data.
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "The reader's words, with their numbers.",
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢site_info(text, topic)
Explains a betting term or how The Odds Gap works (gap percent, matched lines, the exchange depth rule, Kalshi fees, why offshore books are left out, the site's tools), in the site's own words with a link to the page it comes from.
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "The reader's words.",
"type": "string"
},
"topic": {
"description": "A topic key, or omit to read the words.",
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢slate(books, limit, sport, team, text, ...)
Lists the games in a window (tonight, tomorrow, a weekday or a date) for a league or one team, with the highest moneyline price we saw on each side and the time it was scanned. Prices may have moved since the scan.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"limit": {
"description": "How many games. Default 8, max 8.",
"type": "integer"
},
"sport": {
"description": "League, e.g. nfl or college football.",
"type": "string"
},
"team": {
"description": "One team: its upcoming games.",
"type": "string"
},
"text": {
"description": "The reader's words, for the window.",
"type": "string"
},
"when": {
"description": "today, tonight, tomorrow, a weekday, weekend, or YYYY-MM-DD. Default the next 24 hours.",
"type": "string"
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢game_lines(books, favored, game, line, market, ...)
One game's moneyline, spread or total: both sides on the consensus number, or which side the market has as the favorite. Name the game in plain words, for example Lions at Bears. Shows the scan time and a link to the game's page. Prices may have moved since the scan.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"favored": {
"description": "Who the market favors, as a price.",
"type": "boolean"
},
"game": {
"description": "The game in plain words, for example 'Lions at Bears' or 'Yankees tonight'.",
"type": "string"
},
"line": {
"description": "The spread or total the bet is at. Omit for a moneyline, or to use the consensus line.",
"type": "number"
},
"market": {
"description": "ml, spread or total.",
"enum": [
"ml",
"spread",
"total"
],
"type": "string"
},
"side": {
"description": "home or away for a moneyline or spread; over or under for a total.",
"enum": [
"home",
"away",
"over",
"under"
],
"type": "string"
}
},
"required": [
"game"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢past_game(game, list_all, text)
A finished game: the final score, the closing spread and total, and the earliest line we recorded, with a link to the game's page. Never an upcoming game.
입력 스키마
{
"type": "object",
"properties": {
"game": {
"description": "The game in plain words, for example 'Lions at Bears' or 'Yankees tonight'.",
"type": "string"
},
"list_all": {
"description": "Every finished game in the window the words name.",
"type": "boolean"
},
"text": {
"description": "The team or matchup, in the reader's words.",
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢team_record(team)
A team's finished games tracked on The Odds Gap and its next game. Not an official league record.
입력 스키마
{
"type": "object",
"properties": {
"team": {
"description": "The team as typed.",
"type": "string"
}
},
"required": [
"team"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢futures_odds(books, market, team, text)
Season-long futures such as the Super Bowl, World Series, Stanley Cup, NBA and college titles: the highest price we saw on a team, or the top of one futures market, with the scan time. Prices may have moved since the scan.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"market": {
"description": "A market phrase, if it is separable from the rest of the sentence.",
"type": "string"
},
"team": {
"description": "One entrant, if they named one.",
"type": "string"
},
"text": {
"description": "The person's own words. This is what names the market, because a futures market has no id anybody would ever say out loud.",
"type": "string"
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢player_prop(books, line, market, player, side)
One player's prop: the line the market is at and the highest price we saw on each side, with the scan time. The player must be on our props board. Prices may have moved since the scan.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"line": {
"description": "The line the person named, if they named one.",
"type": "number"
},
"market": {
"description": "The prop market key, e.g. player_receptions or pitcher_strikeouts. Omit to be told what the board has for that player.",
"type": "string"
},
"player": {
"description": "The player's name as the person typed it.",
"type": "string"
},
"side": {
"description": "over, under, yes or no.",
"enum": [
"over",
"under",
"yes",
"no"
],
"type": "string"
}
},
"required": [
"player"
],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢arbs(books, game, stake, text)
Spots where two books' prices on opposite sides of the same bet added up to less than 100 percent implied at the scan, with how a stake would split. Prices may have moved since the scan. An arb can close at any time.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"game": {
"description": "The game in plain words, for example 'Lions at Bears' or 'Yankees tonight'.",
"type": "string"
},
"stake": {
"description": "A total stake to split.",
"type": "number"
},
"text": {
"description": "The reader's words.",
"type": "string"
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}🟢middles(books, game, text)
Spread and total middles across sportsbooks at the scan: two numbers far enough apart that both bets could win. Prices may have moved since the scan.
입력 스키마
{
"type": "object",
"properties": {
"books": {
"description": "The books this person actually has. Omit for the default set.",
"items": {
"type": "string"
},
"type": "array"
},
"game": {
"description": "The game in plain words, for example 'Lions at Bears' or 'Yankees tonight'.",
"type": "string"
},
"text": {
"description": "The reader's words.",
"type": "string"
}
},
"required": [],
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"answer": {
"description": "The answer in plain sentences.",
"type": "string"
},
"as_of": {
"description": "When the prices were scanned, Eastern Time.",
"type": [
"string",
"null"
]
},
"card": {
"description": "The same answer, structured, when there is one.",
"type": "object"
},
"decline_kind": {
"description": "Set when the question is one we do not answer, and which kind.",
"enum": [
"data",
"advice",
"record"
],
"type": "string"
},
"free_left_today": {
"type": [
"integer",
"null"
]
},
"ok": {
"description": "True when the tool produced an answer.",
"type": "boolean"
},
"options": {
"description": "When the question could mean more than one thing: whole questions to ask again with.",
"items": {
"type": "string"
},
"type": "array"
},
"page": {
"description": "The matching page on theoddsgap.com.",
"type": "string"
},
"responsible_gambling": {
"type": "string"
},
"stale": {
"description": "True when that scan is older than usual for our hourly snapshot.",
"type": "boolean"
},
"state_note": {
"description": "Where to check what is legal for you.",
"type": "string"
},
"tool": {
"type": [
"string",
"null"
]
},
"warnings": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ok",
"answer",
"page",
"responsible_gambling"
]
}커뮤니티
증거