MCP Server

predictDEX

mk.dex/predictdex
Crypto & Web3 Finance & Investing Public & reachable MCP 2026-07-28

What this MCP does

Provides live Polymarket market data, order books, price history, positions, fee-inclusive trade quotes, and non-custodial trading setup and links.

attest_agent
Attest as an agent (get a token)
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.
Open world
Input schema
{'type': 'object', 'required': ['address', 'message', 'signature'], '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'}}, 'additionalProperties': False}
create_trade_link
Create a trade link for a person
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'side': {'enum': ['BUY', 'SELL'], 'type': 'string', 'description': 'BUY or SELL'}, 'slug': {'type': 'string', 'description': 'Event slug'}, 'amount': {'type': 'number', 'description': 'USD to spend for BUY, shares for SELL', 'exclusiveMinimum': 0}, 'market': {'type': 'string', 'description': "Market id or conditionId (defaults to the event's main market)"}, 'outcome': {'enum': ['0', '1'], 'type': 'string', 'description': '0 = first outcome (Yes), 1 = second (No)'}}, 'additionalProperties': False}
get_agent_challenge
Get an agent attestation challenge
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Your 0x wallet address'}}, 'additionalProperties': False}
get_event
Get one event
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Event slug from search_markets'}, 'recentTrades': {'type': 'integer', 'maximum': 50, 'minimum': 0, 'description': 'Include up to N recent trades (0-50)'}}, 'additionalProperties': False}
get_leaderboard
Get the trader leaderboard
Top Polymarket traders by profit or volume over a window.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Rows (1-100, default 25)'}, 'metric': {'enum': ['profit', 'volume'], 'type': 'string', 'description': 'Ranking metric'}, 'window': {'enum': ['day', 'week', 'month', 'all'], 'type': 'string', 'description': 'Time window'}}, 'additionalProperties': False}
get_orderbook
Get the order book
Live order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['tokenId'], 'properties': {'depth': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Levels per side (1-100, default 20)'}, 'tokenId': {'type': 'string', 'description': 'Outcome token id (digits) from get_event'}}, 'additionalProperties': False}
get_positions
Get positions of a wallet
Open positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': '0x address (owner EOA or Deposit Wallet)'}}, 'additionalProperties': False}
get_price_history
Get price history
Price (probability) history for one outcome token over a range.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['tokenId'], 'properties': {'range': {'enum': ['1H', '6H', '1D', '1W', '1M', 'ALL'], 'type': 'string', 'description': 'Time range'}, 'tokenId': {'type': 'string', 'description': 'Outcome token id'}}, 'additionalProperties': False}
get_trading_setup
How to trade through predictDEX
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
quote_order
Quote an order (fee-inclusive)
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': ['tokenId', 'amount'], 'properties': {'side': {'enum': ['BUY', 'SELL'], 'type': 'string', 'description': 'BUY or SELL'}, 'type': {'enum': ['market', 'limit'], 'type': 'string', 'description': 'market (default) or limit'}, 'price': {'type': 'number', 'description': 'Limit price as probability 0-1 (required for limit)', 'exclusiveMaximum': 1, 'exclusiveMinimum': 0}, 'amount': {'type': 'number', 'description': 'USD for a market BUY, shares otherwise', 'exclusiveMinimum': 0}, 'tokenId': {'type': 'string', 'description': 'Outcome token id'}, 'postOnly': {'type': 'boolean', 'description': 'Limit orders: rest only, never take'}, 'slippage': {'type': 'number', 'maximum': 0.5, 'description': 'Market orders: max price move in price units, e.g. 0.02', 'exclusiveMinimum': 0}, 'orderType': {'enum': ['FAK', 'FOK', 'GTC', 'GTD'], 'type': 'string', 'description': 'FAK/FOK for market, GTC/GTD for limit'}, 'expiration': {'type': 'integer', 'description': 'GTD expiry, unix seconds'}}, 'additionalProperties': False}
search_markets
Search prediction markets
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.
Read only Open world Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'q': {'type': 'string', 'maxLength': 120, 'description': "Free-text search, e.g. 'fed rate october' or 'bitcoin 150k'"}, 'sort': {'enum': ['volume24h', 'volume', 'liquidity', 'newest', 'ending', 'competitive'], 'type': 'string', 'description': 'Sort order'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Events to return (1-50, default 20)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset'}, 'status': {'enum': ['active', 'resolved', 'all'], 'type': 'string', 'description': 'active (default), resolved or all'}, 'category': {'type': 'string', 'description': 'Category slug, e.g. politics, crypto, sports, new, breaking, ending'}, 'maxMarkets': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Markets per event (1-50, default 5)'}}, 'additionalProperties': False}
Added
attest_agent
Sept. 25, 2026, 2:40 a.m.
Added
get_agent_challenge
Sept. 25, 2026, 2:40 a.m.
Added
get_leaderboard
Sept. 25, 2026, 2:40 a.m.
Added
get_positions
Sept. 25, 2026, 2:40 a.m.
Added
create_trade_link
Sept. 25, 2026, 2:40 a.m.
Added
get_trading_setup
Sept. 25, 2026, 2:40 a.m.
Added
quote_order
Sept. 25, 2026, 2:40 a.m.
Added
get_price_history
Sept. 25, 2026, 2:40 a.m.
Added
get_orderbook
Sept. 25, 2026, 2:40 a.m.
Added
get_event
Sept. 25, 2026, 2:40 a.m.
Added
search_markets
Sept. 25, 2026, 2:40 a.m.