@aetherwealth/mcp
v0.1.36
Published
Official Aether Wealth MCP server for AI trading assistants: OAuth access to your trading journal, alerts, market data, macro calendar, and technical indicators.
Readme
Aether Wealth MCP Server
Official Model Context Protocol (MCP) server for Aether Wealth. Connect any stdio-compatible MCP client to your Aether Wealth trading journal, accounts, alerts, market context, macro calendar, and technical indicators.
The package runs locally with npx, authenticates with browser-based OAuth, and
uses your Aether Wealth account permissions for every data tool. It is built for
traders who want an AI assistant to inspect their journal, summarize performance,
create alerts, and fetch market context without copying API keys into their MCP
client.
Install
Use the package in any MCP client that can launch a local stdio server.
npx -y @aetherwealth/mcpMost MCP clients use a JSON config like this:
{
"mcpServers": {
"aether-wealth": {
"command": "npx",
"args": ["-y", "@aetherwealth/mcp"]
}
}
}Restart your MCP client after adding the server. Then ask it to run the
login tool once.
What It Does
Aether Wealth MCP gives AI assistants a safe tool layer over Aether Wealth:
- Read and summarize your trading journal
- Create/list accounts and performance stats
- Create, update, and close trade records
- Delete trade records only from demo accounts
- Create and manage price, trendline, and indicator alerts
- Fetch candles, economic calendar events, macro series, FX macro context, and market config
- Render chart images and drive an open browser chart
- Compute technical indicators such as RSI, MACD, EMA, Bollinger Bands, ATR, ADX, Supertrend, and more
- Propose broker trade intents and execute only user-confirmed email/app/auto intents; push-mode intents execute only after the user taps Approve in the app
Aether Wealth broker execution is intent-based: the assistant can propose, but the backend enforces the selected user confirmation channel before any order is placed.
Authentication
The login tool opens the Aether Wealth OAuth flow in your browser. After you
approve access, the MCP stores a local token in the operating-system keychain
where available, with a protected file fallback.
No shared API key is configured in your MCP client. All data tools require
OAuth sign-in, including market-data tools. logout clears the local
credential for this device.
Hosted (Remote) Mode
Operators can deploy this server as a shared remote MCP endpoint instead of a
local process. Set MCP_TRANSPORT=http, MCP_HTTP_AUTH=oauth, and
MCP_PUBLIC_ORIGIN=https://<your-host>. In this mode:
- The Aether-hosted endpoint is
https://mcp.aetherwealth.ai;/mcpremains available as a legacy connector alias. - Each request must carry the caller's own OAuth access token
(
Authorization: Bearer ...); MCP clients obtain it via the standard MCP auth flow, discovered from/.well-known/oauth-protected-resource. - The
login/logouttools are not registered — the MCP client owns the OAuth flow, and nothing is stored server-side (no keychain, no sessions). - Requests are rate limited per caller (per token, else per client IP;
MCP_RATE_LIMIT_MAXrequests/minute, default 120) — over-limit calls get429with aRetry-Afterheader. Health/discovery routes are exempt. /healthzreports liveness for load balancers.
Tools
Auth
| Tool | Purpose |
| --- | --- |
| login | Sign in with Aether Wealth OAuth. |
| logout | Clear the local OAuth credential on this device. |
Trades, Accounts, And Stats
| Tool | Purpose |
| --- | --- |
| list_trades | List trades by account, status, pair, or date range. |
| get_trade | Fetch one trade by ID. |
| list_accounts | List your trading accounts. |
| create_account | Create a trading account in the journal. |
| trade_stats | Summarize performance, win rate, PnL, and related stats. |
| create_trade | Record a new trade. |
| update_trade | Update fields on an existing trade. |
| close_trade | Close an open trade with exit price and time. |
| delete_trade | Delete one trade from a demo account. |
| delete_trades | Delete matching trades from a demo account. |
| import_trades | Bulk-import up to 500 trades into one account. |
Context
| Tool | Purpose |
| --- | --- |
| get_context | Snapshot accounts, open trades, recent stats, and active alerts. |
Alerts
| Tool | Purpose |
| --- | --- |
| list_alerts | List price and trendline alerts. |
| create_price_alert | Create a price-level alert. |
| create_trendline_alert | Create a trendline alert from two chart points. |
| update_alert | Update or archive a price or trendline alert. |
| delete_alert | Delete a price or trendline alert. |
| list_indicator_alerts | List indicator-based alerts. |
| create_indicator_alert | Create an alert on an indicator output condition. |
| update_indicator_alert | Update an indicator alert. |
| delete_indicator_alert | Delete an indicator alert. |
Market Context
| Tool | Purpose |
| --- | --- |
| get_candles | Fetch OHLC candles for a pair and timeframe. Returns up to 200 plus nextCursor; pass it back as cursor until null to cover the complete stored history, including server-derived timeframes such as 3m. |
| list_economic_calendar | List economic calendar events by currency, release, date, or impact. |
| get_macro_series | Fetch macro indicator time series such as CPI or interest-rate data. |
| get_macro_indicator | Fetch curated FXMacroData indicator series with unit and target metadata. |
| get_market_config | Fetch supported instruments and timeframes. |
FX Macro Context
| Tool | Purpose |
| --- | --- |
| get_fx_pair_context | Macro context for both currencies in a pair. |
| get_fx_currency_context | Recent releases, surprises, and derived state for one currency. |
| get_fx_predictions | Model forecasts for upcoming macro releases. |
| get_fx_risk_sentiment | Cross-market risk-on/risk-off sentiment series. |
| get_fx_documents | Source documents behind FX macro data. |
| get_fx_sync_state | Freshness and sync status for FX macro datasets. |
Technical Indicators
| Tool | Purpose |
| --- | --- |
| get_indicators | Compute up to 8 technical indicators for a pair and interval. |
Broker Execution
| Tool | Purpose |
| --- | --- |
| get_broker_account | Read live broker account balance, equity, currency, and connection status. |
| list_broker_positions | List open broker positions with P&L. |
| connect_broker | Attach the user's already-deployed MetaApi account to a journal account. |
| broker_connection_status | Read the current live broker connection status. |
| set_broker_approval_mode | Switch confirmation between app_otp, email_otp, and push; push requires an active app push subscription. |
| propose_trade | Size and propose a trade intent. Push-mode proposals notify the user's device. |
| execute_trade | Execute email_otp/app_otp/auto intents after the required confirmation; push intents are blocked here. |
| trade_intent_status | Check whether a proposed intent was approved, executed, expired, cancelled, or failed. |
| cancel_trade_intent | Cancel a pending proposed broker trade. |
| close_position | Close an open broker position fully or partially. |
| modify_position | Adjust stop-loss or take-profit without increasing risk. |
Charts
| Tool | Purpose |
| --- | --- |
| render_chart | Render a candlestick chart image for a pair and timeframe. |
| chart_select_pair | Switch the user's open browser chart to a trading pair. |
| chart_change_timeframe | Change the timeframe of the user's open browser chart. |
| chart_draw_shapes | Draw levels, zones, and position overlays on the open chart. |
| chart_remove_drawings | Remove AI-drawn shapes from the open chart. |
Example Prompts
- "List my open trades and group them by pair. Flag anything without a stop loss."
- "Create a demo account called Paper USD with a 10,000 USD starting balance."
- "Summarize my last 20 closed trades. What setup is leaking the most R?"
- "What high-impact USD events are left this week, and which open trades overlap them?"
- "Fetch EUR/USD 1h RSI and MACD, then create an alert if RSI crosses below 40."
- "Create a price alert if XAU/USD crosses yesterday's high before New York open."
Safety And Limits
- OAuth is per user. Your MCP client does not store a shared service secret.
- Tokens are stored locally and can be cleared with
logout. - Backend rate limits protect market-data reads, MCP Bearer traffic, and cost-sensitive indicator calls.
- Technical indicators include request, active-pair, cache, and upstream credit gates.
- Trade deletion is limited to demo accounts. Live-account trades cannot be deleted through this MCP.
- Broker orders require backend-enforced confirmation. Push-mode intents cannot
be executed by the assistant; use
trade_intent_statusto observe the user's app approval outcome.
Updating
If your MCP client launches the server with npx -y @aetherwealth/mcp, restart
the client to pick up the current published package.
The backend can also advertise a minimum supported MCP version. If your local server is too old, tool calls return an update-required message instead of failing silently.
Links
- Aether Wealth: https://aetherwealth.ai
- Trading app: https://app.aetherwealth.ai
- MCP page: https://aetherwealth.ai/mcp
- Tool reference: https://aetherwealth.ai/mcp-tools.json
- npm package: https://www.npmjs.com/package/@aetherwealth/mcp
