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/mcp
Most 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
- Compute technical indicators such as RSI, MACD, EMA, Bollinger Bands, ATR,
ADX, Supertrend, and more
- Propose broker trade intents; email/app modes require a user-provided code,
automatic mode does not require a per-trade code, and push mode requires the
user to tap Approve in the app
Aether Wealth broker execution is intent-based: the assistant can propose, but
the backend enforces the connection's approval mode 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; /mcp remains
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/logout tools 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_MAX requests/minute, default 120) — over-limit calls get
429 with a Retry-After header. Health/discovery routes are exempt.
/healthz reports liveness for load balancers.
Tools
Auth
login | Sign in with Aether Wealth OAuth. |
logout | Clear the local OAuth credential on this device. |
Trades, Accounts, And Stats
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
get_context | Snapshot accounts, open trades, recent stats, and active alerts. |
Alerts
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
get_candles | Fetch OHLC candles for a pair, timeframe, and optional sourceId. Omission uses Twelve Data; broker sources expose native candles only. Returns up to 200 plus nextCursor. |
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, timeframes, and per-source capabilities. |
FX Macro Context
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
get_indicators | Compute up to 8 technical indicators for a pair and interval. |
Broker Execution
get_broker_account | Read live broker account balance, equity, currency, and connection status. |
list_broker_positions | List open broker positions with P&L. |
get_broker_quote | Read the current broker-native bid/ask and tick time for a symbol. |
connect_broker | Attach the user's already-deployed MetaApi account to a journal account. |
broker_connection_status | Read the current live broker connection status. |
disconnect_broker | Disarm broker trading immediately and cancel pending intents. |
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/app intents with a code or automatic-mode intents without one; 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 | Propose closing an open broker position fully or partially. |
modify_position | Propose stop-loss or take-profit changes without increasing risk. |
Charts
render_chart | Render a candlestick chart image for a pair, timeframe, and optional sourceId. |
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 follow the user's backend-enforced approval mode. Push-mode
intents cannot be executed by the assistant; automatic mode requires no
separate approval for each trade.
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
License
Proprietary. See the LICENSE file included with this package.