Skip to content

predictDEX

by dex.mk · remote · no sign-in to list tools · v1.0.0 · published by mk.dex

Live Polymarket odds, order books, fee-inclusive quotes and non-custodial prediction trading.

Changes · 3

11 tools: 3 change things and 8 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http predictdex https://predict.dex.mk/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "create_trade_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "create_trade_link" says "create": a word for a change.

    What this check looks for
  • The server marks "get_positions" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_positions" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Changes things 3Claude Code: ask
  • attest_agentSubmit the signed attestation.No findings

    Why it is in this group

    • The description's first verb is "submit": a word for a change.
    Description, as the server wrote it
    Submit the signed attestation. Returns a 30-day agent token that unlocks gasless Polymarket account setup through predictDEX's signer for your address only. It grants no custody and no exemption from region rules.

    Annotations the server declares

    • title: Attest as an agent (get a token)
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • get_positionsOpen positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.1 finding

    Why it is in this group

    • The name "get_positions" says "get": a word for reading.
    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_positions" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_positions" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Open positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.

    Annotations the server declares

    • title: Get positions of a wallet
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 8Claude Code: allow
  • get_agent_challengeReturns the canonical 'predictDEX Agent Attestation v1' message for your address.No findings

    Why it is in this group

    • The name "get_agent_challenge" says "get": a word for reading.
    Description, as the server wrote it
    Returns the canonical 'predictDEX Agent Attestation v1' message for your address. Sign it with EIP-191 personal_sign within 10 minutes and pass it to attest_agent.

    Annotations the server declares

    • title: Get an agent attestation challenge
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_eventFull event by slug: every market, outcome names and prices, token ids, tick size, min order size, rules summary, resolution source and status.No findings

    Why it is in this group

    • The name "get_event" says "get": a word for reading.
    Description, as the server wrote it
    Full event by slug: every market, outcome names and prices, token ids, tick size, min order size, rules summary, resolution source and status. Optionally include recent trades.

    Annotations the server declares

    • title: Get one event
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_leaderboardTop Polymarket traders by profit or volume over a window.No findings

    Why it is in this group

    • The name "get_leaderboard" says "get": a word for reading.
    Description, as the server wrote it
    Top Polymarket traders by profit or volume over a window.

    Annotations the server declares

    • title: Get the trader leaderboard
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_orderbookLive order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.No findings

    Why it is in this group

    • The name "get_orderbook" says "get": a word for reading.
    Description, as the server wrote it
    Live order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.

    Annotations the server declares

    • title: Get the order book
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_price_historyPrice (probability) history for one outcome token over a range.No findings

    Why it is in this group

    • The name "get_price_history" says "get": a word for reading.
    Description, as the server wrote it
    Price (probability) history for one outcome token over a range.

    Annotations the server declares

    • title: Get price history
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_trading_setupEverything an agent with its own wallet needs to trade: chain, collateral (pUSD), builder code, signer URL, attestation steps, fees and a ready-to-run TypeScript snippet using Poly…No findings

    Why it is in this group

    • The name "get_trading_setup" says "get": a word for reading.
    Description, as the server wrote it
    Everything an agent with its own wallet needs to trade: chain, collateral (pUSD), builder code, signer URL, attestation steps, fees and a ready-to-run TypeScript snippet using Polymarket's official SDK. Non-custodial: you sign with your own key.

    Annotations the server declares

    • title: How to trade through predictDEX
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • quote_orderPreview an order against the live book without placing it: average and worst price, shares, cost, payout if the outcome wins, Polymarket fee, predictDEX fee and warnings.No findings

    Why it is in this group

    • The description's first verb is "preview": a word for reading.
    Description, as the server wrote it
    Preview an order against the live book without placing it: average and worst price, shares, cost, payout if the outcome wins, Polymarket fee, predictDEX fee and warnings. Market BUY amount is USD to spend all-in; market SELL and limit amounts are shares.

    Annotations the server declares

    • title: Quote an order (fee-inclusive)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_marketsFind events and their markets with live odds.No findings

    Why it is in this group

    • The name "search_markets" says "search": a word for reading.
    Description, as the server wrote it
    Find events and their markets with live odds. Filter by free-text query, category slug (see predict://categories), sort and status. Each event lists markets with outcomes, token ids, best bid/ask, tick size and a human URL.

    Annotations the server declares

    • title: Search prediction markets
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http predictdex https://predict.dex.mk/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__predictdex__search_markets",
      "mcp__predictdex__get_event",
      "mcp__predictdex__get_orderbook",
      "mcp__predictdex__get_price_history",
      "mcp__predictdex__quote_order",
      "mcp__predictdex__get_trading_setup",
      "mcp__predictdex__get_leaderboard",
      "mcp__predictdex__get_agent_challenge"
    ],
    "ask": [
      "mcp__predictdex__create_trade_link",
      "mcp__predictdex__get_positions",
      "mcp__predictdex__attest_agent"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as predictdex. Review it before you use it.