Trading, cancelling and reading all authenticate with the API credentials, so an agent can run a strategy end to end. Anything that moves value out of the venue's accounting — settling PnL, claiming a liquidated position, claiming from the insurance fund — takes message, signature, userAddress and verifyingContract as arguments, which means the signature is produced somewhere else and an autonomous loop stops at that step by construction. The one call worth wiring before any of the others is cancel_all_after: it arms a cancellation on a timeout, so a client that dies with orders resting does not leave them resting.
A trading server for WOOFi Pro perpetuals, exposing 38 tools across order entry, algo orders, positions and holdings, transfers and withdrawals, PnL settlement, liquidations and the insurance fund.
- Order entry with the flags a maker needs: create_order takes order_type, side, order_price and either order_quantity or order_amount, plus post_only_adjust, reduce_only, visible_quantity, slippage, level, client_order_id and order_tag; batch_create_orders submits a list in one call; edit_order changes price or quantity on an order already resting.
- A cancel path for every way an order can be identified: cancel_order by order_id, cancel_order_by_client_id by the id you assigned, cancel_all_pending_orders for a symbol, and cancel_all_after, which cancels on a timeout rather than on a command.
- Conditional orders as their own family: create_algo_order takes algo_type, trigger_price, trigger_price_type and child_orders for stop-loss and take-profit structures, and edit_algo_order, cancel_algo_order, cancel_algo_order_by_client_id, cancel_all_pending_algo_orders, get_algo_orders, get_algo_order_by_id and get_algo_order_by_client_id mirror the regular-order surface.
- Reads on the account and the book: get_account_info returns balances and fee tiers, get_holdings returns asset holdings, get_orders filters by status, side, symbol, order_type and tag over a start_t and end_t window, and get_order_by_id and get_order_by_client_id fetch a single order.
- Exposure over time: get_positions and get_position_by_symbol return open positions, get_all_positions returns the set, get_position_history returns what was closed, and get_funding_fee_history returns the funding charged against it.
- Money movement that ends on-chain: create_withdraw_request takes a token, an amount and a destination address; create_internal_transfer moves a token between fromAccountId and toAccountId; get_asset_history and get_internal_transfer_history return the record of both.
- Settlement that is signed rather than requested: get_settle_pnl_nonce returns the nonce, request_pnl_settlement submits the EIP-712 signature with userAddress and verifyingContract, and get_pnl_settlement_history returns what has settled.
- Liquidation from both sides of the trade: get_liquidations returns your own liquidation data while get_liquidated_positions and get_positions_under_liquidation are public, claim_liquidated_positions submits an EIP-712-signed claim carrying liquidation_id, position_qty, mark_price, liquidator_fee and insurance_fund_fee, and claim_insurance_fund with get_insurance_fund covers the fund side.
WOOFi Pro API credentials — WOOFI_API_KEY, WOOFI_SECRET_KEY and WOOFI_ACCOUNT_ID. Settlement and claims additionally need an EIP-712 signature you produce yourself: request_pnl_settlement, claim_liquidated_positions and claim_insurance_fund each take message, signature, userAddress and verifyingContract as arguments.
One command plus a key — npx -y git+https://github.com/DaunteEth/woofi-pro-mcp woofi-pro, then supply credentials
