Getting started and account
Docs, skills, sign-in and environment checks.
check_for_updates
Check whether the HELIX toolchain AND a world are current. Toolchain: compares the MCP / SDK / manifest against the latest published on npm and returns the exact update command for anything behind. The CLI is reported as BUNDLED — this MCP always runs its own packaged copy, so a global CLI install cannot change what it reports and is not the remedy for it. World (pass projectDir): reads the manifest system pins + helix.lock.json and compares them against the platform catalog — reporting stale in-range versions (safe to re-install), out-of-range pins, missing recommended capabilities (a world without the engine-core system cannot use screenshots, world inspection, or the photo camera), and a runtime baked behind the platform three line (three 0.185.1 today — an older world still publishes, with a warning, and already-published worlds keep running), with the applicable upgrade steps inlined. Items: also audits EVERY item the world uses — multiplayer.weaponItems pins against the vault (a definition pinned below its current published version, a pin that does not resolve on this backend, or the two config copies disagreeing), installed Vault assets (public/helix.assets.json) against their current Vault versions, and installed interactables (helix_interactables/installed.json) against their Marketplace references. Item updates are OPTIONAL and consented separately from system updates — "update my systems" does not cover items; ask the user specifically per item before re-pinning or reinstalling anything.
| Argument | Type | Required | Description |
|---|---|---|---|
projectDir | string | no | Absolute path to a world/ability project — also checks its pinned @helix dependencies AND its helix.json system pins against the catalog |
check_login
Check the outcome of a start_login flow: pending (the human is still signing in — wait and re-check), done (logged in; credentials saved), or failed (timeout/denied — start_login again to retry).
No arguments.
get_started
REQUIRED FIRST STEP before building any HELIX Instant world. Returns the complete project recipe. Pass kind="character" for a world with a player character in ANY camera framing — all built on the humanoid-character system. Pass kind="multiplayer" for a world where players share a space and/or a game — presence PLUS declarative game logic (scores, teams, entities, physics, turns); returns the multiplayer HUB that routes to 15 worked templates + the multiplayer-logic DSL (you write no server code). Pass kind="scene" for a bare scene with no character. Omit kind to get the decision guide. If the world SELLS anything (a shop, currency, passes, cosmetics, tips, unlocks), that is in-world purchases and layers onto any of these — see read_doc({name:"purchases"}) and read_template({name:"world-shop"}).
| Argument | Type | Required | Description |
|---|---|---|---|
kind | "character" | "multiplayer" | "scene" | "vehicle" | "avatar" | "device" | no | "character" = humanoid-character world; "multiplayer" = shared world (presence + declarative game logic; the hub + 15 templates + the DSL); "scene" = bare world; "vehicle" = make, convert or publish a drivable VEHICLE item (car, kart, truck, motorcycle, bicycle — from a real-world model name, a game mod, a downloaded model, a concept image, or from scratch) or its add-ons; "avatar" = make, convert, fix or publish an AVATAR item (a playable character body from a VRM, a generated character, a game model or a robot), including hair/cloth/tail physics bones; "device" = author a declarative GLB-backed Device (Early access); omit for the decision guide |
model_build
Build a CODE-MODELED prop: run a <slug>.model.js program (read_skill helix-modeling, read its references/program.md for the format) and write <slug>.glb (+ <slug>.collider.glb) with no Blender and no network. Returns errors with line numbers, findings (floating parts, not on y=0, collision undeclared, budgets), per-part triangles and bounds, and a rendered 4-view sheet (hero, front, side, top) as an image. LOOK at the sheet and iterate 3 to 6 times. Not platform visual QA: publishing still needs the helix-gauntlet loop.
| Argument | Type | Required | Description |
|---|---|---|---|
source | string | yes | Absolute path of the program file, <slug>.model.js |
out | string | no | Absolute output folder (default: a build/ folder next to the program) |
style | "realistic" | "hand-painted" | "low-poly" | no | Budget the build for an art style (default realistic: 60k tris; hand-painted 20k; low-poly 6k) |
look | boolean | no | Render the 4-view sheet (default true) |
model_search
Find helpers for CODE MODELING (read_skill helix-modeling): a .model.js program builds a prop from geometry helpers (primitives, lathe, sweep, loft, booleans, arrays, deformers). No arguments lists every helper by family plus the authoring conventions; query ranks helpers for a need ("curved tube", "hole in a wall"); ids returns full contracts for those helpers. Read-only. Search instead of guessing names.
| Argument | Type | Required | Description |
|---|---|---|---|
query | string | no | Free-text need, e.g. "curved tube" (max length 500) |
ids | string[] | no | Helper ids whose full contracts you want, e.g. ["lathe","pipeAlongPath"] |
limit | integer | no | Most hits for a query (default 8) (min 1, max 50) |
read_doc
Read a HELIX Instant reference document: "bridge" (the plugin-driven external content import workflow), "continuum" (AI-native semantic Scenes, exact-CID Packages/Builds, resume and publication policy), "character-world", "character-animation" (authoring CUSTOM character gestures as JSON keyframe poses — for SHORT SIMPLE upper-body-led motion only: player actions, stances, one-shot accents, additive overlays. NOT dances, fight moves or acrobatics — no root motion, foot planting or weight shift. Carries the axis table, compile-time ik keys for hand-position goals + runtime reach/gaze IK (≥ 0.2.15), why rotations chaining breaks joint-space posing, and the headless pose evaluator), "avatar-face" (WHETHER A CHARACTER CAN MOVE ITS MOUTH AT ALL — the helix/avatar-face@1 manifest must ride the GLB at IMPORT time; nothing at runtime can add one later and an avatar without it is permanently mute with no error raised anywhere. The viseme15 > vowel5 > jaw > none capability ladder, the receiver-local boundary — no facial weight is ever networked — why mp.attachVoice() is the entire world-side integration, the automatic VRM path, when a faceMap is REQUIRED (a VRoid model exported as GLB rather than VRM imports mute), bone-vs-morph jaw targets, why add-ons never carry faces, and the honest limits: Face V1 is 0.3-line only, and the stock Base Female ships with NO face channels), "locomotion-clip-spec" (LOCOMOTION PACKS: authoring the replacement movement clip set a player equips as a character add-on — the pack format (anims/clip-meta.json + one GLB per clip), the gait-only clip vocabulary (the core nine, the strafe rings, turn-in-place), strideSpeed as a MEASUREMENT with its per-clip bands and the walk < run < sprint ladder, the canonical skeleton contract, and the loader's per-clip failure behaviour; partial packs down to one clip are valid products), "shooter-worlds" (GUNS: the gun-control ability contract, weapon profiles, FX/hit systems + the frame-order contract, health/death/ragdoll, replica stances, published gun definitions, and explosive weapons — rockets and grenades as published items plus the world rules their blast needs — read it for ANY world where players shoot), "npc-world" (NPCS: a shopkeeper, quest giver, guard or a monster that hunts the player — an NPC is a Character whose driver is your behaviour instead of the keyboard. NpcScene and the stand/physics body tiers, AIDriver behaviours and the two ordering rules whose failures are silent, the attack doctrine, NavGrid pathfinding and its honest v1 limits, InteractionSpots prompts, Vault characters as NPC bodies, and the multiplayer handoff to humanoidEntities), "multiplayer-world" (shared-presence worlds: the CharacterMultiplayer facade, typed state accessors + the single-player→multiplayer conversion guide), "multiplayer-logic" (the declarative game-logic DSL: declared state, when/if/then rules, entities, zones, timers, state machine, collections, ownership, the weaponDamage op), "bring-your-world" (adopt HELIX in an EXISTING three.js project, staged: become a world → adopt the character → go multiplayer), "lighting-world" (the platform lighting path — the visual runtime that owns the renderer/sky/sun/grade, the public/helix.visuals.json contract, the baked-vs-dynamic decision tree, the publish-time bake via bake_world_lighting, quality tiers, converting a hand-lit world, and the opt-out for worlds with their own visual style), "world-look" (making a raw world LOOK good — fix defects before taste: the asset-truth import checklist for scale/metalness/normals/colorspaces/alpha, geometry-first sun aim, consuming platform materials correctly with per-axis repeat and multiplier semantics, texture hygiene — mips inside the KTX2, minFilter, textures-before-AA — scene assembly, composition, and judging your own captures), "scene-performance" (first-build and final measurable optimization: exact Scene resource scope, authored versus submitted geometry, material/Palette and delivery counters, estimated reference-budget utilization, receipt limits, and matched fullscreen visual QA), "sdk" (full @hypersoniclabs/helix-sdk API), "items" (Standard/Collectible definitions, Marketplace/World distributions, shell-mediated Claim/Buy and resale policy), "purchases" (SELLING world-local consumables/effects — registration, entitlements + consume, reload recovery and room-side rules), "manifest" (every helix.json field + bundle rules), "publishing" (pipeline, login, error semantics), "screenshots" (declaring hero shots, the capture/inspect/attach workflow, the thumbnail/preview slots), "world-inspect" (measuring world layout as data: the world.ready integration, the placement checks, measure-then-look, findings as measurements not verdicts), "upgrades" (existing-world migration ledger: stale pins, missing capabilities, step-by-step fixes), "catalog" (platform systems/abilities/asset-packs), "world-recipe" (bare-scene worlds with no character), "terrain" (GROUND for a scene world: the --terrain scaffold flag, generating or importing a heightfield, the six presets, inspect before you publish, and the lighting policy), "vehicles" (the HELIX VEHICLE CONTRACT for making or converting a drivable vehicle item and its add-ons: mesh parts and naming, pivots/axes/units, seats, materials, budgets, the landV2 physics fields and how to derive them from real specs, audio, add-on anchoring, publish and the visual verification it requires — get_started({kind:"vehicle"}) for the workflow).
| Argument | Type | Required | Description |
|---|---|---|---|
name | "bridge" | "continuum" | "character-world" | "character-animation" | "character-attachments" | "avatar-face" | "locomotion-clip-spec" | "shooter-worlds" | "npc-world" | "multiplayer-world" | "multiplayer-logic" | "bring-your-world" | "lighting-world" | "world-look" | "scene-performance" | "sdk" | "items" | "purchases" | "manifest" | "publishing" | "screenshots" | "world-inspect" | "upgrades" | "catalog" | "world-recipe" | "terrain" | "vehicles" | yes |
read_skill
Read a first-party HELIX skill — the WORKFLOW and judgment for a kind of job, where read_doc holds the contract. Skills: helix-anime-movement, helix-assets, helix-avatar-qa, helix-avatars, helix-city-convert, helix-gauntlet, helix-modeling, helix-multiplayer, helix-vehicles, helix-world-build, helix-world-director, helix-world-qa. Omit reference to read the skill's SKILL.md (it lists its references); pass reference to read one reference file, e.g. read_skill({ name: "helix-vehicles", reference: "source-beamng" }).
| Argument | Type | Required | Description |
|---|---|---|---|
name | "helix-anime-movement" | "helix-assets" | "helix-avatar-qa" | "helix-avatars" | "helix-city-convert" | "helix-gauntlet" | "helix-modeling" | "helix-multiplayer" | "helix-vehicles" | "helix-world-build" | "helix-world-director" | "helix-world-qa" | yes | Skill name. |
reference | string | no | A reference file stem listed in the skill (no extension, no path). |
start_login
Begin the HELIX browser sign-in for the production environment (https://helixgame.com): opens the human's browser to the sign-in page and returns the URL — relay it if the browser did not open. The human completes the sign-in on the website; the minted token is captured and saved locally by this process (never returned to you). Poll check_login for the outcome. No-ops when already logged in to this environment.
| Argument | Type | Required | Description |
|---|---|---|---|
openBrowser | boolean | no | Open the human's browser automatically (default true); false = only return the URL to relay |
force | boolean | no | Sign in again even when already logged in to this environment (switch accounts) |
unreal_doctor
Diagnose a HELIX Unreal (UE 5.8) project for World publishing. Two layers, same implementations the human CLI uses: a static publish-readiness validation (helix.unreal.json + project shape, no editor needed), and optionally the SDK’s in-editor Project Doctor commandlet (engine=true; needs UE_ROOT on this machine) which can also APPLY every automatable fix (fix=true — previewed, surgical, guesses are skipped with reasons). Findings come back machine-readable with a who-must-act verdict: pass / fixable / creator-action / unsupported.
| Argument | Type | Required | Description |
|---|---|---|---|
project | string | yes | project directory holding the .uproject (or the .uproject path for the static layer) |
engine | boolean | no | also run the in-editor SDK Doctor commandlet (requires UE_ROOT) |
fix | boolean | no | apply automatable in-editor fixes, then re-scan (implies engine) |
whoami
Check HELIX login state. Publishing requires a logged-in creator account; if not logged in, drive the browser sign-in with start_login (the human completes it on the website).
No arguments.