Skip to main content

How to Connect Claude.ai web to NinjaTrader 8 with CrossTrade MCP

Claude.ai web uses the Custom Connectors UI to register remote MCP servers. The CrossTrade MCP server registers as a Custom Connector and authenticates via OAuth in the browser. This is the zero-install path: no Desktop app, no CLI, no config file.

OAuth scope: mcp:readSingle-vendor host

Prerequisites

RequirementDetail
CrossTrade subscriptionElite
CrossTrade Add-Onv1.13.0 or higher
NinjaTrader 8Running, broker connected
AccountSim101 for first runs
OAuth scopemcp:read
Config fileSettings → Connectors → Add custom connector (or claude.ai/customize/connectors)
CrossTrade MCP server
https://app.crosstrade.io/v1/api/mcp
Transport: streamable-http. Auth: OAuth 2.1 + PKCE. Request scope mcp:read. Read-only. Inspect accounts, orders, positions, journal, NinjaScript.

When to use Claude.ai web vs Claude Desktop

  • Claude.ai web (Connectors): zero install, browser-based, easiest for non-developers. Good for journal review, account inspection, conversational debugging.
  • Claude Desktop: same chat experience, native app. Same Custom Connectors mechanism on the backend.
  • Claude Code: terminal-based, can edit local files. Good for NinjaScript work.

This page covers the web flow. For the others, see Connect Claude Desktop and Connect Claude Code.

Step 1: Add CrossTrade as a Custom Connector

Free, Pro, Max plans:

  1. Open claude.ai and sign in.
  2. Click your profile icon → Settings.
  3. Click Connectors in the left sidebar (or jump directly to claude.ai/customize/connectors).
  4. Scroll to the bottom and click Add custom connector.
  5. Fill in:
    • Name: CrossTrade
    • Remote MCP server URL: https://app.crosstrade.io/v1/api/mcp
  6. Leave the Advanced section alone (CrossTrade supports Dynamic Client Registration).
  7. Click Add.

Team / Enterprise (Owner-only setup):

  1. Organization settingsConnectors.
  2. Add → hover Custom → select Web.
  3. Enter Name + URL as above → Add.
  4. After this, members can enable the connector per conversation.

Step 2: Authorize OAuth in the browser

Claude opens the CrossTrade OAuth consent screen in a popup tab.

  1. Sign in to CrossTrade if needed.
  2. Select the scope. Choose mcp:read for the first run.
  3. Click Allow.
  4. The popup closes and the connector shows CrossTrade tools.

The grant appears on your AI Clients page. Revoke from there at any time.

Plan note

Free is capped at 1 Custom Connector. Pro and Max have no documented cap. Team and Enterprise require an Owner to add the connector at the org level first.

Step 3: First read-only prompt

Open a new Claude.ai conversation. If the CrossTrade tools aren't visible, click the connector tray icon (sliders) below the message box and toggle CrossTrade on for this chat. Then paste:

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. The response is a one-page brief.

Step 4: Journal review

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 and it runs entirely on mcp:read.

Why some flows still need Desktop or Code

  • mcp:trade operations (placing orders, deploying strategies): all three Claude surfaces support them, but Desktop and Code give you a tighter feedback loop because the conversation persists locally.
  • NinjaScript file writes: Claude Code is the right tool because it edits local files in the same session.
  • Long-running backtests: any of the three works; Claude Code is most convenient if you also want the artifacts versioned.

FAQ

Do I need Claude Pro or Max?

Custom Connectors are available on Free too, but Free is capped at 1 connector. Pro and Max have no documented cap. Team and Enterprise require an Owner to add the connector at the org level first.

Can the connector remember across sessions?

Yes. The OAuth grant persists at Anthropic until you revoke it. The connector reappears in every new Claude.ai conversation; you just toggle it on in each chat's connector tray.

Is the web version less capable than Desktop?

The MCP tool surface is identical. Both web and Desktop use the same Custom Connectors mechanism on the backend. The differences are host integration: Desktop has more dev-mode features (config file, MCP logs), web has none of that.

What is the OAuth callback URL CrossTrade should expect?

https://claude.ai/api/mcp/auth_callback. The CrossTrade OAuth server already accepts this; you don't have to configure anything on the CrossTrade side.

Why must the server be publicly reachable?

Claude.ai connects from Anthropic's cloud, not from your browser. Private/VPN/firewalled MCP servers will fail. CrossTrade's hosted MCP at app.crosstrade.io is public, so this isn't a concern.

OAuth handshake

The first tool call surfaces an authorization URL. Open it in a browser, approve mcp:read, and return to the harness. The access token is stored by the harness (keychain, config file, or memory depending on the client).

See CrossTrade MCP OAuth for the full flow, and 403/408 troubleshooting if the handshake fails.

Verify the connection

Smoke-test before doing anything stateful:

Call GetMcpCapabilities and McpSelfTest. Then ListAccounts and GetConnections.
Report add-on version, NT8 version, and which accounts are linked.
Read-only scope
You authorized mcp:read. The agent can inspect state but cannot place orders, deploy strategies, or write NinjaScript files.

Troubleshooting

SymptomLikely causeFix
403 insufficient_scopeToken authorized at mcp:read but tool requires mcp:tradeReauthorize the connection and select mcp:trade
OAuth callback failsSystem browser blocked the redirect or popupCopy the auth URL manually, complete it, paste the code back
Tools list is empty after connectServer registered but session did not refreshRestart the harness or trigger a tool list refresh
Add-on offline errorNT8 not running, or add-on not loadedConfirm NT8 is open and the CrossTrade add-on (v1.13.0+) is installed
Custom Connectors only shows 1 slotFree plan limitUpgrade to Pro/Max or use Team/Enterprise where an Owner pre-adds the connector at the org level
Custom Connectors section missing entirelyTeam/Enterprise members can't add custom connectors; only Owners/Primary Owners canAsk your org Owner to add CrossTrade at the org level; you can then enable it per chat
Connector authorized but tools don't appear in chatConnector needs to be enabled per conversationIn a new chat, open the connector tray (sliders icon) and toggle CrossTrade on
OAuth popup blockedBrowser popup blockerAllow popups for claude.ai, retry "Add custom connector"