Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
MagicMarkets
ภาพรวม
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Sports prediction markets for AI agents — live prices, quotes, orders, and positions.
สามเสาของ PopNx MCP
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
- เสียงผู้ใช้iยังไม่มีรีวิวรีวิวเปิดพร้อมระบบบัญชีในขั้นถัดไป
- ผลตรวจเบื้องต้นของเราiผ่าน 1 จาก 1 ข้อตรวจจากข้อมูลที่เปิดอยู่ ยังไม่ได้สแกนโค้ด
- การใช้งานiยังไม่ได้วัด★ –
ใช้ทำอะไรได้
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
- การเชื่อมต่อ: รันบนคลาวด์
- ช่องทาง (transport): Streamable HTTP
- หมวด: ร้านค้าออนไลน์และรับเงิน
ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ก่อนติดตั้ง
- ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
- รันบนเครื่องของผู้ทำ สิ่งที่คุณถามจะผ่านเครื่องของเขา
- ทะเบียนไม่ได้ระบุ key ที่ต้องใส่
ต้องเตรียมก่อน
- รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
- เปิด Settings → Connectors
- กด Add custom connector
- วางที่อยู่ด้านล่างแล้วกด Add
- ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
https://magicmarkets.com/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http magicmarkets https://magicmarkets.com/mcpหรือคัดลอกค่าตั้งเอง
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"magicmarkets": {
"url": "https://magicmarkets.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
หรือคัดลอกค่าตั้งเอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"magicmarkets": {
"type": "http",
"url": "https://magicmarkets.com/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
- เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
- กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
- วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
- ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
https://magicmarkets.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ทำอะไรได้บ้าง
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันโดเมน magicmarkets.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
- … ยังไม่ตรวจ
ยังมีคนดูแล
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- … ยังไม่ตรวจ
มีสัญญาอนุญาต (license)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
- … ยังไม่ตรวจ
endpoint ตอบ
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
- … ยังไม่ตรวจ
ล็อกอินแบบ OAuth
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับตัวอื่นในหมวด ร้านค้าออนไลน์และรับเงินi
- ดาวมากกว่า 0% ของอีก 1744 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 52% ของอีก 1744 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1744 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
MagicMarkets ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.0) เข้า registry 30 วันที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
มีตัวไหนใช้แทนได้บ้าง?
ในหมวดเดียวกันมี Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce
ตัวที่ใช้แทนได้
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Stripe MCP
server ทางการของ Stripe ให้ AI ดูและจัดการลูกค้า สินค้า การชำระเงิน และใบแจ้งหนี้ ต่อผ่านคลาวด์ของ Stripe และล็อกอินแบบ OAuth
MCP Cn Commerce
8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
magicmarkets-cli
A command-line interface for the Magic Markets v2 API — stream live sports prices, quote selections, place and manage orders, and inspect your position. The same API is also available as MCP tools: the easiest path is the hosted, OAuth-authenticated endpoint at https://magicmarkets.com/mcp — no install required. This binary also serves the same tools locally, over stdio (a client launches magicmarkets mcp as a subprocess) or the streamable HTTP transport on localhost.
Single static binary, authenticated with one API key. No request signing, no private keys.
magicmarkets markets --sport fb # find events with live prices
magicmarkets offers fb 2026-06-15,1001,2002 # list priced bet types magicmarkets betslip create fb 2026-06-15,1001,2002 for,h --wait 5s magicmarkets order place --betslip bs-123 --price 2.10 --stake 50
- [Setup](#setup) — install, authenticate, first commands
- [Using it](#using-it) — the bet flow, command reference, MCP, prices, errors
- [Development](#development) — layout, code generation, conventions, contributing
Setup
1. Install
From a clone:
git clone https://github.com/magicmarkets/magicmarkets-cli
cd magicmarkets-cli make install # installs magicmarkets into your Go bin directory
make where prints exactly where that landed. If magicmarkets is not found afterwards, that directory is not on your PATH:
export PATH="$PATH:$(go env GOPATH)/bin" # add to ~/.zshrc or ~/.bashrc
Prefer not to install? make build produces ./build/magicmarkets and leaves your PATH alone.
go install directly
Note the /cmd/magicmarkets path — installing the module root would build a binary called magicmarkets-cli:
go install ./cmd/magicmarkets
The Go module path is magicmarkets-cli, not a GitHub URL, so go install github.com/…/magicmarkets-cli@latest will not work. Cloning and make install is the supported path.
2. Add your API key
Create a key at magicmarkets.com under Settings → API. It is shown once at creation, so store it immediately.
Put it in ~/.magicmarkets/.env so it works from any directory:
mkdir -p ~/.magicmarkets
echo 'MAGICMARKETS_API_KEY=your-key-here' > ~/.magicmarkets/.env chmod 600 ~/.magicmarkets/.env
An env var or a project-local .env works too — cp env.example .env and fill it in.
3. Verify
$ magicmarkets status
version v1.0.0 api url https://magicmarkets.com/v2 ws url wss://magicmarkets.com/v2/stream lang en api key ***********1234 env files [/Users/you/.magicmarkets/.env] authenticated yes
Always check this before opening a stream — the WebSocket rejects a bad key at the handshake without a useful error.
That's the whole setup. Everything below is optional.
Try it
magicmarkets balance # money position
magicmarkets xrates # exchange rates to USDT magicmarkets markets --sport fb --limit 5 # events that currently have prices magicmarkets offers fb --depth 2 # priced bet types on one event magicmarkets orders --open # your open orders magicmarkets ticks 2.345 # where a price lands on the tick schedule magicmarkets api endpoints # every endpoint (no key, no network)
Add --json to any command to pipe it into jq.
Configuration
Resolved in this order, first match winning:
| Priority | Source |
|---|---|
| 1 | Real environment variables |
| 2 | ./.env |
| 3 | ~/.magicmarkets/.env |
| 4 | ~/.env |
| 5 | Built-in defaults |
| Variable | Default | Purpose |
|---|---|---|
MAGICMARKETS_API_KEY | — | API key (X-Api-Key) for the CLI and stdio MCP. HTTP MCP takes the key per request instead |
MAGICMARKETS_OAUTH_ISSUER | https://magicmarkets.com/api/auth | Upstream AS that mcp --http proxies /authorize and /token to, and that POST /oauth2/firebase-token is resolved against for a Bearer credential — see Authentication |
MAGICMARKETS_SESSION_GROUP_ID | — | Environment-specific id from Magic Markets, used to build the session value an OAuth Bearer credential resolves to. No safe default — required wherever a Bearer credential is expected |
MAGICMARKETS_FIREBASE_WEB_API_KEY | — | Firebase Web API key for the Magic Markets Firebase project, used to exchange the Firebase custom token from /oauth2/firebase-token for a real Firebase ID token — see Authentication. No safe default — required wherever a Bearer credential is expected |
MAGICMARKETS_OAUTH_CLIENT_ID | — | Pre-registered client allowlisting *this host's own* /mcp/callback |
MAGICMARKETS_OAUTH_PROXY_SECRET | — | Seals OAuth proxy state; every replica must share it |
MAGICMARKETS_MCP_PUBLIC_URL | — | Public base of mcp --http (this host is the MCP Authorization Server) |
MAGICMARKETS_API_URL | https://magicmarkets.com/v2 | REST base, including /v2 |
MAGICMARKETS_BASIC_AUTH | — | Base64 user:pass sent as an additional Authorization: Basic header on every /v2/* REST call — the token for an infra-level wall some non-production environments put in front of the v2 API. Production has no such wall, so this is unset there. Never sent to /oauth2/firebase-token, Firebase's signInWithCustomToken, or the WebSocket stream |
MAGICMARKETS_WS_URL | derived from MAGICMARKETS_API_URL | Stream endpoint |
MAGICMARKETS_LANG | en | Event name language: en, ko, zh-hans |
MAGICMARKETS_TIMEOUT | 30s | Per-request timeout |
MAGICMARKETS_ALLOW_TRADING | unset (off) | Lets magicmarkets mcp place bets. No effect on the CLI. |
Global flags: --json, --verbose/-v, --api-key, --api-url, --ws-url.
--api-url re-derives the stream endpoint from it (matching MAGICMARKETS_WS_URL's own derivation), unless MAGICMARKETS_WS_URL or --ws-url pins it explicitly — so --api-url https://staging... doesn't leave stream reading production prices while every other command reaches staging.
Using it
The two-step bet flow
Placing a bet always takes two steps:
- A betslip registers interest in one selection and receives a live quote. It costs nothing and commits nothing.
- An order commits a stake against that quote.
Betslips are short-lived and carry no price when created — the quote arrives asynchronously, over the WebSocket as a pmm message or by polling. Hence --wait:
# 1. find an event that has prices
$ magicmarkets markets --sport fb --limit 5 SPORT EVENT ID EVENT COMPETITION STATUS START
fb 2026-06-15,1001,2002 Arsenal v Chelsea England Premier League pre_event 2026-06-15 16:00:00
2. read a bet_type straight off the feed
$ magicmarkets offers fb 2026-06-15,1001,2002 --depth 2 BET TYPE MARKET IR PRICES (stake @ price) TOTAL
for,h 1x2 - 150.00@2.10 80.00@2.08 230.00 for,ah,h,-4 ah - 200.00@1.95 120.00@1.94 320.00
3. quote it, waiting for the price to land
$ magicmarkets betslip create fb 2026-06-15,1001,2002 for,h --wait 5s betslip id bs-abc123 bet type for,h description Home expires 2026-06-15 15:42:10 (28s) total available 230.00 USDT
Prices: PRICE MIN MAX
2.10 5.00 150.00 2.08 - 80.00
4. commit a stake (asks for confirmation)
$ magicmarkets order place --betslip bs-abc123 --price 2.10 --stake 50
Never construct a `bet_type` by hand. Copy it verbatim from magicmarkets offers or the stream — it encodes the market, handicap, outcome and direction in one string.
Command reference
Account
| Command | Purpose |
|---|---|
magicmarkets status | Show config and verify the key |
magicmarkets balance | Balance, open stake, smart credit, available |
magicmarkets xrates | Exchange rates to USDT |
magicmarkets position | Aggregate P&L, with --grid for the payoff matrix |
Discovery
| Command | Purpose |
|---|---|
magicmarkets markets | Events that currently have prices |
magicmarkets offers ... | Priced bet types on one or more events |
magicmarkets stream | Tail the live price and account feed |
markets and offers are plain REST calls (GET /v2/events/, GET /v2/offers/). Sport, competition, in-play status, start window, market type, bet type and minimum liquidity are filtered by the API; --search is matched locally. REST offers can trail the live market by a few seconds — use stream --register when every tick matters.
magicmarkets markets --sport fb,tennis --limit 20
magicmarkets markets --sport fb --from 2026-06-15 --to 2026-06-16 magicmarkets markets --search arsenal magicmarkets markets --in-play magicmarkets offers fb 2026-06-15,1001,2002 --market ah --depth 3 magicmarkets offers fb 2026-06-15,1001,2002 2026-06-15,1003,2004 --min-liquidity 500 magicmarkets stream --register fb:2026-06-15,1001,2002 magicmarkets stream --type order,bet # only order activity
Trading
| Command | Purpose |
|---|---|
magicmarkets betslip create [sport] [event] [bet-type] | Quote a selection |
magicmarkets betslip get | Show a betslip and its prices |
magicmarkets betslip list | Open betslip IDs (--expand for full detail) |
magicmarkets betslip refresh | Extend expiry |
magicmarkets betslip close | Close a betslip you no longer need |
magicmarkets order place | Place an order against a betslip |
magicmarkets orders / magicmarkets order list | List orders |
magicmarkets order get | Show one order and its bets |
magicmarkets order tracked | Look an order up by idempotency key |
magicmarkets order updates | Orders changed in a time window |
magicmarkets order close | Cancel one order |
magicmarkets order close-many ... | Cancel up to 500 orders |
magicmarkets order close-all | Cancel every open order |
Lay bets and parlays:
# lay (against) a selection
magicmarkets betslip create --lay fb 2026-06-15,1001,2002 for,over,2.5
a 2-leg accumulator
magicmarkets betslip create \ --leg fb:2026-06-15,1001,2002:for,h \ --leg fb:2026-06-16,1003,2004:for,over,2.5 --wait 5s
Risk
| Command | Purpose |
|---|---|
magicmarkets heartbeat run | Create a heartbeat and keep it alive in the foreground |
magicmarkets heartbeat create/list/get/refresh/cancel | Manage heartbeats directly |
A heartbeat is a dead-man's switch: if it is not refreshed before it expires, every open order is closed automatically. Run one alongside an automated strategy so a crash cannot leave orders live.
$ magicmarkets heartbeat run --timeout 60
heartbeat hb-xyz created, expires 2026-06-15 15:43:10; refreshing every 20s press Ctrl-C to cancel it and leave orders open
On Ctrl-C the heartbeat is cancelled cleanly, leaving orders open. If the process dies, the switch fires.
MCP
| Command | Purpose |
|---|---|
magicmarkets mcp | MCP tools over stdio by default, or --http for the streamable HTTP transport on localhost. See MCP |
Reference
| Command | Purpose |
|---|---|
magicmarkets bet-type | Validate a bet type, show its payoff grid |
magicmarkets ticks | Snap a price onto the tick schedule |
magicmarkets api endpoints | List every endpoint |
magicmarkets api show [method] | Endpoint detail: parameters, body, responses |
| magicmarkets api schema [name] | Componen
ตัดมาแค่ช่วงต้น อ่านต่อใน repo