ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

matchwire.win — Mapped Prediction Markets (Kalshi, Polymarket, Predict.fun)

โดย MatchWire-Winรุ่น 0.1.0i★ –iรันบนคลาวด์
ชื่อใน registrywin.matchwire/mapping

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

One row per game, matched across Kalshi, Polymarket US/Intl and Predict.fun. Mapping only.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนคลาวด์
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: x-api-key

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http mapping https://api.matchwire.win/mcp --header 'x-api-key: ใส่ค่าของคุณ'

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "mapping": {
      "url": "https://api.matchwire.win/mcp",
      "headers": {
        "x-api-key": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "mapping": {
      "type": "http",
      "url": "https://api.matchwire.win/mcp",
      "headers": {
        "x-api-key": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • x-api-key ความลับ จำเป็น HTTP header
    matchwire.win API key (mw_...). Required: every tool result is narrowed to the key's plan exactly like the HTTP API. Keys are issued at https://matchwire.win/#pricing — plans start at $99/month, 14-d…

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันโดเมน matchwire.win แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    endpoint ตอบ

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    ล็อกอินแบบ OAuth

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32357 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 52% ของอีก 32357 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32357 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

matchwire.win — Mapped Prediction Markets (Kalshi, Polymarket, Predict.fun) ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: x-api-key

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 37 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Parano1d node

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวาน
ติดตั้ง

Parano1d node

โดย noidium

Local Parano1d node over MCP. Read-only by default; sending needs the opt-in, capped wallet mode.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

matchwire.win

Mapped prediction-market data for Node.js and Python. One client, no dependencies: matchwire.win returns one row per game, matched across Kalshi, Polymarket US, Polymarket International and Predict.fun, with each venue's own market id left intact — the pieces you need to compare a Kalshi API market with its Polymarket API twin without owning a reconciliation job.

Market types are matched too: winners, spreads and handicaps, totals and props. The line is part of the match, so over 45.5 is never confused with over 48.5.

Mapping only — no prices, no order books. Prices come from each venue; this library tells you which market on which venue is the same game.

import { Matchwire } from 'matchwire.win';

const mw = new Matchwire({ apiKey: process.env.MATCHWIRE_API_KEY });

const { rows, seq } = await mw.rows({ sport: 'nfl', venue: ['kalshi', 'poly'] }); const game = rows.find((r) => r.listings.length > 1); console.log(game.name, game.listings.map((l) => ${l.venue}:${l.marketId}));

  • Zero dependencies. One src/ directory on the global fetch. Nothing installs alongside it.
  • Node.js 18+, ESM and CommonJS, hand-written TypeScript declarations.
  • Typed errors — a 429 is distinguishable from a 401 invalid_key in code, not by string matching.
  • Deltas and streaming — since= for changed rows and tombstones, or the same updates over SSE.
  • MCP included — the same tools an AI agent gets from https://api.matchwire.win/mcp.
  • MIT licensed.

Install

npm install matchwire.win      # Node.js — zero dependencies

pip install matchwire.win # Python 3.9+ — standard library only

Get a key at [matchwire.win](https://matchwire.win/#pricing) — plans start at $99/month with a 14-day trial on Starter.

Quickstart

Save as quickstart.mjs and run node quickstart.mjs (Needs MATCHWIRE_API_KEY in the environment):

import { Matchwire } from 'matchwire.win';

const mw = new Matchwire({ apiKey: process.env.MATCHWIRE_API_KEY });

const status = await mw.status(); console.log(${status.store.events} games, ${status.store.bound} bound listings);

const { sports } = await mw.sports(); console.log(sports.slice(0, 5).map((s) => ${s.sport} ${s.events}));

const { rows } = await mw.rows({ sport: 'nfl', limit: 3 }); for (const row of rows) { console.log(row.name, row.status, row.listings.map((l) => l.venue).join('+')); }

The repository ships the same thing with formatting and error handling: node examples/quickstart.mjs.

API

MethodEndpointReturns
status()GET /api/v1/statusService and per-venue health, current seq, coverage counts
sports()GET /api/v1/sportsSports with game counts, plus group ids (esports, american-football, …)
rows(params)GET /api/v1/rowsOne row per game with its per-venue listings
row(id)MCP get_rowOne game by its mapped id
stream(params)GET /api/v1/pushThe same updates as Server-Sent Events
callTool(name, args)POST /mcpAny tool the MCP endpoint advertises
tools()POST /mcpThe tool list the endpoint advertises
Filters

sport, venue, type, league, status accept a value or a comma list; they combine. since= switches to a delta (changed rows plus tombstones).

  • venue= kalshi · poly (Polymarket US) · polyintl (Polymarket International) · predictfun
  • type= winner · total · handicap · map_winner · score · event
  • status= scheduled · live · ended
  • sport= a sport name (baseball, not mlb) or a group id from sports()
// Everything that changed since the last call, plus tombstones for pruned games.

let seq = 0; const first = await mw.rows({ sport: 'esports', limit: 5000 }); seq = first.seq;

const delta = await mw.rows({ since: seq }); console.log(delta.rows.length, 'changed', delta.tombstones?.length ?? 0, 'gone');

// Stream instead of polling. for await (const frame of mw.stream({ since: seq })) { console.log(frame.event, frame.data.rows?.length); if (Date.now() - started > 10_000) break; // or AbortController }

Mapping, not prices

Every listing carries the venue's own marketId, a tier (exact, normalized, fuzzy) and a confidence, plus the exact request that reads that market from the venue. Use the mapped row to decide *what* to compare, then read the prices from each venue with the source you already have.

Agents and MCP

POST https://api.matchwire.win/mcp speaks JSON-RPC 2.0 with your key in the same x-api-key header. Tools: list_sports, find_rows, get_row, get_venue_market, report_issue, service_status. Read-only; every tool result is narrowed by your key's plan exactly like the HTTP API.

import { Matchwire } from 'matchwire.win';

const mw = new Matchwire({ apiKey: process.env.MATCHWIRE_API_KEY });

console.log((await mw.tools()).map((t) => t.name)); const row = await mw.row('ev:nfl:arizona-cardinals:denver-broncos:2026-10-25'); console.log(row.listings.map((l) => l.venue));

Plain text for coding assistants: [matchwire.win/llms.txt](https://matchwire.win/llms.txt) · MCP reference: [matchwire.win/docs/mcp/](https://matchwire.win/docs/mcp/)

Errors

import { MatchwireError } from 'matchwire.win';

try { await mw.rows({ sport: 'nope' }); } catch (error) { if (error.isRateLimited) await sleep(error.retryAfterMs); // 429 else if (error.isAuthError) /* key missing or revoked */ ; else if (error.isPlanError) /* outside the plan's sports/venues */ ; else throw error; }

Documentation

Python

from matchwire import Matchwire

mw = Matchwire(api_key=os.environ["MATCHWIRE_API_KEY"]) rows = mw.rows(sport="nfl", venue=["kalshi", "poly"])["rows"] print(rows0, [l["venue"] for l in rows0])

See python/README.md. Standard library only, Python 3.9+.

License

MIT. Not affiliated with Kalshi, Polymarket or Predict.fun; venue names are used to say what is mapped.

ถาม PopNx