Skip to main content
The server exposes 6 tools. The whole formation flow runs through one orchestration tool, advance_company_onboarding; the other five handle status, multi-company management, and inspection.
Conventions. Identity comes from the OAuth bearer — no tool takes a customerId argument. Tool descriptions are agent-facing: they double as the agent’s playbook. The flow is server-driven — every advance_company_onboarding response carries nextAction (follow verbatim) and nextActionInput (the literal {action, params} to pass back), so the host doesn’t plan the multi-step flow itself.

advance_company_onboarding

Drives the entire Wyoming-LLC formation flow. Pick an action and pass the matching params object. The server enforces step order via precondition gates and steers you with nextAction + nextActionInput on every response. Parameters
ParameterTypeRequiredDescription
actionstringYesOne of the actions below.
paramsobjectYesAction-specific parameters. Pass {} when the action takes none. Must be a native JSON object — never stringified.

Pre-payment actions (in order)

Actionparams
set_country_of_residence{ countryCode } — ISO 3166-1 Alpha-3 (e.g. USA, GBR, IND)
set_company_name{ name } — desired name without the LLC suffix. One-time initial capture; re-calling overwrites it and wipes alternates.
set_company_state{} — Wyoming is enforced.
select_package{} — Starter is enforced and ToS accepted. Returns live pricing (dueAtCheckout, recurringAnnually, summary, breakdown) — quote those verbatim, never a hardcoded price.
create_checkout_session{} — returns checkoutUrl (paste verbatim) and checkoutSessionId (keep it for verify).
verify_payment{ checkoutSessionId } — call after the user says they paid. Returns paymentStatus (Complete when done).

Post-payment actions

Actionparams
search_industry{} — read-only. Returns the verbatim industries list to fuzzy-match against.
set_industry_description{ industry, description, sellingPlatform? }industry must be a verbatim entry from search_industry.
add_alternate_company_names{ name1, name2?, name3? }name1 is the existing primary (don’t re-ask). Each gets the LLC suffix.
set_registered_address{ useRegisteredAgent, line1?, city?, state?, postalCode? } — address fields only when useRegisteredAgent=false (must be Wyoming).
set_mailing_address{ sameAsRegistered, line1?, city?, state?, postalCode? } — address fields only when sameAsRegistered=false (must be US).
add_members{ members: [{ legalFirstName, legalLastName, isNaturalPerson, phone, line1, city, state, postalCode, country }] } — native JSON array.
set_responsible_party{ legalFirstName, legalLastName, email, phone, line1, line2?, city, state, postalCode } — SS-4 + Form 8821 go to this email; confirm it with the user.
set_ownership{ members: [{ ...full add_members payload, ownershipPercent }] } — full-record replace; percentages must total exactly 100%.
submit_for_review{ userConfirmed: true } — only after a complete summary table and an explicit “submit”.
submit_for_review is irreversible. It files with the Wyoming Secretary of State and emails IRS Form SS-4 + Form 8821 to the responsible party for signing. Always present a complete summary table and require an explicit “submit” before calling. Editing after submission may incur extra costs or delays.

Response fields

Every advance_company_onboarding response shares these steering fields (other tools return their own shapes):
FieldMeaning
nextStepNext action name; null when the flow is complete.
nextActionImperative for the agent — follow verbatim.
nextActionInputLiteral {action, params} payload to pass back next.
nextQuestionQuestion to ask the user verbatim before the next call.
errortrue if the action failed.
codeStructured error code when error=true (see below).
missingWhen code=PRECONDITIONS_NOT_MET, the unmet prerequisites in flow order.
messageHuman-readable status or instruction.
Error code values: INVALID_INPUT, UNKNOWN_ACTION, PRECONDITIONS_NOT_MET, READINESS_CHECK_FAILED, FILING_FAILED. See Errors.

Helper tools

The canonical “where am I?” entry point — call it once per session, right after the OAuth handshake. No arguments. Returns the customer profile, inferred completed steps, and a suggestedNextStep + nextActionInput that drive the next advance_company_onboarding call.Don’t call it before every step — each advance_company_onboarding response already carries nextAction + nextActionInput. Re-call it only when the user returns mid-flow and asks “where are we?”, after an unexpected error, or after switch_active_company. If the customer has no active company yet, it steers you to set_country_of_residence.
Returns every company the authenticated customer owns. Use when the user asks “which companies do I have?”, wants to switch context, or before starting a new formation.Returns: companies[] (companyId, name, state, entityType, dashboardStatus, submitted, isActive) and activeCompanyId. The entry with isActive: true is the one the formation tools currently operate on.
Begin a brand-new Wyoming LLC formation alongside existing companies — call when the customer explicitly asks to form a second (or further) company. Creates an empty in-progress company, links it to the customer, and pins it as active. The previously active company is untouched and stays in list_companies.Returns: companyId (new active company) and suggestedNextStep (set_country_of_residence).
Point the formation tools at a different company the customer already owns. Returns the same shape as get_company_onboarding_status for the newly-active company.Parameter: companyId (string, required) — must be one of the IDs returned by list_companies; unknown IDs are rejected.
Returns the active company’s full profile — name, state, entity type, EIN, industry, dashboard status, formation filing date, members, responsible party, addresses, name options, and provisioned services. Use for “tell me about my company”, “what’s my EIN?”, “who are the members?” — distinct from get_company_onboarding_status, which returns derived next-step routing rather than raw data.Parameters: none. To inspect a different company, call switch_active_company first.