Skip to main content
Glama
kite-connect-mcp

kite-connect-mcp

Place an order (dry run by default)

place_order
Destructive

Preview and submit BUY/SELL orders to Zerodha Kite Connect: dry runs validate margin and safety checks, then a confirmed live call sends the order.

Instructions

Place an order. DRY RUN BY DEFAULT: with dry_run=true (the default) nothing is sent; the answer shows the exact request, the estimated value, Kite's margin calculation, every safety check and, when live trading is enabled and the checks pass, a confirmation_token. To send it, repeat the identical call with dry_run=false and that token. Live sends are checked against the server's caps and allow-lists and written to the audit log.

Placing an order only registers it with Kite's OMS; check get_order_history for its fate. Live API orders must come from the static IP registered in the Kite developer console (SEBI rule, since April 2026).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "exchange": "<exchange>",
      "tradingsymbol": "<tradingsymbol>",
      "transaction_type": "<transaction_type>",
      "quantity": "<quantity>",
      "product": "<product>",
      "order_type": "<order_type>"
    },
    "name": "place_order"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagNoalphanumeric label, max 20 chars
priceNolimit price (LIMIT, SL)
dry_runNotrue (default): validate and preview only, nothing is sent. false: send it live, which needs live trading enabled on the server and the confirmation_token from a dry run
productYesCNC delivery, MIS intraday, NRML F&O carry, MTF margin
varietyNoregular, amo (after market), co (cover), iceberg, auctionregular
exchangeYesNSE, BSE (equity), NFO, BFO (F&O), CDS, BCD, MCX
quantityYesunits (NFO/BFO: a multiple of the lot size)
validityNoDAY (default), IOC, or TTL
autosliceNosplit a quantity above the exchange freeze limit into up to 10 orders
order_typeYesMARKET, LIMIT, SL (stop-limit), SL-M (stop-market)
iceberg_legsNoiceberg only: number of legs
validity_ttlNominutes, for validity=TTL
tradingsymbolYese.g. INFY, NIFTY25NOVFUT
trigger_priceNotrigger (SL, SL-M; stop-loss for co)
auction_numberNoauction only (get_auctions)
iceberg_quantityNoiceberg only: quantity per leg
transaction_typeYesBUY or SELL
market_protectionNoMARKET / SL-M only: -1 automatic, or a % above 0 and up to 100
confirmation_tokenNothe confirmation_token returned by a dry run of this exact call (single use)
disclosed_quantityNoquantity shown in the market

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructive/openWorld/non-idempotent, but the description adds what those hints cannot: that the default call mutates nothing, what the preview contains (request, estimated value, margin calculation, safety checks, token), that the token is single-use and tied to an identical call, and that live sends are gated by server caps/allow-lists and written to the audit log.

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 paragraphs, front-loaded with the dry-run default in the very first clause, then the send procedure, then the OMS/regulatory caveats. No sentence is filler; even the SEBI static-IP note prevents a real failure mode.

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

Completeness5/5

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

For a 20-parameter mutation tool with no output schema, the description covers the pieces an agent can't infer: default-safe behavior, the confirmation handshake, what the preview returns, and the preconditions for a live send. Nothing needed to call it correctly or interpret the response 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 coverage is 100% and every one of the 20 parameters carries its own description, so the schema already does the parameter work. The description adds workflow meaning only for dry_run and confirmation_token (their coupling), and says nothing extra about the other 18 parameters. Baseline 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?

States a specific verb and resource ('Place an order') and immediately scopes it: placing only registers the order with Kite's OMS, and the agent is told to use get_order_history for its fate. That distinguishes it from the read-side siblings (get_orders, get_order_history, get_trades) without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit two-step workflow: the default dry_run=true previews without sending, then the identical call with dry_run=false plus the returned confirmation_token actually sends. It also names the alternative for follow-up (get_order_history) and states the prerequisite for live orders (live trading enabled, static IP registered in the developer console).

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