# schwab_place_order

Place a generic Schwab order using a raw order specification.

Agent View of the PolicyLayer registry record for `schwab_place_order`. HTML page: https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-place-order

## Facts

- Tool: `schwab_place_order`
- Server: Open Stocks MCP (`open-agent-tools/open-stocks-mcp`) — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp.md
- Homepage: https://github.com/Open-Agent-Tools/open-stocks-mcp
- Risk category: Financial (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Approval-gated

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "schwab_place_order",
    "arguments": {}
  }
}
```

## Why schwab_place_order is rated Critical

This tool directly places financial orders through the Schwab brokerage API. It can commit real financial transactions (buying/selling securities) with potentially significant monetary impact. The 'raw order specification' aspect means it could place any type of order with minimal constraints, making misuse especially dangerous.

From the tool's own definition: "Place a generic Schwab order using a raw order specification"

## Use case

AI agents use schwab_place_order to commit financial operations through Open Stocks MCP, usually the final step of a payment, billing, or trading workflow. A call moves real money.

## Recommended policy (PolicyLayer)

Verdict: **Approval-gated**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Open Stocks MCP:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "schwab_place_order": {
      "deny_if": [
        {
          "conditions": [],
          "on_deny": "Requires human approval."
        }
      ]
    }
  }
}
```

## Other tools on Open Stocks MCP (151)

- `cancel_all_option_orders_tool` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/cancel-all-option-orders-tool.md
- `cancel_all_stock_orders_tool` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/cancel-all-stock-orders-tool.md
- `cancel_option_order_by_id` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/cancel-option-order-by-id.md
- `cancel_stock_order_by_id` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/cancel-stock-order-by-id.md
- `remove_from_watchlist` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/remove-from-watchlist.md
- `schwab_cancel_all_option_orders` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-cancel-all-option-orders.md
- `schwab_cancel_all_stock_orders` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-cancel-all-stock-orders.md
- `schwab_cancel_option_order` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-cancel-option-order.md
- `schwab_cancel_order` — Destructive — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-cancel-order.md
- `buy_option_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/buy-option-limit.md
- `buy_stock_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/buy-stock-limit.md
- `buy_stock_market` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/buy-stock-market.md
- `option_credit_spread` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/option-credit-spread.md
- `option_debit_spread` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/option-debit-spread.md
- `schwab_buy_stock_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-buy-stock-limit.md
- `schwab_buy_stock_market` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-buy-stock-market.md
- `schwab_option_buy_to_open` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-option-buy-to-open.md
- `schwab_option_sell_to_close` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-option-sell-to-close.md
- `schwab_order_buy_option_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-order-buy-option-limit.md
- `schwab_order_option_credit_spread` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-order-option-credit-spread.md
- `schwab_order_option_debit_spread` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-order-option-debit-spread.md
- `schwab_order_sell_option_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-order-sell-option-limit.md
- `schwab_order_sell_stop` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-order-sell-stop.md
- `schwab_replace_order` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-replace-order.md
- `schwab_sell_stock_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-sell-stock-limit.md
- `schwab_sell_stock_market` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/schwab-sell-stock-market.md
- `sell_option_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/sell-option-limit.md
- `sell_stock_limit` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/sell-stock-limit.md
- `sell_stock_market` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/sell-stock-market.md
- `sell_stock_stop_loss` — Financial — https://policylayer.com/tools/open-agent-tools-open-stocks-mcp/sell-stock-stop-loss.md
- …and 121 more: https://policylayer.com/tools/open-agent-tools-open-stocks-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=open-agent-tools-open-stocks-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/open-agent-tools-open-stocks-mcp
