MCP server intelligence profile

pmxt-mcp Server

MCP server that provides a unified prediction market API for multiple venues like Polymarket and Kalshi, allowing AI agents to discover markets, fetch order books, and execute trades through a single interface

Local OnlyOfficial distributionpmxt-dev
Verified cleanNpm · 2.54.0

Our scanner tested version 2.54.0 without proving a finding in the methods exercised. This is not a guarantee that every deployment is secure.

1Distribution channel
38Independently observed tools
0Linked remote endpoints
AvailableVersion intelligence

Install and connect

Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.

Install @pmxt/mcp from npm

Version 2.54.0 declares 1 executable entrypoint.

npm install --save-exact @pmxt/mcp@2.54.0
npx -y -p @pmxt/mcp@2.54.0 @pmxt/mcp
MCP client configuration example
{
  "mcpServers": {
    "@pmxt/mcp": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@pmxt/mcp@2.54.0",
        "@pmxt/mcp"
      ]
    }
  }
}

Identity

Canonical slugpmxt-mcp-d87a3312DeploymentLocal Only
Canonical packagenpm:@pmxt/mcpRepositorypmxt-dev/pmxt-mcp
First publishedLatest release
Last security verificationAug 19, 2026Classification confidence90%
PublicationPublishedOfficial distributionYes

Distributions

ChannelIdentifierCurrent versionVersionsSource
npm@pmxt/mcp2.54.01Repository

Current release

PackageVersionPublished / observedInventorySecurity scan
npm@pmxt/mcp2.54.0CurrentSep 5, 202638 toolsSucceeded · 0 resources · 0 promptsFailed
Enterprise protection

Continuously monitor this MCP for security risk

Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.

  • Independent exact-version security scans
  • Continuous release and vulnerability monitoring
  • Risk-change alerts with capability context
  • Historical evidence and API exports
Custom pricingContact salesTailored to your organization, integrations, data needs, and support requirements.

Current version evidence

Provenanceartifact_hash_verifiedSignature
MCP SDK@modelcontextprotocol/sdk Artifact SHA-2565b9933b8ee0c51f6f8c93464d017dd7632464383b96540642e4daa4e2b295916
Scannermcp-proof-engine 0.1.0Scan completedAug 20, 2026
Security rating33 / 100Methodologyversion-rating-1.0
Executable entrypoints
[
  "@pmxt/mcp"
]
Rating reasons
[
  "security_policy_not_observed"
]

Current protocol inventory

2025-06-18Negotiated protocol
@pmxt/mcpServer-reported name
1Capability groups
Aug 17, 2026Observed

Tools 38

