predictDEX

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

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
92%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_price_history' description lacks action verbin get_price_history
  • LOWTool 'get_leaderboard' description lacks action verbin get_leaderboard

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,942Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "predictdex": {
      "url": "https://predict.dex.mk/mcp"
    }
  }
}

Remote endpoints

https://predict.dex.mk/mcpstreamable-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_markets(q, category, sort, status, limit, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free-text search, e.g. 'fed rate october' or 'bitcoin 150k'",
      "maxLength": 120
    },
    "category": {
      "type": "string",
      "description": "Category slug, e.g. politics, crypto, sports, new, breaking, ending"
    },
    "sort": {
      "type": "string",
      "description": "Sort order",
      "enum": [
        "volume24h",
        "volume",
        "liquidity",
        "newest",
        "ending",
        "competitive"
      ]
    },
    "status": {
      "type": "string",
      "description": "active (default), resolved or all",
      "enum": [
        "active",
        "resolved",
        "all"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "Events to return (1-50, default 20)",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "type": "integer",
      "description": "Pagination offset",
      "minimum": 0
    },
    "maxMarkets": {
      "type": "integer",
      "description": "Markets per event (1-50, default 5)",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_event(slug, recentTrades)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Event slug from search_markets"
    },
    "recentTrades": {
      "type": "integer",
      "description": "Include up to N recent trades (0-50)",
      "minimum": 0,
      "maximum": 50
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_orderbook(tokenId, depth)

Live order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.

Input Schema

{
  "type": "object",
  "properties": {
    "tokenId": {
      "type": "string",
      "description": "Outcome token id (digits) from get_event"
    },
    "depth": {
      "type": "integer",
      "description": "Levels per side (1-100, default 20)",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "tokenId"
  ],
  "additionalProperties": false
}
🟢get_price_history(tokenId, range)

Price (probability) history for one outcome token over a range.

Input Schema

{
  "type": "object",
  "properties": {
    "tokenId": {
      "type": "string",
      "description": "Outcome token id"
    },
    "range": {
      "type": "string",
      "description": "Time range",
      "enum": [
        "1H",
        "6H",
        "1D",
        "1W",
        "1M",
        "ALL"
      ]
    }
  },
  "required": [
    "tokenId"
  ],
  "additionalProperties": false
}
🟢quote_order(tokenId, side, amount, type, price, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "tokenId": {
      "type": "string",
      "description": "Outcome token id"
    },
    "side": {
      "type": "string",
      "description": "BUY or SELL",
      "enum": [
        "BUY",
        "SELL"
      ]
    },
    "amount": {
      "type": "number",
      "description": "USD for a market BUY, shares otherwise",
      "exclusiveMinimum": 0
    },
    "type": {
      "type": "string",
      "description": "market (default) or limit",
      "enum": [
        "market",
        "limit"
      ]
    },
    "price": {
      "type": "number",
      "description": "Limit price as probability 0-1 (required for limit)",
      "exclusiveMinimum": 0,
      "exclusiveMaximum": 1
    },
    "slippage": {
      "type": "number",
      "description": "Market orders: max price move in price units, e.g. 0.02",
      "exclusiveMinimum": 0,
      "maximum": 0.5
    },
    "orderType": {
      "type": "string",
      "description": "FAK/FOK for market, GTC/GTD for limit",
      "enum": [
        "FAK",
        "FOK",
        "GTC",
        "GTD"
      ]
    },
    "expiration": {
      "type": "integer",
      "description": "GTD expiry, unix seconds"
    },
    "postOnly": {
      "type": "boolean",
      "description": "Limit orders: rest only, never take"
    }
  },
  "required": [
    "tokenId",
    "amount"
  ],
  "additionalProperties": false
}
🟢get_trading_setup

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢create_trade_link(slug, market, outcome, side, amount)

A pre-filled predictDEX ticket URL (event, market, outcome, side, amount) for a person to review and sign in their own wallet. Opening it executes nothing. Use this when you have no wallet or need human confirmation.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Event slug"
    },
    "market": {
      "type": "string",
      "description": "Market id or conditionId (defaults to the event's main market)"
    },
    "outcome": {
      "type": "string",
      "description": "0 = first outcome (Yes), 1 = second (No)",
      "enum": [
        "0",
        "1"
      ]
    },
    "side": {
      "type": "string",
      "description": "BUY or SELL",
      "enum": [
        "BUY",
        "SELL"
      ]
    },
    "amount": {
      "type": "number",
      "description": "USD to spend for BUY, shares for SELL",
      "exclusiveMinimum": 0
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_positions(address)

Open positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x address (owner EOA or Deposit Wallet)"
    }
  },
  "required": [
    "address"
  ],
  "additionalProperties": false
}
🟢get_leaderboard(window, metric, limit)

Top Polymarket traders by profit or volume over a window.

Input Schema

{
  "type": "object",
  "properties": {
    "window": {
      "type": "string",
      "description": "Time window",
      "enum": [
        "day",
        "week",
        "month",
        "all"
      ]
    },
    "metric": {
      "type": "string",
      "description": "Ranking metric",
      "enum": [
        "profit",
        "volume"
      ]
    },
    "limit": {
      "type": "integer",
      "description": "Rows (1-100, default 25)",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_agent_challenge(address)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Your 0x wallet address"
    }
  },
  "required": [
    "address"
  ],
  "additionalProperties": false
}
🟡attest_agent(address, message, signature)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "0x address that signed"
    },
    "message": {
      "type": "string",
      "description": "The exact challenge message"
    },
    "signature": {
      "type": "string",
      "description": "0x EIP-191 signature"
    }
  },
  "required": [
    "address",
    "message",
    "signature"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools