We Connected ChatGPT to NinjaTrader 8 Through CrossTrade MCP
The hosted MCP server changes what ChatGPT can do for a NinjaTrader 8 trader. One URL, one consent screen, and the agent can read your accounts, journal, webhook signals, and copier activity in real time.
The CrossTrade MCP server has been live for a few weeks. We've watched a few hundred traders connect their AI clients, and the most consistent reaction is the same: "wait, that's it?"
This post is the short version of what changed when ChatGPT (and Claude, and Cursor) got the ability to call CrossTrade tools directly.
What changed
Before MCP, the workflow was paste and hope. The trader described their account state to ChatGPT, ChatGPT made plausible guesses about what to do, and most of the conversation was the trader correcting the model's assumptions. The agent never saw the real position. It never saw the journal. It guessed.
With MCP, the agent calls typed tools. ListAccounts, GetConnections, ListPositions, ListOrders, GetAccountSummary, GetWatermarks, GetJournalTrades, GetSignalHistory, GetActivityLog. The agent reads the real state, in real time, and responds based on what is actually there.
Why a hosted MCP server matters
You could run a local MCP server. Some developers have. It is a real undertaking: implement the bridge to NT8, handle OAuth, version the tool surface, keep up with NT8 add-on changes. We did that work so traders do not have to.
CrossTrade hosts the MCP server at https://app.crosstrade.io/v1/api/mcp. The CrossTrade Add-On is the bridge inside NT8. Both have been operating for years. MCP is the newest interface on the same plumbing.
The trader's setup is one URL, one OAuth consent screen, and a first read-only prompt to verify the loop. No local server. No tokens to manage by hand. No keepalive scripts.
What the first safe read-only workflow looks like
The first prompt every trader runs:
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.
ChatGPT calls about six tools. The response is a one-paragraph brief. The trader sees their real position state inside ChatGPT, often for the first time. The brief is not magic; it is what you would write in a spreadsheet at the end of the session if you had time. The agent writes it in five seconds.
From there, the next prompt is usually a journal review. The one after that is a webhook audit. Within a week, the trader has caught a revenge trade pattern they had not noticed, a webhook miss that had been silently failing, or a copier divergence that had been costing them dollars per week.
None of this requires write permission. All of it runs on mcp:read.
Why OAuth and scopes matter
OAuth is what makes "ChatGPT can read my account" actually safe. The token is bound to the user. The user can revoke at any time. The scope is binary: a read-only token cannot place an order, no matter what the prompt says.
The scope choice matters. The right default is mcp:read. The right time to upgrade is when a specific workflow needs writes — typically a NinjaScript compile loop or order placement with explicit confirmation. After that workflow is done, revoke the trade-enabled client.
This is the part that pasted-token setups always got wrong. A long-lived bearer token in a chat window has no scope, no revocation, and no audit. OAuth fixes all three.
Where to follow the setup tutorial
For the step-by-step setup with screenshots, see How to Connect ChatGPT to NinjaTrader 8. It covers the ChatGPT side (custom connectors or remote MCP in supported plans), the OAuth handshake, the first read-only prompt, and the troubleshooting table for the three errors you might hit.
The product hub is at ChatGPT for NinjaTrader 8. The full how-to cluster is at MCP How-To Guides.
If you would rather use Claude (Desktop or Code), Cursor, Cline, or Continue, each has its own tutorial under the same hub. The CrossTrade MCP URL is the same; only the client side differs.
The honest version
Not every trader needs this. If you trade discretionarily with one chart and no automation, the MCP server is a "maybe later". If you run any of: TradingView webhooks into NT8, a trade copier across multiple accounts, AI-written NinjaScript, a daily journal review, or funded futures evaluations, the MCP server pays off the first session.
The way to find out is the same as the way to start: connect read-only, run the first prompt, and decide.