ToolCategoryAnnotationsRisk
buildOrderBuild an order payload without submitting it to the exchange. Returns the exchange-native signed order or request body for inspection, forwarding through a middleware layer, or deferred submission via submitOrder().
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "The market to trade on."
    },
    "outcomeId": {
      "type": "string",
      "description": "The outcome to trade."
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "Order side: buy or sell."
    },
    "type": {
      "type": "string",
      "enum": [
        "market",
        "limit"
      ],
      "description": "Order type: market (execute immediately) or limit (resting at a price)."
    },
    "amount": {
      "type": "number",
      "description": "Size of the order in contracts/shares."
    },
    "price": {
      "type": "number",
      "description": "Required for limit orders"
    },
    "denom": {
      "type": "string",
      "enum": [
        "usdc",
        "shares"
      ],
      "description": "Hosted mode: amount unit."
    },
    "slippage_pct": {
      "type": "number",
      "description": "Hosted mode: maximum market-order slippage percentage."
    },
    "fee": {
      "type": "number",
      "description": "Optional fee rate (e.g., 1000 for 0.1%)"
    },
    "builder": {
      "type": "string",
      "description": "Hyperliquid builder address to attach to the order action."
    },
    "builderFee": {
      "type": "number",
      "description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
    },
    "tickSize": {
      "type": "number",
      "description": "Optional override for Limitless/Polymarket"
    },
    "negRisk": {
      "type": "boolean",
      "description": "Optional override to skip neg-risk lookup (Polymarket)"
    },
    "onBehalfOf": {
      "type": "number",
      "description": "Limitless delegated signing: profile ID to trade on behalf of"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "marketId",
    "outcomeId",
    "side",
    "type",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
WritesIdempotent
cancelOrderCancel an existing open order.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderId"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
compareMarketPricesCompare live prices for the same market across venues. Finds identity matches and returns side-by-side best bid/ask prices so you can spot price differences at a glance.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "params": {
      "type": "object"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "params"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
createOrderPlace a new order on the exchange.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "The market to trade on."
    },
    "outcomeId": {
      "type": "string",
      "description": "The outcome to trade."
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ],
      "description": "Order side: buy or sell."
    },
    "type": {
      "type": "string",
      "enum": [
        "market",
        "limit"
      ],
      "description": "Order type: market (execute immediately) or limit (resting at a price)."
    },
    "amount": {
      "type": "number",
      "description": "Size of the order in contracts/shares."
    },
    "price": {
      "type": "number",
      "description": "Required for limit orders"
    },
    "denom": {
      "type": "string",
      "enum": [
        "usdc",
        "shares"
      ],
      "description": "Hosted mode: amount unit."
    },
    "slippage_pct": {
      "type": "number",
      "description": "Hosted mode: maximum market-order slippage percentage."
    },
    "fee": {
      "type": "number",
      "description": "Optional fee rate (e.g., 1000 for 0.1%)"
    },
    "builder": {
      "type": "string",
      "description": "Hyperliquid builder address to attach to the order action."
    },
    "builderFee": {
      "type": "number",
      "description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
    },
    "tickSize": {
      "type": "number",
      "description": "Optional override for Limitless/Polymarket"
    },
    "negRisk": {
      "type": "boolean",
      "description": "Optional override to skip neg-risk lookup (Polymarket)"
    },
    "onBehalfOf": {
      "type": "number",
      "description": "Limitless delegated signing: profile ID to trade on behalf of"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "marketId",
    "outcomeId",
    "side",
    "type",
    "amount"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive
fetchAllOrdersFetch authenticated order history across open and closed orders.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "required for Limitless (slug)"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchArbitrageFind Arbitrage Opportunities
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minSpread": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchBalanceFetch account balances.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "address": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchClosedOrdersFetch authenticated closed orders.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string",
      "description": "required for Limitless (slug)"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque pagination cursor from a previous response"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchEventFetch a single event by lookup parameters. Convenience wrapper around fetchEvents() that returns a single result or throws EventNotFound.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque venue pagination cursor, where supported."
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "eventId": {
      "type": "string",
      "description": "Direct lookup by event ID"
    },
    "slug": {
      "type": "string",
      "description": "Lookup by event slug"
    },
    "series": {
      "type": "string",
      "description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
    },
    "filter": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventFilterCriteria"
        }
      ],
      "description": "Optional client-side filter applied after fetching"
    },
    "category": {
      "type": "string",
      "description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchEventMatchesFind the same or related event on other venues. Two modes: **Lookup mode** (eventId/slug provided): Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched event pairs from the catalog. Supports query and category params for filtering.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched event titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "event": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedEvent"
        }
      ],
      "description": "Pass a UnifiedEvent directly instead of eventId/slug."
    },
    "eventId": {
      "type": "string",
      "description": "Lookup a specific event by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchEventMetadataFetch venue-native metadata for a specific event when the exchange exposes a dedicated metadata endpoint. Kalshi implements this for `GET /events/{event_ticker}/metadata`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "eventTicker": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "eventTicker"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchEventsFetch events with optional keyword search. Events group related markets together (e.g., "Who will be Fed Chair?" contains multiple candidate markets).
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque venue pagination cursor, where supported."
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "eventId": {
      "type": "string",
      "description": "Direct lookup by event ID"
    },
    "slug": {
      "type": "string",
      "description": "Lookup by event slug"
    },
    "series": {
      "type": "string",
      "description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
    },
    "filter": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventFilterCriteria"
        }
      ],
      "description": "Optional client-side filter applied after fetching"
    },
    "category": {
      "type": "string",
      "description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchEventsPaginatedPaginated variant of {@link fetchEvents}. On the first call (no `cursor`), all events are fetched from the exchange and cached in an in-memory snapshot. A cursor is returned along with the first page. Subsequent calls with that cursor serve additional pages directly from the cached snapshot -- no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "filter": {
      "$ref": "#/components/schemas/EventFilterCriteria"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchHedgesFind Hedging Opportunities
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMarketFetch a single market by lookup parameters. Convenience wrapper around fetchMarkets() that returns a single result or throws MarketNotFound.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "slug": {
      "type": "string",
      "description": "For slug/ticker lookup"
    },
    "marketId": {
      "type": "string",
      "description": "Direct lookup by market ID"
    },
    "outcomeId": {
      "type": "string",
      "description": "Reverse lookup -- find market containing this outcome"
    },
    "eventId": {
      "type": "string",
      "description": "Find markets belonging to an event"
    },
    "page": {
      "type": "number",
      "description": "For pagination (used by Limitless)"
    },
    "similarityThreshold": {
      "type": "number",
      "description": "For semantic search (used by Limitless)"
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMarketMatchesFind the same or related market on other venues. Two modes: **Lookup mode** (marketId/slug/url provided): Given a market on one venue, discover semantically equivalent markets across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched market pairs from the catalog. Supports query, category, minDifference, and sort params for filtering.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMarketsFetch markets with optional filtering, search, or slug lookup. Always hits the exchange API — results reflect the live state at the time of the call.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "description": "Alias for `sourceExchange`."
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "offset": {
      "type": "number",
      "description": "Pagination offset — number of results to skip"
    },
    "sort": {
      "type": "string",
      "enum": [
        "volume",
        "liquidity",
        "newest"
      ],
      "description": "Sort order for results"
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "inactive",
        "closed",
        "all"
      ],
      "description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
    },
    "searchIn": {
      "type": "string",
      "enum": [
        "title",
        "description",
        "both"
      ],
      "description": "Where to search (default: 'title')"
    },
    "query": {
      "type": "string",
      "description": "For keyword search"
    },
    "slug": {
      "type": "string",
      "description": "For slug/ticker lookup"
    },
    "marketId": {
      "type": "string",
      "description": "Direct lookup by market ID"
    },
    "outcomeId": {
      "type": "string",
      "description": "Reverse lookup -- find market containing this outcome"
    },
    "eventId": {
      "type": "string",
      "description": "Find markets belonging to an event"
    },
    "page": {
      "type": "number",
      "description": "For pagination (used by Limitless)"
    },
    "similarityThreshold": {
      "type": "number",
      "description": "For semantic search (used by Limitless)"
    },
    "sourceExchange": {
      "type": "string",
      "description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMarketsPaginatedFetch markets with cursor-based pagination backed by a stable in-memory snapshot. On the first call (or when no cursor is supplied), fetches all markets once and caches them. Subsequent calls with a cursor returned from a previous call slice directly from the cached snapshot — no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "limit": {
      "type": "number"
    },
    "cursor": {
      "type": "string"
    },
    "filter": {
      "$ref": "#/components/schemas/MarketFilterCriteria"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMatchedMarketsMatched Markets
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minDifference": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMatchedPricesCompare Matched Market Prices
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "minDifference": {
      "type": "number"
    },
    "category": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "relations": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "identity",
          "complement",
          "subset",
          "superset",
          "overlap",
          "disjoint"
        ]
      },
      "description": "Comma-separated relation types to include (default: 'identity')."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchMyTradesFetch authenticated user trade history.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string",
      "description": "filter to specific outcome/ticker"
    },
    "marketId": {
      "type": "string",
      "description": "filter to specific market"
    },
    "since": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records after this date"
    },
    "until": {
      "type": "string",
      "format": "date-time",
      "description": "Only return records before this date"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "cursor": {
      "type": "string",
      "description": "for Kalshi cursor pagination"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchOHLCVFetch historical OHLCV (candlestick) price data for a specific market outcome.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "resolution": {
      "type": "string",
      "description": "Required for candle aggregation"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the time range"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "End of the time range"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchOpenOrdersFetch all open orders, optionally filtered by market.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "marketId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchOrderFetch a specific order by ID.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderId": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchOrderBookFetch the order book (bids/asks) for a specific outcome. Supports live and historical queries. For historical data, pass `since` to get a single snapshot, or `since` + `until` to get an array of fully reconstructed L2 books from the archive. Range queries return up to `limit` snapshots (default 100, max 1000).
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "side": {
      "type": "string",
      "enum": [
        "yes",
        "no"
      ],
      "description": "Outcome side: 'yes' or 'no'. Required for exchanges like Limitless where the API returns a single orderbook per market."
    },
    "outcome": {
      "type": "string",
      "description": "Outcome alias: 'yes' or 'no', or an outcome token ID. When set, the first argument is treated as a market ID and this value selects which outcome's order book to fetch. Accepts the literal strings 'yes'/'no' (resolved via a market lookup) or a raw outcome token ID."
    },
    "since": {
      "type": "number",
      "description": "Unix timestamp (ms) — fetch a historical snapshot at or before this time, or the start of a range when combined with `until` (hosted API only)."
    },
    "until": {
      "type": "number",
      "description": "Unix timestamp (ms) — end of a historical range. When combined with `since`, returns an array of reconstructed L2 OrderBook snapshots between `since` and `until` (hosted API only)."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchOrderBooksBatch variant of {@link fetchOrderBook}. Fetches order books for multiple outcomes in a single request where the exchange supports it.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeIds": {},
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeIds"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchPositionsFetch current user positions across all markets.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "address": {
      "type": "string"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchRelatedMarketsFind related markets across venues. Discovers subset/superset market relationships where one market's outcome implies another, with live prices.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "query": {
      "type": "string",
      "description": "Keyword search across matched market titles."
    },
    "category": {
      "type": "string",
      "description": "Filter matches by category."
    },
    "market": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UnifiedMarket"
        }
      ],
      "description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
    },
    "marketId": {
      "type": "string",
      "description": "Lookup a specific market by ID. Omit for browse mode."
    },
    "slug": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "relation": {
      "type": "string",
      "enum": [
        "identity",
        "complement",
        "subset",
        "superset",
        "overlap",
        "disjoint"
      ]
    },
    "minConfidence": {
      "type": "number"
    },
    "limit": {
      "type": "number"
    },
    "includePrices": {
      "type": "boolean"
    },
    "minDifference": {
      "type": "number",
      "description": "Minimum price difference between venues. Browse mode only."
    },
    "sort": {
      "type": "string",
      "enum": [
        "confidence",
        "volume",
        "priceDifference"
      ],
      "description": "Sort order. Browse mode only."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchSeriesFetch the recurring series (fourth tier above Event -> Market -> Outcome) that this venue exposes. Returns an empty array on venues without a series concept (Limitless, Smarkets, Probable, Metaculus, Baozi, Hyperliquid, SuiBets, Polymarket US). - `params.id` -> a single matching series with its events populated where supported. - no params -> the full list, typically without nested events for payload size.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
fetchTradesFetch raw trade history for a specific outcome.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "outcomeId": {
      "type": "string"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the time range"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "End of the time range"
    },
    "limit": {
      "type": "number",
      "description": "Maximum number of results to return (max {@link MAX_TRADES_LIMIT})"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "outcomeId"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
getAuthNonceGet a cryptographic nonce for Web3 login.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
getExecutionPriceCalculate the volume-weighted average execution price for a given order size. Returns 0 if the order cannot be fully filled.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderBook": {
      "type": "object",
      "description": "Order book with bids and asks arrays. Each level has price and size.",
      "properties": {
        "bids": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        },
        "asks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    },
    "amount": {
      "type": "number"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderBook",
    "side",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
WritesIdempotent
getExecutionPriceDetailedCalculate detailed execution price information including partial fill data.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "orderBook": {
      "type": "object",
      "description": "Order book with bids and asks arrays. Each level has price and size.",
      "properties": {
        "bids": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        },
        "asks": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "side": {
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    },
    "amount": {
      "type": "number"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "orderBook",
    "side",
    "amount"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
WritesIdempotent
isSessionActiveCheck if a session is active for the given wallet address.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
loadMarketsLoad and cache all markets from the exchange into `this.markets` and `this.marketsBySlug`. Subsequent calls return the cached result without hitting the API again. This is the correct way to paginate or iterate over markets without drift. Because `fetchMarkets()` always hits the API, repeated calls with different `offset` values may return inconsistent results if the exchange reorders or adds markets between requests. Use `loadMarkets()` once to get a stable snapshot, then paginate over `Object.values(exchange.markets)` locally.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "reload": {
      "type": "boolean"
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "idempotentHint": true,
  "readOnlyHint": false
}
WritesIdempotent
loginWithSignatureLogin with a signed nonce to obtain session credentials.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "signature": {
      "type": "string"
    },
    "nonce": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "walletAddress",
    "signature",
    "nonce"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
logoutLogout and invalidate the current session.
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "walletAddress": {
      "type": "string"
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange"
  ]
}
Annotations
{
  "readOnlyHint": true
}
Read only
submitOrderSubmit a pre-built order returned by buildOrder().
Input schema
{
  "type": "object",
  "properties": {
    "exchange": {
      "type": "string",
      "enum": [
        "polymarket",
        "kalshi",
        "kalshi-demo",
        "limitless",
        "probable",
        "baozi",
        "myriad",
        "opinion",
        "metaculus",
        "smarkets",
        "polymarket_us",
        "gemini-titan",
        "hyperliquid",
        "suibets",
        "rain",
        "hunch",
        "mock",
        "router"
      ],
      "description": "The prediction market exchange to target."
    },
    "built": {
      "type": "object",
      "properties": {
        "exchange": {
          "type": "string",
          "description": "The exchange name this order was built for."
        },
        "params": {
          "allOf": [
            {
              "$ref": "#/components/schemas/CreateOrderParams"
            }
          ],
          "description": "The original params used to build this order."
        },
        "signedOrder": {
          "type": "object",
          "additionalProperties": {},
          "description": "For CLOB exchanges (Polymarket): the EIP-712 signed order ready to POST to the exchange's order endpoint."
        },
        "tx": {
          "type": "object",
          "properties": {
            "to": {
              "type": "string"
            },
            "data": {
              "type": "string"
            },
            "value": {
              "type": "string"
            },
            "chainId": {
              "type": "number"
            }
          },
          "required": [
            "to",
            "data",
            "value",
            "chainId"
          ],
          "description": "For on-chain AMM exchanges: the EVM transaction payload. Reserved for future exchanges; no current exchange populates this."
        },
        "raw": {
          "description": "The raw, exchange-native payload. Always present."
        },
        "expiry": {
          "type": "number",
          "description": "Unix epoch (ms) when this built order expires server-side. Submitting after expiry returns BUILT_ORDER_EXPIRED."
        }
      },
      "required": [
        "exchange",
        "params",
        "raw"
      ],
      "description": "The built order object from buildOrder."
    },
    "credentials": {
      "type": "object",
      "description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "apiSecret": {
          "type": "string"
        },
        "passphrase": {
          "type": "string"
        },
        "apiToken": {
          "type": "string"
        },
        "privateKey": {
          "type": "string"
        },
        "signatureType": {
          "type": "string"
        },
        "funderAddress": {
          "type": "string"
        }
      }
    },
    "verbose": {
      "type": "boolean",
      "description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
    }
  },
  "required": [
    "exchange",
    "built"
  ]
}
Annotations
{
  "destructiveHint": true
}
Destructive

Resources 0

  • None observed.

Resource templates 0

  • None observed.

Prompts 0

  • None observed.

Remote endpoints

EndpointTransportAuthenticationHealthObserved
No verified remote endpoint is linked.

pmxt-mcp Server questions

How do I install pmxt-mcp Server?

Install the selected package version with: npm install --save-exact @pmxt/mcp@2.54.0

What tools does pmxt-mcp Server provide?

pmxt-mcp Server exposed 38 tools during independent protocol observation, including buildOrder, cancelOrder, compareMarketPrices, createOrder, fetchAllOrders, fetchArbitrage, fetchBalance, fetchClosedOrders, and others.

Is pmxt-mcp Server secure?

Our scanner tested version 2.54.0 without proving a finding in the methods exercised. This is not a guarantee that every deployment is secure.

Explore related MCP server guides

Curated product and capability guides containing this catalog record.

Official vs Community MCP ServersMCP Servers With Completed Verification

Let’s talk about MCP security.

Share your details and our security team will contact you.