OddsRelay

io.github.oddsrelay由 GitHub 帳號 oddsrelay 發布v0.1.2更新於 Nov 3, 2026

Read-only MCP server for OddsRelay odds data, with a token cap on every call that spends tokens.

已驗證STDIO僅桌面金融資料與分析

概覽

AI 產生的概覽

針對 OddsRelay 賠率資料的唯讀 MCP 伺服器:可查運動、賽事、博彩公司與涵蓋範圍,並讀取配對盤口或單場賠率,每次呼叫有代幣上限。

可以做什麼
  • 查詢運動與聯賽鍵,以及某項運動下的賽事與其 ID,支援分頁
  • 列出博彩公司與交易所鍵,並查看某產品下各博彩公司涵蓋哪些運動及其市場鍵
  • 讀取指定博彩公司下某項運動的配對盤口(博彩公司買入價與交易所賣出價)
  • 讀取單場賽事在各博彩公司與交易所的賠率,可依博彩公司與市場縮小範圍
  • 查看該金鑰的方案、代幣餘額、重設時間與權限範圍
適用情境
適合讓助理依據 OddsRelay 資料回答博彩賠率、涵蓋範圍或單場價格的問題,並把花費控制在每次呼叫的代幣上限內。sports、events、bookmakers、coverage、usage 不消耗代幣,可先免費試用再決定是否付費查詢賠率。
執行需求
本機 stdio 程序,透過 npx 啟動(需 Node 18 以上),或使用 Claude Desktop 一鍵安裝包(使用其內建 Node)。需要 OddsRelay 帳號與 API 金鑰,透過環境變數 ODDSRELAY_KEY 提供,金鑰只會傳送給 OddsRelay API。免費額度為註冊後 14 天內 50,000 代幣,之後需選擇付費方案。
安裝前請注意
odds 與 event_odds 會消耗帳戶代幣;每次呼叫先詢價,超過 max_tokens 即拒絕執行,並提示助理在提高上限前先詢問使用者。付費方案僅供個人使用,企業或對外提供產品的用途需使用 Enterprise。金鑰以明文存放在用戶端設定檔中,請勿提交到版本控制。event_odds 需要具備讀取原始賠率權限的金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 OddsRelay,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

oddsrelay-mcp

An MCP server that gives an AI assistant read access to OddsRelay: matched boards, the prices for one event, and the sport, event, bookmaker and coverage lists behind them. It is read-only, and every call that spends tokens is priced first and refused above a per-call cap (max_tokens). The assistant is told to ask you before raising it.

It works with Claude Desktop, Claude Code, Cursor and any other client that starts MCP servers over stdio, and it is built on the oddsrelay TypeScript client.

API docs: https://oddsrelay.io/docs

Get a key

Sign up at app.oddsrelay.io/signup and copy your key from the dashboard. Free gives you 50,000 tokens for 14 days from sign-up, with no card, then no tokens until you choose a plan, on the same key. Plans and token prices. Paid plans are for personal use. Any business, even one using the data only in-house, and any product that serves other people runs on Enterprise; a business can try the data on Free first.

Set up

You need an OddsRelay API key (Get a key, above). The server reads the key from ODDSRELAY_KEY. The bundle and the Gemini CLI extension set it for you; the other routes set it in your MCP client's config and need Node 18 or later.

Claude Desktop (one-click bundle)

Download oddsrelay-mcp.mcpb from the latest release and double-click it to install it in Claude Desktop, which asks for one setting: your API key. The setting is marked sensitive, so Claude Desktop masks it, and it passes the key to the server as ODDSRELAY_KEY. The bundle carries everything the server needs and runs on the Node built into Claude Desktop, so you need no Node of your own.

Claude Code

sh
claude mcp add --transport stdio oddsrelay --env ODDSRELAY_KEY=your_key_here -- npx -y oddsrelay-mcp

Claude Desktop (config file)

Settings, Developer, Edit Config opens claude_desktop_config.json. Add the server, then restart Claude Desktop:

json
{  "mcpServers": {    "oddsrelay": {      "command": "npx",      "args": ["-y", "oddsrelay-mcp"],      "env": { "ODDSRELAY_KEY": "your_key_here" }    }  }}

Cursor

Add the same mcpServers block to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project).

The key sits in that config file as plain text, so keep the file out of anything you commit.

Gemini CLI

sh
gemini extensions install https://github.com/oddsrelay/oddsrelay-mcp

Gemini CLI installs the extension from the latest release, then asks for your API key, keeps it in your system keychain and passes it to the server as ODDSRELAY_KEY. The extension also loads the Agent Skill below.

First questions

Ask your assistant:

Using OddsRelay, which bookmakers carry tennis on the standard board?

