MCP server for PMXT - the unified prediction market API. Provides tools to interact with multiple prediction market exchanges (Polymarket, Kalshi, Limitless, etc.) through a unified interface.
PMXT MCP exposes 4 trading tools with complete input schemas and risk annotations. Naming follows verb_noun convention (buildOrder, cancelOrder, createOrder, compareMarketPrices). Descriptions are present and substantive (100-200 chars), explaining WHAT and WHEN. However, parameter descriptions are sparse, many lack guidance on format, constraints, or dependencies. The 'credentials' object is well-documented but exposes sensitive fields as parameters (apiKey, privateKey), violating secret-injection patterns. Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from visible code. Tool composition is sound (each does one thing), but the credentials parameter design is a critical security flaw.
Build 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().
Cancel an existing open order.
Compare 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.
Place a new order on the exchange.
Credentials exposed as tool parameters (apiKey, privateKey, apiSecret). These must never appear in tool input, use server-side secret injection via environment variables or vault. Agent traces log all parameters, leaking secrets into logs and prompt history.
Output schemas not documented. LLMs cannot predict response structure, forcing them to guess what fields are returned. This breaks tool chaining, if buildOrder returns a 'signedOrder' field but createOrder expects 'orderPayload', the agent cannot connect them.
Parameter descriptions lack format/constraint guidance. 'price' has no min/max; 'amount' has no bounds; 'slippage_pct' has no range. LLMs will pass absurd values (negative amounts, 10000% slippage) that break the API.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
compareMarketPrices has an opaque 'params' parameter (type: object, no properties defined). LLMs cannot know what fields to pass. This violates the constrained-input pattern and makes the tool unusable without external documentation.
No error handling guidance. If an order fails (insufficient balance, invalid market, network timeout), the tool provides no recovery hints. LLMs cannot determine if the error is retryable, user-fixable, or fatal.