MCP tools reference
Everything Claude can do through MCP, grouped by the role it needs. Read tier on top, write tier in the middle, admin tier at the bottom — a viewer token never reaches a tool below its line.
Viewer
get_my_balance()— full capital tree (cash, long allocations, trading accounts, total). Non-linear — trading nav reflects PnL/margin, not allocation.list_strategies()— strategies the caller can read (owned + public + everything if operator/admin).get_state(strategy)— full state of one strategy: equity, drawdown, sleeves, signals, regime, weights.list_trades(strategy, limit?)— recent trades.get_equity_curve(strategy, days?)— equity history.list_pending_approvals(strategy)— pending HIL approvals.get_trading_account(strategy_id)— live trading nav, cash, margin_used, PnL. Owner-only.
Operator
set_mode(strategy, mode)— NORMAL / CAUTIOUS / MANUAL / PAUSED / EMERGENCY.approve_trade(approval_id, decision, comment?)— resolve a pending HIL approval.allocate_to_long(strategy, amount)— move USD from your cash → long allocation you own.allocate_to_trading(strategy_id, amount)— move USD from your cash → trading account you own.
Admin
create_invite(role, email_hint?, ttl_hours?)— generate a one-shot signup link.credit_cash(user_id, amount, note?)— credit a user's ledger (bootstrap balances).list_users()— admin user listing.
Permission errors
If you call a tool above your role, the response carries `isError: true` and the text reads `Requires <role> role`. The skill handles this gracefully — surfaces the error and stops, doesn't retry.
Data ownership
- Portfolio strategies (long sleeves) are owned by one user. Reads obey ownership + the `is_public` flag. Writes obey ownership + role.
- Trading accounts are strict-owner. No public read. No cross-user writes.
- Capital flows (`allocate_to_*`) are atomic and audited.