Quant research, backtesting, walk-forward validation, managed compute, and trading workflows.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Author trading strategies in typed TypeScript. Backtest them on the engine that runs them live.
Quickstart Β· Authoring Β· Polling Β· Agents Β· Lake SQL Β· Auth Β· Errors
Zero runtime dependencies. ESM and CommonJS builds ship together, with types.
NexusTrade also exposes the platform as a hosted, remote Model Context Protocol server. Modern MCP clients connect directly to the production Streamable HTTP endpoint and discover NexusTrade OAuth automatically:
Cursor and other remote-capable clients use:
For Claude Desktop and other stdio-only clients, use the established
mcp-remote bridgeβno clone or local NexusTrade server is required:
The live server exposes more than 120 tools across market research, portfolio construction, backtesting, optimization, walk-forward validation, managed compute, Aurora agents, paper trading, and controlled brokerage operations. Its creator-marketplace tools cover the full strategy adoption path:
search_creators discovers public creators and their marketplace portfolios.subscribe_portfolio validates a monetized listing and returns a safe
checkout preview; the user completes payment in NexusTrade, never through the
MCP tool.fork_shared_portfolio creates a one-time editable copy of a marketplace
strategy in a new or existing portfolio.copy_trade_shared continuously mirrors an accessible strategy into a paper
or live portfolio at an explicit allocation.See the developer guide, the utility tool reference, and the Aurora tool reference.
Research and historical results are not investment advice and do not guarantee future performance. Keep paper and live modes explicit. Tools that can affect portfolios, schedules, or brokerage orders remain subject to the authenticated account's NexusTrade permissions and approval controls.
Backtest operations may include warnings: string[] immediately after
submission and again in the terminal result. Treat them as material caveats;
they do not change a successful operation into a failure.
Every builder is generated from the same indicator specification the NexusTrade engine runs, so a book is valid by construction rather than by convention.
TypeScript cannot overload comparison operators, so indicators compose through
gt / gte / lt / lte / eq / neq and and / or:
| Group | Examples |
|---|---|
| Price & volume | Price OpeningPrice HighOfDay VWAP Volume GapPercentage |
| Technicals | SMA EMA RSI BollingerBand AverageTrueRange CrossAbove |
| Position state | PositionValue PositionPercentChange PositionMaxDrawdown |
| Portfolio state | PortfolioValue BuyingPower MaxDrawdown InitialValue |
| Fundamentals | Fundamental Economic DaysUntilEarnings IsIndexMember IsIndustry |
| Options | OptionDaysToExpiration OptionCollateral OptionUnrealizedPnL openOption closeOption |
| Actions | buy sell alert dynamicRebalance rebalanceOption |
| Selection | filter selectTop selectPercentile universe |
| Logic | always atLeast atMost exactly fewerThan multi and or |
Every builder is fully typed β your editor completes the whole surface.
create* enqueues work and returns immediately. It does not resolve when
results exist. There are no webhooks today.
Every job kind reports the same envelope, so one poller serves all of them:
| Option | Default | Meaning |
|---|---|---|
timeoutSeconds | 900 | Give up waiting (the job keeps running) |
pollIntervalSeconds | 2 | First interval; backs off 1.5Γ |
maxPollIntervalSeconds | 15 | Interval ceiling |
throwOnFailure | true | Throw on failed/cancelled instead of returning |
A timeout throws operation_timeout and does not cancel the job β call the
waiter again with the same id rather than resubmitting.
Batches. createBacktests submits many in one request and returns one
operation each; waitForBacktests(operations) waits on all of them. Prefer it
over a loop: one request, one idempotency key, one rate-limit slot.
Optimization and walk-forward follow the identical shape:
Authoring and backtesting a book does not persist it. save writes it to your
account; deploy starts running it.
save and deploy produce different ids, and the distinction matters.
save persists a draft and sets book.id to it. deploy mints the real
paper portfolio and returns its own portfolioId β deploying creates a
portfolio rather than converting the draft into one, so the two ids coexist.
Hold on to deployment.portfolioId for anything that reads live state;
book.id addresses the draft.
Handle methods accept an optional transport; omitted, they resolve one from
the environment. The same operations exist on the client β client.deploy(id),
client.undeploy(id) β when you have an id rather than a handle.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/nexustrade-financial-mcp)<a href="https://allmcps.com/mcp/nexustrade-financial-mcp"><img src="https://allmcps.com/api/badge/nexustrade-financial-mcp?style=directory" alt="NexusTrade Financial MCP on AllMCPs" /></a>