Skip to main content
Glama
seang1121

Sports Betting MCP

by seang1121

sports-betting-mcp

首个用于体育博彩的 MCP 服务器。 为任何 AI 代理提供 NBA、NHL、NCAAB 和 MLB 的精选建议、赔率、比赛分析和表现追踪的实时访问权限。

Status Python PyPI License MCP Sports

mcp-name: io.github.seang1121/sports-betting-mcp

功能介绍

将任何兼容 MCP 的 AI 代理连接到实时体育博彩分析系统。每一项精选建议都在比赛开始前记录,并根据最终比分进行结算。绝无事后诸葛亮。

指标

数值

覆盖运动

NBA, NHL, NCAAB, MLB

博彩类型

独赢 (Moneyline), 让分 (Spread), 总分 (Totals)

精选来源

12 个代理共识模型

精选总数

3,859+ 已结算

平台用户

30

工具

12 个 MCP 工具

身份验证

API 密钥 (X-API-Key 请求头)

各运动项目结果

运动

精选数

胜场

胜率

NBA

1,267

762

60.1%

NHL

1,148

656

57.1%

NCAAB

1,149

549

47.8%

MLB

283

109

38.5% (2026年4月推出)

所有结果均可通过 get_win_rate 工具实时查询。数据在每场比赛后更新。


Related MCP server: sports-data-mcp-server

快速入门

安装

pip install sports-betting-mcp

添加到您的 MCP 客户端

将其放入您的 MCP 配置中(Claude Desktop, Cursor, Windsurf, Claude Code 等):

{
  "mcpServers": {
    "sports-betting": {
      "command": "sports-betting-mcp",
      "env": {
        "SPORTS_BETTING_API_URL": "https://sportsbettingaianalyzer.com",
        "SPORTS_BETTING_API_KEY": "your_api_key"
      }
    }
  }
}

环境变量

变量

必需

描述

SPORTS_BETTING_API_KEY

是

用于身份验证的 API 密钥

SPORTS_BETTING_API_URL

否

