Live Polymarket odds, order books, fee-inclusive quotes and non-custodial prediction trading.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh 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.
0x address that signed
The exact challenge message
0x EIP-191 signature
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| address* | string | 0x address that signed |
| message* | string | The exact challenge message |
| signature* | string | 0x EIP-191 signature |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| side | string | BUY or SELL |
| slug* | string | Event slug |
| amount | number | USD to spend for BUY, shares for SELL |
| market | string | Market id or conditionId (defaults to the event's main market) |
| outcome | string | 0 = first outcome (Yes), 1 = second (No) |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| address* | string | Your 0x wallet address |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Your 0x wallet address"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Event slug from search_markets |
| recentTrades | integer | Include up to N recent trades (0-50) |
{
"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
}Top Polymarket traders by profit or volume over a window.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Rows (1-100, default 25) |
| metric | string | Ranking metric |
| window | string | Time window |
{
"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
}Live order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.
| Argument | Type | Description |
|---|---|---|
| depth | integer | Levels per side (1-100, default 20) |
| tokenId* | string | Outcome token id (digits) from get_event |
{
"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
}Open positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.
| Argument | Type | Description |
|---|---|---|
| address* | string | 0x address (owner EOA or Deposit Wallet) |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "0x address (owner EOA or Deposit Wallet)"
}
},
"additionalProperties": false
}Price (probability) history for one outcome token over a range.
| Argument | Type | Description |
|---|---|---|
| range | string | Time range |
| tokenId* | string | Outcome token id |
{
"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
}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.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| side | string | BUY or SELL |
| type | string | market (default) or limit |
| price | number | Limit price as probability 0-1 (required for limit) |
| amount* | number | USD for a market BUY, shares otherwise |
| tokenId* | string | Outcome token id |
| postOnly | boolean | Limit orders: rest only, never take |
| slippage | number | Market orders: max price move in price units, e.g. 0.02 |
| orderType | string | FAK/FOK for market, GTC/GTD for limit |
| expiration | integer |
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.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text search, e.g. 'fed rate october' or 'bitcoin 150k' |
| sort | string | Sort order |
| limit | integer | Events to return (1-50, default 20) |
| offset | integer | Pagination offset |
| status | string | active (default), resolved or all |
| category | string | Category slug, e.g. politics, crypto, sports, new, breaking, ending |
| maxMarkets | integer | Markets per event (1-50, default 5) |
{
"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
}| GTD expiry, unix seconds |
{
"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
}