Block / AAIF · MCP · NinjaTrader 8

Connect Goose to NinjaTrader 8

Open-source MCP-first agent. Block original; now stewarded by the Agentic AI Foundation under the Linux Foundation.

See it in action
goose · crosstrade mcp · sim101

Goose calling CrossTrade MCP tools against a live NinjaTrader 8 account. Run this yourself in 5 minutes →

Why Goose

Why pair Goose with CrossTrade MCP

Goose was MCP-first by design. CLI or Desktop. Multi-model. Configuration uses YAML extensions block with unique keys: type: streamable_http (snake_case), uri (not url), extensions (not mcpServers). Worth the learning curve for the OAuth handling.

Transport ~/.config/goose/config.yaml with extensions: + type: streamable_http + uri:
Highlights

What this combination unlocks

Tasteful approval gates

Defaults are conservative — good for mcp:trade.

Multi-platform

CLI, Desktop, plus Linux Foundation stewardship.

How it works

The connection chain

Goose
   │  OAuth-authorized tool call
   ▼
CrossTrade hosted MCP server   (https://app.crosstrade.io/v1/api/mcp)
   │
   ▼
CrossTrade Add-On running inside NT8 on your PC
   │
   ▼
NinjaTrader 8

One URL, one consent screen, one read-only first prompt. The MCP server is hosted by CrossTrade; you don't run anything beyond NT8 + the CrossTrade Add-On.

Ready to set up Goose?

The full step-by-step setup lives on a dedicated page. Verified against Block / AAIF's current docs.

Open setup instructions →
Example prompts

Copy-paste prompts that work today

Single goal ListAccounts and tell me which is closest to its trailing drawdown.
FAQ

Common questions

Is Goose a good fit for trading?

Yes, especially if you value MCP-first design and tasteful approval defaults. Goose was MCP-first from day one (Block original, now stewarded by the Agentic AI Foundation under the Linux Foundation). Conservative defaults make it a good fit for mcp:trade work.

Do I need Goose, or will OpenCode / Aider / Claude Code work?

All four are CLI agents. Goose's distinguishing features: MCP-first (vs Aider which lacks MCP), tasteful approval gates (vs OpenCode which is more permissive), open-source (vs Claude Code which is Anthropic-locked). Pick Goose if you want safety defaults; OpenCode for raw flexibility.

Cost?

Free, open source. You pay the model provider you choose (Anthropic, OpenAI, OpenRouter, Bedrock, Vertex, etc.). Block's Tetrate Agent Router is a built-in option for cost optimization.

Mac, Windows, and Linux?

All three. CLI via curl install. Desktop apps from goose-docs.ai for macOS, Linux (DEB/RPM/Flatpak), Windows.

Why extensions: instead of mcpServers:?

Goose calls MCP servers "extensions" in its YAML config. The top-level key is extensions: (not mcpServers:), URLs use uri: (not url:), and the transport for HTTP MCP is streamable_http (snake_case, not kebab or camel). Goose is unique on all three conventions.

Project moved from block to aaif-goose — does anything break?

Brew formula renamed from goose to block-goose-cli (the old goose name belongs to an unrelated DB migration tool). Documentation moved from block.github.io/goose to goose-docs.ai. The old URL redirects, so existing tutorials still work.

Streamable HTTP transport hangs — fix?

Add Accept: "application/json, text/event-stream" to the headers block. Some servers (including CrossTrade) require this header for the transport to upgrade properly. Tracked in goose issue #6576.

Does Goose support OAuth for remote MCP?

Yes — for servers that return 401 with WWW-Authenticate, Goose initiates a device-authorization grant automatically. Watch the terminal for the user-code + verification URL, complete in browser, return. For non-OAuth servers, use a bearer token in headers.

Connect Goose to NinjaTrader 8 in 5 minutes

Free Sim101 walkthrough. Read-only first. Upgrade scope only when a real workflow needs it.