A hosted MCP server that connects AI agents to real-time market data, options chains with Greeks, and broker APIs including Alpaca, Webull, Tradier, and Public. You can query stock quotes, scan top-volume or high-OI options contracts, check account balances, preview single or multi-leg orders, and stage trades for approval before submission. It also wires up alerts to Discord, SMS, and Telegram, so you can automate watchlist scans or price-trigger workflows without jumping between broker dashboards and spreadsheets. Everything runs over streamable HTTP with your Atlas API key. Reach for this when you want an agent to analyze a setup, draft the orders, and wait for your go-ahead before sending anything live.
Public tool metadata for what this MCP can expose to an agent.
Stock-QuoteGet a real-time stock quote including current price, dollar and percent change, previous close, open, high, low, and volume. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) Types / example: symbol: string ticker — e.g. "SPY", "NVDA".1 paramsGet a real-time stock quote including current price, dollar and percent change, previous close, open, high, low, and volume. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) Types / example: symbol: string ticker — e.g. "SPY", "NVDA".
symbolstringOption-Expiration-DatesList available option expiration dates for a symbol. Args: symbol: Ticker symbol (e.g. NVDA, SPY) filter: 'all' for every expiration (no 60-day cap), 'next_10' for the nearest 10 within 60 days, 'near_term' for within 60 days, 'monthly' for monthly only (still capped at 60 day...2 paramsList available option expiration dates for a symbol. Args: symbol: Ticker symbol (e.g. NVDA, SPY) filter: 'all' for every expiration (no 60-day cap), 'next_10' for the nearest 10 within 60 days, 'near_term' for within 60 days, 'monthly' for monthly only (still capped at 60 day...
filterstringsymbolstringAnalyze-Greek-ExposuresCalculate Gamma, Delta, Vanna, and Theta NET exposures for a symbol across multiple expiration dates. Returns per-strike data grouped by expiration plus portfolio totals and key strike levels. Use this for raw numerical exposure data (not charts). Args: symbol: Ticker symbol (...6 paramsCalculate Gamma, Delta, Vanna, and Theta NET exposures for a symbol across multiple expiration dates. Returns per-strike data grouped by expiration plus portfolio totals and key strike levels. Use this for raw numerical exposure data (not charts). Args: symbol: Ticker symbol (...
symbolstringexpirationvalueto_expirationvaluefrom_expirationvaluenum_expirationsintegerexpiration_rangevalueTop-Volume-and-OI-ContractsGet the highest-volume or highest-open-interest option contracts for a symbol. Returns strike, side, volume, OI, bid/ask, delta, IV, and DTE for each contract. Useful for spotting unusual activity. Args: symbol: Ticker symbol (e.g. NVDA, SPY) expiration: Specific expiration (Y...7 paramsGet the highest-volume or highest-open-interest option contracts for a symbol. Returns strike, side, volume, OI, bid/ask, delta, IV, and DTE for each contract. Useful for spotting unusual activity. Args: symbol: Ticker symbol (e.g. NVDA, SPY) expiration: Specific expiration (Y...
limitintegersymbolstringsort_bystringexpirationvalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueTicker-Symbol-LookupResolve a company name or partial name to its ticker symbol. Examples: 'Apple' -> AAPL, 'Google' -> GOOGL, 'Tesla' -> TSLA Args: company_name: Company name or partial match (e.g. 'Apple', 'Micro') Types / example: company_name: string — e.g. "Apple", "Microsoft".1 paramsResolve a company name or partial name to its ticker symbol. Examples: 'Apple' -> AAPL, 'Google' -> GOOGL, 'Tesla' -> TSLA Args: company_name: Company name or partial match (e.g. 'Apple', 'Micro') Types / example: company_name: string — e.g. "Apple", "Microsoft".
company_namestringOptions-ChainGet options chain data for one expiration or for a range of expirations. Single expiration: pass expiration=YYYY-MM-DD (LEAPS and any listed expiry supported). Range: omit expiration and pass from_expiration and/or to_expiration (inclusive ISO dates). Range mode returns up to...6 paramsGet options chain data for one expiration or for a range of expirations. Single expiration: pass expiration=YYYY-MM-DD (LEAPS and any listed expiry supported). Range: omit expiration and pass from_expiration and/or to_expiration (inclusive ISO dates). Range mode returns up to...
symbolstringexpirationvalueto_expirationvaluefrom_expirationvaluemax_expirationsintegerexpiration_rangevalueHistorical-Options-ChainGet the options chain for a symbol and expiration as of a specific past date (historical snapshot). Returns every contract with strike, side, bid, ask, mid, volume, open interest, and DTE as of that date. Use this to compare past options data or analyze how positioning changed...3 paramsGet the options chain for a symbol and expiration as of a specific past date (historical snapshot). Returns every contract with strike, side, bid, ask, mid, volume, open interest, and DTE as of that date. Use this to compare past options data or analyze how positioning changed...
datestringsymbolstringexpirationstringHistorical-Strike-QuotesGet historical quotes for a single strike: from_date to to_date (interval) or single date. Takes from_date and optional to_date. If to_date omitted or same as from_date: single date. Expiration is optional — when omitted, picks nearest expiration to the date(s). Returns one qu...6 paramsGet historical quotes for a single strike: from_date to to_date (interval) or single date. Takes from_date and optional to_date. If to_date omitted or same as from_date: single date. Expiration is optional — when omitted, picks nearest expiration to the date(s). Returns one qu...
sidestringstrikenumbersymbolstringto_datevaluefrom_datestringexpirationvalueStrike-Price-DetailsGet detailed contract data for a specific strike price. Returns call and put contracts at that strike with full Greeks, pricing, IV, volume, and open interest. If expiration is provided, returns data for that single date. If omitted, searches across all near-term expirations (...3 paramsGet detailed contract data for a specific strike price. Returns call and put contracts at that strike with full Greeks, pricing, IV, volume, and open interest. If expiration is provided, returns data for that single date. If omitted, searches across all near-term expirations (...
strikenumbersymbolstringexpirationvalueGamma-Exposure-HeatmapGenerate a single Gamma Exposure (GEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 paramsGenerate a single Gamma Exposure (GEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueDelta-Exposure-HeatmapGenerate a single Delta Exposure (DEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 paramsGenerate a single Delta Exposure (DEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueVanna-Exposure-HeatmapGenerate a single Vanna Exposure (VEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 paramsGenerate a single Vanna Exposure (VEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueTheta-Exposure-HeatmapGenerate a single Theta Exposure (TEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...9 paramsGenerate a single Theta Exposure (TEX) heatmap. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only used when...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueNet-Gamma-Exposure-ChartGenerate a single Net Gamma Exposure (NET GEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 paramsGenerate a single Net Gamma Exposure (NET GEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueNet-Delta-Exposure-ChartGenerate a single Net Delta Exposure (NET DEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 paramsGenerate a single Net Delta Exposure (NET DEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueNet-Vanna-Exposure-ChartGenerate a single Net Vanna Exposure (NET VEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 paramsGenerate a single Net Vanna Exposure (NET VEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueNet-Theta-Exposure-ChartGenerate a single Net Theta Exposure (NET TEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...9 paramsGenerate a single Net Theta Exposure (NET TEX) bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in image_format: 'png' or 'jpeg' (only...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueTop-Volume-Contracts-ChartGenerate a single highest-volume option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude' |...7 paramsGenerate a single highest-volume option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude' |...
symbolstringplatformstringexpirationvalueimage_formatstringto_expirationvaluefrom_expirationvalueexpiration_rangevalueTop-Open-Interest-ChartGenerate a single highest-open-interest option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'cla...7 paramsGenerate a single highest-open-interest option contracts bar chart. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'cla...
symbolstringplatformstringexpirationvalueimage_formatstringto_expirationvaluefrom_expirationvalueexpiration_rangevalueAll-Greek-HeatmapsGenerate all four Greek exposure heatmaps in one call: GEX (Gamma), DEX (Delta), VEX (Vanna), TEX (Theta). TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600...9 paramsGenerate all four Greek exposure heatmaps in one call: GEX (Gamma), DEX (Delta), VEX (Vanna), TEX (Theta). TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueAll-Net-Exposure-ChartsGenerate all four NET exposure bar charts in one call: NET GEX, NET DEX, NET VEX, NET TEX. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in ima...9 paramsGenerate all four NET exposure bar charts in one call: NET GEX, NET DEX, NET VEX, NET TEX. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) strike_range: Optional strike filter like '520-600' to zoom in ima...
symbolstringmarkingsvalueplatformstringexpirationvalueimage_formatstringstrike_rangevalueto_expirationvaluefrom_expirationvalueexpiration_rangevalueVolume-and-Open-Interest-ChartsGenerate both Volume and Open Interest bar charts in one call. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude'...7 paramsGenerate both Volume and Open Interest bar charts in one call. TIP: To mix these with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY) image_format: 'png' or 'jpeg' (only used when platform='other') platform: 'openai' | 'claude'...
symbolstringplatformstringexpirationvalueimage_formatstringto_expirationvaluefrom_expirationvalueexpiration_rangevalueMulti-Chart-ViewCombine multiple chart types and/or symbols into a single response. Pass a JSON array where each element specifies one chart: [ {"type": "gamma", "symbol": "SPY", "strike_range": "520-600"}, {"type": "price", "symbol": "NVDA", "interval": "1h", "period": "5d"}, {"type": "vol",...3 paramsCombine multiple chart types and/or symbols into a single response. Pass a JSON array where each element specifies one chart: [ {"type": "gamma", "symbol": "SPY", "strike_range": "520-600"}, {"type": "price", "symbol": "NVDA", "interval": "1h", "period": "5d"}, {"type": "vol",...
chartsstringplatformstringimage_formatstringPrice-ChartGenerate a single candlestick price chart with volume bars and optional visual markings. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Shows OHLC candles (green up, red down), volume at bottom, and current price line. Intervals: 1m, 2m, 3m, 5m, 10m...14 paramsGenerate a single candlestick price chart with volume bars and optional visual markings. NOTE: If the user wants more than one chart, use Multi-Chart-View instead. Shows OHLC candles (green up, red down), volume at bottom, and current price line. Intervals: 1m, 2m, 3m, 5m, 10m...
endvaluebarsvaluestartvaluethemestringperiodstringsymbolstringintervalstringmarkingsvalueplatformstringindicatorsvaluetrend_linesvalueimage_formatstringforce_refreshbooleanindicator_colorsvalueMulti-Timeframe-Price-OverviewGenerate three price charts at once: daily (3 months), weekly (1 year), and hourly (5 days). Good for a quick multi-timeframe overview. TIP: To mix price charts with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) theme: '...4 paramsGenerate three price charts at once: daily (3 months), weekly (1 year), and hourly (5 days). Good for a quick multi-timeframe overview. TIP: To mix price charts with other chart types or symbols, use Multi-Chart-View. Args: symbol: Ticker symbol (e.g. NVDA, SPY, AAPL) theme: '...
themestringsymbolstringplatformstringimage_formatstringChart-Vision-AnalysisAnswer questions about Atlas charts (Greek heatmaps, net exposure bars, price candles, volume, open interest). Pass the user's question in plain language; the tool selects a suitable chart when needed and returns a written interpretation. After drawing markings or trend lines...1 paramsAnswer questions about Atlas charts (Greek heatmaps, net exposure bars, price candles, volume, open interest). Pass the user's question in plain language; the tool selects a suitable chart when needed and returns a written interpretation. After drawing markings or trend lines...
questionstringPrice-Data-OHLCVGet OHLCV price data as JSON — useful for reading exact values at a specific point on a chart, or for building analysis from raw data. If timestamp is given (YYYY-MM-DD or YYYY-MM-DD HH:MM), returns the single bar nearest to that time. Otherwise returns all bars in the range....7 paramsGet OHLCV price data as JSON — useful for reading exact values at a specific point on a chart, or for building analysis from raw data. If timestamp is given (YYYY-MM-DD or YYYY-MM-DD HH:MM), returns the single bar nearest to that time. Otherwise returns all bars in the range....
endvaluebarsvaluestartvalueperiodstringsymbolstringintervalstringtimestampvalueBroker-ConnectionsList all connected brokerage accounts for the authenticated user. Types / example: (no parameters — uses authenticated session).List all connected brokerage accounts for the authenticated user. Types / example: (no parameters — uses authenticated session).
No parameter schema in public metadata yet.
Account-BalancesCash balance, buying power, and equity for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".1 paramsCash balance, buying power, and equity for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".
account_idstringAccount-HoldingsStock and option positions (holdings) for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".1 paramsStock and option positions (holdings) for one linked brokerage account. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".
account_idstringAll-Account-HoldingsGet positions across ALL connected brokerage accounts. Types / example: (no parameters — uses authenticated session).Get positions across ALL connected brokerage accounts. Types / example: (no parameters — uses authenticated session).
No parameter schema in public metadata yet.
Transaction-HistoryTransaction history for one linked brokerage account. Optional start_date and end_date in YYYY-MM-DD. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". start_dat...3 paramsTransaction history for one linked brokerage account. Optional start_date and end_date in YYYY-MM-DD. Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". start_dat...
end_datevalueaccount_idstringstart_datevalueAccount-Symbol-LookupResolve how a ticker is represented inside a linked brokerage account (instrument id and related fields). Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". symbo...2 paramsResolve how a ticker is represented inside a linked brokerage account (instrument id and related fields). Types / example: account_id: string — copy "id" (or equivalent) from Broker-Connections for that account. Example: account_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". symbo...
symbolstringaccount_idstringPreview-OrderStage an order for user review WITHOUT calling the broker. Persists a trading_orders row at status='preview' and returns a preview_id + a UI link the user opens to Accept or Cancel. No trade is submitted until the Accept button on that page hits Place-Order. The caller must pa...4 paramsStage an order for user review WITHOUT calling the broker. Persists a trading_orders row at status='preview' and returns a preview_id + a UI link the user opens to Accept or Cancel. No trade is submitted until the Accept button on that page hits Place-Order. The caller must pa...
ruleobjectphasestringsymbolvalueaccount_idvaluePreview-Multiple-OrdersPreview multiple orders at once — e.g. buy 5 NVDA, 5 MSFT, and 5 ASML in one shot. Pass a list of {rule, symbol, account_id?, phase?} objects. Returns a vertical stack of order preview cards, each with a Place button. Use this instead of calling Preview-Order repeatedly for mu...2 paramsPreview multiple orders at once — e.g. buy 5 NVDA, 5 MSFT, and 5 ASML in one shot. Pass a list of {rule, symbol, account_id?, phase?} objects. Returns a vertical stack of order preview cards, each with a Place button. Use this instead of calling Preview-Order repeatedly for mu...
ordersarrayaccount_idvaluePlace-OrderSubmit an order to the broker via SnapTrade. Stocks use place_force_order; options use place_mleg_order; bracket orders use place_bracket_order (entry + stop_loss + take_profit as a broker-managed OCO pair). Two modes: * Pass preview_id to place an already-staged preview — the...5 paramsSubmit an order to the broker via SnapTrade. Stocks use place_force_order; options use place_mleg_order; bracket orders use place_bracket_order (entry + stop_loss + take_profit as a broker-managed OCO pair). Two modes: * Pass preview_id to place an already-staged preview — the...
rulevaluephasestringsymbolvalueaccount_idvaluepreview_idvalueList-Preview-OrdersList the user's recent staged/placed/failed orders. Defaults to status in ('preview','failed') so the UI can surface orders still pending acceptance. Pass statuses=['placed'] to see executed orders. Types / example: statuses: array<string> — optional filter (e.g. ['preview','f...2 paramsList the user's recent staged/placed/failed orders. Defaults to status in ('preview','failed') so the UI can surface orders still pending acceptance. Pass statuses=['placed'] to see executed orders. Types / example: statuses: array<string> — optional filter (e.g. ['preview','f...
limitintegerstatusesvalueDelete-Preview-OrderCancel/delete one staged or placed order. For status='preview' or 'failed' the local record is deleted (nothing was ever sent to SnapTrade — our preview is a local staging step, not a broker call). For status='placed' SnapTrade's cancel_user_account_order is called and the row...1 paramsCancel/delete one staged or placed order. For status='preview' or 'failed' the local record is deleted (nothing was ever sent to SnapTrade — our preview is a local staging step, not a broker call). For status='placed' SnapTrade's cancel_user_account_order is called and the row...
preview_idstringPreview-Trading-TriggerShow a trigger preview card for user review WITHOUT saving anything. ALWAYS call this instead of Create-Trading-Trigger — the user reads the card, then clicks 'Activate trigger' to commit it or 'Cancel' to dismiss. Never call Create-Trading-Trigger directly; it is invoked by t...3 paramsShow a trigger preview card for user review WITHOUT saving anything. ALWAYS call this instead of Create-Trading-Trigger — the user reads the card, then clicks 'Activate trigger' to commit it or 'Cancel' to dismiss. Never call Create-Trading-Trigger directly; it is invoked by t...
ruleobjectsymbolvalueaccount_idvalueCreate-Trading-TriggerPersist a price-trigger rule. IMPORTANT: Do NOT call this tool directly — call Preview-Trading-Trigger first and let the user confirm by clicking 'Activate trigger' in the preview card. This tool is invoked by the widget on the user's behalf. The background worker monitors liv...3 paramsPersist a price-trigger rule. IMPORTANT: Do NOT call this tool directly — call Preview-Trading-Trigger first and let the user confirm by clicking 'Activate trigger' in the preview card. This tool is invoked by the widget on the user's behalf. The background worker monitors liv...
ruleobjectsymbolvalueaccount_idvalueList-Trading-TriggersList the user's trading triggers — both currently watching (is_active=true) and paused (is_active=false). Each row carries its own is_active flag so you can label them. Completed/fired triggers are moved to the archive — use List-Fired-Triggers to see those. Types / example: i...3 paramsList the user's trading triggers — both currently watching (is_active=true) and paused (is_active=false). Each row carries its own is_active flag so you can label them. Completed/fired triggers are moved to the archive — use List-Fired-Triggers to see those. Types / example: i...
limitintegersymbolvalueis_activevalueUpdate-Trading-TriggerEdit one trading trigger in place. PRE-ENTRY (phase='enter'): all fields are editable — rule, symbol, account_id. POST-ENTRY (phase='exit'): the enter leg has already fired and a position is open at the broker. Symbol and account are locked. You CAN still update the EXIT block...5 paramsEdit one trading trigger in place. PRE-ENTRY (phase='enter'): all fields are editable — rule, symbol, account_id. POST-ENTRY (phase='exit'): the enter leg has already fired and a position is open at the broker. Symbol and account are locked. You CAN still update the EXIT block...
rulevaluesymbolvalueis_activevalueaccount_idvaluetrigger_idstringDelete-Trading-TriggerDelete a trading trigger. Triggers are not broker orders — nothing is cancelled at SnapTrade. If the trigger was the source of a placed order, the order row and broker position are unaffected; use Delete-Preview-Order to cancel a placed order at the broker. Idempotent: deletin...1 paramsDelete a trading trigger. Triggers are not broker orders — nothing is cancelled at SnapTrade. If the trigger was the source of a placed order, the order row and broker position are unaffected; use Delete-Preview-Order to cancel a placed order at the broker. Idempotent: deletin...
trigger_idstringList-Fired-TriggersList the user's completed (fired) triggers from the archive. These are triggers that ran to completion. Use Reactivate-Trigger to restart one from the beginning. Types / example: symbol: string — optional ticker filter. limit: integer — max rows (default 50, cap 200).2 paramsList the user's completed (fired) triggers from the archive. These are triggers that ran to completion. Use Reactivate-Trigger to restart one from the beginning. Types / example: symbol: string — optional ticker filter. limit: integer — max rows (default 50, cap 200).
limitintegersymbolvalueReactivate-TriggerMove a fired trigger from the archive back to the active triggers table, resetting it to phase='enter' so it starts monitoring prices again from scratch. The original rule is preserved; only triggered_at is cleared. Types / example: fired_trigger_id: string — the id from List-...1 paramsMove a fired trigger from the archive back to the active triggers table, resetting it to phase='enter' so it starts monitoring prices again from scratch. The original rule is preserved; only triggered_at is cleared. Types / example: fired_trigger_id: string — the id from List-...
fired_trigger_idstringEarnings-CalendarGet the earnings calendar for a date range, optionally filtered by a single symbol. Types / examples: from_date, to_date: strings — "YYYY-MM-DD", e.g. "2024-01-01" to "2024-12-31" symbol: optional string | null — ticker filter, e.g. "MSFT" Example: from_date="2026-01-01", to_d...3 paramsGet the earnings calendar for a date range, optionally filtered by a single symbol. Types / examples: from_date, to_date: strings — "YYYY-MM-DD", e.g. "2024-01-01" to "2024-12-31" symbol: optional string | null — ticker filter, e.g. "MSFT" Example: from_date="2026-01-01", to_d...
symbolvalueto_datestringfrom_datestringInsider-TransactionsGet insider transactions for a given stock symbol. Useful for analyzing insider buying and selling activity. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null3 paramsGet insider transactions for a given stock symbol. Useful for analyzing insider buying and selling activity. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null
symbolstringto_datevaluefrom_datevalueSEC-FilingsGet recent SEC filings (10-K, 10-Q, 8-K, etc.) for a given stock symbol. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null3 paramsGet recent SEC filings (10-K, 10-Q, 8-K, etc.) for a given stock symbol. Types / examples: symbol: string — "BA" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="BA", from_date=null, to_date=null
symbolstringto_datevaluefrom_datevalueStock-PeersGet a list of peer tickers for a given stock symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsGet a list of peer tickers for a given stock symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringIPO-CalendarGet the IPO calendar for a date range. Includes upcoming and historical IPOs. Types / examples: from_date, to_date: strings — "YYYY-MM-DD" Example: from_date="2026-01-01", to_date="2026-06-30"2 paramsGet the IPO calendar for a date range. Includes upcoming and historical IPOs. Types / examples: from_date, to_date: strings — "YYYY-MM-DD" Example: from_date="2026-01-01", to_date="2026-06-30"
to_datestringfrom_datestringSenate-Lobbying-DataGet US political lobbying data for a company. This covers lobbying disclosures and related activity. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=...3 paramsGet US political lobbying data for a company. This covers lobbying disclosures and related activity. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=...
symbolvalueto_datevaluefrom_datevalueFinancial-MetricsGet basic financial metrics for a stock (P/E, margins, growth, etc.). Types / examples: symbol: string — "XOM" metric: string — "all" (default) or a specific metric key supported by the feed Example: symbol="CVX", metric="all"2 paramsGet basic financial metrics for a stock (P/E, margins, growth, etc.). Types / examples: symbol: string — "XOM" metric: string — "all" (default) or a specific metric key supported by the feed Example: symbol="CVX", metric="all"
metricstringsymbolstringUSA-Spending-DataGet USA spending data related to a company, including contracts and awards tied to the symbol. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=null3 paramsGet USA spending data related to a company, including contracts and awards tied to the symbol. Types / examples: symbol: optional string | null — e.g. "CAT" from_date, to_date: optional strings | null — "YYYY-MM-DD" Example: symbol="CAT", from_date="2023-01-01", to_date=null
symbolvalueto_datevaluefrom_datevalueIncome-StatementIncome statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 paramsIncome statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"
freqstringsymbolstringBalance-SheetBalance sheet for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 paramsBalance sheet for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"
freqstringsymbolstringCashflow-StatementCash flow statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"2 paramsCash flow statement for a symbol. freq is 'yearly' or 'quarterly'. Types / examples: symbol: string — "IBM" freq: string — "yearly" or "quarterly" Example: symbol="GOOGL", freq="quarterly"
freqstringsymbolstringEarnings-DatesEarnings dates for a symbol; limit caps how many rows are returned. Types / examples: symbol: string — "META" limit: integer — default 12 Example: symbol="NFLX", limit=82 paramsEarnings dates for a symbol; limit caps how many rows are returned. Types / examples: symbol: string — "META" limit: integer — default 12 Example: symbol="NFLX", limit=8
limitintegersymbolstringEPS-EstimatesEPS estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsEPS estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringRevenue-EstimatesRevenue estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsRevenue estimates for upcoming periods. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringEPS-TrendEPS trend for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsEPS trend for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringEPS-RevisionsEPS revision stats (up/down changes) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsEPS revision stats (up/down changes) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringAnalyst-Price-TargetsAnalyst price target summary (low, high, mean, median) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsAnalyst price target summary (low, high, mean, median) for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringAnalyst-Upgrades-and-DowngradesRecent analyst upgrades and downgrades for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsRecent analyst upgrades and downgrades for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringDividends-and-SplitsHistorical dividends and splits. period defaults to 'max'. Types / examples: symbol: string — "KO" period: string — "max" (default), "1y", "5y", etc. Example: symbol="AAPL", period="5y"2 paramsHistorical dividends and splits. period defaults to 'max'. Types / examples: symbol: string — "KO" period: string — "max" (default), "1y", "5y", etc. Example: symbol="AAPL", period="5y"
periodstringsymbolstringInstitutional-HoldersInstitutional holders for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsInstitutional holders for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringGrowth-EstimatesAnalyst growth estimates across horizons for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"1 paramsAnalyst growth estimates across horizons for a symbol. Types / example: symbol: string ticker — e.g. "DIS", "F"
symbolstringSearchDiscovery placeholder; returns no rows. Use the Atlas market and strategy tools. Types / example: query: string — ignored; e.g. ""1 paramsDiscovery placeholder; returns no rows. Use the Atlas market and strategy tools. Types / example: query: string — ignored; e.g. ""
querystringFetch-URLCompatibility hook; does not load arbitrary URLs. Use Atlas data tools instead. Types / example: url: string — ignored; e.g. "https://example.com"1 paramsCompatibility hook; does not load arbitrary URLs. Use Atlas data tools instead. Types / example: url: string — ignored; e.g. "https://example.com"
urlstringSubscription-StatusGet the authenticated user's subscription tier, monthly usage, remaining requests, and limits. Returns a dashboard_url the user can visit to manage their account, upgrade their plan, connect a broker, or see available tools. Always share the dashboard link when the user asks a...Get the authenticated user's subscription tier, monthly usage, remaining requests, and limits. Returns a dashboard_url the user can visit to manage their account, upgrade their plan, connect a broker, or see available tools. Always share the dashboard link when the user asks a...
No parameter schema in public metadata yet.
Get-InstructionsRead the signed-in user's saved instructions (read-only). Optional platform='discord' with parameters for Discord context. Types / examples: platform: string — "other" (default) or "discord" parameters: optional array of objects | null — host-specific context for Discord Examp...2 paramsRead the signed-in user's saved instructions (read-only). Optional platform='discord' with parameters for Discord context. Types / examples: platform: string — "other" (default) or "discord" parameters: optional array of objects | null — host-specific context for Discord Examp...
platformstringparametersvalueAutofetch-StrategyGiven a question in natural language, return the best-matching strategies for this user (up to 10), including titles, content, and related material. Optional platform='discord' with parameters for Discord. Types / examples: question: string — e.g. "How do I size trades for ear...3 paramsGiven a question in natural language, return the best-matching strategies for this user (up to 10), including titles, content, and related material. Optional platform='discord' with parameters for Discord. Types / examples: question: string — e.g. "How do I size trades for ear...
platformstringquestionstringparametersvalueList-StrategyList this user's strategies (id, title, visibility, dates) without full body text. Use Fetch-Strategy when you need the complete document. Types / examples: platform: string — "other" or "discord" parameters: optional array of objects | null2 paramsList this user's strategies (id, title, visibility, dates) without full body text. Use Fetch-Strategy when you need the complete document. Types / examples: platform: string — "other" or "discord" parameters: optional array of objects | null
platformstringparametersvalueFetch-StrategyLoad one strategy by id with full content and related material. Optional question narrows what is retrieved. Types / examples: strategy_id: string — UUID from List-Strategy or Strategy-Open question: optional string | null — narrows retrieved excerpts platform: string — "other...4 paramsLoad one strategy by id with full content and related material. Optional question narrows what is retrieved. Types / examples: strategy_id: string — UUID from List-Strategy or Strategy-Open question: optional string | null — narrows retrieved excerpts platform: string — "other...
platformstringquestionvalueparametersvaluestrategy_idstringStrategy-OpenOpen the strategy experience for the signed-in user (view mode). - strategy_id: optional; defaults to their primary strategy. - platform: optional host hint — openai, claude, or other. Response includes strategy id, title, content, journal when applicable, a short discovery li...2 paramsOpen the strategy experience for the signed-in user (view mode). - strategy_id: optional; defaults to their primary strategy. - platform: optional host hint — openai, claude, or other. Response includes strategy id, title, content, journal when applicable, a short discovery li...
platformstringstrategy_idvalueStrategy-PreviewSame as Strategy-Open but can include proposed edits for the UI to review. - proposed_title: new document title (optional). - proposed_content: optional JSON string; same accepted shapes as Strategy-Create `content`. - proposed_journal_entry: optional single journal line. - st...5 paramsSame as Strategy-Open but can include proposed edits for the UI to review. - proposed_title: new document title (optional). - proposed_content: optional JSON string; same accepted shapes as Strategy-Create `content`. - proposed_journal_entry: optional single journal line. - st...
platformstringstrategy_idvalueproposed_titlevalueproposed_contentvalueproposed_journal_entryvalueStrategy-UpdateSave changes to an existing strategy. - strategy_id: which strategy to update (required). - title, content, visibility, update_note: optional new values. - journal: optional full journal list to replace the current one. - journal_entry: optional line to append to the journal....11 paramsSave changes to an existing strategy. - strategy_id: which strategy to update (required). - title, content, visibility, update_note: optional new values. - journal: optional full journal list to replace the current one. - journal_entry: optional line to append to the journal....
titlevaluetoolsvaluesearchvaluecontentvaluejournalvalueanalysisvaluevisibilityvaluestrategy_idstringupdate_notevalueinstructionsvaluejournal_entryvalueStrategy-CreateCreate a new strategy. - title: name (required). - content: optional JSON string; leave empty for a blank strategy. - visibility: private, invite-only, unlisted, Atlas-public, web-public (default private). Accepted JSON for section bodies (pass the whole value as one string, e...3 paramsCreate a new strategy. - title: name (required). - content: optional JSON string; leave empty for a blank strategy. - visibility: private, invite-only, unlisted, Atlas-public, web-public (default private). Accepted JSON for section bodies (pass the whole value as one string, e...
titlestringcontentstringvisibilitystringStrategy-Save-InstructionsSave the user's strategy-selection notes. - instructions: text to store; leave empty to clear. These notes steer how strategies are chosen for their questions. Types / examples: instructions: optional string | null — free text; empty clears saved notes Example: instructions="P...1 paramsSave the user's strategy-selection notes. - instructions: text to store; leave empty to clear. These notes steer how strategies are chosen for their questions. Types / examples: instructions: optional string | null — free text; empty clears saved notes Example: instructions="P...
instructionsvalueStrategy-ImportCopy a catalog or shared strategy into this user's account as a new private strategy (content and attachments). - strategy_id: id of the strategy to copy (required). Requires an active signed-in session. You cannot import a strategy you already own. Types / examples: strategy_...2 paramsCopy a catalog or shared strategy into this user's account as a new private strategy (content and attachments). - strategy_id: id of the strategy to copy (required). Requires an active signed-in session. You cannot import a strategy you already own. Types / examples: strategy_...
platformstringstrategy_idstringTrigger-Workflow-SchemaFetch the canonical schema for AI trigger workflows. Returns every legal field the workflow decision AI can fill, its data type, allowed options, and when-conditions, plus worked examples. Use this when an external client (ChatGPT, Claude) is helping a user author or edit a wo...Fetch the canonical schema for AI trigger workflows. Returns every legal field the workflow decision AI can fill, its data type, allowed options, and when-conditions, plus worked examples. Use this when an external client (ChatGPT, Claude) is helping a user author or edit a wo...
No parameter schema in public metadata yet.
Connect AI agents to Atlas so they can read markets, build workflows, send alerts, and place broker orders with your approval.
Install · Why · What it can do · Examples · Tools · FAQ · Safety
Stop jumping between charts, brokers, alerts, spreadsheets, and chat apps.
Atlas MCP lets AI agents help with investing tasks in one place:
Ask Agent → Analyze Market → Review Plan → Stage Orders → Automate Workflow → Send Alerts
Atlas MCP gives agents a safe way to:
It works with agent tools like:
Atlas MCP is a hosted, remote MCP server. There's nothing to compile or self-host — your agent connects to https://atlasmcp.finmanagerai.com/mcp over streamable HTTP, and authenticates with your personal Atlas API key.
Claude Desktop / Claude Code / Cursor / Cline / any MCP client that reads mcp.json:
{
"mcpServers": {
"atlas": {
"type": "streamable-http",
"url": "https://atlasmcp.finmanagerai.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_ATLAS_API_KEY"
}
}
}
}
Claude Code one-liner:
claude mcp add --transport http atlas https://atlasmcp.finmanagerai.com/mcp \
--header "Authorization: Bearer YOUR_ATLAS_API_KEY"
Anything that follows the MCP registry:
io.github.finmanagerai/atlas-mcp-server
Then restart your client. Ask the agent to "show me an SPY quote" — if a quote comes back, you're connected.
Each recipe covers config path, install command, env vars, test prompt, and troubleshooting:
Drop SKILL.md into your agent's skills/instructions and it will pick the right recipe, plug in the user's key, and run the smoke test on its own.
examples/smoke-test.shHeads-up: This repo intentionally contains only the public configuration needed to install and discover Atlas MCP. The server implementation, broker connectors, and proprietary data pipelines are not open-sourced.
Most agents can explain the market.
But they usually cannot do the useful parts together:
Atlas MCP closes that gap.
It helps agents move from:
"Here is what I think."
to:
"Here is the market data, here is the plan, here are the orders, review before sending."
Supported brokers can include:
Robinhood and Fidelity are not supported for trading features.
Show me the top-volume SPY options contracts today.
Check my buying power and preview buying 5 NVDA and 5 AMD.
If QQQ breaks above 430, send me a Discord alert and stage a trade for review.
Scan my watchlist every morning and text me the best setups.
Preview multiple orders across my connected broker account. Do not submit until I approve.
Atlas MCP can expose tools for:
No. Atlas MCP is a tool layer for AI agents. It helps agents read data, create workflows, preview orders, and send alerts. You stay in control.
Yes, when broker connections and permissions are enabled. The safest flow is preview first, then submit only after approval.
Yes. Atlas MCP can stage multiple orders together, so you do not have to enter each trade one by one.
Yes, when your broker connection supports options trading. Atlas MCP can help with options chains, contract lookup, Greeks, and order previews.
Yes. Workflows can send alerts, summaries, and trade updates to Discord, SMS, Telegram, and chat apps.
Yes. Atlas MCP can support broker workflows through Alpaca, Webull, Tradier, Public, and 20+ popular brokers depending on your enabled broker connection.
No. Trading features are not available for Robinhood and Fidelity.
No. Atlas MCP is software for market research and workflow automation. It does not give financial advice.
This project is for education, research, and workflow automation only.
Trading stocks, options, and other assets is risky. You are responsible for your own trades, broker connections, order approvals, automation settings, and results.
Always review orders before submitting them.
io.github.shelvick/shopify-subscription-reconciliation
zleventer/google-ads-mcp
csoai-org/meok-stripe-acp-checkout-mcp
io.github.mharnett/google-ads
csoai-org/stripe-billing-mcp
co.pipeboard/google-ads-mcp