Tools
Beta, pre-release. The NinjaTrader MCP server and its trading skills are in beta and aren’t yet generally available. The beta runs on Demo only, which trades simulated money. Live access opens later. Server hostnames, the tool set, the skills, and the onboarding flow may change before launch.
Tools are the actions your agent can take. Each tool declares an input schema, the access it requires, and a behavior hint your client uses to decide whether to ask for your approval before running it.
- Read-only tools only query data. They never change your account.
- Write tools change your account by placing or modifying orders, flattening positions, or changing risk settings. The server marks them with the MCP protocol’s destructive-action flag,
destructiveHint, which is why most clients pause for confirmation before running them, and why some clients describe these actions as “destructive.”
Your agent discovers the full, live tool list from the server when it connects, so the catalog it sees always matches what the server actually offers. The reference below groups every tool by what it does.
The agent has a built-in describe tool for looking up enum values such as
order types, statuses, and time-in-force, plus field meanings and worked examples. If
you’re unsure what a value means, ask your agent to “describe” it.
Recommended workflow
The server follows a natural trading flow. A typical sequence is:
my_portfolio: see accounts, positions, balances, and working orders.search_contracts: find the exact tradable symbol.market_snapshot: check the live quote, spec, and margin.estimate_order: pre-flight the margin, fees, and feasibility of a hypothetical order.place_order: submit it.
Account & portfolio
Market data & contracts
Trading & orders
Every order the agent submits must also pass the account’s pre-trade risk checks before it reaches the market. estimate_order runs the same checks as a dry run.
Bracket legs are offsets, not absolute prices. In place_order, a bracket’s
profitTarget and stopLoss specify signed offsets from the entry’s working price, in
contract-native units, not absolute prices. In modify_order, by contrast, the price
fields are absolute. Ask your agent to describe(topic='place_order_examples') for
bracket patterns.
History & reporting
Date inputs accept YYYY-MM-DD or natural terms like today, yesterday, this week,
last month, or last N days. History tools support a compact columns response
format that’s about 50% smaller on large histories. A fields filter to keep only the
paths you need is available on my_portfolio, market_snapshot, and user_profile.
Risk
Alerts
Analytics
The calendar tools are available when the deployment has the market-info service enabled. The timeline tools appear in your agent’s tool list only when your account has the timeline feature enabled.
Utility
describe is how the agent looks up the exact valid values for enumerated fields, plus complex output structures and worked examples. For example, action accepts Buy or Sell. orderType accepts Market, Limit, Stop, StopLimit, TrailingStop, MIT, LimitIfTouched, and more. timeInForce accepts Day, GTC, IOC, FOK, or GTD. Other enumerated fields include ordStatus, barType, productType, and cashChangeType.
Rate limits
Each tool has a per-minute request budget, and the server applies a short time penalty when your agent exceeds a budget. The limits are generous for normal agent use. Read-heavy tools like my_portfolio and market_snapshot allow far more frequent calls than write tools. If your agent is making rapid repeated calls and starts getting throttled, have it slow down and retry. This mirrors the rate-limit behavior of the Trade API.

