Skip to main content
Glama

Prepare or place a user-signed limit order. Union on `requiresSignature`: true → sign the returned EIP-712 typedData and resubmit; else the order was placed.

problee_place_limit_order

Prepare or place a limit order. Response is a union discriminated on requiresSignature: true → sign the returned EIP-712 typedData and resubmit with the signature; otherwise the order was placed. The user wallet signs the EIP-712 order; the protocol operator key is never used as user identity. Reusing a live clOrdId with different (market, side, price, amount, kind) returns 409 CLORDID_CONFLICT.

Examples: First call without signature — server returns EIP-712 typedData to sign; Signing branch — sign typedData exactly as returned, then resubmit with orderSignature + nonce; Resubmit with wallet signature and the nonce from the signing payload

Input Schema

NameRequiredDescriptionDefault
kindNo0=buy/bid, 1=sell/ask
sideYes0=outcome 1, 1=outcome 2
nonceNoOrder nonce for a user-signed EIP-712 order
priceNoLimit price in basis points. Must land on this market's price grid, published as tradingRules.priceBands: default markets are BANDED — 10-bps rungs below 500 and above 9500, 100-bps rungs in between — and an off-grid price is refused with 400 PRICE_OFF_TICK naming the two nearest legal prices. Resting orders (GTC or postOnly) meet tradingRules.minRestingShares and minRestingExpirySeconds. Passive postOnly orders have no collateral-notional minimum (minRestingNotional is 0). Active BUY orders (postOnly absent or false) retain the book snapshot's effectiveMinBuyAmount: principal notional for GTC, total budget including fees for IOC/FOK. IOC/FOK SELL meets minSellShares. A verified entire-position SELL is exempt from size floors. There is no longer a per-fill collateral floor: settlement stopped asserting the market's minBuyAmount in the 2026-08-31 beacon upgrade, so that field is a deprecated, unenforced record and no size need be checked against it. Provide either price or priceDecimal.
amountYesOrder size in OUTCOME-TOKEN smallest units, using the market collateral's decimals (PM: 6 — always read decimals from market metadata). One whole outcome token redeems for one whole collateral token; this field is NOT a collateral amount. Collateral locked = price × amount ÷ 10000.
expiryNoUnix timestamp expiry
chainIdNoChain id for the market address. Required when the same market address exists on multiple chains.
clOrdIdNoClient-supplied order id (maximum 200 characters; optional at placement; off-chain and not part of the EIP-712 Order / orderHash). Used for reconciliation, cancel-by-clOrdId, and live-order idempotency: the same (wallet, clOrdId) with matching (market, side, price, amount, kind) returns the existing open/partially-filled order; a divergent body yields 409 CLORDID_CONFLICT. After the order reaches a terminal status the id may be reused. Orthogonal to the HTTP Idempotency-Key header (transport-level).
postOnlyNoMaker-only (off-chain, not signed): reject the order if any part would cross the book on placement, so it can never pay taker.
proofNonceYesRequired single-use nonce for the wallet proof. Fetch from POST /api/auth/nonce; consumed on verification so the proof cannot be replayed.
timeInForceNoTime-in-force (off-chain, not signed): GTC rests until filled/cancelled (default); IOC fills what crosses now and cancels the remainder; FOK fills the full amount or is rejected.
priceDecimalNoLimit price as a 0–1 decimal probability (agent convention): 0.55 = 5500 bps. Converted by rounding to the nearest whole BPS; the result must then land on this market's price grid (tradingRules.priceBands) or placement returns PRICE_OFF_TICK with the two nearest legal prices — a stated limit price is never silently moved. Provide either price (bps) or priceDecimal — not both.
marketAddressYesOrderbook market address
walletAddressYesWallet address placing the order
idempotencyKeyYesRequired write-safety key. Use a new key after signing because the signed submission is a different request.
orderSignatureNoUser EIP-712 signature over the order. Omit to receive signing payload.
walletSignatureYesAction-bound wallet proof. Sign the canonical 'problee-mcp-auth:…' challenge (binds agent, apiKey, tool, scope, chain, resource, payloadHash, nonce, timestamp).
signatureTimestampYesUnix timestamp (seconds) used in the signed challenge message

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the general write profile (readOnlyHint false, destructiveHint false, openWorldHint true); the description goes well beyond by disclosing the two-phase signature protocol, that the protocol operator key is never used as user identity, and the exact 409 CLORDID_CONFLICT failure mode for clOrdId reuse. It also clarifies that signing is a distinct request requiring a fresh idempotency key, which is the kind of detail an agent cannot infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The union rule is correctly front-loaded, but the three trailing 'Examples' restate the same two branches almost verbatim ('First call without signature — server returns EIP-712 typedData to sign' repeats sentence two). The only genuinely new information in that block is the parameter pairing of orderSignature + nonce, so the tail is largely redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter write tool with an output schema, the description covers the hard part: the prepare/sign/resubmit lifecycle and the idempotency conflict rule. What remains unstated is prerequisite ordering relative to the wallet-proof nonce and how this tool relates to the batch and plan siblings, which the schema alone cannot resolve.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description still adds the sequencing semantics of `orderSignature` and `nonce` that the schema documents only in isolation. It does not cover the other 16 parameters, but the schema already carries unusually detailed semantics for those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Prepare or place a limit order') and immediately qualifies the dual mode via the `requiresSignature` union, so an agent knows this single tool covers both the prepare and the submit phase. It stops short of naming siblings, so it does not help the agent distinguish this from batch placement or the other order-preparation tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The branching guidance is explicit: call without `orderSignature` to get signable typedData, sign it exactly as returned, then resubmit with the signature plus the nonce from the payload. The clOrdId reuse rule (409 CLORDID_CONFLICT on divergent body, existing order returned on matching body) gives a concrete usage condition. No guidance is given on when to prefer this over batch placement or other preparation siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.