API 基础 URL(默认为 http://localhost:5000)


兼容性

支持 Model Context Protocol 的任何客户端:

客户端

状态

Claude Desktop

完全支持

Cursor

完全支持

Windsurf

完全支持

Claude Code (CLI)

完全支持

任何 MCP 客户端

通过 stdio 传输完全支持


可用工具

12 个工具。每次调用都会返回结构化数据,AI 代理可以对其进行推理、展示或执行操作。

精选与分析

工具

功能

get_todays_picks

所有 AI 精选建议,包含置信度分数和优势分析,可按运动筛选

get_top_pick

当日置信度最高的单项精选

get_pending_picks

当前尚未结算、仍在进行中的精选

get_completed_picks

最近结算的精选及胜负结果 —— 验证过往记录

analyze_game

对任何比赛进行 12 个代理的全面分析:共识精选 + 优势分析

赔率与市场数据

工具

功能

get_live_odds

今日比赛的实时独赢、让分和总分赔率

get_alerts

来自多代理系统的实时警报(盘口变动、伤病影响)

表现与统计

工具

功能

get_win_rate

按运动和博彩类型细分的胜率

get_model_stats

模型表现:总精选数、最近 20 场胜率、置信度等级细分

get_leaderboard

按胜率排名的用户排行榜

get_system_status

健康检查 —— 正常运行时间、数据库、调度程序状态


分析原理

每场比赛都通过一个多代理流水线进行处理:

  1. 12 个专业代理独立评估比赛 —— 涵盖势头、对阵、伤病、休息、旅行、公众投注百分比、大户资金指标、历史趋势等。

  2. 共识引擎将所有 12 个意见综合为一个带有置信度分数的单一精选。

  3. 优势计算将模型的隐含概率与当前市场盘口进行比较。

  4. 精选记录在比赛开始前完成,并根据最终比分结算。绝无事后修改。

置信度分数和优势分析包含在每次精选响应中,因此您的 AI 代理可以筛选、排序或解释任何建议背后的逻辑。


完整 API — 22 个端点

API 分为两个层级:免费版(任何 API 密钥)和 专业版(需批准访问)。

免费版(所有 API 密钥持有者可用)

端点

方法

功能

/xk/p

GET

今日 AI 精选及置信度分数

/xk/o/{sport}

GET

来自 FanDuel/BetMGM 的实时赔率

/xk/w

GET

按运动和博彩类型细分的胜率

/xk/i

GET

来自 Covers.com 的实时伤病报告

/xk/m

GET

显著的盘口变动(大户资金信号)

/xk/games

GET

今日完整赛程,包含赔率快照和 AI 精选标记

/xk/stats

GET

按运动、博彩类型、置信度等级划分的模型表现

/xk/lb

GET

排行榜 —— AI 与人类胜率对比

/xk/news

GET

来自 RSS 源的体育新闻推送

/xk/q

GET

当前待定(未结算)的精选

专业版(需要批准访问)

端点

方法

功能

/xk/full

GET

完整的结构化精选 —— 完整的优势分析、正/负优势、推理、记分卡、对手及赔率、盘口变动、质量标记

/xk/analyze

POST

针对任何比赛的按需 12 代理分析 —— 发送球队名称,获取完整共识

/xk/results

GET

已结算精选,包含胜负、实际比分、利润、主要贡献优势

/xk/clv

GET

收盘价价值 (CLV) 分析 —— 盘口是否向有利于我们的方向变动?

/xk/search

GET

按球队名称搜索所有精选及胜负记录

/xk/log

POST

记录精选(支持翻转标记、精选来源追踪)

/xk/log/batch

POST

批量记录最多 20 个精选,包含每个精选的成功/重复/错误状态

/xk/history

GET

您的精选历史 —— 待定、已结算、胜率

/xk/slip

POST

生成 Nimrod 投注单图片

/xk/webhook

POST/GET/DELETE

注册精选事件的 Webhook

/xk/full

GET

包含每个精选的对冲/翻转数据 —— 对手、盘口、赔率

专业版精选负载

来自 /xk/full 的每个精选都包含:

{
  "ai_pick": "Lakers -5.5",
  "ai_verdict": "STRONG BET",
  "ai_probability": "65%",
  "ai_reasoning": "Lakers defense ranks top 5, opponent on B2B...",
  "edges": [13 individual edge factors],
  "top_edges": [top 5 positive],
  "negative_edges": [top 3 negative],
  "scorecard": [3 model scores],
  "fade_pick": "Celtics +5.5",
  "fade_team": "Celtics",
  "fade_odds": "+105",
  "fade_note": "Betting AGAINST the AI — take Celtics +5.5",
  "line_moved": true,
  "flags": ["line_moved"],
  "data_quality": "good"
}

精选来源追踪(用于学习)

记录精选时,包含 pick_source 以追踪决策类型:

  • model_agree — 跟随 AI 的精选

  • flip — 对冲/反向投注 AI

  • manual_override — 自定义精选

这使得能够随时间比较模型同意与翻转精选之间的胜率。


API 身份验证

使用 X-API-Key 请求头进行身份验证。在 sportsbettingaianalyzer.com 获取免费密钥。专业版访问权限需要管理员批准。


技术栈

组件

技术

运行时

Python 3.10+

协议

MCP (Model Context Protocol)

传输

stdio

构建

Hatchling

分发

PyPI (sports-betting-mcp)

后端

Flask + SQLite

分析

12 代理共识流水线

运动

NBA, NHL, NCAAB, MLB


相关项目

许可证

MIT

Available Tools

11 tools
analyze_gameA

Run full multi-agent analysis on a specific game. Uses 12 specialized agents to evaluate every angle.

Args: sport: Sport — 'nba', 'nhl', 'ncaab', or 'mlb' game_id: Game ID from the get_live_odds tool

Returns: Complete multi-agent analysis with consensus pick, confidence, and edge breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
game_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey all behavioral traits. It mentions '12 specialized agents' and the return structure (consensus, confidence, edge), but omits details like execution time, failure modes, or required permissions. This is adequate but not comprehensive.

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 extremely concise: a one-sentence purpose, followed by two bullet-like lines for parameters and return. Every word adds value, with no fluff or repetition. Front-loading the core action makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two simple required parameters, no nested objects, and an output schema, the description provides sufficient context. It explains the input sources and output structure. The sibling tools list confirms this is the only deep analysis tool, so the description stands alone well.

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 input schema provides no descriptions (0% coverage), so the description adds significant value by clarifying the 'sport' allowed values and sourcing 'game_id' from get_live_odds. This meaningfully aids correct parameter usage beyond the raw 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 ('analyze') and clearly identifies the resource ('game'). It distinguishes from sibling tools (get_live_odds, get_todays_picks, etc.) by highlighting the multi-agent analysis scope, leaving no ambiguity about the tool's unique function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the purpose and references the source of game_id ('from the get_live_odds tool'), which guides correct invocation. However, it does not include when-not-to-use or alternative tools for similar tasks, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_alertsA

Get active alerts from the multi-agent system (line movements, injury impacts, etc.).

Returns: List of current alerts with severity and details.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. It indicates the tool retrieves active alerts and returns a list with severity and details, but does not mention side effects or safety profile. Adequate for a simple read operation.

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?

Two sentences, concise and front-loaded. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no parameters and output schema exists; description suffices by explaining return content. Could clarify what 'active' means, but overall complete for a simple retrieval 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?

No parameters in schema; schema coverage is 100%. Baseline for 0 parameters is 4, description adds no param info but none is needed.

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?

Clearly states the verb 'Get' and the resource 'active alerts' with specific examples like line movements and injury impacts. Distinguishes from siblings like get_system_status and get_model_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Usage is only implied, with no conditions or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_completed_picksA

Get recently completed (resolved) picks with results.

Args: limit: Number of recent completed picks to return (default 20, max 50)

Returns: List of completed picks with results (W/L) and details.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It accurately describes a read-only operation returning completed picks with results, which is transparent. However, it could be more explicit about ordering or time range (e.g., 'recently' is vague).

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 extremely concise with two sentences plus a structured Args/Returns section. Every sentence adds value without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema (not shown), the description provides sufficient context: it lists the output as 'List of completed picks with results (W/L) and details'. This is adequate for understanding the return value without being overly detailed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema: it explains the limit parameter's purpose (number of recent completed picks), default (20), and maximum (50). The schema only shows type and default, so the description provides essential constraints and context.

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 the tool gets 'recently completed (resolved) picks with results', which distinguishes it from siblings like get_pending_picks (unresolved) and get_todays_picks (today's picks, potentially not completed).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for recently completed picks but does not explicitly provide when-to-use or when-not-to-use guidance compared to alternatives. The context from sibling names helps, but no direct exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_leaderboardA

Get the pick leaderboard showing user rankings by win rate.

Returns: Leaderboard with rankings, win rates, and total picks per user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states basic return fields (rankings, win rates, total picks). It does not disclose read-only nature, data freshness, ordering, or any side effects, leaving a gap for an agent assessing safety.

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?

Two sentences, front-loaded with the action, no extraneous information; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what the tool returns (leaderboard with rankings, win rates, total picks). With an output schema present, the description does not need to detail return structure further, though ordering or scope could be added.

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 input schema has zero parameters, so the description has no need to add parameter info. The baseline score of 4 applies per guidelines for 0-parameter tools.

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 the tool retrieves a pick leaderboard with user rankings by win rate, distinguishing it from siblings like get_win_rate (individual) and get_top_pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives; usage is implied from the description but no when-not or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_live_oddsA

Get current live odds for a sport from FanDuel and BetMGM.

Args: sport: Sport to fetch — 'nba', 'nhl', 'ncaab', or 'mlb'

Returns: Live moneyline, spread, and total odds for today's games.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It states the tool retrieves 'live odds' and returns specific odds types (moneyline, spread, total), but does not disclose behavioral traits like rate limits, authorization requirements, or whether the operation is read-only. The description implies a read operation but lacks explicit safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear front-loaded purpose sentence and an optional Args section. However, the Args format could be integrated into the main text for brevity; the current structure is still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description need not detail return values, but it usefully summarizes what the odds include. For a simple tool with one parameter, the description covers essential aspects (sources, sport list, return type), though it omits edge-case behavior like handling invalid sports or empty games.

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 input schema has 0% description coverage, leaving the parameter 'sport' underspecified. The description compensates by listing valid sport values ('nba', 'nhl', 'ncaab', 'mlb'), which adds essential meaning beyond the schema's type constraint.

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 the verb ('Get'), resource ('live odds'), and data sources ('FanDuel and BetMGM'), distinguishing it from sibling tools like get_todays_picks or get_pending_picks which deal with picks rather than odds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., when to use get_live_odds vs get_todays_picks). No explicit conditions or exclusions provided, leaving the agent to infer usage context from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_model_statsB

Get model performance statistics — win rates by confidence level, total picks, discipline.

Returns: Model stats including total picks, last 20 win rate, and confidence tier breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states the tool returns stats but does not disclose behavioral traits such as whether data is live or cached, any authentication requirements, or performance implications. For a read-only tool with no parameters, the absence of such detail is acceptable but not ideal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (two sentences) and front-loaded with the core purpose. However, the 'Returns:' line is redundant with the first sentence and could be merged for greater conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, clear output), the description adequately lists the returned metrics. An output schema exists, so deeper details are delegated there. Still, a brief mention of the output schema would improve completeness.

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, and the input schema is fully covered (100%). The description adds no parameter semantics, but the baseline for zero parameters is 4. No further information is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves model performance statistics, including win rates by confidence level, total picks, and discipline. It is specific about the resource and metrics, but does not differentiate from the sibling tool get_win_rate, which likely provides a simpler overall win rate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_win_rate or get_completed_picks. It lacks any context for appropriate usage scenarios or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pending_picksA

