{
  "name": "Atlas API Tool Catalog",
  "version": "2026-05-26-3",
  "base_url": "https://atlasmcp.finmanagerai.com",
  "auth": {
    "type": "bearer",
    "header": "Authorization: Bearer <ATLAS_KEY>"
  },
  "tools": [
    {
      "tool": "visualize_price_overview",
      "endpoint": "/api/v1/tools/visualize_price_overview",
      "payload": "{\"symbol\":\"MSFT\",\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "image_base64|image_url",
        "symbol",
        "timeframes[]"
      ],
      "mcp_name": "Multi-Timeframe-Price-Overview",
      "label": "Multi-Timeframe Price Overview",
      "category": "Stocks",
      "description": "Daily / weekly / monthly snapshot in one image.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "SPY"
        }
      ]
    },
    {
      "tool": "get_price_data",
      "endpoint": "/api/v1/tools/get_price_data",
      "payload": "{\"symbol\":\"AAPL\",\"interval\":\"1d\",\"period\":\"3mo\"}",
      "output": [
        "symbol",
        "interval",
        "period",
        "candles[]"
      ],
      "mcp_name": "Price-Data-OHLCV",
      "label": "OHLCV Price Data",
      "category": "Stocks",
      "description": "Historical OHLCV bars.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "SPY"
        },
        {
          "name": "timeframe",
          "kind": "enum",
          "label": "Timeframe",
          "options": [
            "1m",
            "5m",
            "15m",
            "30m",
            "1h",
            "4h",
            "1d",
            "1w"
          ],
          "example": "1d"
        },
        {
          "name": "lookback",
          "kind": "string",
          "label": "Lookback",
          "help": "e.g. '30d', '6mo', '1y'",
          "example": "30d"
        }
      ]
    },
    {
      "tool": "visualize_price_chart",
      "endpoint": "/api/v1/tools/visualize_price_chart",
      "payload": "{\"symbol\":\"AAPL\",\"interval\":\"1d\",\"period\":\"3mo\",\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "image_base64|image_url",
        "symbol",
        "interval",
        "period"
      ],
      "mcp_name": "Price-Chart",
      "label": "Price Chart (image)",
      "category": "Stocks",
      "description": "Candlestick price chart with overlays.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "SPY"
        },
        {
          "name": "timeframe",
          "kind": "enum",
          "label": "Timeframe",
          "options": [
            "1m",
            "5m",
            "15m",
            "30m",
            "1h",
            "4h",
            "1d",
            "1w"
          ],
          "example": "1d"
        },
        {
          "name": "lookback",
          "kind": "string",
          "label": "Lookback",
          "example": "30d"
        }
      ]
    },
    {
      "tool": "get_stock_quote",
      "endpoint": "/api/v1/tools/get_stock_quote",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "price",
        "change",
        "change_percent",
        "volume",
        "timestamp"
      ],
      "mcp_name": "Stock-Quote",
      "label": "Stock Quote",
      "category": "Stocks",
      "description": "Latest quote for a symbol.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "SPY"
        }
      ]
    },
    {
      "tool": "get_option_expirations",
      "endpoint": "/api/v1/tools/get_option_expirations",
      "payload": "{\"symbol\":\"SPY\",\"filter\":\"next_10\"}",
      "output": [
        "symbol",
        "expirations[]",
        "count"
      ],
      "mcp_name": "Option-Expiration-Dates",
      "label": "Option Expiration Dates",
      "category": "Options",
      "description": "Available expirations for a symbol.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_options_chain",
      "endpoint": "/api/v1/tools/get_options_chain",
      "payload": "{\"symbol\":\"QQQ\",\"max_expirations\":12}",
      "output": [
        "symbol",
        "expirations[]",
        "chain[]"
      ],
      "mcp_name": "Options-Chain",
      "label": "Options Chain",
      "category": "Options",
      "description": "Full options chain for an expiration.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "expiration",
          "kind": "date",
          "label": "Expiration",
          "help": "YYYY-MM-DD"
        }
      ]
    },
    {
      "tool": "get_single_option_quote",
      "endpoint": "/api/v1/tools/get_single_option_quote",
      "payload": "{\"symbol\":\"SPY\",\"expiration\":\"2026-05-13\",\"strike\":580,\"side\":\"call\"}",
      "output": [
        "symbol",
        "strike",
        "side",
        "bid",
        "ask",
        "last",
        "greeks"
      ],
      "mcp_name": "Single-Option-Quote",
      "label": "Single Option Quote",
      "category": "Options",
      "description": "Bid/ask/IV/greeks for one contract.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "expiration",
          "kind": "date",
          "label": "Expiration"
        },
        {
          "name": "strike",
          "kind": "number",
          "label": "Strike"
        },
        {
          "name": "side",
          "kind": "enum",
          "label": "Side",
          "options": [
            "call",
            "put"
          ]
        }
      ]
    },
    {
      "tool": "analyze_greek_exposures",
      "endpoint": "/api/v1/tools/analyze_greek_exposures",
      "payload": "{\"symbol\":\"NVDA\",\"num_expirations\":5}",
      "output": [
        "symbol",
        "expirations[]",
        "gex",
        "dex",
        "vex",
        "tex"
      ],
      "mcp_name": "Greek-Exposure-Multi-Expiration",
      "label": "Greek Exposure (Multiple Expirations)",
      "category": "Greek Exposure",
      "description": "Net Gamma / Delta / Vanna / Theta exposure DATA grid across MULTIPLE expirations for one symbol — OI-weighted per-strike numbers (no chart). Sibling of Greek-Exposure-Single-Expiration (same data, one date) and Greek-Exposure-Heatmap (same numbers rendered as PNG).",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "expiration",
          "kind": "date",
          "label": "Expiration"
        }
      ]
    },
    {
      "tool": "greek_exposure_single_expiration",
      "endpoint": "/api/v1/tools/greek_exposure_single_expiration",
      "payload": "{\"symbol\":\"SPY\",\"expiration\":\"2026-05-13\"}",
      "output": [
        "symbol",
        "current_price",
        "expirations_analyzed",
        "exposures_by_date",
        "portfolio_totals",
        "key_levels"
      ],
      "mcp_name": "Greek-Exposure-Single-Expiration",
      "label": "Greek Exposure (Single Expiration)",
      "category": "Greek Exposure",
      "description": "Greek exposures for ONE expiration date only — guaranteed single-chain fetch. Use when the caller knows the date (0DTE, weekly, monthly OPEX, dated event).",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "expiration",
          "kind": "date",
          "label": "Expiration (YYYY-MM-DD)"
        }
      ]
    },
    {
      "tool": "greek_exposure_heatmap",
      "endpoint": "/api/v1/tools/greek_exposure_heatmap",
      "payload": "{\"symbol\":\"SPY\",\"greeks\":[\"gamma\",\"delta\",\"vanna\",\"theta\"],\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "images[]",
        "image_base64",
        "caption",
        "symbol",
        "greeks_returned[]"
      ],
      "mcp_name": "Greek-Exposure-Heatmap",
      "label": "Greek Exposure Heatmap",
      "category": "Greek Exposure",
      "description": "Heatmaps for one or more greeks in a single call. Pass greeks=[\"gamma\",\"delta\",\"vanna\",\"theta\"] (any subset). Returns one PNG per requested greek.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "greeks",
          "kind": "multi-enum",
          "label": "Greeks",
          "options": [
            "gamma",
            "delta",
            "vanna",
            "theta"
          ],
          "default": [
            "gamma",
            "delta",
            "vanna",
            "theta"
          ]
        }
      ]
    },
    {
      "tool": "net_exposure_charts",
      "endpoint": "/api/v1/tools/net_exposure_charts",
      "payload": "{\"symbol\":\"SPY\",\"metrics\":[\"net_gex\",\"net_dex\",\"net_vex\",\"net_tex\"],\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "images[]",
        "image_base64",
        "caption",
        "symbol",
        "metrics_returned[]"
      ],
      "mcp_name": "Net-Exposure-Charts",
      "label": "Net Exposure Charts",
      "category": "Greek Exposure",
      "description": "Net exposure bar charts for one or more greeks. metrics=[\"net_gex\",\"net_dex\",\"net_vex\",\"net_tex\"]. Returns one PNG per metric.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "metrics",
          "kind": "multi-enum",
          "label": "Metrics",
          "options": [
            "net_gex",
            "net_dex",
            "net_vex",
            "net_tex"
          ],
          "default": [
            "net_gex",
            "net_dex",
            "net_vex",
            "net_tex"
          ]
        }
      ]
    },
    {
      "tool": "get_volume_oi_data",
      "endpoint": "/api/v1/tools/get_volume_oi_data",
      "payload": "{\"symbol\":\"SPY\",\"sort_by\":\"volume\",\"limit\":20}",
      "output": [
        "symbol",
        "contracts[]",
        "volume",
        "open_interest"
      ],
      "mcp_name": "Top-Volume-and-OI-Contracts",
      "label": "Top Volume & OI Contracts",
      "category": "Options Flow",
      "description": "Top contracts by volume / OI as data.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "volume_and_oi_charts",
      "endpoint": "/api/v1/tools/volume_and_oi_charts",
      "payload": "{\"symbol\":\"SPY\",\"types\":[\"vol\",\"oi\"],\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "images[]",
        "image_base64",
        "caption",
        "symbol",
        "types_returned[]"
      ],
      "mcp_name": "Volume-and-OI-Charts",
      "label": "Volume & OI Charts",
      "category": "Options Flow",
      "description": "Top-volume and/or open-interest charts. types=[\"vol\",\"oi\",\"vol_oi\"]. Returns one PNG per requested type.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "types",
          "kind": "multi-enum",
          "label": "Types",
          "options": [
            "vol",
            "oi",
            "vol_oi"
          ],
          "default": [
            "vol",
            "oi"
          ]
        }
      ]
    },
    {
      "tool": "Vision_Analysis",
      "endpoint": "/api/v1/tools/Vision_Analysis",
      "payload": "{\"question\":\"What is the trend on SPY in the last 3 months?\"}",
      "output": [
        "answer",
        "insights[]",
        "confidence?"
      ],
      "mcp_name": "Chart-Vision-Analysis",
      "label": "Chart Vision Analysis",
      "category": "Charts",
      "description": "AI vision analysis of a chart image.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "timeframe",
          "kind": "enum",
          "label": "Timeframe",
          "options": [
            "1m",
            "5m",
            "15m",
            "30m",
            "1h",
            "4h",
            "1d",
            "1w"
          ]
        }
      ]
    },
    {
      "tool": "visualize_multi",
      "endpoint": "/api/v1/tools/visualize_multi",
      "payload": "{\"charts\":[{\"type\":\"gamma\",\"symbol\":\"SPY\"},{\"type\":\"price\",\"symbol\":\"SPY\"}],\"platform\":\"other\",\"image_format\":\"png\"}",
      "output": [
        "image_base64|image_url",
        "charts[]",
        "layout"
      ],
      "mcp_name": "Multi-Chart-View",
      "label": "Multi Chart View (image)",
      "category": "Charts",
      "description": "Multi-timeframe charts side-by-side.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_balance_sheet",
      "endpoint": "/api/v1/tools/get_balance_sheet",
      "payload": "{\"symbol\":\"AAPL\",\"freq\":\"yearly\"}",
      "output": [
        "symbol",
        "freq",
        "statement[]"
      ],
      "mcp_name": "Balance-Sheet",
      "label": "Balance Sheet",
      "category": "Fundamentals",
      "description": "Latest balance sheet.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_basic_financials",
      "endpoint": "/api/v1/tools/get_basic_financials",
      "payload": "{\"symbol\":\"AAPL\",\"metric\":\"all\"}",
      "output": [
        "symbol",
        "metrics",
        "updated_at"
      ],
      "mcp_name": "Financial-Metrics",
      "label": "Financial Metrics",
      "category": "Fundamentals",
      "description": "Headline valuation + profitability metrics.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_income_statement",
      "endpoint": "/api/v1/tools/get_income_statement",
      "payload": "{\"symbol\":\"AAPL\",\"freq\":\"yearly\"}",
      "output": [
        "symbol",
        "freq",
        "statement[]"
      ],
      "mcp_name": "Income-Statement",
      "label": "Income Statement",
      "category": "Fundamentals",
      "description": "Latest income statement.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_analyst_price_targets",
      "endpoint": "/api/v1/tools/get_analyst_price_targets",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "target_high",
        "target_low",
        "target_mean"
      ],
      "mcp_name": "Analyst-Price-Targets",
      "label": "Analyst Price Targets",
      "category": "Estimates",
      "description": "Consensus price targets.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_earnings_estimates",
      "endpoint": "/api/v1/tools/get_earnings_estimates",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "estimates[]"
      ],
      "mcp_name": "EPS-Estimates",
      "label": "EPS Estimates",
      "category": "Estimates",
      "description": "Consensus EPS estimates.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_eps_trend",
      "endpoint": "/api/v1/tools/get_eps_trend",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "trend[]"
      ],
      "mcp_name": "EPS-Trend",
      "label": "EPS Trend",
      "category": "Estimates",
      "description": "EPS estimate trend.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_growth_estimates",
      "endpoint": "/api/v1/tools/get_growth_estimates",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "growth_estimates[]"
      ],
      "mcp_name": "Growth-Estimates",
      "label": "Growth Estimates",
      "category": "Estimates",
      "description": "Growth estimates summary.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_revenue_estimates",
      "endpoint": "/api/v1/tools/get_revenue_estimates",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "estimates[]"
      ],
      "mcp_name": "Revenue-Estimates",
      "label": "Revenue Estimates",
      "category": "Estimates",
      "description": "Consensus revenue estimates.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_earnings_calendar",
      "endpoint": "/api/v1/tools/get_earnings_calendar",
      "payload": "{\"from_date\":\"2025-01-01\",\"to_date\":\"2025-04-01\"}",
      "output": [
        "from_date",
        "to_date",
        "events[]"
      ],
      "mcp_name": "Earnings-Calendar",
      "label": "Earnings Calendar",
      "category": "Calendar",
      "description": "Upcoming earnings releases.",
      "params": [
        {
          "name": "from",
          "kind": "date",
          "label": "From"
        },
        {
          "name": "to",
          "kind": "date",
          "label": "To"
        }
      ]
    },
    {
      "tool": "get_earnings_dates",
      "endpoint": "/api/v1/tools/get_earnings_dates",
      "payload": "{\"symbol\":\"AAPL\",\"limit\":12}",
      "output": [
        "symbol",
        "earnings_dates[]"
      ],
      "mcp_name": "Earnings-Dates",
      "label": "Earnings Dates",
      "category": "Calendar",
      "description": "Earnings dates for a symbol.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_ipo_calendar",
      "endpoint": "/api/v1/tools/get_ipo_calendar",
      "payload": "{\"from_date\":\"2025-01-01\",\"to_date\":\"2025-06-01\"}",
      "output": [
        "from_date",
        "to_date",
        "ipos[]"
      ],
      "mcp_name": "IPO-Calendar",
      "label": "IPO Calendar",
      "category": "Calendar",
      "description": "Upcoming IPOs.",
      "params": [
        {
          "name": "from",
          "kind": "date",
          "label": "From"
        },
        {
          "name": "to",
          "kind": "date",
          "label": "To"
        }
      ]
    },
    {
      "tool": "get_insider_transactions",
      "endpoint": "/api/v1/tools/get_insider_transactions",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "transactions[]"
      ],
      "mcp_name": "Insider-Transactions",
      "label": "Insider Transactions",
      "category": "Ownership",
      "description": "Recent insider buys / sells.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_institutional_holders",
      "endpoint": "/api/v1/tools/get_institutional_holders",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "holders[]"
      ],
      "mcp_name": "Institutional-Holders",
      "label": "Institutional Holders",
      "category": "Ownership",
      "description": "Top institutional holders.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_sec_filings",
      "endpoint": "/api/v1/tools/get_sec_filings",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "filings[]",
        "form",
        "filed_at"
      ],
      "mcp_name": "SEC-Filings",
      "label": "SEC Filings",
      "category": "Ownership",
      "description": "Recent SEC filings.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_senate_lobbying",
      "endpoint": "/api/v1/tools/get_senate_lobbying",
      "payload": "{\"symbol\":\"AAPL\"}",
      "output": [
        "symbol",
        "records[]"
      ],
      "mcp_name": "Senate-Lobbying-Data",
      "label": "Senate Lobbying Data",
      "category": "Ownership",
      "description": "Congressional trading / lobbying activity.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_account_balances",
      "endpoint": "/api/v1/tools/get_account_balances",
      "payload": "{\"account_id\":\"YOUR_ACCOUNT_ID\"}",
      "output": [
        "account_id",
        "cash",
        "equity",
        "buying_power"
      ],
      "mcp_name": "Account-Balances",
      "label": "Account Balances",
      "category": "Brokerage",
      "description": "Cash, buying power, equity for an account.",
      "params": [
        {
          "name": "account_id",
          "kind": "string",
          "label": "Account id"
        }
      ]
    },
    {
      "tool": "get_holdings",
      "endpoint": "/api/v1/tools/get_holdings",
      "payload": "{\"account_id\":\"YOUR_ACCOUNT_ID\"}",
      "output": [
        "account_id",
        "positions[]"
      ],
      "mcp_name": "Account-Holdings",
      "label": "Account Holdings",
      "category": "Brokerage",
      "description": "Positions in one linked account.",
      "params": [
        {
          "name": "account_id",
          "kind": "string",
          "label": "Account id"
        }
      ]
    },
    {
      "tool": "get_account_symbol",
      "endpoint": "/api/v1/tools/get_account_symbol",
      "payload": "{\"account_id\":\"YOUR_ACCOUNT_ID\",\"symbol\":\"AAPL\"}",
      "output": [
        "account_id",
        "symbol",
        "position"
      ],
      "mcp_name": "Account-Symbol-Lookup",
      "label": "Account Symbol Lookup",
      "category": "Brokerage",
      "description": "Resolve a ticker inside a linked account.",
      "params": [
        {
          "name": "account_id",
          "kind": "string",
          "label": "Account id"
        },
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        }
      ]
    },
    {
      "tool": "get_all_holdings",
      "endpoint": "/api/v1/tools/get_all_holdings",
      "payload": "{}",
      "output": [
        "accounts[]",
        "positions[]"
      ],
      "mcp_name": "All-Account-Holdings",
      "label": "All Account Holdings",
      "category": "Brokerage",
      "description": "Positions across every linked account.",
      "params": []
    },
    {
      "tool": "list_broker_connections",
      "endpoint": "/api/v1/tools/list_broker_connections",
      "payload": "{}",
      "output": [
        "connections[]",
        "account_id",
        "broker_name",
        "status"
      ],
      "mcp_name": "Broker-Connections",
      "label": "Broker Connections",
      "category": "Brokerage",
      "description": "List linked brokerage accounts.",
      "params": []
    },
    {
      "tool": "get_transactions",
      "endpoint": "/api/v1/tools/get_transactions",
      "payload": "{\"account_id\":\"YOUR_ACCOUNT_ID\"}",
      "output": [
        "account_id",
        "transactions[]"
      ],
      "mcp_name": "Transaction-History",
      "label": "Transaction History",
      "category": "Brokerage",
      "description": "Transaction history with optional date range.",
      "params": [
        {
          "name": "account_id",
          "kind": "string",
          "label": "Account id"
        }
      ]
    },
    {
      "tool": "delete_preview_order",
      "endpoint": "/api/v1/tools/delete_preview_order",
      "payload": "{\"preview_id\":\"YOUR_PREVIEW_ID\"}",
      "output": [
        "deleted",
        "preview_id"
      ],
      "mcp_name": "Delete-Preview-Order",
      "label": "Delete Preview Order",
      "category": "Trading — Orders",
      "description": "Discard a staged preview.",
      "params": [
        {
          "name": "preview_id",
          "kind": "string",
          "label": "Preview id"
        }
      ]
    },
    {
      "tool": "list_preview_orders",
      "endpoint": "/api/v1/tools/list_preview_orders",
      "payload": "{}",
      "output": [
        "orders[]",
        "preview_id",
        "status"
      ],
      "mcp_name": "List-Preview-Orders",
      "label": "List Preview Orders",
      "category": "Trading — Orders",
      "description": "List staged previews not yet placed.",
      "params": []
    },
    {
      "tool": "place_order",
      "endpoint": "/api/v1/tools/place_order",
      "payload": "{\"symbol\":\"AAPL\",\"side\":\"buy\",\"quantity\":10,\"order_type\":\"market\"}",
      "output": [
        "order_id",
        "status",
        "filled_qty"
      ],
      "mcp_name": "Place-Order",
      "label": "Place Order",
      "category": "Trading — Orders",
      "description": "Submit a previously previewed order.",
      "params": [
        {
          "name": "preview_id",
          "kind": "string",
          "label": "Preview id"
        }
      ]
    },
    {
      "tool": "preview_multiple_orders",
      "endpoint": "/api/v1/tools/preview_multiple_orders",
      "payload": "{\"orders\":[{\"symbol\":\"SPY\",\"side\":\"buy\",\"quantity\":1,\"order_type\":\"market\"}]}",
      "output": [
        "previews[]",
        "preview_id",
        "estimated_cost"
      ],
      "mcp_name": "Preview-Multiple-Orders",
      "label": "Preview Multiple Orders",
      "category": "Trading — Orders",
      "description": "Stage several orders at once.",
      "params": []
    },
    {
      "tool": "preview_order",
      "endpoint": "/api/v1/tools/preview_order",
      "payload": "{\"symbol\":\"AAPL\",\"side\":\"buy\",\"quantity\":10,\"order_type\":\"market\",\"account_id\":\"YOUR_ACCOUNT_ID\"}",
      "output": [
        "preview_id",
        "estimated_cost",
        "buying_power_impact"
      ],
      "mcp_name": "Preview-Order",
      "label": "Preview Order",
      "category": "Trading — Orders",
      "description": "Stage an order for review without sending it to the broker.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol"
        },
        {
          "name": "side",
          "kind": "enum",
          "label": "Side",
          "options": [
            "buy",
            "sell"
          ]
        },
        {
          "name": "quantity",
          "kind": "number",
          "label": "Quantity"
        },
        {
          "name": "order_type",
          "kind": "enum",
          "label": "Order type",
          "options": [
            "market",
            "limit",
            "stop",
            "stop_limit"
          ]
        }
      ]
    },
    {
      "tool": "create_trading_trigger",
      "endpoint": "/api/v1/tools/create_trading_trigger",
      "payload": "{\"symbol\":\"SPY\",\"condition\":{\"operator\":\"lte\",\"value\":550},\"action\":{\"side\":\"buy\",\"quantity\":1}}",
      "output": [
        "trigger_id",
        "status",
        "created_at"
      ],
      "mcp_name": "Create-Trading-Trigger",
      "label": "Create Trading Trigger",
      "category": "Trading — Triggers",
      "description": "Create a price / condition-based trigger.",
      "params": []
    },
    {
      "tool": "delete_trading_trigger",
      "endpoint": "/api/v1/tools/delete_trading_trigger",
      "payload": "{\"trigger_id\":\"YOUR_TRIGGER_ID\"}",
      "output": [
        "deleted",
        "trigger_id"
      ],
      "mcp_name": "Delete-Trading-Trigger",
      "label": "Delete Trading Trigger",
      "category": "Trading — Triggers",
      "description": "Permanently delete a trigger.",
      "params": [
        {
          "name": "trigger_id",
          "kind": "string",
          "label": "Trigger id"
        }
      ]
    },
    {
      "tool": "list_fired_triggers",
      "endpoint": "/api/v1/tools/list_fired_triggers",
      "payload": "{}",
      "output": [
        "fired_triggers[]",
        "fired_trigger_id",
        "fired_at"
      ],
      "mcp_name": "List-Fired-Triggers",
      "label": "List Fired Triggers",
      "category": "Trading — Triggers",
      "description": "List triggers that already fired.",
      "params": []
    },
    {
      "tool": "list_trading_triggers",
      "endpoint": "/api/v1/tools/list_trading_triggers",
      "payload": "{}",
      "output": [
        "triggers[]",
        "trigger_id",
        "status"
      ],
      "mcp_name": "List-Trading-Triggers",
      "label": "List Trading Triggers",
      "category": "Trading — Triggers",
      "description": "List active and paused triggers.",
      "params": []
    },
    {
      "tool": "preview_trading_trigger",
      "endpoint": "/api/v1/tools/preview_trading_trigger",
      "payload": "{\"symbol\":\"SPY\",\"rule\":{\"trigger\":{\"metric\":\"price\",\"operator\":\"lte\",\"value\":0},\"execution\":{\"asset_class\":\"stock\",\"side\":\"buy\",\"quantity\":1,\"order_type\":\"market\"}}}",
      "output": [
        "preview_id",
        "trigger",
        "estimated_cost"
      ],
      "mcp_name": "Preview-Trading-Trigger",
      "label": "Preview Trading Trigger",
      "category": "Trading — Triggers",
      "description": "Preview a trigger before creating it.",
      "params": []
    },
    {
      "tool": "reactivate_trigger",
      "endpoint": "/api/v1/tools/reactivate_trigger",
      "payload": "{\"fired_trigger_id\":\"YOUR_FIRED_TRIGGER_ID\"}",
      "output": [
        "trigger_id",
        "status"
      ],
      "mcp_name": "Reactivate-Trigger",
      "label": "Reactivate Trigger",
      "category": "Trading — Triggers",
      "description": "Reactivate a fired trigger.",
      "params": [
        {
          "name": "fired_trigger_id",
          "kind": "string",
          "label": "Fired trigger id"
        }
      ]
    },
    {
      "tool": "update_trading_trigger",
      "endpoint": "/api/v1/tools/update_trading_trigger",
      "payload": "{\"trigger_id\":\"YOUR_TRIGGER_ID\",\"is_active\":false}",
      "output": [
        "trigger_id",
        "status"
      ],
      "mcp_name": "Update-Trading-Trigger",
      "label": "Update Trading Trigger",
      "category": "Trading — Triggers",
      "description": "Update a trigger (pause / retarget).",
      "params": [
        {
          "name": "trigger_id",
          "kind": "string",
          "label": "Trigger id"
        }
      ]
    },
    {
      "tool": "signal_schema",
      "endpoint": "/api/v1/tools/signal_schema",
      "payload": "{}",
      "output": [
        "success",
        "version",
        "summary",
        "fields",
        "examples"
      ],
      "mcp_name": "Signal-Schema",
      "label": "How a Play is Written",
      "category": "Plays (signals)",
      "description": "Read this before posting or taking a play. The shape of a play: every field, what each number is measured in, what happens when one is left out, and worked examples.",
      "params": [],
      "excluded_from": [
        "strategy"
      ]
    },
    {
      "tool": "signal_groups",
      "endpoint": "/api/v1/tools/signal_groups",
      "payload": "{}",
      "output": [
        "success",
        "groups[]"
      ],
      "mcp_name": "Signal-Groups",
      "label": "Where I Can Post",
      "category": "Plays (signals)",
      "description": "The places you can post a play to: the community board, plus every signal group you own or can post in.",
      "params": [],
      "excluded_from": [
        "strategy"
      ]
    },
    {
      "tool": "signal_list",
      "endpoint": "/api/v1/tools/signal_list",
      "payload": "{\"board\":\"community\",\"limit\":20}",
      "output": [
        "success",
        "plays[]",
        "board",
        "window",
        "has_more"
      ],
      "mcp_name": "Signal-List",
      "label": "Read the Board",
      "category": "Plays (signals)",
      "description": "Read the plays on the community board, or the private ones, newest first, with what happened to you on each. One page at a time.",
      "params": [
        {
          "name": "board",
          "kind": "enum",
          "label": "Which board",
          "options": [
            "community",
            "private"
          ],
          "example": "community"
        },
        {
          "name": "group_id",
          "kind": "string",
          "label": "One group only"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many",
          "example": 20
        },
        {
          "name": "days",
          "kind": "number",
          "label": "Days back",
          "example": 7
        },
        {
          "name": "before",
          "kind": "string",
          "label": "Carry on from"
        }
      ],
      "excluded_from": [
        "strategy"
      ]
    },
    {
      "tool": "signal_show",
      "endpoint": "/api/v1/tools/signal_show",
      "payload": "{\"signal_id\":\"YOUR_SIGNAL_ID\"}",
      "output": [
        "success",
        "play",
        "board"
      ],
      "mcp_name": "Signal-Show",
      "label": "Show One Play",
      "category": "Plays (signals)",
      "description": "Show one play as a card, the same one the Signals tab renders, with every number and what happened to your order.",
      "params": [
        {
          "name": "signal_id",
          "kind": "string",
          "label": "Play id"
        }
      ],
      "excluded_from": [
        "strategy"
      ]
    },
    {
      "tool": "signal_post",
      "endpoint": "/api/v1/tools/signal_post",
      "payload": "{\"symbol\":\"SPY\",\"option_type\":\"call\",\"strike\":580,\"expiration_date\":\"2026-05-13\",\"contracts\":2,\"entry\":2.4,\"tps\":[40,80],\"stop\":30}",
      "output": [
        "success",
        "signal",
        "called_at",
        "counts",
        "where"
      ],
      "mcp_name": "Signal-Post",
      "label": "Post a Play",
      "category": "Plays (signals)",
      "description": "Post a trade play to the community board or one of your groups: the contract, how much, where to get in, where to take profit, where to get out, and when.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Stock",
          "example": "SPY"
        },
        {
          "name": "option_type",
          "kind": "enum",
          "label": "Call or put",
          "options": [
            "call",
            "put"
          ],
          "example": "call"
        },
        {
          "name": "strike",
          "kind": "number",
          "label": "Strike",
          "example": 580
        },
        {
          "name": "expiration_date",
          "kind": "date",
          "label": "Expiry",
          "example": "2026-05-13"
        },
        {
          "name": "contracts",
          "kind": "number",
          "label": "Contracts",
          "example": 2
        },
        {
          "name": "entry",
          "kind": "number",
          "label": "Entry",
          "example": 2.4
        },
        {
          "name": "tps",
          "kind": "string",
          "label": "Take profits",
          "example": "40, 80"
        },
        {
          "name": "stop",
          "kind": "number",
          "label": "Stop",
          "example": 30
        },
        {
          "name": "group_id",
          "kind": "string",
          "label": "Where to post"
        },
        {
          "name": "reason",
          "kind": "string",
          "label": "Why"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "signal_update",
      "endpoint": "/api/v1/tools/signal_update",
      "payload": "{\"signal_id\":\"YOUR_SIGNAL_ID\",\"stop\":24}",
      "output": [
        "success",
        "play"
      ],
      "mcp_name": "Signal-Update",
      "label": "Change a Play",
      "category": "Plays (signals)",
      "description": "Change a play that is still live instead of posting a second one. Send only what changes, everything left empty keeps what the play already says.",
      "params": [
        {
          "name": "signal_id",
          "kind": "string",
          "label": "Play id"
        },
        {
          "name": "stop",
          "kind": "number",
          "label": "New stop",
          "example": 24
        },
        {
          "name": "tps",
          "kind": "string",
          "label": "New take profits"
        },
        {
          "name": "contracts",
          "kind": "number",
          "label": "Contracts"
        },
        {
          "name": "reason",
          "kind": "string",
          "label": "Why"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "signal_take",
      "endpoint": "/api/v1/tools/signal_take",
      "payload": "{\"signal_id\":\"YOUR_SIGNAL_ID\"}",
      "output": [
        "success",
        "state",
        "quantity",
        "message"
      ],
      "mcp_name": "Signal-Take",
      "label": "Take a Play",
      "category": "Plays (signals)",
      "description": "Take a play: place it in your own account, now. This places a real order. Nothing on the board trades on its own.",
      "params": [
        {
          "name": "signal_id",
          "kind": "string",
          "label": "Play id"
        },
        {
          "name": "snaptrade_account_id",
          "kind": "string",
          "label": "Which account"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "signal_broker",
      "endpoint": "/api/v1/tools/signal_broker",
      "payload": "{}",
      "output": [
        "success",
        "broker"
      ],
      "mcp_name": "Signal-Broker",
      "label": "Broker for Plays",
      "category": "Plays (signals)",
      "description": "See or set the broker account your plays go to, and whether it is used automatically for plays you post and plays you take.",
      "params": [
        {
          "name": "snaptrade_account_id",
          "kind": "string",
          "label": "Account"
        },
        {
          "name": "auto_apply_on_post",
          "kind": "string",
          "label": "Use it when I post",
          "example": "true"
        },
        {
          "name": "auto_apply_on_take",
          "kind": "string",
          "label": "Use it when I take",
          "example": "true"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "autofetch_strategy",
      "endpoint": "/api/v1/tools/autofetch_strategy",
      "payload": "{\"question\":\"Summarize my wheel strategy\",\"platform\":\"other\"}",
      "output": [
        "matches[]",
        "strategy_id",
        "score"
      ],
      "mcp_name": "Autofetch-Strategy",
      "label": "Autofetch Strategy",
      "category": "Strategy",
      "description": "Auto-pick the best-matching strategy.",
      "params": [
        {
          "name": "question",
          "kind": "string",
          "label": "Question"
        }
      ]
    },
    {
      "tool": "fetch_strategy",
      "endpoint": "/api/v1/tools/fetch_strategy",
      "payload": "{\"strategy_id\":\"YOUR_STRATEGY_ID\",\"platform\":\"other\"}",
      "output": [
        "strategy_id",
        "title",
        "content",
        "visibility"
      ],
      "mcp_name": "Fetch-Strategy",
      "label": "Fetch Strategy",
      "category": "Strategy",
      "description": "Load one strategy by id.",
      "params": [
        {
          "name": "strategy_id",
          "kind": "string",
          "label": "Strategy id"
        }
      ]
    },
    {
      "tool": "list_strategy",
      "endpoint": "/api/v1/tools/list_strategy",
      "payload": "{\"platform\":\"other\"}",
      "output": [
        "strategies[]",
        "strategy_id",
        "title",
        "visibility"
      ],
      "mcp_name": "List-Strategy",
      "label": "List Strategy",
      "category": "Strategy",
      "description": "List your strategies.",
      "params": []
    },
    {
      "tool": "create_strategy",
      "endpoint": "/api/v1/tools/create_strategy",
      "payload": "{\"title\":\"New strategy\",\"content\":\"\",\"visibility\":\"private\"}",
      "output": [
        "strategy_id",
        "title",
        "visibility",
        "created_at"
      ],
      "mcp_name": "Strategy-Create",
      "label": "Strategy Create",
      "category": "Strategy",
      "description": "Create a new strategy.",
      "params": [
        {
          "name": "title",
          "kind": "string",
          "label": "Title"
        }
      ]
    },
    {
      "tool": "strategy_import",
      "endpoint": "/api/v1/tools/strategy_import",
      "payload": "{\"strategy_id\":\"IMPORT_STRATEGY_ID\",\"platform\":\"other\"}",
      "output": [
        "imported_strategy_id",
        "title",
        "visibility"
      ],
      "mcp_name": "Strategy-Import",
      "label": "Strategy Import",
      "category": "Strategy",
      "description": "Copy a public strategy into your account.",
      "params": [
        {
          "name": "strategy_id",
          "kind": "string",
          "label": "Strategy id"
        }
      ]
    },
    {
      "tool": "open_strategy",
      "endpoint": "/api/v1/tools/open_strategy",
      "payload": "{\"platform\":\"other\"}",
      "output": [
        "strategy_id",
        "title",
        "content",
        "opened_at"
      ],
      "mcp_name": "Strategy-Open",
      "label": "Strategy Open",
      "category": "Strategy",
      "description": "Open the user’s primary strategy.",
      "params": []
    },
    {
      "tool": "strategy_preview",
      "endpoint": "/api/v1/tools/strategy_preview",
      "payload": "{\"strategy_id\":\"YOUR_STRATEGY_ID\",\"proposed_title\":\"New title\",\"platform\":\"other\"}",
      "output": [
        "preview",
        "diff",
        "strategy_id"
      ],
      "mcp_name": "Strategy-Preview",
      "label": "Strategy Preview",
      "category": "Strategy",
      "description": "Preview proposed strategy edits.",
      "params": []
    },
    {
      "tool": "save_strategy_instructions",
      "endpoint": "/api/v1/tools/save_strategy_instructions",
      "payload": "{\"instructions\":\"Always cite risk before trades.\"}",
      "output": [
        "saved",
        "instructions",
        "updated_at"
      ],
      "mcp_name": "Strategy-Save-Instructions",
      "label": "Strategy Save Instructions",
      "category": "Strategy",
      "description": "Save strategy-selection instructions.",
      "params": []
    },
    {
      "tool": "strategy_discover",
      "endpoint": "/api/v1/tools/strategy_discover",
      "payload": "{\"query\":\"earnings\",\"limit\":25}",
      "output": [
        "success",
        "count",
        "strategies[]",
        "hint"
      ],
      "mcp_name": "Strategy-Discover",
      "label": "Discover Strategies",
      "category": "Strategy",
      "description": "Browse the strategies other people share. Search by title or content, then import one with Strategy-Import.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Search for",
          "example": "earnings"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many",
          "example": 25
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "strategy_duplicate",
      "endpoint": "/api/v1/tools/strategy_duplicate",
      "payload": "{\"strategy_id\":\"SOURCE_STRATEGY_ID\"}",
      "output": [
        "success",
        "strategy"
      ],
      "mcp_name": "Strategy-Duplicate",
      "label": "Duplicate a Strategy",
      "category": "Strategy",
      "description": "Make your own copy of a shared strategy. The same thing as Strategy-Import, under the other name.",
      "params": [
        {
          "name": "strategy_id",
          "kind": "string",
          "label": "Strategy id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "update_strategy",
      "endpoint": "/api/v1/tools/update_strategy",
      "payload": "{\"strategy_id\":\"YOUR_STRATEGY_ID\",\"title\":\"Updated title\"}",
      "output": [
        "strategy_id",
        "title",
        "updated_at"
      ],
      "mcp_name": "Strategy-Update",
      "label": "Strategy Update",
      "category": "Strategy",
      "description": "Save changes to an existing strategy.",
      "params": [
        {
          "name": "strategy_id",
          "kind": "string",
          "label": "Strategy id"
        }
      ]
    },
    {
      "tool": "list_tool_safety",
      "endpoint": "/api/v1/tools/list_tool_safety",
      "payload": "{}",
      "output": [
        "tools[]",
        "name",
        "read_only",
        "destructive"
      ],
      "mcp_name": "List-Tool-Safety",
      "label": "List Tool Safety",
      "category": "Workflow",
      "description": "List which tools are read-only / destructive.",
      "params": []
    },
    {
      "tool": "trigger_workflow_schema",
      "endpoint": "/api/v1/tools/trigger_workflow_schema",
      "payload": "{}",
      "output": [
        "schema",
        "fields[]",
        "metric_options"
      ],
      "mcp_name": "Trigger-Workflow-Schema",
      "label": "Trigger Workflow Schema",
      "category": "Workflow",
      "description": "Field schema for trigger / workflow rules.",
      "params": []
    },
    {
      "tool": "workflow_apply_updates",
      "endpoint": "/api/v1/tools/workflow_apply_updates",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "workflow_id",
        "revisions_pulled",
        "updated_at"
      ],
      "mcp_name": "Workflow-Apply-Updates",
      "label": "Workflow Apply Updates",
      "category": "Workflow",
      "description": "Pull the latest revisions from the parent workflow into this subscribed copy. Use when revisions_behind > 0.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow ID"
        }
      ]
    },
    {
      "tool": "workflow_create",
      "endpoint": "/api/v1/tools/workflow_create",
      "payload": "{\"name\":\"My Workflow\",\"tools\":[],\"reasoning\":{},\"trades\":[]}",
      "output": [
        "workflow_id",
        "status",
        "created_at"
      ],
      "mcp_name": "Workflow-Create",
      "label": "Workflow Create",
      "category": "Workflow",
      "description": "Create a new perception workflow.",
      "params": [
        {
          "name": "name",
          "kind": "string",
          "label": "Name"
        }
      ]
    },
    {
      "tool": "workflow_delete",
      "endpoint": "/api/v1/tools/workflow_delete",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "deleted",
        "workflow_id"
      ],
      "mcp_name": "Workflow-Delete",
      "label": "Workflow Delete",
      "category": "Workflow",
      "description": "Permanently delete a workflow.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_export",
      "endpoint": "/api/v1/tools/workflow_export",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "success",
        "workflow_id",
        "name",
        "status",
        "schedule",
        "timezone",
        "visibility",
        "flow_markdown",
        "flow_graph"
      ],
      "mcp_name": "Workflow-Export",
      "label": "Workflow Export",
      "category": "Workflow",
      "description": "Export a workflow's full node-and-edge graph plus a self-describing markdown rendering. Read-only.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_import",
      "endpoint": "/api/v1/tools/workflow_import",
      "payload": "{\"workflow_id\":\"PUBLIC_WORKFLOW_ID\"}",
      "output": [
        "workflow_id",
        "status",
        "imported_at"
      ],
      "mcp_name": "Workflow-Import",
      "label": "Workflow Import",
      "category": "Workflow",
      "description": "Copy a public workflow into your account.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_list",
      "endpoint": "/api/v1/tools/workflow_list",
      "payload": "{}",
      "output": [
        "success",
        "workflows[]",
        "id",
        "name",
        "status",
        "schedule",
        "timezone",
        "visibility",
        "has_subscribers",
        "subscriber_count",
        "source_workflow_id",
        "parent_id",
        "updated_at",
        "count"
      ],
      "mcp_name": "Workflow-List",
      "label": "Workflow List",
      "category": "Workflow",
      "description": "Lightweight programmatic discovery — list every workflow you own with id / name / status / schedule. Read-only. Use before Workflow-Export / Workflow-Logs / Workflow-Run when you need an id.",
      "params": []
    },
    {
      "tool": "workflow_logs",
      "endpoint": "/api/v1/tools/workflow_logs",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\",\"limit\":25}",
      "output": [
        "logs[]",
        "run_id",
        "status",
        "completed_at"
      ],
      "mcp_name": "Workflow-Logs",
      "label": "Workflow Logs",
      "category": "Workflow",
      "description": "Read recent workflow runs.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_open",
      "endpoint": "/api/v1/tools/workflow_open",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "workflow",
        "workflow_id",
        "name",
        "status",
        "tools[]"
      ],
      "mcp_name": "Workflow-Open",
      "label": "Workflow Open",
      "category": "Workflow",
      "description": "Open a workflow for review / editing.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_performance",
      "endpoint": "/api/v1/tools/workflow_performance",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\",\"platform\":\"other\"}",
      "output": [
        "workflow_id",
        "inception",
        "name",
        "rows[]",
        "totals"
      ],
      "mcp_name": "Workflow-Performance",
      "label": "Workflow Performance",
      "category": "Workflow",
      "description": "Closed-trade performance for a workflow: per-trade PnL rows and aggregate Win Rate / Total PnL / win-loss-flat counts / calendar-style by_day map.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow ID"
        },
        {
          "name": "platform",
          "kind": "enum",
          "label": "Platform",
          "options": [
            "other",
            "claude",
            "chatgpt-apps"
          ]
        }
      ]
    },
    {
      "tool": "workflow_preview",
      "endpoint": "/api/v1/tools/workflow_preview",
      "payload": "{\"name\":\"My Workflow\",\"proposed_patch\":{\"tools\":[],\"reasoning\":{}}}",
      "output": [
        "preview_id",
        "workflow",
        "diff"
      ],
      "mcp_name": "Workflow-Preview",
      "label": "Workflow Preview",
      "category": "Workflow",
      "description": "Preview proposed workflow edits.",
      "params": []
    },
    {
      "tool": "workflow_run",
      "endpoint": "/api/v1/tools/workflow_run",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "run_id",
        "status",
        "started_at"
      ],
      "mcp_name": "Workflow-Run",
      "label": "Workflow Run",
      "category": "Workflow",
      "description": "Execute a workflow on demand.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_update",
      "endpoint": "/api/v1/tools/workflow_update",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\",\"patch\":{\"name\":\"Renamed\"}}",
      "output": [
        "workflow_id",
        "status",
        "updated_at"
      ],
      "mcp_name": "Workflow-Update",
      "label": "Workflow Update",
      "category": "Workflow",
      "description": "Save changes to a workflow.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ]
    },
    {
      "tool": "workflow_discover",
      "endpoint": "/api/v1/tools/workflow_discover",
      "payload": "{\"query\":\"gex\",\"limit\":25}",
      "output": [
        "success",
        "count",
        "workflows[]",
        "hint"
      ],
      "mcp_name": "Workflow-Discover",
      "label": "Discover Workflows",
      "category": "Workflow",
      "description": "Browse the workflows other people share, most imported first. Search by name, rules, or tool. Import one with Workflow-Import.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Search for",
          "example": "gex"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many",
          "example": 25
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_duplicate",
      "endpoint": "/api/v1/tools/workflow_duplicate",
      "payload": "{\"workflow_id\":\"SOURCE_WORKFLOW_ID\"}",
      "output": [
        "success",
        "workflow"
      ],
      "mcp_name": "Workflow-Duplicate",
      "label": "Duplicate a Workflow",
      "category": "Workflow",
      "description": "Make your own copy of a shared workflow. The same thing as Workflow-Import, under the other name.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_journal",
      "endpoint": "/api/v1/tools/workflow_journal",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\",\"action\":\"show\",\"limit\":20}",
      "output": [
        "success",
        "workflow_id",
        "journal",
        "text",
        "entries[]",
        "instruction_changes[]"
      ],
      "mcp_name": "Workflow-Journal",
      "label": "Workflow Journal",
      "category": "Workflow",
      "description": "Read or change a workflow's journal. With journalling on, Atlas writes a note after each of its trades finishes and reads those notes back on later runs.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        },
        {
          "name": "action",
          "kind": "enum",
          "label": "What to do",
          "options": [
            "show",
            "write",
            "update",
            "revert"
          ],
          "example": "show"
        },
        {
          "name": "text",
          "kind": "string",
          "label": "Journal text"
        },
        {
          "name": "instruction",
          "kind": "string",
          "label": "How to journal"
        },
        {
          "name": "enabled",
          "kind": "string",
          "label": "On or off",
          "example": "true"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many entries",
          "example": 20
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "get_instructions",
      "endpoint": "/api/v1/tools/get_instructions",
      "payload": "{\"platform\":\"other\"}",
      "output": [
        "instructions",
        "updated_at"
      ],
      "mcp_name": "Get-Instructions",
      "label": "Get Instructions",
      "category": "Account",
      "description": "Read your saved strategy-selection instructions.",
      "params": []
    },
    {
      "tool": "get_subscription_status",
      "endpoint": "/api/v1/tools/get_subscription_status",
      "payload": "{}",
      "output": [
        "plan",
        "status",
        "usage",
        "limits"
      ],
      "mcp_name": "Subscription-Status",
      "label": "Subscription Status",
      "category": "Account",
      "description": "Subscription tier, usage, remaining requests.",
      "params": []
    },
    {
      "tool": "account_activity",
      "endpoint": "/api/v1/tools/account_activity",
      "payload": "{\"symbol\":\"QQQ\",\"include\":\"all\",\"limit\":25}",
      "output": [
        "success",
        "activity[]",
        "count"
      ],
      "mcp_name": "Account-Activity",
      "label": "Recent Activity",
      "category": "Account",
      "description": "What has happened on your account lately: every workflow and task run with its reasoning and any error, plus the trades those runs fired. Newest first.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Only this workflow"
        },
        {
          "name": "task_id",
          "kind": "string",
          "label": "Only this task"
        },
        {
          "name": "trigger_id",
          "kind": "string",
          "label": "Only this trade"
        },
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Only this stock",
          "example": "QQQ"
        },
        {
          "name": "include",
          "kind": "enum",
          "label": "What to show",
          "options": [
            "all",
            "runs",
            "trades",
            "errors"
          ],
          "example": "all"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many",
          "example": 25
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "fetch",
      "endpoint": "/api/v1/tools/fetch",
      "payload": "{\"url\":\"https://example.com\"}",
      "output": [
        "url",
        "title",
        "summary",
        "content"
      ],
      "mcp_name": "Fetch-URL",
      "label": "Fetch URL",
      "category": "Search",
      "description": "Fetch and summarize a URL.",
      "params": [
        {
          "name": "url",
          "kind": "string",
          "label": "URL"
        }
      ]
    },
    {
      "tool": "search",
      "endpoint": "/api/v1/tools/search",
      "payload": "{\"query\":\"SPY gamma exposure\"}",
      "output": [
        "results[]",
        "title",
        "url",
        "snippet"
      ],
      "mcp_name": "Search",
      "label": "Search",
      "category": "Search",
      "description": "General Atlas search.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Query"
        }
      ]
    },
    {
      "tool": "web_search",
      "endpoint": "/api/v1/tools/web_search",
      "payload": "{\"query\":\"SPY market-moving news today, macro catalysts\",\"recency\":\"today\"}",
      "output": [
        "answer",
        "citations[]",
        "title",
        "url",
        "query"
      ],
      "mcp_name": "Web-Search",
      "label": "Web Search",
      "category": "Search",
      "description": "Live web search for real-time news and facts — today's headlines, macro / geopolitical drivers, earnings, and current events, returned as a dated answer plus the source links it used.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Query",
          "example": "SPY market-moving news today, macro catalysts"
        },
        {
          "name": "recency",
          "kind": "string",
          "label": "Recency",
          "help": "Optional time-window hint like \"today\" or \"this week\".",
          "example": "today"
        }
      ]
    },
    {
      "tool": "resolve_ticker",
      "endpoint": "/api/v1/tools/resolve_ticker",
      "payload": "{\"company_name\":\"Apple\"}",
      "output": [
        "matches[]",
        "symbol",
        "company_name",
        "exchange"
      ],
      "mcp_name": "Ticker-Symbol-Lookup",
      "label": "Ticker Symbol Lookup",
      "category": "Search",
      "description": "Resolve a company name to its ticker.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Query",
          "example": "Apple"
        }
      ]
    },
    {
      "tool": "get_options_flow",
      "endpoint": "/api/v1/tools/get_options_flow",
      "payload": "{\"symbol\":\"AMD\",\"limit\":200,\"platform\":\"other\"}",
      "output": [
        "trades[]",
        "mode",
        "effective_from_date"
      ],
      "mcp_name": "Options-Flow",
      "label": "Options Flow",
      "category": "Options Flow",
      "description": "Stored option-trade tape filtered by side / type / premium / size / time window. Omit symbol for the top-N cross-universe ranking.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "help": "Omit for the top-N feed across the streamed universe.",
          "example": "AMD"
        },
        {
          "name": "from_date",
          "kind": "date",
          "label": "Trading day (YYYY-MM-DD)",
          "help": "The session whose trades you want. NOT the contract expiry.",
          "example": "2026-05-29"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "Max rows",
          "example": 200
        }
      ]
    },
    {
      "tool": "get_options_flow_contract",
      "endpoint": "/api/v1/tools/get_options_flow_contract",
      "payload": "{\"symbol\":\"AMD\",\"expiration_date\":\"2026-05-29\",\"strike\":500,\"side\":\"call\"}",
      "output": [
        "buckets[]",
        "total_premium",
        "total_count"
      ],
      "mcp_name": "Options-Flow-Contract",
      "label": "Options Flow — Per-Hour Histogram",
      "category": "Options Flow",
      "description": "Per-hour premium histogram for ONE contract (open / close stack). Reads strictly from the flow archive cache — never pulls fresh chain.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "AMD"
        },
        {
          "name": "expiration_date",
          "kind": "date",
          "label": "Expiration",
          "example": "2026-05-29"
        },
        {
          "name": "strike",
          "kind": "number",
          "label": "Strike",
          "example": 500
        },
        {
          "name": "side",
          "kind": "enum",
          "label": "Call or Put",
          "options": [
            "call",
            "put"
          ],
          "example": "call"
        }
      ]
    },
    {
      "tool": "list_alert_types",
      "endpoint": "/api/v1/tools/list_alert_types",
      "payload": "{}",
      "output": [
        "alert_types[]",
        "common",
        "version"
      ],
      "mcp_name": "List-Alert-Types",
      "label": "List Alert Types",
      "category": "Alerts",
      "description": "Catalog of alert types you can create — read this BEFORE Create-Alert to learn the conditions shape for each type.",
      "params": []
    },
    {
      "tool": "list_alerts",
      "endpoint": "/api/v1/tools/list_alerts",
      "payload": "{\"active_only\":true}",
      "output": [
        "alerts[]",
        "count"
      ],
      "mcp_name": "List-Alerts",
      "label": "List Alerts",
      "category": "Alerts",
      "description": "Your streaming alerts. Active-only by default; pass active_only=false to include disarmed / cascade-paused.",
      "params": [
        {
          "name": "active_only",
          "kind": "enum",
          "label": "Active only",
          "options": [
            "true",
            "false"
          ],
          "example": "true"
        }
      ]
    },
    {
      "tool": "preview_alert",
      "endpoint": "/api/v1/tools/preview_alert",
      "payload": "{\"alert_type\":\"flow\",\"symbol\":\"SPY\",\"conditions\":{\"min_premium\":250000}}",
      "output": [
        "matches[]",
        "would_fire"
      ],
      "mcp_name": "Preview-Alert",
      "label": "Preview Alert (Dry Run)",
      "category": "Alerts",
      "description": "Dry-run an alert spec against the live tape — returns what would have matched without creating the alert.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "SPY"
        },
        {
          "name": "alert_type",
          "kind": "enum",
          "label": "Alert type",
          "options": [
            "flow",
            "king_node",
            "volume_spike",
            "volume_shift",
            "flow_rank",
            "top_flow",
            "price",
            "level_approach",
            "technicals",
            "contract_price",
            "trigger_event"
          ],
          "example": "flow"
        }
      ]
    },
    {
      "tool": "create_alert",
      "endpoint": "/api/v1/tools/create_alert",
      "payload": "{\"name\":\"SPY big sweeps\",\"alert_type\":\"flow\",\"symbol\":\"SPY\",\"conditions\":{\"trade_type\":\"sweep\",\"min_premium\":250000}}",
      "output": [
        "alert"
      ],
      "mcp_name": "Create-Alert",
      "label": "Create Alert",
      "category": "Alerts",
      "description": "Create a streaming alert that DMs Discord on fire and optionally arms a trigger / runs a workflow / places an order. ⚠️ Read List-Alert-Types first.",
      "excluded_from": [
        "strategy"
      ],
      "params": [
        {
          "name": "name",
          "kind": "string",
          "label": "Alert name",
          "example": "SPY big sweeps"
        },
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "help": "Required for every type except flow_rank.",
          "example": "SPY"
        },
        {
          "name": "alert_type",
          "kind": "enum",
          "label": "Alert type",
          "options": [
            "flow",
            "king_node",
            "volume_spike",
            "volume_shift",
            "flow_rank",
            "top_flow",
            "price",
            "level_approach",
            "technicals",
            "contract_price",
            "trigger_event"
          ],
          "example": "flow"
        }
      ]
    },
    {
      "tool": "update_alert",
      "endpoint": "/api/v1/tools/update_alert",
      "payload": "{\"alert_id\":\"...\",\"conditions\":{\"min_premium\":500000}}",
      "output": [
        "alert"
      ],
      "mcp_name": "Update-Alert",
      "label": "Update Alert",
      "category": "Alerts",
      "description": "Patch an existing alert in place (rename, change conditions, retarget workflow_id, flip is_active, etc.).",
      "excluded_from": [
        "strategy"
      ],
      "params": [
        {
          "name": "alert_id",
          "kind": "string",
          "label": "Alert id",
          "example": "..."
        }
      ]
    },
    {
      "tool": "delete_alert",
      "endpoint": "/api/v1/tools/delete_alert",
      "payload": "{\"alert_id\":\"...\"}",
      "output": [
        "ok"
      ],
      "mcp_name": "Delete-Alert",
      "label": "Delete Alert",
      "category": "Alerts",
      "description": "Soft-delete an alert by flipping is_active=false. The row stays for audit.",
      "excluded_from": [
        "strategy"
      ],
      "params": [
        {
          "name": "alert_id",
          "kind": "string",
          "label": "Alert id",
          "example": "..."
        }
      ]
    },
    {
      "tool": "list_stream_subscriptions",
      "endpoint": "/api/v1/tools/list_stream_subscriptions",
      "payload": "{}",
      "output": [
        "subscriptions[]"
      ],
      "mcp_name": "List-Stream-Subscriptions",
      "label": "List Stream Subscriptions",
      "category": "Alerts",
      "description": "Active streaming subscriptions the worker is holding open (flow tape, option quote feeds) — useful for debugging why an alert isn't firing.",
      "params": []
    },
    {
      "tool": "get_historical_contract_greeks",
      "endpoint": "/api/v1/tools/get_historical_contract_greeks",
      "payload": "{\"symbol\":\"NVDA\",\"expiration\":\"2026-07-13\",\"strike\":205,\"side\":\"call\",\"from_date\":\"2026-07-06\",\"to_date\":\"2026-07-10\"}",
      "output": [
        "symbol",
        "expiration",
        "strike",
        "side",
        "data[]",
        "timestamp_eastern"
      ],
      "mcp_name": "Historical-Contract-Greeks",
      "label": "Historical Contract Greeks",
      "category": "Options",
      "description": "Day-by-day price history and greeks for ONE option contract — bid/ask/mid, the underlying's price, days to expiry, IV, delta, gamma, theta, vanna. Up to 90 trading days per call.",
      "params": [
        {
          "name": "symbol",
          "kind": "symbol",
          "label": "Symbol",
          "example": "NVDA"
        },
        {
          "name": "expiration",
          "kind": "date",
          "label": "Expiration",
          "example": "2026-07-13"
        },
        {
          "name": "strike",
          "kind": "number",
          "label": "Strike",
          "example": 205
        },
        {
          "name": "side",
          "kind": "enum",
          "label": "Side",
          "options": [
            "call",
            "put"
          ],
          "example": "call"
        },
        {
          "name": "from_date",
          "kind": "date",
          "label": "From",
          "example": "2026-07-06"
        },
        {
          "name": "to_date",
          "kind": "date",
          "label": "To",
          "example": "2026-07-10"
        }
      ]
    },
    {
      "tool": "workflow_folders_list",
      "endpoint": "/api/v1/tools/workflow_folders_list",
      "payload": "{}",
      "output": [
        "success",
        "folders[]"
      ],
      "mcp_name": "Workflow-Folder-List",
      "label": "List Folders",
      "category": "Workflow — Folders",
      "description": "List your workflow folders and which workflows are filed in each. Folders only organize the list, they never change how a workflow runs.",
      "params": [],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_folder_create",
      "endpoint": "/api/v1/tools/workflow_folder_create",
      "payload": "{\"name\":\"SPY snipers\",\"workflow_ids\":[\"YOUR_WORKFLOW_ID\"]}",
      "output": [
        "success",
        "folder"
      ],
      "mcp_name": "Workflow-Folder-Create",
      "label": "Create a Folder",
      "category": "Workflow — Folders",
      "description": "Make a folder to organize your Workflows list. You can file workflows into it right away.",
      "params": [
        {
          "name": "name",
          "kind": "string",
          "label": "Folder name",
          "example": "SPY snipers"
        },
        {
          "name": "color",
          "kind": "string",
          "label": "Colour",
          "example": "#3aa"
        },
        {
          "name": "workflow_ids",
          "kind": "string",
          "label": "Workflows to file"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_folder_update",
      "endpoint": "/api/v1/tools/workflow_folder_update",
      "payload": "{\"group_id\":\"YOUR_FOLDER_ID\",\"name\":\"0DTE\"}",
      "output": [
        "success",
        "folder"
      ],
      "mcp_name": "Workflow-Folder-Update",
      "label": "Rename a Folder",
      "category": "Workflow — Folders",
      "description": "Rename a folder, change its colour, or move it up or down the list.",
      "params": [
        {
          "name": "group_id",
          "kind": "string",
          "label": "Folder id"
        },
        {
          "name": "name",
          "kind": "string",
          "label": "New name",
          "example": "0DTE"
        },
        {
          "name": "color",
          "kind": "string",
          "label": "Colour"
        },
        {
          "name": "sort_order",
          "kind": "number",
          "label": "Order"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_folder_move",
      "endpoint": "/api/v1/tools/workflow_folder_move",
      "payload": "{\"group_id\":\"YOUR_FOLDER_ID\",\"workflow_ids\":[\"YOUR_WORKFLOW_ID\"]}",
      "output": [
        "success",
        "folder"
      ],
      "mcp_name": "Workflow-Folder-Move",
      "label": "File into a Folder",
      "category": "Workflow — Folders",
      "description": "File one or more of your workflows into a folder. A workflow sits in one folder at a time, so this takes it out of any other.",
      "params": [
        {
          "name": "group_id",
          "kind": "string",
          "label": "Folder id"
        },
        {
          "name": "workflow_ids",
          "kind": "string",
          "label": "Workflows to file"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_folder_remove",
      "endpoint": "/api/v1/tools/workflow_folder_remove",
      "payload": "{\"group_id\":\"YOUR_FOLDER_ID\",\"workflow_ids\":[\"YOUR_WORKFLOW_ID\"]}",
      "output": [
        "success",
        "folder"
      ],
      "mcp_name": "Workflow-Folder-Remove",
      "label": "Take out of a Folder",
      "category": "Workflow — Folders",
      "description": "Take workflows out of a folder. The workflows are not deleted, they just go back to being loose in your list.",
      "params": [
        {
          "name": "group_id",
          "kind": "string",
          "label": "Folder id"
        },
        {
          "name": "workflow_ids",
          "kind": "string",
          "label": "Workflows to remove"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_folder_disband",
      "endpoint": "/api/v1/tools/workflow_folder_disband",
      "payload": "{\"group_id\":\"YOUR_FOLDER_ID\"}",
      "output": [
        "success",
        "disbanded",
        "group_id"
      ],
      "mcp_name": "Workflow-Folder-Disband",
      "label": "Delete a Folder",
      "category": "Workflow — Folders",
      "description": "Delete a folder. The workflows inside are not deleted, they go back to being loose in your list.",
      "params": [
        {
          "name": "group_id",
          "kind": "string",
          "label": "Folder id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_collab_list",
      "endpoint": "/api/v1/tools/workflow_collab_list",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\"}",
      "output": [
        "success",
        "workflow_id",
        "is_owner",
        "author",
        "collaborators[]"
      ],
      "mcp_name": "Workflow-Collab-List",
      "label": "Who Works on It",
      "category": "Workflow — Working together",
      "description": "See who works on a workflow with you: its author and the people invited to help build it. Read only, on purpose, only the author adds or removes people.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_proposal_list",
      "endpoint": "/api/v1/tools/workflow_proposal_list",
      "payload": "{\"workflow_id\":\"YOUR_WORKFLOW_ID\",\"status\":\"open\"}",
      "output": [
        "success",
        "workflow_id",
        "is_owner",
        "proposals[]"
      ],
      "mcp_name": "Workflow-Proposal-List",
      "label": "Suggested Changes",
      "category": "Workflow — Working together",
      "description": "List the changes people have suggested to a workflow, what each one touches, whether it is still open, and whether it went stale because the author edited since.",
      "params": [
        {
          "name": "workflow_id",
          "kind": "string",
          "label": "Workflow id"
        },
        {
          "name": "status",
          "kind": "enum",
          "label": "Which ones",
          "options": [
            "open",
            "approved",
            "rejected",
            "all"
          ],
          "example": "open"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_proposal_show",
      "endpoint": "/api/v1/tools/workflow_proposal_show",
      "payload": "{\"proposal_id\":\"YOUR_PROPOSAL_ID\"}",
      "output": [
        "success",
        "proposal"
      ],
      "mcp_name": "Workflow-Proposal-Show",
      "label": "Read a Suggestion",
      "category": "Workflow — Working together",
      "description": "Read one suggested change in full, with what the workflow said before, what it would say, and what it says right now.",
      "params": [
        {
          "name": "proposal_id",
          "kind": "string",
          "label": "Suggestion id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "workflow_proposal_comment",
      "endpoint": "/api/v1/tools/workflow_proposal_comment",
      "payload": "{\"proposal_id\":\"YOUR_PROPOSAL_ID\",\"body\":\"Nice, but widen the stop.\"}",
      "output": [
        "success",
        "comment"
      ],
      "mcp_name": "Workflow-Proposal-Comment",
      "label": "Comment on a Suggestion",
      "category": "Workflow — Working together",
      "description": "Leave feedback on a suggested change. Name a part of the change to attach the note to that part instead of the whole thing.",
      "params": [
        {
          "name": "proposal_id",
          "kind": "string",
          "label": "Suggestion id"
        },
        {
          "name": "body",
          "kind": "string",
          "label": "What to say"
        },
        {
          "name": "field",
          "kind": "string",
          "label": "Which part"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "trade_list",
      "endpoint": "/api/v1/tools/trade_list",
      "payload": "{}",
      "output": [
        "success",
        "trades[]",
        "summary"
      ],
      "mcp_name": "Trade-List",
      "label": "My Open Trades",
      "category": "Trading — Open trades",
      "description": "The positions you are in right now, wherever they came from: a workflow, a task, a play you took, or a trigger you set up. Each one shows its take profit levels and which have already sold.",
      "params": [],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "trade_close",
      "endpoint": "/api/v1/tools/trade_close",
      "payload": "{\"trade_id\":\"YOUR_TRADE_ID\"}",
      "output": [
        "success",
        "action",
        "note",
        "summary"
      ],
      "mcp_name": "Trade-Close",
      "label": "Close a Trade",
      "category": "Trading — Open trades",
      "description": "Close a position now, everything still open on it, at market. Only the person who owns the trade can close it. A real position needs a market, so outside 9:30 to 4 Eastern this refuses.",
      "params": [
        {
          "name": "trade_id",
          "kind": "string",
          "label": "Trade id"
        },
        {
          "name": "exit_price",
          "kind": "number",
          "label": "Exit price"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "trade_take_profit",
      "endpoint": "/api/v1/tools/trade_take_profit",
      "payload": "{\"trade_id\":\"YOUR_TRADE_ID\"}",
      "output": [
        "success",
        "action",
        "note",
        "summary"
      ],
      "mcp_name": "Trade-Take-Profit",
      "label": "Take the Next Target",
      "category": "Trading — Open trades",
      "description": "Sell the next take profit rung now, without waiting for its price. One rung per call. To take everything at once use Trade-Close.",
      "params": [
        {
          "name": "trade_id",
          "kind": "string",
          "label": "Trade id"
        },
        {
          "name": "level",
          "kind": "number",
          "label": "Which rung",
          "example": 0
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "trade_cancel_entry",
      "endpoint": "/api/v1/tools/trade_cancel_entry",
      "payload": "{\"trade_id\":\"YOUR_TRADE_ID\"}",
      "output": [
        "success",
        "action",
        "note",
        "summary"
      ],
      "mcp_name": "Trade-Cancel-Entry",
      "label": "Cancel an Entry",
      "category": "Trading — Open trades",
      "description": "Take an order off before it fills. Only while the entry is still waiting at its price, once it has filled the way out is Trade-Close.",
      "params": [
        {
          "name": "trade_id",
          "kind": "string",
          "label": "Trade id"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "atlas_guide_index",
      "endpoint": "/api/v1/tools/atlas_guide_index",
      "payload": "{}",
      "output": [
        "success",
        "source",
        "groups[]",
        "how_to_use"
      ],
      "mcp_name": "Atlas-Guide-Index",
      "label": "Guide Contents",
      "category": "Guide",
      "description": "The Atlas guide's table of contents: every topic, grouped, with the id and link for each. Start here, then read the one that matches.",
      "params": [],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "atlas_guide_search",
      "endpoint": "/api/v1/tools/atlas_guide_search",
      "payload": "{\"query\":\"scale out\",\"limit\":6}",
      "output": [
        "success",
        "query",
        "matches[]",
        "hint"
      ],
      "mcp_name": "Atlas-Guide-Search",
      "label": "Search the Guide",
      "category": "Guide",
      "description": "Search the guide for a word or phrase and get the topics that mention it, each with a snippet and a link.",
      "params": [
        {
          "name": "query",
          "kind": "string",
          "label": "Search for",
          "example": "scale out"
        },
        {
          "name": "limit",
          "kind": "number",
          "label": "How many",
          "example": 6
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    },
    {
      "tool": "atlas_guide_read",
      "endpoint": "/api/v1/tools/atlas_guide_read",
      "payload": "{\"section_id\":\"workflow-exits\"}",
      "output": [
        "success",
        "section_id",
        "title",
        "markdown",
        "url"
      ],
      "mcp_name": "Atlas-Guide-Read",
      "label": "Read a Guide Page",
      "category": "Guide",
      "description": "Read one topic of the guide in full, by its id. Returns the whole page and its link, the same text the docs site shows.",
      "params": [
        {
          "name": "section_id",
          "kind": "string",
          "label": "Topic id",
          "example": "workflow-exits"
        }
      ],
      "excluded_from": [
        "strategy",
        "workflow"
      ]
    }
  ]
}
