Onboarding Tools
Step-by-step tools that walk a new user through setup. Onboarding must be completed before trading tools become available. The order of steps matters -- legal resources must be presented first.
These tools are visible immediately after authentication (no hub expansion needed). Once onboarding is complete, they are hidden from the MCP tool list and replaced by the root hub tools.
Onboarding Flow
accept_eua
|
v
acknowledge_risk
|
v
set_risk_profile
|
v
set_account_mode ---> set_broker_keys
|
v
ONBOARDING COMPLETE
|
v
Trading tools unlocked
(account, strategy, trade, positions)
Step 1: accept_eua
Accept the End User Agreement. Legal requirement: the agent MUST present the full EUA text to the user before calling this tool.
Pre-requisite
Read the legal://eua MCP resource to get the full EUA text, then present
it to the user.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
confirmed |
bool | Yes | -- | Must be true. Only call after explicit user agreement |
eua_version |
string | No | "2026-04-draft" | Version of the EUA being accepted |
Response: OnboardingActionResult
{
"ok": true,
"step": "eua",
"message": "End User Agreement accepted.",
"next_step": "acknowledge_risk"
}
Step 2: acknowledge_risk
Acknowledge the options trading risk disclosure. Legal requirement: the agent MUST present the full risk disclosure to the user before calling this.
Pre-requisite
Read the legal://risk-disclosure MCP resource, then present it to the user.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
confirmed |
bool | Yes | -- | Must be true. Only call after explicit user acknowledgement |
risk_version |
string | No | "2026-04-draft" | Version of the risk disclosure |
Response: OnboardingActionResult
{
"ok": true,
"step": "risk",
"message": "Risk disclosure acknowledged.",
"next_step": "set_risk_profile"
}
Step 3: set_risk_profile
Set the user's experience level and risk tolerance. This determines the default optimizer preset.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
options_experience |
string | Yes | "never", "a_few_times", or "regularly" |
iron_condor_experience |
string | Yes | "never", "understand_not_traded", or "yes" |
risk_tolerance |
string | Yes | "conservative", "moderate", or "aggressive" |
Preset mapping
| Risk tolerance | Default preset |
|---|---|
| conservative | Conservative (high PoP floor, tight delta ranges) |
| moderate | Balanced (standard ranges) |
| aggressive | Aggressive (wider ranges, lower PoP floor) |
Response: OnboardingActionResult
{
"ok": true,
"step": "risk_profile",
"message": "Risk profile set to moderate.",
"next_step": "set_account_mode"
}
Step 4a: set_account_mode
Set the preferred trading mode (paper or live).
This does NOT complete onboarding. The user must still provide broker
API keys via set_broker_keys, even for paper mode.
| Parameter | Type | Required | Description |
|---|---|---|---|
mode |
string | Yes | "paper" or "live" |
Response: OnboardingActionResult
{
"ok": true,
"step": "account_mode",
"message": "Account mode set to paper.",
"next_step": "set_broker_keys"
}
Step 4b: set_broker_keys
Connect a broker using API keys. Validates credentials against the broker, encrypts them, and stores them. Completes onboarding if all previous steps are done.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
broker |
string | Yes | -- | Broker name (currently "alpaca") |
mode |
string | Yes | -- | "paper" or "live" |
api_key |
string | Yes | -- | Broker API key |
api_secret |
string | Yes | -- | Broker API secret |
label |
string | No | null | Optional display name |
Response: OnboardingActionResult
{
"ok": true,
"step": "broker",
"message": "Broker connected. Onboarding complete!",
"next_step": null
}
When next_step is null, onboarding is complete and trading tools are
now available.
Alternative: start_broker_connection
Start an OAuth2 broker connection instead of using API keys.
| Parameter | Type | Required | Description |
|---|---|---|---|
broker |
string | Yes | Broker name (currently "alpaca") |
Returns an authorization URL. The agent must present DDQ-required disclosure text before giving the user the URL. After the user approves in their browser, a webhook completes the connection.
get_onboarding_status
Check what onboarding steps remain. Available at any time during the onboarding flow.
Parameters: None.
Response: OnboardingStatusResult
{
"complete": false,
"current_step": "risk",
"steps_remaining": ["risk", "account_mode", "broker"]
}
When complete is true, all trading tools are unlocked.
Key Rules
Order matters. The EUA must be accepted before risk acknowledgement. Risk must be acknowledged before setting a risk profile. All three must be done before connecting a broker.
Legal resources must be presented first. The agent MUST read and present
legal://euaandlegal://risk-disclosureresources before callingaccept_euaandacknowledge_risk. Calling these tools without presenting the legal text first is a compliance violation.Onboarding is one-time. Once complete, these tools are hidden from the MCP tool list. The hub tools (account, strategy, trade, positions) replace them.
Post-onboarding changes. After onboarding, use
set_risk_profile(via the account hub) to update risk tolerance, andconnect_brokerto add new accounts.
Cross-references
- auth.md -- authentication must happen before onboarding
- hub-tools.md -- tools revealed after onboarding
- account.md -- post-onboarding account management
- ../guides/getting-started.md -- full getting started guide