Get all currently unresolved (pending) picks waiting for game results.

Returns: List of pending picks with pick details and how long they've been pending.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description discloses the return type and content (list of pending picks with details and pending duration). It implies a read-only operation without side effects, which is adequate for the tool's simplicity.

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 concise with two sentences, front-loading the action 'Get all currently unresolved (pending) picks'. No redundant information is present.

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?

Given zero parameters and the existence of an output schema (which covers return values), the description is complete. It explains the purpose and return data adequately without needing further elaboration.

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, and the schema coverage is 100%. The description adds no parameter information, which is acceptable as there are none to document.

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 the tool retrieves all currently unresolved (pending) picks waiting for game results. It distinguishes itself from sibling tools like get_completed_picks by specifying 'pending' status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for pending picks but does not explicitly provide guidance on when to use this tool versus siblings like get_completed_picks or get_todays_picks. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_statusA

Health check — uptime, database status, API key status, and scheduler health.

Returns: Current system status including uptime, DB connectivity, and service health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It lists what the tool returns (uptime, DB connectivity, service health), which gives some behavioral insight. However, it does not mention whether the operation is read-only, idempotent, or any side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, clearly stating the purpose and the return information. It is front-loaded with the key purpose. Slight improvement could be a more structured list for the return values, but it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description adequately covers the return items (uptime, DB status, etc.). It is complete enough for an agent to understand what the tool does and what to expect.

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?

