Prediction Market Signal Mcp

io.github.ciinkwia由 GitHub 帳號 ciinkwia 發布v0.1.0更新於 Nov 10, 2026

Polymarket + Kalshi odds, movers, gaps, watch, and X sentiment for AI agents. Pay per call via x402.

已驗證STDIO僅桌面網頁搜尋與抓取金融

概覽

AI 產生的概覽

讓助理取得 Polymarket 與 Kalshi 預測市場賠率、異動、歷史、跨平台價差與 X 輿情,並以 USDC 按次付費。

可以做什麼
  • 跨 Polymarket 與 Kalshi 搜尋並排序市場,取得頭條賠率、跨平台價差與 7 天歷史
  • 查看最大機率波動、單一市場的機率序列,以及提及某檔美股代號的市場
  • 比較兩平台分歧最大的問題,列出即將結算或剛結算的市場
  • 監控指定市場或主題,只回傳自上次檢查以來的變化
  • 把市場賠率與 X/Twitter 討論的 AI 解讀合併在同一次查詢中
  • 不需錢包即可預覽一份免費範例結果
適用情境
適合讓助理查詢選舉、聯準會決策、總體事件等現實問題的群眾預測賠率,比較兩個預測市場對同一問題的定價,或長期追蹤機率變化而不必訂閱服務。
執行需求
透過 npx 在本機執行(需 Node.js)。需要一個在 Base 上存有 USDC 的 Coinbase CDP 錢包,並以 CDP_API_KEY_ID、CDP_API_KEY_SECRET 與 CDP_WALLET_SECRET 設定;CDP_ACCOUNT_NAME 與 X402_MAX_PRICE 為選用。需要能連線付費端點與 Base 結算的網路。免費的 pm_example 工具不需錢包。
安裝前請注意
每個付費工具都會從你自己的錢包實際支出 USDC,每次 0.01 至 0.05 美元;X402_MAX_PRICE 只限制單次價格,不限制總花費。三項 CDP 憑證(含錢包密鑰)會存放在用戶端設定中。查詢內容與市場 ID 會傳送給第三方端點,pm_sentiment 另會抓取公開的 X/Twitter 貼文。輸出僅為市場資料,不構成投資建議。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

prediction-market-signal-mcp

Live Polymarket + Kalshi prediction-market odds, movers, price history, cross-platform gaps, watch, and X/Twitter sentiment inside Claude, Cursor, or any MCP client — no API key, no subscription, no monthly minimum. Your agent pays a fraction of a cent per call in USDC on Base using x402.

pm_search          $0.01/call    markets matching a question, Polymarket + Kalshi, rankedpm_odds            $0.02/call    headline per platform, cross-platform gap, 7-day history, summarypm_movers          $0.02/call    biggest probability swings (Polymarket, liquid markets)pm_history         $0.02/call    one market's probability series, with first/last/high/lowpm_ticker_events   $0.01/call    open markets mentioning a US stock ticker or companypm_sentiment       $0.05/call    markets AND X/Twitter chatter on the same question, one callpm_watch           $0.02/call    only what moved since your last check (stateless cursor)pm_gaps            $0.02/call    biggest Polymarket-vs-Kalshi disagreements, same questionpm_closing         $0.01/call    markets settling soon, both platformspm_resolved        $0.01/call    markets that just settled, with the outcomepm_example         free          a real capped pm_odds result, no wallet needed

Facts only — not investment advice. Every answer is implied probability, volume, and price history from the markets themselves (plus, for pm_sentiment, a plain read of what X/Twitter is saying). Nothing here is a buy/sell/hold signal, a trade recommendation, or financial advice.

Why this exists

Prediction markets (Polymarket, Kalshi) already price real-world questions — elections, Fed decisions, macro events — as crowd-forecast odds. Reading them across two platforms usually means two different SDKs, two rate limits, and no cross-platform comparison. This server does both in one call, charges per request instead of a subscription, and there is nothing to cancel.

Tools

pm_search — $0.01

Markets on Polymarket + Kalshi matching a question or topic, ranked by relevance, each with probability, 24h change, volume, close date, URL, and id (use the id with pm_history or pm_watch). Inputs: q (required), limit (optional, 1-50, default 20).

pm_odds — $0.02

"What do the markets say" for one question — the headline market per platform, the cross-platform probability gap, 7-day history, and a one-line summary:

json
{  "headline": { "polymarket": {...}, "kalshi": {...}, "gap_pts": 4 },  "history_7d": { "points": [...] },  "summary": "..."}

Input: q (required). Use pm_search instead when you want the full ranked list.

pm_movers — $0.02

Biggest 24h/7d probability swings among liquid Polymarket markets — what's newly hot. Inputs: window (optional, 24h default or 7d), limit (optional, 1-50, default 20).

pm_history — $0.02

One market's probability series over time, first/last/high/low. Inputs: id (required — a Polymarket condition id/slug/numeric id, or a Kalshi ticker, from pm_search), interval (optional, 1d/1w/1m/max, default 1w).

pm_ticker_events — $0.01

