Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 3 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d2f3649c6d44f08db0980c70a49f6204a29fc48639483e203b570d88aa07a8c8 | sha256sum