There are zero parameters, and the input schema has no properties with descriptions. The rule sets a baseline of 4 for 0 parameters, and the description does not need to add parameter information since there are none.

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 'Health check' and specifies what it checks: uptime, database status, API key status, and scheduler health. This precisely identifies the verb (get) and resource (system status), and distinguishes it from sibling tools that are unrelated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for checking system health, and since there are no other health-related sibling tools, the context is clear. However, it does not explicitly state when to use or not use this tool, which would improve guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_todays_picksA

Get today's AI-generated picks with confidence and edge scores.

Args: sport: Filter by sport — 'nba', 'nhl', 'ncaab', 'mlb', or 'all' (default)

Returns: List of picks with pick name, bet type, line, odds, confidence, and edge score.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNoall

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes a read operation ('Get'), but does not explicitly state that it is read-only, safe, or any limits such as rate limiting or authentication requirements. However, the behavior is straightforward and not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words, front-loading the purpose in the first sentence. It includes structured Args and Returns sections. However, it could be slightly more streamlined by integrating the default value into the purpose sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 optional parameter, no output schema, no nested objects), the description is fairly complete. It details the return fields (pick name, bet type, line, odds, confidence, edge score). It lacks information on pagination or limits, but these are not critical for this type of 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 input schema has 0% description coverage, but the description lists the acceptable values for the 'sport' parameter: 'nba', 'nhl', 'ncaab', 'mlb', or 'all' (default). This adds significant meaning beyond the schema, though it does not mention case sensitivity or error handling.

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 the tool's purpose: 'Get today's AI-generated picks with confidence and edge scores.' It specifies the verb 'Get', the resource 'today's AI-generated picks', and the included scores. It is distinct from sibling tools like get_top_pick (singular) and get_completed_picks (past).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for today's picks via the filter by sport, but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_top_pick for a single pick, get_completed_picks for past picks). No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_pickA

