关于 SockOdds
SockOdds 是开源 MCP 服务,通过 SockOdds API v1 将澳大利亚博彩公司赔率提供给 MCP 客户端。它支持赛事搜索、价格比较和去水公平赔率计算,并提供示例数据演示模式。
主要功能
- 01搜索联赛与赛事
- 02获取博彩公司赔率
- 03比较最佳可用赔率
- 04计算去水公平赔率
- 05使用示例数据试用工具
适用场景
- 01查找体育赛事赔率
- 02比较不同博彩公司价格
- 03用公平赔率评估报价
MCP 相关
该服务向 MCP 客户端提供联赛、赛事、赔率、最佳价格和公平赔率工具。它连接 SockOdds API v1,也支持无需 API 密钥的演示数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y sockodds-mcpSOCKODDS_API_KEY密钥Your SockOdds API key, sent as an Authorization: Bearer header. A free key is available at https://sockodds.com/signup/SOCKODDS_DEMOSet to 1 to try the tools with invented sample data and no key. Ignored when a key is set.SOCKODDS_TIMEZONETime zone for start times (UTC is always shown too)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sport_id | string | 否 | 可选的运动键筛选条件,例如 australian_football、rugby_league 或 soccer |
详细介绍
sockodds-mcp
问 Claude“现在 X 的赔率是多少”,即可获取澳大利亚博彩公司提供的赔率、最佳赔率和去水公平赔率,数据来自 SockOdds 体育赔率 API(v1)。免费密钥支持 3 家博彩公司和 6 个联赛;付费套餐支持更多(定价)。
1.0 版使用 SockOdds API v1。 0.x 版本调用的是旧版 v2 API,SockOdds 正在弃用该 API:一旦 v2 停用,0.x 就无法继续使用。请升级到 1.0:重启 MCP 客户端,让
npx -y sockodds-mcp获取新版本;如果服务仍以 0.x 启动,请将其指定为sockodds-mcp@latest一次。你的密钥可以继续使用。请参阅从 0.x 升级。
一个免费的开源 MCP 服务,另附 Claude Code 技能,为“365 天赚 100 万美元”系列打造。MIT 许可证。
30 秒演示
此对话记录使用演示模式(SOCKODDS_DEMO=1),因此赔率是虚构示例,并非真实赔率。
你: Lions 对 Crows 的赔率是多少?
Claude 使用
{ "query": "Lions v Crows", "league_id": "afl" }调用find_event:1. Brisbane Lions v Adelaide Crows (AFL) Starts: Sat, 12 Sept 2026, 7:35 pm AEST (09:35 UTC) Event ID: ev_kqe6aepys23z你: Lions 的 1.95 是公平赔率吗?
Claude 使用
{ "event_id": "ev_kqe6aepys23z", "market": "h2h" }调用fair_odds:No-vig fair odds: Head to head, from 3 bookmakers Brisbane Lions: fair 2.03 (49.3% chance) Adelaide Crows: fair 1.97 (50.7% chance) Per bookmaker (margin, then its own no-vig prices): Sportsbet: margin 5.3%, 2.03 / 1.97, seen 11 Sept 06:00:12 UTC TAB: margin 5.0%, 2.01 / 1.99, seen 11 Sept 06:01:40 UTC Unibet: margin 5.3%, 2.05 / 1.95, seen 11 Sept 05:59:03 UTCClaude: Lions 的最佳赔率是 Unibet 的 1.95(读取时间为 UTC 05:59)。扣除博彩公司利润后,Lions 的公平赔率约为 2.03,因此 1.95 略低于公平赔率。赔率会变动,请在博彩公司处核实赔率。仅限 18 岁以上人士。本文内容并非投注建议。请理性博彩:Gambling Help Online 1800 858 858。
工具
| 工具 | 功能 |
|---|---|
list_leagues | SockOdds 提供的联赛,以及其他工具使用的联赛键(afl、nrl、rlwc 等) |
find_event | 将“Broncos v Bulldogs”或“AFL grand final”转换为赛事,并提供开始时间和赛事 ID(ev_...) |
get_odds | 各博彩公司提供的正面对决、让分和总分市场的十进制赔率,以及 SockOdds 获取赔率的时间 |
best_price | 某个市场某一方的最佳赔率及完整赔率列表;不包含其他让分线的赔率 |
fair_odds | 两方或三方市场的去水公平赔率(见下文计算方法);也支持手动计算,无需调用 API |
fair_odds 的工作原理
对于每家提供同一让分线全部赛果赔率的博彩公司,每个赔率都会转换为隐含概率(1 / 赔率)。这些概率相加后会超过 100%;超出的部分就是博彩公司利润。将每个概率除以概率总和即可去除利润(比例法)。随后,工具会对各家博彩公司的去利润概率取平均值,并将其转换回赔率(1 / 概率)。工具还会显示各家博彩公司的利润率,以及最佳赔率合计对应的利润率。
免费套餐包含的都是面向普通消费者的博彩公司,因此这只是对概率的估算,而非预测。SockOdds API v1 会按原样提供各家博彩公司的赔率,其中包含利润,因此公平赔率始终由本工具根据这些赔率计算得出。
不提供赔率走势工具
SockOdds API v1 记录了赔率历史(/v1/odds/history),但历史记录仅包含在 Pro 套餐中,其他套餐会收到 HTTP 403。免费密钥无法读取历史记录,因此本服务不提供赔率走势工具。
获取免费的 SockOdds 密钥
获取免费的 SockOdds 密钥。无需银行卡。注册时需要提供澳大利亚或国际手机号码,并通过一次性短信验证码进行确认。密钥只会显示一次,请妥善保存。若想在注册前试用工具,请设置 SOCKODDS_DEMO=1:所有工具都会使用虚构的示例数据运行,无需密钥。
免费 Developer 套餐的内容如下,详见定价页面和套餐与限制:
- 每月 2,500 个对象,每个 UTC 日历月重置。响应中的每场赛事算作一个对象,赔率响应中每个收费结果也算作一个对象:一场比赛中,三家博彩公司各自报出一个双向市场的价格,即 1 + 3 x 2 = 7 个对象。
- 每分钟 10 个请求
- 6 个联赛:MLB、NFL、AFL、NRL,以及男子和女子橄榄球联盟世界杯
- 3 家博彩公司:Sportsbet、TAB 和 Ladbrokes。套餐范围以外的博彩公司报价会从响应中省略,而不会导致请求被拒绝。
为遵守这些限制,此服务会缓存每个响应 60 秒,不会重试失败的请求;发生速率限制错误(HTTP 429)后,会在 SockOdds 的 Retry-After 时间过去前拒绝后续调用。find_event 会在可行时按单个联赛和日期范围查询不含赔率的赛事(每场赛事算一个对象)。get_odds、best_price 和 fair_odds 只请求其展示的市场,并且每个实时回答都会说明使用了多少个对象。
安装
你需要 Node.js 20 或更高版本。此服务已发布到 npm,名称为 sockodds-mcp,无需构建。
Claude Code
claude mcp add sockodds --env SOCKODDS_API_KEY=your-key -- npx -y sockodds-mcp
还没有密钥?先用虚构的示例数据试用:
claude mcp add sockodds --env SOCKODDS_DEMO=1 -- npx -y sockodds-mcp
添加技能后,Claude 就会知道何时使用这些工具,以及如何引用赔率:
mkdir -p ~/.claude/skills/sockodds-odds
curl -fsSL https://raw.githubusercontent.com/jameselle/sockodds-mcp/main/skill/SKILL.md -o ~/.claude/skills/sockodds-odds/SKILL.md
Claude Desktop
将以下内容添加到 claude_desktop_config.json(Settings、Developer、Edit Config),然后重启 Claude Desktop:
{
"mcpServers": {
"sockodds": {
"command": "npx",
"args": ["-y", "sockodds-mcp"],
"env": {
"SOCKODDS_API_KEY": "your-key"
}
}
}
}
若要使用演示模式,请将 env 块替换为 "SOCKODDS_DEMO": "1"。
其他 MCP 客户端
适用于所有可运行本地(stdio)服务的客户端:命令为 npx,参数为 -y sockodds-mcp,环境变量为 SOCKODDS_API_KEY。它也已列入官方 MCP Registry,名称为 io.github.jameselle/sockodds-mcp。
从源代码安装
git clone https://github.com/jameselle/sockodds-mcp.git
cd sockodds-mcp
npm install
npm run build
claude mcp add sockodds --env SOCKODDS_API_KEY=your-key -- node "$(pwd)/dist/src/index.js"
设置
| 变量 | 默认值 | 含义 |
|---|---|---|
SOCKODDS_API_KEY | 无 | 你的 SockOdds 密钥。密钥只会通过 Authorization: Bearer 标头发送,不会放入 URL。未设置密钥时,赔率工具会说明如何获取密钥。 |
SOCKODDS_DEMO | 关闭 | 设置为 1,即可使用虚构的示例数据试用工具,无需密钥。若已设置密钥,则忽略此项。 |
SOCKODDS_TIMEZONE | Australia/Sydney | 开始时间所用的时区(也始终显示 UTC) |
SOCKODDS_BASE_URL | https://api.sockodds.com/v1 | API 基础 URL。请勿设置。若旧设置指向 /v2,则 v2 停用后会导致请求失败:请移除此设置。 |
开发
npm install
npm test
测试使用 Node 内置的测试运行器和模拟 fetch。测试涵盖公平赔率计算、最佳价格选择、对 SockOdds v1 文档示例响应的解析、v1 路径和查询参数名称、所有错误状态,以及端到端的 MCP 工具调用。没有任何测试会调用实时 API。
docs/API-NOTES.md 列出了此服务依赖的所有端点和字段,并附有 SockOdds 文档的链接。fixtures/docs/ 存放从这些文档中复制的示例响应;fixtures/demo/ 存放格式相同的虚构数据,供演示模式使用。
1.1.0 版本的变更
SockOdds 现在默认按市场分组赔率:每个市场和结果只列出一次,并在其下列出所有博彩公司报价。1.1.0 既能读取这种格式,也能读取旧格式,因此回答与 1.0.0 相同。首次获取赔率回答时,会读取一次博彩公司列表以显示其名称;用量说明也会计入这些对象。
从 0.x 升级
1.0.0 版从已停用的 v2 API 切换到了 SockOdds API v1。对你而言,变化如下:
- 你的密钥可以继续使用。 现在密钥通过
Authorization: Bearer <key>发送,而不是x-api-key。 - 事件 ID 已更新。 v1 ID 的格式类似
ev_000ckk0nc1tg。0.x 中的 ID(例如afl_2026-09-12_...)不会转换,因此请重新运行find_event。 - 联赛和运动项目的键名均为小写,例如
afl、nrl、rlwc、australian_football。find_event和list_leagues仍接受诸如 "AFL" 或 "Rugby League World Cup" 这样的普通名称。 - 博彩公司键名遵循 v1 格式,例如
betfair_exchange。 best_price使用outcome_id(get_odds配合all_markets显示的oc_...ID),而不再使用odd_id。find_event不再显示赔率。 在 v1 中,每个有赔率的结果都计为一个对象,因此搜索只会读取事件。接下来请使用get_odds或best_price。- 不再提供 SockOdds 共识赔率或专业机构公平赔率。 v1 会按原样发布每家博彩公司给出的赔率;
fair_odds仍会像之前一样据此计算去水后的赔率。 - 用量的计算方式有所变化。 每个事件计为一个对象,赔率回答中每个有赔率的结果也各计为一个对象。每条实时回答都会说明实际用量。
- 错误遵循 v1 的 problem 格式;对于 400、401、403、404、410、429(速率限制或月度额度)和 503 错误,会提供普通文本消息。
工具名称(list_leagues、find_event、get_odds、best_price、fair_odds)和设置均保持不变。
发布
package.json(version、mcpName)和 server.json(version、packages[0].version)中的版本必须一致。发布步骤:
npm test
npm publish
mcp-publisher login github
mcp-publisher publish
server.json 会将此服务列入官方 MCP 注册表,名称为 io.github.jameselle/sockodds-mcp;注册表会检查 npm 包的 mcpName 是否匹配。glama.json 列出了 Glama 页面的维护者。
理性赌博
年满 18 岁方可参与。赔率随时可能变化,此工具显示的内容不构成提示或建议。如果赌博正在伤害你或你身边的人,请拨打 Gambling Help Online 热线 1800 858 858,或访问 gamblinghelponline.org.au。你可以通过 BetStop 将自己排除在澳大利亚在线博彩公司之外。
许可证
MIT。详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。