Connect Goose to NinjaTrader 8
Open-source MCP-first agent. Block original; now stewarded by the Agentic AI Foundation under the Linux Foundation.
Goose calling CrossTrade MCP tools against a live NinjaTrader 8 account. Run this yourself in 5 minutes →
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.
~/.config/goose/config.yaml with extensions: + type: streamable_http + uri: What this combination unlocks
Tasteful approval gates
Defaults are conservative — good for mcp:trade.
Multi-platform
CLI, Desktop, plus Linux Foundation stewardship.
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.
Copy-paste prompts that work today
Also consider
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.