Server definition
- Hash
- sha256:d2f3649c6d44f08db0980c70a49f6204a29fc48639483e203b570d88aa07a8c8
- What it is
- What a remote MCP server returned when asked what it offers: 11 tools
The blob, as servednamed by its sha256
{
"instructions": "predictDEX (predict.dex.mk) is an independent, non-custodial interface to Polymarket prediction markets. Prices are market-implied probabilities (0 to 1) set by traders with real money; they are not advice or forecasts by predictDEX.\nUse it when a user asks for the odds or probability of a real-world event (elections, central banks, sports, crypto, geopolitics, tech, culture), when you research what markets expect, or when you or your principal want to take a position.\nTypical flow: search_markets -> get_event -> get_orderbook / get_price_history -> quote_order (fee-inclusive preview) -> trade.\nTrading: if you control a wallet key, call get_trading_setup, then get_agent_challenge + attest_agent once to get an agent token, and trade with Polymarket's official SDK using predictDEX's builder code and signer (orders are signed by your own key; predictDEX never holds funds). If you have no wallet, call create_trade_link and give the link to your person: they review and sign on predict.dex.mk.\nFees: Polymarket's own taker fee plus a small predictDEX fee on top, both charged on-chain only when an order fills (see predict://fees). Trading is unavailable in restricted regions (https://predict.dex.mk/legal/restricted); opening positions for people there is not allowed.\nAlways tell your person that prediction markets can lose the full stake, and confirm before any trade.",
"tools": [
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "0x address that signed",
"type": "string"
},
"message": {
"description": "The exact challenge message",
"type": "string"
},
"signature": {
"description": "0x EIP-191 signature",
"type": "string"
}
},
"required": [
"address",
"message",
"signature"
],
"type": "object"
},
"name": "attest_agent",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amount": {
"description": "USD to spend for BUY, shares for SELL",
"exclusiveMinimum": 0,
"type": "number"
},
"market": {
"description": "Market id or conditionId (defaults to the event's main market)",
"type": "string"
},
"outcome": {
"description": "0 = first outcome (Yes), 1 = second (No)",
"enum": [
"0",
"1"
],
"type": "string"
},
"side": {
"description": "BUY or SELL",
"enum": [
"BUY",
"SELL"
],
"type": "string"
},
"slug": {
"description": "Event slug",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "create_trade_link",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Your 0x wallet address",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_agent_challenge",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"recentTrades": {
"description": "Include up to N recent trades (0-50)",
"maximum": 50,
"minimum": 0,
"type": "integer"
},
"slug": {
"description": "Event slug from search_markets",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_event",
"outputSchema": null
},
{
"description": "Top Polymarket traders by profit or volume over a window.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Rows (1-100, default 25)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"metric": {
"description": "Ranking metric",
"enum": [
"profit",
"volume"
],
"type": "string"
},
"window": {
"description": "Time window",
"enum": [
"day",
"week",
"month",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "get_leaderboard",
"outputSchema": null
},
{
"description": "Live order book for one outcome token: bids and asks (price 0-1, size in shares), spread, midpoint and last trade.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"depth": {
"description": "Levels per side (1-100, default 20)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"tokenId": {
"description": "Outcome token id (digits) from get_event",
"type": "string"
}
},
"required": [
"tokenId"
],
"type": "object"
},
"name": "get_orderbook",
"outputSchema": null
},
{
"description": "Open positions of a Polymarket trading account or its owner address: size, average price, current price, value and P&L.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"address": {
"description": "0x address (owner EOA or Deposit Wallet)",
"type": "string"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "get_positions",
"outputSchema": null
},
{
"description": "Price (probability) history for one outcome token over a range.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"range": {
"description": "Time range",
"enum": [
"1H",
"6H",
"1D",
"1W",
"1M",
"ALL"
],
"type": "string"
},
"tokenId": {
"description": "Outcome token id",
"type": "string"
}
},
"required": [
"tokenId"
],
"type": "object"
},
"name": "get_price_history",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
},
"name": "get_trading_setup",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"amount": {
"description": "USD for a market BUY, shares otherwise",
"exclusiveMinimum": 0,
"type": "number"
},
"expiration": {
"description": "GTD expiry, unix seconds",
"type": "integer"
},
"orderType": {
"description": "FAK/FOK for market, GTC/GTD for limit",
"enum": [
"FAK",
"FOK",
"GTC",
"GTD"
],
"type": "string"
},
"postOnly": {
"description": "Limit orders: rest only, never take",
"type": "boolean"
},
"price": {
"description": "Limit price as probability 0-1 (required for limit)",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0,
"type": "number"
},
"side": {
"description": "BUY or SELL",
"enum": [
"BUY",
"SELL"
],
"type": "string"
},
"slippage": {
"description": "Market orders: max price move in price units, e.g. 0.02",
"exclusiveMinimum": 0,
"maximum": 0.5,
"type": "number"
},
"tokenId": {
"description": "Outcome token id",
"type": "string"
},
"type": {
"description": "market (default) or limit",
"enum": [
"market",
"limit"
],
"type": "string"
}
},
"required": [
"tokenId",
"amount"
],
"type": "object"
},
"name": "quote_order",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Category slug, e.g. politics, crypto, sports, new, breaking, ending",
"type": "string"
},
"limit": {
"description": "Events to return (1-50, default 20)",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"maxMarkets": {
"description": "Markets per event (1-50, default 5)",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Pagination offset",
"minimum": 0,
"type": "integer"
},
"q": {
"description": "Free-text search, e.g. 'fed rate october' or 'bitcoin 150k'",
"maxLength": 120,
"type": "string"
},
"sort": {
"description": "Sort order",
"enum": [
"volume24h",
"volume",
"liquidity",
"newest",
"ending",
"competitive"
],
"type": "string"
},
"status": {
"description": "active (default), resolved or all",
"enum": [
"active",
"resolved",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "search_markets",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:d2f3649c6d44f08db0980c70a49f6204a29fc48639483e203b570d88aa07a8c8 | sha256sum