Get the single highest-confidence pick available today.

Args: sport: Filter by sport — 'nba', 'nhl', 'ncaab', 'mlb', or 'all' (default)

Returns: The best pick with full analysis details.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNoall

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It discloses that the tool returns the best pick with analysis details, indicating a read operation. However, it lacks information on caching, freshness, or required permissions, which is acceptable for a simple tool but not thorough.

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 concise, with the core purpose in the first line followed by a succinct parameter and return value explanation. No extraneous information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 optional parameter, no output schema), the description is minimally adequate. It explains the parameter and return type at a high level but lacks details on the returned pick structure or analysis format. For a tool this straightforward, it suffices.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds essential meaning to the sole parameter 'sport', listing allowed values ('nba', 'nhl', 'ncaab', 'mlb', 'all') and the default 'all'. This compensates for the 0% schema coverage completely.

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 the tool retrieves the single highest-confidence pick available today. The verb 'Get' and resource 'the single highest-confidence pick' are specific, and it distinguishes from sibling 'get_todays_picks' which likely returns multiple picks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining the top pick, but does not explicitly state when to use this tool versus alternatives like get_todays_picks or analyze_game. No guidance on exclusions or prerequisites is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_win_rateA

Get the betting analyzer's documented win rate with real resolved picks.

Args: period: Time period — 'all', '30d', or '90d'

Returns: Win rate, record, and breakdown by sport.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses it retrieves documented win rate with resolved picks, implying a read operation. No contradictions, but lacks details on potential rate limits or data freshness.

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?

Two sentences with structured Args/Returns sections. Every line is necessary; no fluff. Exceptionally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity and one parameter, description covers purpose, parameter options, and return structure. Output schema exists but isn't shown; description still provides key fields (win rate, record, breakdown). Missing guidance on when to use among siblings.

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?

Input schema has one parameter 'period' with only type and default. Description adds allowed values 'all', '30d', '90d', which is helpful. Without schema description coverage, this compensates well.

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 the tool gets the betting analyzer's documented win rate with real resolved picks. It uses a specific verb (get) and resource (win rate), and distinguishes from siblings like get_model_stats or get_leaderboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_model_stats or get_leaderboard. The description only states what it does without providing context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • Addedget_alerts
    • Addedget_completed_picks
    • Removedget_injury_report
    • Addedget_leaderboard
    • Removedget_line_movement
    • Addedget_model_stats
  2. 9 tool updatesv1.0.0
    • First observedanalyze_game
    • First observedget_injury_report
    • First observedget_line_movement
    • First observedget_live_odds
    • First observedget_pending_picks
    • First observedget_system_status
    • First observedget_todays_picks
    • First observedget_top_pick
    • First observedget_win_rate

TDQS

A3.9/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct function: odds retrieval, game analysis, pick management (today, top, pending, completed), alerts, model stats, leaderboard, win rate, and system health. No two tools overlap in purpose.

Naming Consistency4/5

Ten of eleven tools follow the 'get_' prefix pattern (e.g., get_live_odds, get_todays_picks). The sole exception is 'analyze_game', which uses a verb_noun form. This is a minor deviation but still predictable and clear.

Tool Count5/5

With 11 tools, the set is well-scoped for a sports betting analysis server. It covers all essential features without being bloated or sparse.

Completeness4/5

The tool surface covers the full workflow: fetching odds, analyzing games, retrieving picks (today, top, pending, completed), alerts, model stats, leaderboard, win rate, and system health. A minor gap is the lack of historical pick search or user-specific features, but core analysis is complete.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to comprehensive sports data from 5 major leagues (NBA, NFL, MLB, EPL, NHL) including teams, players, games, statistics, standings, injuries, and betting odds through 67+ endpoints. Enables users to query sports information and analytics through natural language.
    12
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access comprehensive sports data including football, basketball, American football, and hockey leagues via 11 tools, with no API key required.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to query live sports betting data including odds, edges, arbitrage opportunities, player/team stats, and reference data using the SportWizzard API.
    20
    52 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides AI agents with live, grounded sports data including model probabilities, track records, and European soccer and tennis arbitrage opportunities, so they answer from real numbers instead of stale guesses.
    13
    45 npm
    1
    MIT