Skills

Trading Skills

Natural-language trading workflows that orchestrate the MCP tools. You describe the goal, the skills propose a plan, you approve.

View as Markdown

Beta, pre-release. The NinjaTrader MCP server and its trading skills are in beta and aren’t yet generally available. The beta runs on two environments. Demo trades simulated money, and Live trades real money. Start on Demo. Server hostnames, the tool set, the skills, and the onboarding flow may change before launch.

The trading skills are a set of 13 workflows that sit on top of the MCP tools. Instead of calling tools one at a time, you describe what you want in plain English, such as “size a trade on NQ with a 30-point stop,” and the right skill picks the tools, does the math, and shows you a plan. Nothing executes without your approval.

How skills relate to tools

Tools are single actions the MCP server exposes: one call reads your portfolio, one fetches a quote, one places an order. Skills are workflows your agent runs on top of those tools. Each skill sequences the right calls, adds the analysis in between, such as position sizing, value-area math, correlation, and trade counterfactuals, then narrates the result. You never invoke a skill by name: anything close to its trigger phrases routes to it automatically. The Skill Reference lists every skill and what activates it.

Requirements

  • An AI client with agent-skills support. The skills run on Claude Code, Claude Desktop, Codex, and Cursor. Any other client can connect to the same MCP server and use the tools directly, without the skills.
  • The NinjaTrader MCP server connected and authorized. See Connect Your AI Agent and Authentication & Access. The skills name every tool without a prefix, such as place_order, and your client adds its own prefix at run time, so the server name doesn’t affect them. The plugin bundles the Demo server as ninjatrader-demo and the Live server as ninjatrader-live. Use those names if you register a server by hand.
  • Python 3.10 or later, used by the analytics scripts the skills run. Charting also needs matplotlib. Install it with pip install matplotlib.

Install the skills

With the skills command-line tool

npx skills add NT-NinjaTrader/mcp-skills

The command-line tool walks you through picking skills and installs them into your agent’s skills directory.

With plugin commands

In Claude Code:

/plugin marketplace add NT-NinjaTrader/mcp-skills
/plugin install ninjatrader@mcp-skills

In Codex:

codex plugin marketplace add NT-NinjaTrader/mcp-skills
codex plugin add ninjatrader@mcp-skills
codex mcp login ninjatrader-demo

All 13 skills become available immediately. Confirm with /plugin list in Claude Code: ninjatrader should appear with the 13 skills underneath.

In Claude Desktop, add the marketplace first, then install the plugin from it:

  1. Open Customize in the left sidebar, then select the Plugins tab.
  2. Select Add → Add marketplace, then add the repository https://github.com/NT-NinjaTrader/mcp-skills.
  3. Select Browse, find ninjatrader, then select Install.
  4. Start a new chat. The 13 skills load with the plugin.

Plugins need a paid Claude plan. For Cowork, open the Cowork tab before you open Customize.

In Cursor, add the server from the repository’s mcp.json file, then install the skills with the skills command-line tool shown earlier.

Your first session

Start on Demo. Even though nothing executes without your approval, Demo lets you get familiar with how the skills behave against simulated fills before pointing them at a live account.

Open a new chat. The first time you mention a symbol or trading concept, the MCP connection authenticates through OAuth in your browser. From there, a realistic sequence looks like:

You. What’s the front month for ES?

Agent. Front month is ESM6: 1.9M open interest vs ESU6’s 180k. No rollover action needed for another ~6 weeks.

You. OK, buy 4, stop 10 points, target 2× that.

Agent. Long 4 ESM6 at market around 7108: stop at 7098, target at 7128. Risk $2,000 at 1R, reward $4,000 at 2R. That’s 2.7% of your $75k net liquidation value, which exceeds your typical 1-2%. Want to size down to 2 contracts, or proceed at 4?

You. 2 is fine. Place it.

Agent. Here’s the payload I’ll submit for the bracket. Approve?

The skills don’t remember anything between sessions. Each chat starts fresh. The MCP server holds your account state and history. That’s what the skills read.

To verify the skills are routing, try one of these. Each should trigger a different skill:

  • “What’s the front month for ES?”
  • “Size a trade on ES with a 10-point stop.”
  • “Best and worst trades?”

If a prompt routes to the wrong skill or nothing happens, see the feedback channel in Troubleshooting.

Safety

  • No execution without your approval. The skills propose order payloads such as place_order, modify_order, and close_position, and you press the button. Even if you ask the skills to trade on your behalf, they still show the payload and ask.
  • The server has final say. estimate_order is the authoritative pre-trade risk check. If it rejects a proposal, the skills stop.
  • Hard limits are server-side. Your real limits, such as max position size, daily loss limit, and trade-volume caps, live in your account settings, and the server enforces them before any order fills, regardless of what a skill proposes.
  • You control the connection. The OAuth consent screen lists each permission individually and lets you set optional risk limits: hard caps on total exposure and per-session volume that the server checks on every opening order this connection sends. See Safety & Disclosures.

Live and demo environments

Live and Demo are two separate MCP servers with completely separate accounts. Demo runs at https://mcp-demo.tradovateapi.com/mcp, and Live runs at https://mcp-live.tradovateapi.com/mcp. A Demo account exists only on the Demo server, and a Live account only on the Live server. Start on Demo.

If you have both connected, every workflow sticks to the server that owns the account: once a skill resolves an account on one server, every follow-up call, whether quotes, orders, alerts, or history, goes through that same server. Say the environment explicitly, such as on demo or on live, whenever it could be ambiguous. See Overview → Environments for more.

Next steps