Open Polymarket + Kalshi markets mentioning a US stock ticker or company (a bare ticker like TSLA is also matched against the company name, Tesla). Facts only — implied probability, 24h change, volume — never a trade signal. Inputs: q (required — ticker or company/topic), limit (optional, 1-50, default 20).

pm_sentiment — $0.05

What the markets say AND what X/Twitter is saying about the SAME question, one call: headline market probability, an AI read of X chatter's yes/no lean, key themes, driving accounts, notable post URLs, and an aligned / diverges / no_clear_read verdict comparing the two:

json
{  "summary": "Markets price \"...\" at 62%. X chatter (14 recent posts) leans YES — aligned with the market.",  "agreement": "aligned",  "market": { "polymarket": {...}, "kalshi": {...}, "gap_pts": 3 },  "x": { "lean": "yes", "lean_note": "...", "summary": "...", "key_themes": [...] }}

Input: q (required). No market matched on either platform = no charge.

pm_watch — $0.02

Monitor 1-20 market ids or a topic, get back only the change since your last check: current probability, change_since_cursor (probability points), a moved flag, and (for a topic watch) newly-listed markets. Pass the response's cursor back in next time — it's stateless, so you can run any number of watches in parallel. Inputs: ids (1-20 comma-separated ids) OR q (a topic) — provide one, not both; cursor (optional, omit on the first call); min_move (optional, probability points, default 3). Nothing moved and nothing new = no charge — the fresh cursor still comes back so your monitor keeps its place.

pm_gaps — $0.02

Biggest Polymarket-vs-Kalshi disagreements on the SAME question — matched by topic, close date, and shared numbers, with a match_confidence score and a polarity check so opposite-side matches never show as a misleading gap. Served from a snapshot rebuilt every 30 minutes. Inputs: limit (optional, 1-50, default 20), min_gap (optional, probability points, default 5), q (optional topic filter). No matches at that gap size = no charge; snapshot not built yet after a cold start = free, retry shortly.

pm_closing — $0.01

Markets on both platforms closing within 24h or 7d, sorted by volume. Inputs: window (optional, 24h default or 7d), limit (optional, 1-50, default 20), q (optional topic filter).

pm_resolved — $0.01

Markets on both platforms that settled within 24h or 7d, with the final outcome and last price — for grading a forecast against reality. Same inputs as pm_closing.

pm_example — free

A real pm_odds result for a fixed question ("fed rate cut"), capped to 5 markets and 12 history points, refreshed every 6 hours. No wallet, no payment, no x402 needed — use it to see the answer shape before spending on any paid tool. No inputs.

Setup

You need a Coinbase CDP wallet funded with a little USDC on Base — that wallet pays per call. Create one at portal.cdp.coinbase.com (API key + wallet secret). pm_example works without any of this — it's free.

Claude Desktop / Claude Code — add to claude_desktop_config.json (or .mcp.json for Claude Code):

json
{  "mcpServers": {    "prediction-market-signal": {      "command": "npx",      "args": ["-y", "prediction-market-signal-mcp"],      "env": {        "CDP_API_KEY_ID": "your-key-id",        "CDP_API_KEY_SECRET": "your-key-secret",        "CDP_WALLET_SECRET": "your-wallet-secret",        "X402_MAX_PRICE": "0.05"      }    }  }}

Cursor — Settings → MCP → Add new MCP server, same command/args/env as above.

X402_MAX_PRICE is a hard per-call ceiling in USD. If the endpoint ever quotes more than this, the request is refused before anything is signed — no charge. The default 0.05 already covers every paid tool above (the priciest is pm_sentiment at $0.05) — you don't need to raise it.

Payment

x402, bring-your-own-wallet. Every paid tool pays from the wallet you configure — your own Coinbase CDP account, funded with USDC on Base. There is no server-side wallet and no shared account: each call signs its own USDC authorization, and the endpoint's facilitator settles it on Base. Gas is covered by the facilitator; you spend USDC only.

Cost & safety

  • You are only ever charged for a successful answer. Invalid inputs are rejected before payment (HTTP 400, no settlement).
  • Nothing found = nothing charged. An empty pm_search / pm_ticker_events / pm_gaps / pm_closing / pm_resolved / pm_sentiment comes back as no_results with charged: false — the payment is never settled.
  • pm_watch only charges when something moved or something new appeared. A check that finds nothing new is free — poll it on a schedule without worry.
  • pm_gaps before its 30-minute background snapshot has finished its first build answers free (503) instead of charging for an incomplete answer.
  • If the upstream market data fails after payment, the API returns an explicit error and logs the call for refund rather than pretending it worked.
  • Facts only, not investment advice. Every number is a market price or a plain read of public chatter — never a recommendation to trade, a price target, or a buy/sell/hold call.

How it works

MCP client → prediction-market-signal-mcp → 402 challenge → sign USDC authorization           → facilitator settles on Base → data returned

Protocol: x402 v2 (CAIP-2 networks, PAYMENT-REQUIRED challenge header).

License

MIT

來源:README.md,提交 0072f59

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 28, 2026

評分

已滿足適用檢查項的 50%

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

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

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

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分