Skip to main content
Glama
agent-next

polymarket-paper-trader

Place limit order

place_limit_order

Place a resting paper limit order on Polymarket or Kalshi markets, reserving cash for buys and filling crossing orders immediately as a taker. Resting orders fill only when check_orders runs.

Instructions

Place a resting paper limit order on a Polymarket or Kalshi ('kalshi:') market.

Stores the order locally and reserves cash for a buy; an order that crosses the book fills at once as a taker. Resting orders fill only when check_orders runs. Use buy or sell for an immediate market-price fill.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideYes'buy' or 'sell'.
amountYesFor a buy, USD to spend (minimum 1.0 on Polymarket, none on Kalshi); for a sell, number of shares to sell.
accountNoPaper account name; any name without '/', '\', '..' or surrounding spaces. Each name is a separate local account. Default 'default'.default
outcomeYesOutcome to trade, e.g. 'yes' or 'no' (case-insensitive); must match one of the market's outcomes.
expires_atNoISO 8601 expiry timestamp, e.g. '2026-12-31T23:59:00Z'; required when order_type is 'gtd'. Default none.
order_typeNo'gtc' (open until filled or cancelled) or 'gtd' (expires at expires_at). Default 'gtc'.gtc
slug_or_idYesMarket slug or condition ID. For a Kalshi market use the slug 'kalshi:<TICKER>', e.g. 'kalshi:KXNBAGAME-26OCT16DENLAL-LAL'.
limit_priceYesLimit price strictly between 0 and 1, on the market's tick grid (e.g. 0.42).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.4.13
    • addedInput schema / properties / account / description
      Added value: +"Paper account name; any name without '/', '\\', '..' or surrounding spaces. Each name is a separate local account. Default 'default'."
    • addedInput schema / properties / amount / description
      Added value: +"For a buy, USD to spend (minimum 1.0 on Polymarket, none on Kalshi); for a sell, number of shares to sell."
    • addedInput schema / properties / expires_at / description
      Added value: +"ISO 8601 expiry timestamp, e.g. '2026-12-31T23:59:00Z'; required when order_type is 'gtd'. Default none."
    • addedInput schema / properties / limit_price / description
      Added value: +"Limit price strictly between 0 and 1, on the market's tick grid (e.g. 0.42)."
    • addedInput schema / properties / order_type / description
      Added value: +"'gtc' (open until filled or cancelled) or 'gtd' (expires at expires_at). Default 'gtc'."
    • addedInput schema / properties / outcome / description
      Added value: +"Outcome to trade, e.g. 'yes' or 'no' (case-insensitive); must match one of the market's outcomes."
    • addedInput schema / properties / side / description
      Added value: +"'buy' or 'sell'."
    • addedInput schema / properties / slug_or_id / description
      Added value: +"Market slug or condition ID. For a Kalshi market use the slug 'kalshi:<TICKER>', e.g. 'kalshi:KXNBAGAME-26OCT16DENLAL-LAL'."
  2. First observedv0.4.1

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say this is a non-read-only, non-idempotent, non-destructive open-world write. The description goes well beyond that: the order is stored locally, cash is reserved for buys, crossing orders fill immediately as taker, and resting orders fill only when check_orders runs. That lifecycle detail is exactly the behavioral context an agent needs.

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

Conciseness5/5

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

Three tight sentences: what it does, how it behaves (storage/reservation/fill mechanics), and the alternative. Behavioral nuance is front-loaded and there is no filler.

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?

With an output schema present, return values need not be described, and the description covers the core lifecycle plus slippage/fill semantics. Minor omissions remain, such as what happens on invalid tick-grid prices or how a resting order is later cancelled, but nothing essential to correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents side, amount, limit_price, order_type, expires_at, account and slug_or_id. The description adds no parameter-level meaning beyond what is already in the structured fields, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Place a resting paper limit order') and a concrete domain (Polymarket / Kalshi markets with the 'kalshi:<TICKER>' convention). It explicitly distinguishes itself from the sibling market-order tools by stating that buy/sell are for immediate fills.

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?

It names the alternative path ('Use buy or sell for an immediate market-price fill'), which is exactly the routing decision an agent faces. It does not spell out when a limit order is preferable over a market order (price control vs. fill certainty), so the guidance is clear but not exhaustive.

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