Skip to main content
Glama

kalshi_place_order

Destructive

Place a limit order on Kalshi by stating outcome (yes/no), action (buy/sell), and price as a probability (0-1). Automatically converts to Kalshi's YES-book bid/ask. Runs as a dry run by default to prevent accidental trades.

Instructions

Place a Kalshi limit order. State it naturally: outcome yes|no, action buy|sell, price = probability of THAT outcome in (0,1). Translated to Kalshi's YES-book bid/ask internally. DRY-RUN by default.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
priceYes
actionYes
tickerYes
outcomeYes
time_in_forceNogood_till_cancelled

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.18.1
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "kalshi_place_orderOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv0.3.0

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already indicate destructive and non-idempotent behavior. The description adds valuable context: the order is a limit order, prices are probabilities, the request is internally translated to Kalshi's YES-book, and it is DRY-RUN by default. It does not disclose the full side effects of a live order or how dry-run is toggled, but the added behavioral detail is meaningful.

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

Conciseness4/5

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

The description is short and front-loaded, with each sentence adding a distinct piece of information: the action, the natural-language mapping, the internal translation, and the safety default. The phrase 'State it naturally' is slightly vague, but overall the structure is efficient and readable.

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

Completeness2/5

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

For a trading tool with six parameters, no output schema, and no schema-level descriptions, the description omits key context: the response format, how to actually place a live order versus dry-run, the impact on positions or balance, and the meaning of time_in_force. It is enough to make a basic call but not fully complete for safe autonomous use.

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?

With 0% schema description coverage, the description must compensate. It explains outcome (yes|no), action (buy|sell), and price (probability of that outcome in 0,1), which is genuinely helpful. However, it leaves count, ticker, and time_in_force entirely unexplained, leaving a meaningful gap for a six-parameter tool.

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: 'Place a Kalshi limit order.' It also clarifies the meaning of outcome and action, which helps an agent understand what the tool does. It does not explicitly differentiate itself from the many sibling order-management tools, but the core purpose is unmistakable.

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

Usage Guidelines2/5

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

The description gives natural-language usage syntax but offers no guidance on when to use this tool versus alternatives like kalshi_cancel_order, place_order, or check_order. It also does not explain whether the dry-run behavior can be overridden or when a real order should be placed, leaving important selection and timing context implicit.

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