# close_all_positions

Close all open positions.

Agent View of the PolicyLayer registry record for `close_all_positions`. HTML page: https://policylayer.com/tools/af7007-mcp-trader/close-all-positions

## Facts

- Tool: `close_all_positions`
- Server: MCP Trader Server (`af7007/mcp-trader`) — https://policylayer.com/tools/af7007-mcp-trader.md
- Homepage: https://github.com/Af7007/mcp-trader
- 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": "close_all_positions",
    "arguments": {}
  }
}
```

## Why close_all_positions is rated Critical

This tool performs a mass financial operation by closing ALL open positions at once, committing to market prices for every open trade. Misuse by an AI agent could result in catastrophic financial losses if positions are closed at unfavorable prices, or disrupt an entire trading strategy. It is irreversible (trades are executed at market) and has maximum financial blast radius.

From the tool's own definition: "'Close all open positions' - closes every open trading position simultaneously"

## Use case

AI agents use close_all_positions to commit financial operations through MCP Trader Server, 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 MCP Trader Server:

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

## Other tools on MCP Trader Server (44)

- `cancel_order` — Destructive — https://policylayer.com/tools/af7007-mcp-trader/cancel-order.md
- `close_positions_by_symbol` — Destructive — https://policylayer.com/tools/af7007-mcp-trader/close-positions-by-symbol.md
- `delete_model` — Destructive — https://policylayer.com/tools/af7007-mcp-trader/delete-model.md
- `chat_completion` — Execute — https://policylayer.com/tools/af7007-mcp-trader/chat-completion.md
- `initialize` — Execute — https://policylayer.com/tools/af7007-mcp-trader/initialize.md
- `pull_model` — Execute — https://policylayer.com/tools/af7007-mcp-trader/pull-model.md
- `shutdown` — Execute — https://policylayer.com/tools/af7007-mcp-trader/shutdown.md
- `buy_limit` — Financial — https://policylayer.com/tools/af7007-mcp-trader/buy-limit.md
- `buy_market` — Financial — https://policylayer.com/tools/af7007-mcp-trader/buy-market.md
- `buy_stop` — Financial — https://policylayer.com/tools/af7007-mcp-trader/buy-stop.md
- `close_position` — Financial — https://policylayer.com/tools/af7007-mcp-trader/close-position.md
- `login` — Financial — https://policylayer.com/tools/af7007-mcp-trader/login.md
- `order_send` — Financial — https://policylayer.com/tools/af7007-mcp-trader/order-send.md
- `sell_limit` — Financial — https://policylayer.com/tools/af7007-mcp-trader/sell-limit.md
- `sell_market` — Financial — https://policylayer.com/tools/af7007-mcp-trader/sell-market.md
- `sell_stop` — Financial — https://policylayer.com/tools/af7007-mcp-trader/sell-stop.md
- `generate_text` — Other — https://policylayer.com/tools/af7007-mcp-trader/generate-text.md
- `analyze_trading_intent` — Read — https://policylayer.com/tools/af7007-mcp-trader/analyze-trading-intent.md
- `check_ollama_health` — Read — https://policylayer.com/tools/af7007-mcp-trader/check-ollama-health.md
- `copy_rates_from_date` — Read — https://policylayer.com/tools/af7007-mcp-trader/copy-rates-from-date.md
- `copy_rates_from_pos` — Read — https://policylayer.com/tools/af7007-mcp-trader/copy-rates-from-pos.md
- `copy_rates_range` — Read — https://policylayer.com/tools/af7007-mcp-trader/copy-rates-range.md
- `copy_ticks_from_date` — Read — https://policylayer.com/tools/af7007-mcp-trader/copy-ticks-from-date.md
- `copy_ticks_range` — Read — https://policylayer.com/tools/af7007-mcp-trader/copy-ticks-range.md
- `get_account_info` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-account-info.md
- `get_available_models` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-available-models.md
- `get_last_error` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-last-error.md
- `get_symbol_info` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-symbol-info.md
- `get_symbol_info_tick` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-symbol-info-tick.md
- `get_symbols` — Read — https://policylayer.com/tools/af7007-mcp-trader/get-symbols.md
- …and 14 more: https://policylayer.com/tools/af7007-mcp-trader.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=af7007-mcp-trader · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/af7007-mcp-trader