That calls coverage, which costs no tokens. Then:

Show the OddsRelay standard board for soccer at Ladbrokes and William Hill, first five events.

The assistant finds the bookmaker keys with bookmakers, then calls odds, which is priced before it runs.

Agent Skill

skills/oddsrelay/SKILL.md is an Agent Skill for assistants that load skills (Claude Code, Claude.ai and other skill-aware clients): when to reach for OddsRelay, how to quote a call before it spends tokens, and how to read the boards. It works with this server or with plain HTTPS.

Tools

ToolWhat it readsTokens
sportsSport and competition keys, pagednone
eventsThe events of one sport, with their ids, pagednone
bookmakersBookmaker and exchange keysnone
coverageWhich bookmakers carry which sports on one product, and the product's market keysnone
oddsA matched board (standard, 2up, dutching, each-way, extra-place or bog) for one sport at the bookmakers you namepriced first, capped
event_oddsOne event's prices at each bookmaker and exchange carrying it, narrowed to the bookmakers and markets you namepriced first, capped
usageYour plan, token balance, reset time and key scopenone

The token cap

odds and event_odds take a max_tokens argument with a small default. Before each call the server asks the API what the call would cost (a quote, which spends nothing). If it would cost more than max_tokens, the server makes no call, spends nothing and tells the assistant the price, so the assistant can narrow the filters or ask you before it tries again with a higher max_tokens.

odds always takes one sport and the bookmakers you name, so each call stays narrow. The cost is set by the filters you send; cutting the reply to limit rows does not change it. Every reply from these two tools carries tokens: what the call cost and what is left.

Both tools only read, but their MCP annotations mark them as calls with a cost rather than read-only, so a client that asks before such calls will ask you each time. event_odds reads the raw board, so it needs a key that can read raw odds.

Replies

Replies are compact JSON. Long lists are cut to limit rows (each tool has its own default) and to a size an assistant can read in one go, with a more note saying how many rows were left out and what to change to see them. Paged tools return next_cursor, which the assistant passes back as cursor; a page cut short goes on from the first row not shown.

Errors come back as tool errors with the API's error code and, where the API sends them, the values it accepts: ask for an unknown bookmaker and the error lists the keys it accepts.

Your key

The server reads the key only from ODDSRELAY_KEY and sends it only to https://api.oddsrelay.io, in the Authorization header. It never puts the key in a tool reply or an error: if an error ever echoed it, it would be replaced with [hidden]. The server logs nothing.

What it does not do

No tool writes anything, reads or writes files, or calls any host but the OddsRelay API.

Develop

sh
npm cinpm test

The tests run the server against a stubbed fetch and make no network calls. npm run bundle builds oddsrelay-mcp.mcpb from dist and the installed dependencies: manifest.json describes the bundle, and .mcpbignore keeps sources, tests and development packages out of it. To try the built server by hand, npx @modelcontextprotocol/inspector node dist/cli.js opens it in the MCP Inspector.

More from OddsRelay

License

MIT

來源:README.md,提交 4988034

工具

7

sports

Sports

Lists sport and competition keys (such as soccer or soccer_epl) for the sport filter of odds and events. Costs no tokens. Paged: pass next_cursor back as cursor.

輸入參數limitcursorregion

events

Events

Lists the events of one sport with their ids, for event_odds. Costs no tokens. Paged: pass next_cursor back as cursor.

輸入參數limitsport必填cursorregioncommence_tocommence_from

bookmakers

Bookmakers

Lists the bookmaker and exchange keys that odds, event_odds and coverage take. Costs no tokens.

無需輸入參數。

coverage

Coverage

Shows which bookmakers carry which sports on one product, and that product's market keys (the values odds takes as markets). Filter by bookmaker or sport. Costs no tokens and sends no key.

輸入參數limitsportregionproductbookmaker

odds

Odds

Reads a matched board (bookmaker back prices with exchange lay prices) for one sport at the bookmakers you name. Spends tokens: priced first, and refused when it would cost more than max_tokens.

輸入參數type必填limitsport必填regionmarketsexchangesbookmakers必填max_tokenscommence_tocommence_from

event_odds

Event odds

Reads one event's prices (id from events or odds) at each bookmaker and exchange carrying it, narrowed to the bookmakers and markets you name. Needs a key that can read raw odds. Spends tokens: priced first, and refused when it would cost more than max_tokens.

輸入參數id必填limitregionmarketsbookmakersmax_tokens

usage

Usage

Shows this key's plan, token balance, reset time and scope. Costs no tokens.

無需輸入參數。

版本歷史

3
  1. v0.1.2最新Oct 29, 2026
  2. v0.1.1Oct 13, 2026
  3. v0.1.0Oct 9, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分