How to Connect Claude to NinjaTrader 8 with CrossTrade MCP
Claude Desktop was the original MCP client and remains the most reliable environment for connecting an AI assistant to NinjaTrader 8. CrossTrade MCP gives Claude typed access to your account state, journal, webhook history, NinjaScript surface, and Strategy Analyzer. This tutorial covers the full Claude Desktop setup. For the CLI version, see How to Use Claude Code with NinjaTrader 8.
What you will set up
- Claude Desktop with the CrossTrade MCP server registered
- OAuth consent with
mcp:readscope - The CrossTrade Add-On connected to NinjaTrader 8
- A first read-only prompt to verify the loop
Prerequisites
| Requirement | Detail |
|---|---|
| CrossTrade subscription | Elite |
| CrossTrade Add-On | v1.13.0 or higher |
| NinjaTrader 8 | Running, broker connected |
| Claude Desktop | Latest version with MCP support |
| Test account | Sim101 |
Start with mcp:read. Use Sim101 for the first test. Do not grant mcp:trade until you have validated the inspection workflows you actually want.
Step 1: Confirm CrossTrade and NinjaTrader 8 readiness
- Open NinjaTrader 8. Confirm broker connection.
- Open the CrossTrade Add-On panel inside NT8. Confirm the version is
v1.13.0or higher and the status shows connected. - Open the CrossTrade AI Clients page in a browser. Keep the tab open; you will see the new grant appear there after OAuth.
Step 2: Add the CrossTrade MCP server to Claude Desktop
- Open Claude Desktop.
- Open Settings → Developer → Edit Config.
- Paste the following block (merge with any existing
mcpServersmap):
{
"mcpServers": {
"crosstrade": {
"url": "https://app.crosstrade.io/v1/api/mcp"
}
}
}
- Save the config.
- Quit Claude Desktop completely and reopen.
Step 3: Complete OAuth
- On your next message that references CrossTrade, Claude opens a browser tab to the CrossTrade OAuth consent screen.
- Sign in if needed.
- Approve
mcp:readfor the first run. - The browser redirects back; Claude Desktop stores the token in its keychain.
The new grant should now appear on the CrossTrade AI Clients page.
Step 4: Verify capabilities
In Claude Desktop, paste:
Call GetMcpCapabilities and McpSelfTest. Tell me my CrossTrade add-on version,
NinjaTrader 8 version, backtest engine availability, and feature flags.
Stop after these two calls.
Expected response: a short report with the add-on version, NT8 version, backtest_engine.available: true, and the feature list. If anything is missing, see the troubleshooting section.
Step 5: First read-only prompt
Use read-only tools only. Confirm that CrossTrade MCP is connected, confirm
whether NinjaTrader 8 is connected through the CrossTrade add-on, list my
available accounts, and summarize any open positions or working orders.
Do not place, cancel, modify, flatten, deploy, or write anything.
Claude calls ListAccounts, GetConnections, ListPositions, ListOrders, GetAccountSummary, GetWatermarks. The response is a one-page brief of your current state.
Step 6: Ask Claude to summarize recent trades
Pull the last 20 closed trades on Sim101 from the journal. Group by instrument
and side. Report win rate, average win, average loss, and the three biggest
losers. Redact account identifiers in the summary.
This is the highest-value first workflow on any account. It runs entirely on mcp:read.
Step 7: Ask Claude to inspect TradingView webhook history
Pull TradingView webhook signals on Sim101 for the last 24 hours. For each
signal, find the matching add-on activity entry and the order or execution.
Tell me which signals filled, which were rejected, and which produced no order.
If you do not use TradingView webhooks, Claude will report no signals. If you do, this is the diagnostic that surfaces silent misses.
Step 8: (Optional) Claude Code for NinjaScript
When you want to write or modify NinjaScript, switch to Claude Code. The compile loop runs better in a CLI environment where Claude can edit local files and call MCP tools side by side. See How to Use Claude Code with NinjaTrader 8.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Tools missing | Config typo, app not restarted, or OAuth not completed | Re-check JSON, quit and reopen Claude Desktop, redo consent |
| 401 unauthorized | Token expired or revoked | Reauthorize from CrossTrade AI Clients |
| 403 with Elite required | Account below Elite | Upgrade |
| 408 timeout | NT8 closed or add-on disconnected | Open NT8, verify add-on |
| OAuth opens but fails | Browser signed in to a different CrossTrade account | Sign out of CrossTrade in that browser tab, retry |
| Add-on version warning | Below v1.13.0 | Update the add-on inside NT8 |
FAQ
Is Claude Desktop the only Claude client that works?
Claude Desktop and Claude Code are both MCP-native. Web Claude does not run local MCP. Claude Code is covered in a separate tutorial.
Can Claude place trades?
With mcp:trade scope, yes. With mcp:read (the default for this tutorial), no. The OAuth scope is the floor; prompt design adds confirmation gates.
What if I use a funded account?
Verify the firm's automation policy first. Apex prohibits automation; Topstep permits with caveats; others vary. Default to read-only on funded accounts.
Related
- Main site: Claude for NinjaTrader 8
- Docs: MCP Authentication
- Docs: MCP Client Configuration Examples
- Learn: Use Claude Code with NinjaTrader 8
- Learn: First Read-Only AI Trading Agent
- Learn: Troubleshoot CrossTrade MCP 401, 403, and 408 Errors