MCP & CLI · DOCUMENTATION

Your agent.
Your creation tools.

Connect your agent to GripForge. Create assets, animations and worlds, then open the result in your studios — in the same workspace.

HOSTED MCPgripforge.ai/mcp

Your agent → GripForge tools → your workspace

Claude CodeCodexHTTP MCP
Use the CLI for guided login, or configure your MCP client directly.
01

Connect your agent

Choose the workflow that matches your tools.

One login. Your choice of agent.

The CLI connects your workspace and launches GripForge AI, Codex or Claude Code with GripForge tools.

1. Install the CLI

Node.js 22.19+ · macOS / Linux · v0.3.66

npm install -g https://gripforge.ai/cli/gripforge-cli-0.3.66.tgz
Your agent
2. Sign in and launch

Confirm the connection and workspace in your browser.

gripforge login
gripforge connect gripforge

Install Codex or Claude Code separately to use your existing account. GripForge AI uses your GripForge plan. CLI guide

gripforge switchchange agentgripforge resumeresume a session
02

Start with an idea

Copy a prompt into your connected agent, then refine the result.

Create a character
Create an original desert raider for Unreal, with a rig, idle, walk and attack animations. Show me a concept and estimate generation costs first. Save the approved result in my workspace.
Edit a map
In my Godot map, place a player spawn zone next to the portal and turn the selected region into a ruined village. Keep the rest of the map and give me the Studio review link.
Start a game
Create a 3D tactical FPS prototype for Three.js. Search my workspace and community assets first, then propose any missing generations with a budget. Use reusable Game Kits for movement and combat.
DescribeEstimate & generateReview in the StudioExport to your engine
03

Find the right tool

Browse by category. Open a tool to see its parameters.

132 documented tools

132 results · Technical reference in English.

Game / project import · local6

gripforge_game_import

LOCAL npm MCP ONLY. Start a durable local scan of an authorized game/project directory. Detect engine/runtime, inventory portable/native files, classify with confidence and preserve verified relationships. Does not launch the game, read local paths from the hosted server or publish extracted assets. Library → Add asset → From Game opens report.json for selection. Unsupported formats remain explicit blockers.

pathRequired
Absolute local game/project directory. Known extractors before reverse engineering.
gripforge_game_import_read

Read persistent progress, paginated source inventory, toolchain, relationships and report path.

job_idRequired
gi_… from game_import.
kind / offset / limitOptional
Filter and paginate up to 100 source records.
gripforge_game_import_extract

Known Unity extraction adapter: dedicated installed AssetRipper loopback API for assets; installed Cpp2IL/ILSpy for metadata/code retained locally. Native investigation uses separate bounded Ghidra helpers; REA is optional manual assistance. Reports native output requiring conversion honestly.

job_id / rightsRequired
Completed Unity analysis and {basis:owned|authorized|compatible-license,note}.
toolOptional
assetripper (default), cpp2il or ilspy. Configure the installed tool in the local MCP environment.
gripforge_game_import_normalize

Local durable Blender worker: FBX/OBJ → GLB, DDS/TGA → PNG. Checksummed work output; preserve available embedded materials, rig and clips; missing resources remain explicit failures.

job_id / asset_ids / rightsRequired
Analyzed sources before registration; configure GRIPFORGE_BLENDER_BIN.
gripforge_game_import_select

Normalize selected portable files and import private work revisions, preserving original PBR/skins/clips. Durable per-file receipts, quotas and source hashes; no generation billing or automatic promotion/Community publication.

job_id / asset_ids / workspace_id / rightsRequired
Explicit source selection, authorized target workspace and rights basis. GLB/media direct; glTF locally packed.
gripforge_game_import_control

Cancel between files or resume a dead/cancelled local worker. Completed imports stay saved; credentials are supplied by the current MCP session.

job_id / actionRequired
action=cancel|resume.

Native investigation · local5

gripforge_reverse_detect_format

Bounded local Ghidra abstraction. Known formats/extractors first; native source hashes, explicit program selectors and saved evidence. No binary execution, patching, automatic converter or public redistribution.

job_idRequired
Analyzed authorized local source job.
path / rights / queryOptional
detect_format: relative path; open: path and rights; find_asset_system/trace_function: search or function query. Configure GRIPFORGE_GHIDRA_MCP_URL.
gripforge_reverse_open

Bounded local Ghidra abstraction. Known formats/extractors first; native source hashes, explicit program selectors and saved evidence. No binary execution, patching, automatic converter or public redistribution.

job_idRequired
Analyzed authorized local source job.
path / rights / queryOptional
detect_format: relative path; open: path and rights; find_asset_system/trace_function: search or function query. Configure GRIPFORGE_GHIDRA_MCP_URL.
gripforge_reverse_scan

Bounded local Ghidra abstraction. Known formats/extractors first; native source hashes, explicit program selectors and saved evidence. No binary execution, patching, automatic converter or public redistribution.

job_idRequired
Analyzed authorized local source job.
path / rights / queryOptional
detect_format: relative path; open: path and rights; find_asset_system/trace_function: search or function query. Configure GRIPFORGE_GHIDRA_MCP_URL.
gripforge_reverse_find_asset_system

Bounded local Ghidra abstraction. Known formats/extractors first; native source hashes, explicit program selectors and saved evidence. No binary execution, patching, automatic converter or public redistribution.

job_idRequired
Analyzed authorized local source job.
path / rights / queryOptional
detect_format: relative path; open: path and rights; find_asset_system/trace_function: search or function query. Configure GRIPFORGE_GHIDRA_MCP_URL.
gripforge_reverse_trace_function

Bounded local Ghidra abstraction. Known formats/extractors first; native source hashes, explicit program selectors and saved evidence. No binary execution, patching, automatic converter or public redistribution.

job_idRequired
Analyzed authorized local source job.
path / rights / queryOptional
detect_format: relative path; open: path and rights; find_asset_system/trace_function: search or function query. Configure GRIPFORGE_GHIDRA_MCP_URL.

Vehicles · door controls1

gripforge_vehicle_doors

Open and close doors independently on one saved Studio vehicle instance. Uses the shared renderer and prepared hinge metadata; never modifies the Library asset or other vehicles. Saves a work pose and returns the Studio link. No generation charge.

id / nodeId / expectedRevisionRequired
Saved scene ID, vehicle instance ID and current work revision. Locks and workspace permissions apply.
doorsRequired
{Door_FL:1, Door_FR:0, Door_RL:0.5}. 0 = closed, 1 = open; omitted doors retain their state. null clears manual control. Requires gripforge_prepare_vehicle hinges and portable clips. Global animation is paused for manual control.
workspace_idOptional
Authorized workspace. In-game control uses the vehicle.doors module; GLB open/close clips remain portable.

Vehicles · surface finishing1

gripforge_vehicle_finish

Create a new private vehicle work version through a persistent Blender job: measured PBR panels and trim, wheel rebuilding, fitted PNG logos, relief badges and mesh lettering. Source GLB and validated versions remain unchanged. Body markings stay fixed; wheel markings follow their wheel through rig/export. Named authored marks are replaced without stacking. Returns GLB, Blend, optional FBX and a GripForge review link. No provider generation credits; visual review is required.

source / idRequired
Pinned static GLB {assetId, revisionId, fileRole?} or Library id. Requires explicit Body and Wheel_FL/FR/RL/RR groups.
repairRequired
Guided recipe with regions (can be []), optional denoise, cleanPaint, calipers, features and wheelRebuild. Metres, +Y up and +Z forward.
repair.features.marksOptional
Up to 32 decal|badge|text marks. Explicit position, normal, up, widthM and heightM; optional target, receiver mesh, convex outline and mirrorX. Missed surface fitting fails.
marks[].artwork / textOptional
Decal: pinned Library/Community PNG (no URL or path). Badge: optional PNG plus depthM. Text: 1–48 printable ASCII characters rendered as real mesh lettering. PNG limit 1 MiB/2048px; 16 sources, 8 MiB/16 MP total.
repair.rigOptional
Optional wheelRadius and wheelWidth matching wheelRebuild. Produces the rigid wheel rig and FBX; source must be pre-rig.
name / workspace_id / idempotency_keyOptional
Authorized workspace and stable retry key. Poll generation_read; cancellation/retry preserves completed steps. The result is work/pending review, never automatic validation.

Projectiles · trails & impacts1

gripforge_projectile_create

Admin: create an editable 3D projectile from 20 named variants: darts, bullets, orbs, wisps, carrot rocket, disc, spears, comets, coils and lightning. config.variant chooses the shape, trail and impact; style/color can override the palette. GET /api/v1/vfx/projectiles lists all variants. Shared Scene Engine and world-space trail history. Durable preview/review/workspace save returns a Studio link. Work versions never automatically replace validated versions. Install combat.projectiles in a web Game Kit and bind the VFX to projectile_vfx; ranged weapons can use it with projectile=true. Speed, gravity, collisions and damage are gameplay settings, separate from the visual asset. Native adapters are not available in v1.

variantsOptional
Optional list of 1–20 catalogue IDs, without config/name. One durable batch job returns result.items, with separate render/review/save checkpoints for each asset. No automatic publication.
configOptional
variant (e.g. storm-bolt, arcane-disc, ice-spear, void-comet, carrot-shot), style, radius, trailLifetime, impactDuration, color, accent, seed, quality: low|high
name / save / workspace_id / idempotency_keyOptional
save=true by default: poll gripforge_generation_read for the asset ID. save=false returns an unsaved editable recipe. No automatic game modification.

Shield VFX · multiple engines2

gripforge_shield_vfx

Admin: create an original 3D shield with 17 visual variants using the shared VFX renderer. Saves a durable work revision with preview and Studio link. No automatic visual approval or gameplay damage.

configOptional
style, radius (metres), stretch, color, accent, intensity, opacity, speed, seed and quality: low|high
save / workspace_id / idempotency_keyOptional
save defaults to true. Poll generation_read for the saved asset and preview. save=false returns the editable source without saving.
gripforge_shield_export

Admin: compile a shield recipe into source files for Three.js, Godot 4, Unity or Unreal 5. Includes geometry, native shaders, lifecycle, local hit ripples and shatter. No preview scene included. Compile and visually review in your target engine.

engineRequired
threejs | godot | unity | unreal
config / workspace_idOptional
Same recipe as shield_vfx. Returns relative file paths and install instructions. Exports the recipe; arbitrary Studio shader edits are not recompiled through this tool.

Weapon-aware motion3

gripforge_weapon_profile

Measure an armed Library instance: explicit axe/sword/hammer/staff family, grip anchors, dimensions and axes. Inspect axes and seating; geometry alone cannot safely classify a weapon. Source unchanged.

source_idRequired
Owned armed GLB from Grip
family / hand / handsRequired
Explicit family; right or left; one or two hands
weaponNode / primaryAnchor / secondaryAnchor / handleAxis / edgeAxisOptional
Instance node and vectors in its local coordinates. A second-hand anchor is mandatory for two-hand IK.
gripforge_weapon_motion

Persistent motion job, with three distinct procedural axe/hammer attacks, Grip finger holds and second-hand IK. Sword uses its explicit animation pack; unsupported staff attacks return an error. Produces a new work version and Studio link, never auto-replaces a game or validates the visuals.

source_id / familyRequired
Armed GLB and explicit weapon family
slots / name / idempotency_key / workspace_idOptional
Choose idle/walk/run/attack1–3/hit/death/dodge/block/jump_start/loop/land. Poll generation_read; cancellation and retry preserve completed work.
gripforge_weapon_motion_review

Sample the exported GLB at 60 Hz for grip drift, finger pose, wrist rotation, discontinuities, support-hand reach and conservative torso collisions. Technical results remain separate from visual validation.

source_idRequired
Saved weapon-motion draft
workspace_idOptional
Authorized workspace

Create a game · website & CLI1

gripforge_game_creation

One saved 3D creation plan shared by the website and CLI. Choose the engine, let AI propose real asset slots, reuse workspace/community assets or import your own. Generate concepts, review them, then approve 3D manufacturing. Assembly binds the selected assets to an editable Game Kit prototype; native engines continue through CLI delivery. Every paid step requires an accepted quote. Jobs, completed steps, selections and reviews survive page closure.

actionRequired
create | list | get | assets | select | quote | accept | approve_concept | approve_asset | cancel | retry | dismiss
prompt / engineOptional
create: describe a 3D game and explicitly select web, unity, godot or unreal. Ask if the engine is missing. 2D is not supported yet.
id / expected_revision / workspace_idOptional
Saved creation and workspace. Edits require its latest revision; get returns a Studio link and the CLI resume command.
slot_id / mode / asset_idOptional
Select a compatible Library asset, request mode=generate with a prompt, or keep a template default. assets searches by source=workspace|community and q.
operation / quote_tokenOptional
quote: plan|concept|generate|build. Show the returned cost before accept. Acceptance reuses the same durable job on retry; no automatic currency fallback or visual approval.

Shared Scene Engine · architectural rendering3

See the Counter-Strike-like before / after demo →

gripforge_apply_realism

Orchestrate eight shared rendering subsystems: materials, lighting, post-process, shaders, textures, environment details, character rendering and LOD/performance. mode=plan makes no write; mode=apply saves one work revision. Retains source assets and validated versions. WEB only; no implicit fabrication or visual approval. GameKit render.realism delegates gameplay lighting and LOD to existing kits.

id / expectedRevisionRequired
Accessible scene and current work revision.
modeOptional
plan (default) or apply. Inspect the returned per-system report before applying.
quality / lightingOptional
performance | balanced | quality; preserve | daylight | golden_hour | overcast | night.
nodeIds / materials / charactersOptional
Scoped instance edits: [{nodeId,material,override}]. PBR values, pinned texture references and explicit surface masks; never changes source assets.
environment / postProcessOptional
Explicit shared sky, HDRI, clouds, fog, AO, grading, depth-of-field and bloom settings. Global scene scope.
workspace_idOptional
Authorized workspace; response includes its Studio link.
gripforge_realism_schema

Read render.realism subsystem delegates, examples and limits for an accessible scene.

idRequired
Scene ID.
workspace_idOptional
Authorized workspace.
gripforge_scene_realism

Apply reusable brick, stone, metal and glass treatments plus GTAO to a saved scene. Explicit mesh-local regions support atlased buildings; glass can use parallax interiors. Preserves source PBR maps and other instances. Returns a Studio comparison link, saves work only. No generation charge, automatic visual approval or DLSS. Read gripforge_scene_schema.realism first.

id / expectedRevisionRequired
Owned scene and current work revision
assignmentsOptional
[{nodeId, material: named slot or *, surface:{preset,detail,weathering,regions}}]. surface:null removes the profile.
ambientOcclusionOptional
{enabled,radius:0.02..3,intensity:0..1,quality:low|medium|high}; null removes it.
qualityOptional
{preset:performance|balanced|quality,resolutionScale:0.5..1,sharpness:0..0.5}; null restores the original display budget. Shared browser renderer, up to 4K; no DLSS.
workspace_idOptional
Authorized workspace

Unreal → Map Studio7

gripforge_scene_optimize

Prepare an existing scene for browser loading with resumable per-asset WebP variants. Original files, geometry, animation, transforms and Library heads are preserved. Color maps up to 1024px, data maps 512px, terrain color 4096px. Saves a new work revision with byte savings; never validates automatically. New Unreal imports run this step automatically.

idRequired
Owned scene ID
expectedRevisionRequired
Current work revision; concurrent edits are protected
idempotency_key / workspace_idOptional
Stable retry key and authorized workspace
gripforge_map_import_unreal_schema

Read the export/import contract and limits. Available on hosted MCP and through GET /api/v1/maps/import/unreal. Native Unreal extraction runs on your machine; the hosted service cannot read local .umap files.

No specific parameters documented for this tool.

gripforge_map_unreal_export_local

Local MCP: export a saved Unreal map through an installed UE 5.7 editor. Separate commandlet, immutable source map, persistent per-file checkpoints. PBR props, foliage patches, editable Landscape heights/holes and baked terrain color. Reports unsupported native effects and shaders. No automatic visual validation.

project_fileRequired
Absolute .uproject path
source_levelRequired
/Game/YourEnvironment/Maps/MainMap
editor_executableRequired
Absolute UnrealEditor executable path
job_directoryRequired
Persistent export folder; reuse it to resume
texture_size / terrain_texture_size / terrain_resolutionOptional
Defaults: 1024 / 4096 / 513. No Blender or AI credit required.
gripforge_map_unreal_export_status_local

Read export/upload progress, failures and the final studio_url. Jobs continue after the MCP call or page closes.

job_directoryRequired
Export folder
gripforge_map_unreal_export_cancel_local

Cancel at the next safe checkpoint. Completed files and private uploaded assets remain reusable on retry.

job_directoryRequired
Export folder
stageRequired
export | upload
gripforge_map_unreal_upload_local

Local MCP: upload immutable files and create a new private work scene in your workspace. Poll export_status_local for its Map Studio link. 0 generation credits; storage quota applies. The current validated map is preserved.

job_directoryRequired
Completed export folder
workspace_idRequired
Workspace authorized by your GripForge API key
gripforge_map_import_unreal

Hosted MCP/API equivalent for an already exported portable scene. First POST binary files to /api/v1/maps/import/unreal/assets with x-asset-filename and x-content-sha256. Then POST the document to /api/v1/maps/import/unreal. Returns a persistent job_id; generation_read returns studio_url. Static foliage remains editable by patch. UE Blueprints, Niagara, animated water and procedural skies need separate adapters.

schemaRequired
gripforge.unreal-studio-import.v1
documentRequired
Common SceneDocument (purpose=map), using uploaded immutable asset references
sourceRequired
{engine: unreal, level: /Game/…, sha256, warnings: []}
workspace_id / idempotency_keyOptional
Authorized destination and stable retry key

HUD Studio1

gripforge_hud_import

Import the HUD of the project into the HUD Studio (action=import: pass the file content — Godot .tscn, Unity .uxml / .unity / .prefab, Unreal UMG clipboard, hud.json), list the workspace HUDs (action=list) or read one (action=get).

actionRequired
import | list | get
textOptional
import: the engine file content, as-is
filenameOptional
import: original file name, helps detect the format
nameOptional
import: name in the studio
idOptional
get: hud_… id

Look & locker10

gripforge_style_kit

Resolve a game look the user names ("stylish gothic action", "open world adventure") to the locker kit already tagged with that look (characters, enemies, weapons, props). Call this before generating.

promptRequired
e.g. stylish gothic action
gripforge_asset_search

Search actual models, textures and animations in both workspace and Community. Free. Distinct from searching gameplay modules. Inspect suitability before reuse or generation.

qRequired
Visual role or style
kindOptional
Asset kind
sourceOptional
both (default) | workspace | community
limit / offsetOptional
Pagination per source
gripforge_asset_clone

Copy a published asset into your workspace, then download it with library_pull. Assets and armor sets are free by default; an explicit creator price is paid in credits. Reuse an existing copy when available.

idRequired
Community lib_… id
gripforge_generation_quote

Free operation estimate before spending. Subscribers share one monthly limit for AI and paid generation; otherwise asset credits apply. Propose missing assets and obtain a generation budget. Additional concepts, rigging and reviews are separate operations in that same limit.

kindRequired
model | concept | texture | rig | animation
providerOptional
meshy | tripo | xai | openai
countOptional
1–20 operations
workspace_idOptional
Authorized workspace
gripforge_library_list

List the Library locker for the workspace that owns this gf_ key (team locker, not a personal inbox).

kindOptional
character | enemy | weapon | prop | texture | hud | button | bind | vfx | animation | audio
qOptional
Search name
styleOptional
Game look id or alias (e.g. souls-like, open-world-adventure)
gripforge_library_get

Get one Library item and its signed file URL.

idRequired
lib_…
gripforge_library_push

Upload into Library. npm package: local path. Hosted: file_url or base64.

path / file_urlRequired
Local file (npm) or https URL (hosted)
kindRequired
character | enemy | weapon | prop | texture | hud | button | bind | vfx | animation | audio
nameOptional
Display name
gripforge_library_pull

Sync: write an item you own into the open repo (npm / Claude Code). Own locker is free. Community assets are free to clone unless their creator sets a price in credits. Hosted endpoint returns a signed URL only.

idRequired
lib_…
out_dirOptional
Default ./gripforge-library in cwd
gripforge_library_tag

Add a game look to tags so style_kit finds the item. Does not overwrite grip style melee/gun.

idRequired
lib_…
styleOptional
devil-may-cry, open-world-adventure…
tagsOptional
Replace tag list
gripforge_audio_kit

Search locker + Community SFX by description/tags (gunshot, ui, magie, pas, dinosaure…). Each hit has description + use[]. Community: clone then pull. 0 credits to search.

promptOptional
What you need: "gunshot", "ui click", "dinosaur roar"…
out_dirOptional
Download files here (npm)

Game Kits (modular)28

gripforge_gamekit_search

Start here. Search the modular kit catalogue (vehicle.driveable, mission.objectives, npc.wanted…) by text, capability, tag or target. With project_id each hit carries its install state and kits that fill a missing capability rank first. Each kit comes with a tagline, its engine targets and a featured image (coverUrl). 0 credits.

qOptional
Free text: "drive a car", "wanted level"
capabilityOptional
Capability the kit must provide (id or prefix)
tagOptional
vehicle | mission | npc | legacy…
targetOptional
web (default) | godot | unity | unreal
project_idOptional
gkp_… to score against (default: latest project)
limitOptional
Max kits (default 20)
gripforge_gamekit_get

Manifest (provides / requires, slots, data collections, events), README, config schema + defaults, version and changelog of one kit (projects always run the latest version). with_usage lists the projects using it. 0 credits.

idRequired
Kit id, e.g. vehicle.driveable
versionOptional
Exact version (default latest)
with_usageOptional
true → usedBy projects
sectionOptional
api → also the full API reference of the kit
gripforge_gamekit_api

The API reference of one kit as compact Markdown: config (type, default, unit, limits, mod / live / scene), hooks, events, views, services, verbs, slots, collections, mod points, Bevy module, targets, changelog, example config and mod. Read it before configuring the kit or writing a mod or a module for it. 0 credits.

idRequired
Kit id, e.g. combat.core
sectionsOptional
Only these: config, hooks, events, views, services, verbs, slots, collections, inputs, modding, module, parity, changelog, examples, readme
fullOptional
true → nested keys, every example, README
gripforge_docs

The GripForge docs, embedded and offline: glossary, kit-api, third-party (developer guide), player, porting, abi, modding, game-engine-contract, game-engine. Without topic: the list; with topic and section: that part. 0 credits.

topicOptional
A topic id (no topic: the list)
sectionOptional
A heading, its number (3.1) or words of it
fullOptional
true → the whole topic even when long
gripforge_gamekit_installed

The kits installed in a project, first and marked priority (id, enabled, addedBy, provides, requires, config; version, latest, delivered per engine, pendingMigrations) with the rule: build on them for what they cover, pick from the catalogue for the rest. 0 credits.

project_idRequired
gkp_…
gripforge_gamekit_install

Add a brick to a project (the agent decides, no confirmation): latest version, dependencies added automatically; a kit that looks with the mouse brings its companion input.pointer_lock (mouse capture) the first time it is added, listed in added. Two bricks handling the same thing are a same-scene overlap (one active per scene), not a game-level conflict. legacy.* kits go through gripforge_kit. 0 credits.

project_idRequired
gkp_…
idRequired
Kit id
configOptional
Initial config (validated against configSchema)
dry_runOptional
true → plan only, nothing written
allow_plannedOptional
Accept planned 0.x kits
reasonOptional
One sentence, kept in the project history
gripforge_gamekit_remove

Uninstall a kit (one the user installed, or a default kit ui.menu / input.remap / settings.graphics / ui.prompts / ui.endscreen / save.persistence / audio.core / i18n.text / ui.theme / input.virtualpad / display.fullscreen / asset.preload / asset.cache, only when the user asks; ui.endscreen needs ui.menu). 409 kit_in_use while other kits require it; force removes anyway, prune also drops orphaned dependencies. Returns { removed[], project }. 0 credits.

project_idRequired
gkp_…
idRequired
Kit id
forceOptional
Remove even with dependents
pruneOptional
Also remove unused dependencies
reasonOptional
One sentence, kept in the project history
gripforge_gamekit_configure

Merge config values (validated against the kit schema) or toggle enabled without uninstalling. Returns { kit, project } with the new revision. 0 credits.

project_idRequired
gkp_…
idRequired
Installed kit id
configOptional
Partial config to merge
enabledOptional
false disables at runtime
reasonOptional
One sentence, kept in the project history
gripforge_gamekit_dependencies

Dependency graph: nodes (kits, version, provides, requires), edges by capability, same-scene overlaps, unresolved. project_id → installed graph; id alone → the catalogue kit manifest tree. 0 credits.

project_idOptional
gkp_… (default: latest project)
idOptional
Kit id instead of a project
gripforge_gamekit_update

Projects follow the latest kit versions automatically (on open in the studio); this does it now. Dry-run by default: plan (from / to, migrations). apply=true applies it; a migration with auto=false is a task for the agent. Omit id to check every installed kit. 0 credits.

project_idRequired
gkp_…
idOptional
Installed kit id (default: all)
applyOptional
true → apply
gripforge_gamekit_deliver

Deliver kits (or a project’s kits) into an engine: Godot addon + files under gripforge/kits/<kit>/, Unity UPM package + C#, Unreal plugins (recipes for kits without an engine delivery), web native; always the latest version, a project’s local kit copy delivered in place. dry_run first: plan (add / keep / modify / delete / conflict, dependencies, post-install) without charge. Then the bundle: write bundle.files following plan.actions (backup, write, writeBin, delete, writeLock) — the hosted endpoint cannot write into your project. npm client only: gripforge_gamekit_deliver_local { project_dir } executes the actions with backups and verifies with GODOT_BIN; gripforge_gamekit_rollback_local { project_dir } undoes it. First delivery of a kit major to an engine: 1 credit per workspace; re-deliveries, updates within a major, dry runs and web are free.

targetRequired
godot | unity | unreal | web
kitsOptional
[{ id, config?, bindings? }] (≤ 16, always the latest version)
project_idOptional
gkp_… — deliver its enabled kits when kits is omitted
modeOptional
install (default) | update | uninstall
project_stateOptional
{ engineVersion, lock, files: { path: sha256 } }
dry_runOptional
true → plan only, free
forceOptional
Back up then overwrite edited files
gripforge_game_capabilities

What a project provides, what is missing for a goal (preset id or capability list) and which kits fill each gap. Call before install. 0 credits.

project_idRequired
gkp_…
goalOptional
Preset id or cap1,cap2 (default: project preset)
gripforge_game_project

Projects (gkp_…) hold installed kits, lockfile, asset bindings and data collections. list · create (name + preset or kits; every new project also gets the default kits ui.menu, input.remap, settings.graphics, ui.prompts, ui.endscreen, save.persistence, audio.core, i18n.text, ui.theme, input.virtualpad, display.fullscreen, asset.preload and asset.cache — present by default, remove them only if the user asks) · get (ProjectDetail with playUrl) · bind (slot → lib_… | null) · data (read, upsert / remove documents, replace) · controls (show or apply a control scheme) · delete (confirm=true). 0 credits. Controls — choose the scheme from the kind of game, never from a kit default: Kits offer capabilities that can be switched off and tuned; the game makes one high-level gameplay choice and enables only the coherent set that choice needs: what is not chosen is off and invisible, and no kit default is imposed on the game. The generic modules propose choices, the request picks one: name the kind of game, take its control scheme from the table below (usually the only one allowed), and embed only what that scheme uses on each device — its input sources, its on-screen controls on a touch screen, its settings (remapping, sensitivity, inversion, capture, dead zone only where the scheme uses them). Every option is a choice of the request too: the network input frame is embedded only for a multiplayer game, each other option only when asked. Write the choice into the project: gripforge_game_project create with controls=<scheme>, or action=controls scheme=<scheme> on an existing game (dry_run first, reset=true to drop old key overrides). A dungeon crawler is played with the mouse, not on W A S D. In play, input.scheme (a default kit) implements that choice: it follows the device in hand (keyboard and mouse, gamepad, touch) with the variant of the scheme for it, takes the vehicle scheme while the player drives, gives the input to the interface while a menu, a dialogue or a text field is open, and the Options show per device only the controls the scheme uses; tune it within the choice (input.scheme allowed: the closed list the player may switch between, usually one; variants; composites for held / double / charged / chorded / combo actions), never by enabling every option. Gameplay choices (kind → control scheme, per device): - MOBA → `moba_click` (mouse+keys: click to move, right click = context, settings: remap; gamepad: stick, aim assist, settings: remap, deadzone, aim_assist; touch: tap to move, on screen: tap_world, settings: touch_layout). A hero is ordered with the mouse (right click to move / attack, abilities toward the cursor); a gamepad moves it with the stick. Interaction feedback: interaction.feedback style bold, on: highlight, cursor, confirm, fail, sound, orderMarker; interaction.system pointerTarget: true. - Real-time strategy → `rts` (mouse+keys: click to move, right click = context, settings: remap; gamepad: click to move, settings: remap, deadzone; touch: tap to move, on screen: stick + buttons + tap_world, settings: touch_layout). Units are selected and ordered with the cursor; nothing is moved with W A S D. Interaction feedback: interaction.feedback style default, on: highlight, cursor, confirm, fail, sound, moveMarker, orderMarker; interaction.system pointerTarget: true. - Dungeon crawler / action RPG seen from above → `arpg_click` (mouse+keys: click to move, right click = context, settings: remap; gamepad: stick, aim assist, settings: remap, deadzone, aim_assist; touch: tap to move, on screen: buttons + tap_world, settings: touch_layout). Played with the mouse: click to walk, click an enemy to attack, right click for the special; the left stick on a gamepad, a tap on a touch screen. W A S D is not the default for this genre. Interaction feedback: interaction.feedback style default, on: highlight, nearbyHint, worldPrompt, cursor, holdGauge, confirm, fail, sound, orderMarker; interaction.system pointerTarget: true. - Top-down shooter / twin-stick roguelike → `top_down` (mouse+keys: WASD, right click = aim, settings: remap; gamepad: stick, aim assist, settings: remap, deadzone, aim_assist; touch: virtual stick, on screen: stick + buttons, settings: touch_layout). Constant dodging needs direct movement (W A S D / left stick) with the cursor or right stick to aim. The game may also allow: arpg_click. Interaction feedback: interaction.feedback style default, on: highlight, worldPrompt, holdGauge, confirm, fail, sound. - Point-and-click adventure → `point_click` (mouse+keys: click to move, right click = context, settings: remap; gamepad: stick, aim assist, settings: remap, deadzone, aim_assist; touch: tap to move, on screen: buttons + tap_world, settings: touch_layout). A free cursor: click where to go and what to use. Interaction feedback: interaction.feedback style default, on: highlight, nearbyHint, worldPrompt, cursor, confirm, fail, sound, moveMarker; interaction.system pointerTarget: true. - First-person shooter / survival → `fps` (mouse+keys: WASD, captured mouse, right click = aim, settings: remap, mouse_sensitivity, invert_y, pointer_capture; gamepad: stick, right stick looks, aim assist, settings: remap, deadzone, stick_sensitivity, invert_y, aim_assist; touch: virtual stick, right stick looks, on screen: stick + buttons, settings: touch_layout, stick_sensitivity, invert_y). W A S D and the captured mouse to look (right stick on a gamepad). Interaction feedback: interaction.feedback style subtle, on: highlight, worldPrompt, holdGauge, confirm, fail, sound. - Third-person action / open world → `third_person` (mouse+keys: WASD, captured mouse, right click = aim, settings: remap, mouse_sensitivity, invert_y, pointer_capture; gamepad: stick, right stick looks, aim assist, settings: remap, deadzone, stick_sensitivity, invert_y, aim_assist; touch: virtual stick, right stick looks, on screen: stick + buttons, settings: touch_layout, stick_sensitivity, invert_y). W A S D relative to the camera and the captured mouse (right stick) to turn it. Interaction feedback: interaction.feedback style default, on: highlight, nearbyHint, worldPrompt, holdGauge, confirm, fail, sound. - Platformer → `platformer` (mouse+keys: WASD, settings: remap; gamepad: stick, settings: remap, deadzone; touch: virtual stick, on screen: stick + buttons, settings: touch_layout). Direct movement and jump, no pointer. Interaction feedback: interaction.feedback style subtle, on: worldPrompt, confirm, fail, sound. - Fighting → `fighting` (mouse+keys: WASD, settings: remap; gamepad: stick, settings: remap, deadzone; touch: virtual stick, on screen: buttons, settings: touch_layout). One key per blow, no pointer. No interaction.feedback. - Racing / vehicles → `vehicle` (mouse+keys: vehicle, settings: remap; gamepad: vehicle, settings: remap, deadzone; touch: vehicle, on screen: stick + buttons, settings: touch_layout). Throttle, brake and steering; no pointer. Interaction feedback: interaction.feedback style subtle, on: worldPrompt, confirm, fail. Per device: the cursor per kind of target only with a mouse; on a gamepad the prompt shows the button of the active gamepad, on a touch screen the text alone (ui.prompts / input.actions promptFor); the designated target comes from input.scheme target() (cursor, aim axis, stick). Interactions must be visible. Install interaction.feedback for any game with interactive objects (not for a pure fighting game) and set its elements from the gameplay table row; never draw an interaction prompt in a kit or a script: kits that offer an interaction pass their kind to interaction.use.register(entity, label, action, kind) (or interactable.kind on an archetype), and slow uses get a hold (interactable.hold / interaction.system.holdSeconds) instead of a custom timer. Styles and kinds are data (feedback_styles, interaction_kinds): restyle with them, do not recode. Leave the player settings (interaction.feedback.settings) to the menu.

actionRequired
list | create | get | bind | data | controls | logic | delete
project_idOptional
Required for get, bind, data, controls, logic, delete
nameOptional
create: project name
presetOptional
create: preset id
kitsOptional
create: { "vehicle.driveable": true }
targetOptional
create: web | godot | unity | unreal
logicOptional
create, logic: wasm = logic of the kits in Rust compiled to wasm (Bevy player), ts = TypeScript KitHost (on request only); default wasm (a game with a kit without a Rust module runs in ts by itself: the answer gives runs and fallback). action=logic without it reads the choice
bindingsOptional
bind: { slot: lib_… | null }
collectionOptional
data: collection name
documentsOptional
data: documents to upsert
removeOptional
data: document ids to remove
schemeOptional
controls: control scheme to show (dry_run) or apply — fps, third_person, moba_click, arpg_click, top_down, platformer, fighting, vehicle, rts, point_click: the one of the kind of game (a dungeon crawler → arpg_click, a MOBA → moba_click, an RTS → rts); omit to read the schemes, the project keys and the keys shared in one mode
dry_runOptional
controls: true returns the diff of keys without writing
controlsOptional
create: the control scheme of the kind of game the user asked for (table above), instead of the preset’s own; none keeps the kits’ own keys
replaceOptional
data: replace the whole collection
confirmOptional
delete: must be true
gripforge_game_play_url

Browser play URL of the project’s current revision, from its bundle. Returns { url, absolute }. 0 credits.

project_idRequired
gkp_…
gripforge_game_audit

What stands between a project and a FINISHED game of its genre, in one report by severity: creatures (capsules, models without a skeleton or their movement / action clips), controls (no control scheme, shared keys, actions without a key), content (missing capabilities, required slots, the game.engine report), the default screens of a game played off the KitHost page (a compiled module or a custom page: menu, Options › Controls and Video, fullscreen when offered, prompts from the bindings — missing, failing, or “not verified” until a real page opens them, never green), the last headless playtest (with what no probe covers) and completeness — what a finished game of the genre has beyond the request (MOBA: distinct heroes with Q/W/E/R, minions, towers, jungle monsters, shop, respawn…; every game: a way to win and to lose, menus, sound, a HUD, touch), checked against facts of the project. Each defect carries the tool and the exact arguments that fix it. Returns { verdict: complete | playable_with_defects | incomplete, headline, genre, counts, defects, next, sections, text }. fix=true applies the free and safe fixes first; playtest=run plays the game first. Run it before saying a game is done. Never a gate. 0 credits.

project_idRequired
gkp_…
fixOptional
true: apply the free fixes first (free models on capsules, standard clips, suggested control scheme)
playtestOptional
last (default: the stored playtest, said stale when the project changed) | run
briefOptional
free words about the game, for the model proposals
gripforge_game_test

Play the project headless with an automatic player and report what works and what is broken: one ✓ ⚠ ✕ line per check, with time, position, entity or kit, and a replay key. Run it after building or changing a game; fix the ✕ lines first. It also checks the game on what it chose (game.* lines): the gestures its control scheme promises, fullscreen when offered, the right button when it has a role, the pointer capture, its texts against the real bindings; the frame rate is “not verified” headless (the play page measures it for the audit). With the project’s bindings it also fails a creature drawn as a capsule (models.bound) and a state played without its clip (animations.clips). A playtest that passes is not a finished game: gripforge_game_audit gives the verdict. 0 credits.

project_idRequired
gkp_…
budget_secondsOptional
game time to play, 5–300 s (default 120)
seedOptional
seed of the run (default 1)
replayOptional
report.replay of an earlier run: the same inputs again
langOptional
en | fr
gripforge_moba_map

Generate, dress, validate and set a MOBA map. Reusable finishes include jungle plateaus, raised river banks and fords, terraced bases, walkable stairs, carved architecture, clustered forests and stone guardians. Lane layout and camera are preserved; shared terrain heights and masonry collisions follow relief. Bound Library assets take precedence. 0 credits.

project_idRequired
gkp_…
actionOptional
get | generate | dress | validate | set
styleOptional
{ theme: sanctum | wildwood | ashen, detail: low | medium | high, seed: integer, relief: landscape | terraced | flat }. Default relief: landscape. New maps: sanctum / high / 11.
lanesOptional
generate: 1–5
dividerOptional
river | chasm | lava | void | none
applyOptional
generate / dress: save the result (default: preview)
mapOptional
validate / set: a map document
gripforge_ability_vfx

A cast effect written and bound for every ability of a project without one (shape, range and colour from the ability). Needs fx.ability_vfx. 0 credits.

project_idRequired
gkp_…
replaceOptional
rewrite existing effects
abilitiesOptional
only these ability ids
gripforge_moba_roster

Champions with an ability pack → the roster of a moba project: moba_heroes and abilities collections, moba_hero_<n> and player_character bindings. 0 credits.

project_idRequired
gkp_… (preset moba)
heroesRequired
1–10 lib_… champions with an ability pack
playerOptional
the player’s champion (default the first)
gripforge_gamekit_creatures

The living units of a project (player, heroes, enemies, bosses, minions, monsters, NPCs): no creature ships as a capsule, a model ships with its animations. Report per creature slot (bound or capsule, clips missing, chain), ranked Library models for the unbound slots with the reasons of the rank, free animation chain (workspace copy, standard clip pack). Paid steps are only proposed. 0 credits.

project_idRequired
gkp_…
actionOptional
report | propose | animate | fill
slotOptional
report / propose: one creature slot
slotsOptional
animate: only these slots
limitOptional
propose: models per slot (default 5)
waitOptional
animate / fill: wait for the retargets
briefOptional
fill: what the game is about
gripforge_terrain_map_use

A terrain studio map (or a scene terrain) → the world of a game with world.terrain: baked once into a file bound to terrain_map (heights, ground roles, water, vegetation, roads, spawn points), reference kept in terrain_maps. 0 credits.

project_idRequired
gkp_… (with world.terrain installed)
mapOptional
terrain studio map id (lvl_…)
sceneOptional
scene id, instead of map
terrainOptional
terrain node id of the scene (default the first)
gripforge_runtime_sessions

The live Rust/Bevy previews of a project open in GripForge (no server-side simulation). 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
gripforge_runtime_command

Queue a versioned command for one browser session: inspect, apply_patch, set_relief, step, run_test, play, pause, reset, load_game, unload_game, get_stats. Preview only, nothing persisted. 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
commandRequired
{ protocol_version: 1, request_id, session_id, expected_revision, operation, payload }
gripforge_runtime_receipt

Received / applied / rejected status of a command, with its simulation boundary and revisions. 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
session_idRequired
a live browser session (gripforge_runtime_sessions)
request_idRequired
the request_id of the command
gripforge_get_render_capabilities

What the local Bevy neural preview can do in this session, and the state of the last request. 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
session_idRequired
a live browser session (gripforge_runtime_sessions)
request_idRequired
your id for this request; its receipt is read with gripforge_runtime_receipt
expected_revisionRequired
the session revision; another one is refused
gripforge_configure_render_preview

Turn the local neural preview off or to preview (realtime_experimental is refused). 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
session_idRequired
a live browser session (gripforge_runtime_sessions)
request_idRequired
your id for this request; its receipt is read with gripforge_runtime_receipt
expected_revisionRequired
the session revision; another one is refused
modeRequired
off | preview
gripforge_render_preview

Ask the session for one neural preview snapshot (asynchronous: read the receipt, then get_render_capabilities). Weights and rights stay in the browser; nothing is uploaded. 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
session_idRequired
a live browser session (gripforge_runtime_sessions)
request_idRequired
your id for this request; its receipt is read with gripforge_runtime_receipt
expected_revisionRequired
the session revision; another one is refused
gripforge_cancel_render_preview

Cancel a pending neural preview request. 0 credits.

project_idRequired
gkp_… open in the GripForge Rust player
session_idRequired
a live browser session (gripforge_runtime_sessions)
request_idRequired
your id for this request; its receipt is read with gripforge_runtime_receipt
expected_revisionRequired
the session revision; another one is refused

Generate17

gripforge_generate_character

CREATE a T-pose auto-rigged character or enemy. For knives/guns use gripforge_generate_weapon. 10 credits.

promptRequired
Description, 3–2000 characters. "stylish gothic action enemy" → kind=enemy. The on-demand GPU (provider gpu) always takes 2000; another provider refuses a text over its own limit with the error prompt_too_long_for_provider
providerOptional
tripo | meshy (default tripo)
nameOptional
Library item name
kindOptional
character | enemy
gripforge_generate_weapon

CREATE a weapon GLB (knife, gun, sword) into Library as kind=weapon. Default Meshy, no T-pose, no rig. polycount default 4000. 10 credits. Do not write one-off Meshy scripts.

promptRequired
e.g. tactical combat knife, silver blade, black grip. 3–2000 characters: the on-demand GPU (provider gpu) always takes them; another provider refuses a text over its own limit with the error prompt_too_long_for_provider
nameOptional
Library name
polycountOptional
Target triangles (default 4000)
styleOptional
melee | gun | shield | staff (inferred if omitted)
providerOptional
meshy (default) | tripo
gripforge_generate_weapon_catalog

Create 1–64 static PBR weapon assets using the shared Meshy fabrication pipeline. Free plan returns the aggregate quote and plan_hash. Build requires that hash, a covering budget and an idempotency key. One persistent job, two fabrication lanes, separate model checkpoints and charges. No automatic publication, animations or visual validation.

stageRequired
plan | build
entriesRequired
1–64 unique {key,name,prompt,subtype,style?,polycount?,tags?}; 500–20,000 triangles each. prompt: up to 2000 characters accepted; Meshy text-to-3D makes the catalogue, so a description over its room (about 680 characters) is refused by name (prompt_too_long_for_provider) at the plan, never cut
plan_hashOptional
Required for build; returned by plan
budgetOptional
Required for build: {credits:N} or {usd:N}, in the quoted currency
idempotency_keyOptional
Required for build. Poll generation_read; result.items contains all asset and Studio links
gripforge_generate_creature

Generate generic animals and alien creatures in batches of 1–8: quote, concept, textured mesh, anatomy review, then anatomy-aware Blender rig. Durable jobs and explicit budgets. Private draft GLB, Blender source and diagnostics; missing flight/swim/action clips remain visible. Never auto-approved as game-ready.

stageOptional
plan (default), build, rig
recipesOptional
plan/build: 1–8 unique ids, names, prompts and anatomy families; optional style, role, locomotion, size_m, polycount, required_clips, immutable source or concept
budgetOptional
build: explicit usd or credits ceiling from plan
idempotency_keyOptional
Required stable key for build/rig
generation_jobOptional
rig: completed batch job
creature_idOptional
rig: creature within that batch
reviewed_anatomyOptional
rig: true after inspecting/correcting the skeleton overlay
gripforge_creature_rig_schema

Read the reusable creature rig/anatomy contract, coordinate system, limits and persistent workflow. Blender manufactures; Character Studio renders the result for review.

No specific parameters documented for this tool.

gripforge_architecture_schema

Read the Meshy building/district recipe, example, limits and free plan → paid build workflow. Shared Scene Engine and immutable Library assets.

No specific parameters documented for this tool.

gripforge_generate_building

Plan → concept → review → Meshy exterior. Optional 2K concepts: alternate camera views edit the same master and are saved in your workspace. Review them before Meshy multi-image reconstruction, with configurable PBR quality and proportional metric fitting. Persistent jobs retain finished views/models; results include Library/Studio links and remain private work versions. No guaranteed interiors, doors or collisions.

recipeRequired
prompt, name, style, look (stylized|painted|toon|anime|realistic|lowpoly|pixel), use, floors, dimensions in metres, roof, polycount; optional concept, concepts:[1–4 views], source, meshQuality:{geometry:standard|2k|4k,texture:2k|4k|8k}. Multi-image geometry supports standard/2k.
stageOptional
plan (free) | concept (images only) | build (3D)
concept_providerOptional
openai (default: GPT Image 2.5 Sunburst high quality) | xai. Pinned per job; no silent fallback.
concept_presentationOptional
scene (default artistic concept in context) | isolated (same building for reconstruction)
concept_referenceOptional
Owned image revision to EDIT into new views. Review scene first, then derive isolated views before Meshy.
concept_viewsOptional
1–4 unique views starting with front_right, then front_left / rear_right / rear_left. Default one scene view or three isolated views. recipe.concept reuses a master.
budgetOptional
{credits:N} or {usd:N}: use plan.concept_quote for images, plan.quote for 3D
workspace_idOptional
Authorized workspace
idempotency_keyOptional
Reuse the same persistent request; poll/cancel/retry with generation tools
gripforge_environment_module

Free reusable 3D environment modules: masonry, rocks, cliffs, ruins, bridges, watchtowers, shrines and stone guardians. inspect returns generated bounds and assembly sockets; build saves a private textured GLB. Independent of MOBA projects; no automatic binding or publication.

recipeRequired
module: pillar | arch | fountain | stairs | wall | pavement | rock | cliff | ruin | bridge | watchtower | shrine | guardian; optional width/height/depth in metres, seed and palette:{stone,recess,trim,water} as hex colours. Pavement only: pattern radial | botanical (leaf rosette inlay).
stageOptional
inspect (default) | build
nameOptional
Library asset name
workspace_idOptional
Authorized workspace
gripforge_generate_district

Compose a straight-street district from 1–8 Meshy building definitions and 1–4 repetitions. Manufacture each model once; create separate editable instances, road, pavements, spawn, daylight and camera. Optional owned road/sidewalk PBR maps; otherwise solid materials. Free layout/quote first, explicit paid build, durable partial results and Map Studio link. No automatic game replacement or publication.

recipeRequired
name, buildings:[building recipes with distinct ids], repetitions, streetWidth, sidewalkWidth, gap, optional materials:{road,sidewalk}
stageOptional
plan (default) | build
budgetOptional
Explicit ceiling in the funding currency returned by plan.quote
workspace_idOptional
Authorized workspace
idempotency_keyOptional
Stable request identity
gripforge_creature_analyze

Queue four-view mesh inspection and anatomical detection for an owned GLB. Returns a job id; generation_read with include_preview=true returns the annotated views, editable joint profile and uncertainties. No fixed humanoid or eight-legged skeleton.

source_idRequired
Owned Library GLB id
workspace_idOptional
Authorized workspace
idempotency_keyOptional
Reuse the same persistent request
gripforge_creature_rig

Manufacture a NEW private draft: skeleton, surface-smoothed weights, starting clips, GLB and editable Blender source. Poll generation_read for the Character Studio link and deformation report. Grounded leg chains receive walk/run with IK. No automatic visual approval, finger/facial rig or finished combat choreography. 0 GripForge credits; storage quota applies.

analysis_jobRequired
Completed creature anatomy job from this workspace
profileOptional
Corrected anatomy in the returned source coordinate system
reviewed_anatomyRequired
True after inspecting/correcting the anatomy skeleton overlay
allow_rerigOptional
Explicitly create a separate copy if the source already has bones
gripforge_abilities

Reusable skills for players, enemies and bosses. Validate a shared pack and export executable Three.js, Godot, Unity or Unreal adapters: costs, cooldowns, conditions, targeting, windup/active/recovery and animation/VFX/audio cues. Uses the existing web combat system. Native exports need the game combat backend and presentation bindings; rigging and asset generation are separate. 0 credits.

actionRequired
schema | example | validate | export
packOptional
Ability pack returned by example or authored against schema; required for validate/export
targetOptional
export: threejs | godot | unity | unreal | all. Returns relative paths and file contents.
model_assetOptional
example: Library model id to associate with the Chrono Crab ability pack
gripforge_boss

Boss configuration: stats, phases, attacks, arena and engine integration snippets. 0 credits for the kit. Reuses a Library mesh; generate=true forges a new enemy. Rigging, suitable clips and target-engine integration remain separate. Use gripforge_abilities for executable ability orchestration.

promptRequired
e.g. gothic action phantom boss
roleOptional
mini | mid | final (inferred from the prompt)
character_idOptional
lib_… enemy / character / bind — 0 credits
generateOptional
Forge a new enemy mesh (10 credits). Skip if locker already has one.
nameOptional
Boss display name
providerOptional
tripo | meshy (generate only)
out_dirOptional
Write boss.json + snippets (npm)
gripforge_concept_correct

Correct a character concept into a strict T-pose sheet (optional cape/train off, sleeved jacket stays, outfit or sport base). Saves PNG to Library. 1 credit.

file_url / pathRequired
https image (hosted) or local path (npm)
clothesOptional
outfit | base (grey athletic sportswear)
capeOptional
Remove flowing cape/train only; keep sleeved jacket (default true, outfit only)
notesOptional
Extra direction
nameOptional
Library name
gripforge_hud

Survivor HUD kit: hud.json + cartoon PNGs + Godot .tscn + Three / Unity / Unreal snippets. npm writes out_dir (default ./gripforge-hud). 1 credit.

presetOptional
survivor (default)
health_typeOptional
hearts | bar
health_maxOptional
1–20 (default 5)
health_styleOptional
Built-in skin, or custom:<slug> from hud_bar
currenciesOptional
default ["gem","mushroom","drop"]
minimapOptional
default false
portraitOptional
default true
out_dirOptional
npm: write folder (default ./gripforge-hud)
gripforge_hud_bar

Forge an original themed health-bar frame+fill PNG pair (genre/materials, not a specific game). npm writes PNGs to out_dir. 2 credits.

themeRequired
e.g. gothic demon-hunter, baroque metal
colorsOptional
Fill gradient [light, mid, dark] hex
nameOptional
Slug for Library items
out_dirOptional
npm: write PNGs (default ./gripforge-hud)
gripforge_cape

Cape rig: 3-column bone grid on neck/spine, skins the cape, bakes attached_cape.glb + Godot spring / Three verlet snippets. npm writes out_dir. 1 credit.

character_id / character_urlRequired
Rigged character
cape_id / cape_urlRequired
Cape mesh
columnsOptional
Bone columns (default 3)
rowsOptional
Rows below anchor (default 5)
saveOptional
Save attached_cape.glb to Library (default true)
out_dirOptional
npm: write bind + scripts + GLB (default ./gripforge-cape)

Attach & combat6

gripforge_attach

Auto bone-attach a prop onto a rigged character. Returns bind JSON + Three / Unity / Godot snippets. Bind (+ armed GLB when export_glb) is saved in Library — not a second credit.

character_path / character_url / character_id / attach_idRequired
Character mesh, Library id, or armed bind (attach_id) as the character
prop_path / prop_url / prop_idRequired
Prop mesh — local path, https URL, or Library id
prop_id_2 / prop_path_2 / prop_url_2Optional
Second held item (off-hand) attached after the first
styleOptional
melee | gun | shield | staff
handOptional
right | left
height_ratioOptional
Prop size as fraction of body height
fistOptional
Fist closing amount, 0 open → 1 closed
export_glbOptional
Bake character + fist + prop into attached.glb (mitten rigs)
out_dirOptional
Write bind.json + snippets to this folder (npm)
gripforge_loadout

Multi-weapon character in one call: attaches every prop of every set, names nodes gf_prop_<slug>_<l|r>, stamps a scene manifest { default, sets }, then (default) retargets the clip pack. Engine switches sets by toggling visibility. Credits: one attach per prop.

character_idRequired
Library character id
setsRequired
{ "sword": [{prop_id}], "guns": [{prop_id, hand, style}, …] }
default / default_setOptional
Set visible by default (first set otherwise)
archetypeOptional
sword | claws | heavy | brawler | puppet
animateOptional
Also retarget the standard clip pack (default true)
nameOptional
Library name
out_dirOptional
Write loadout.glb + manifest.json (npm)
gripforge_rest_pose

Lower arms against this mesh until they would clip. Saves arms-down rest (weapons stay in the hands on an armed bind). 0 credits.

character_idRequired
character | enemy | armed bind
gripforge_hitbox

Body capsules + weapons[] (one reach capsule per gf_prop_ wrapper) from a character, armed bind or loadout. Use weapons[] for dual-wield. 0 credits.

character_idOptional
character | enemy
attach_idOptional
armed bind
idOptional
loadout / bind / character
gripforge_vehicle_orient

Yaw so a kart/vehicle GLB nose is local +Z (Meshy often faces +X). Then heading = yawToward(track tangent). Returns meshYaw + Three.js / Godot snippets. 0 credits.

idOptional
Library kart/vehicle GLB
prop_idOptional
same as id
gripforge_formats

List supported mesh formats, styles, and hands. Also reports npm client version vs latest.

No specific parameters documented for this tool.

Animation2

gripforge_animate

Retarget the clip pack onto a Mixamo Library character/enemy/armed bind. Base slots + extras (taunt, stinger, knockback, block, jump_*, idle_guns, shoot). archetype remaps base slots. Saves kind=animation. 0 credits.

character_idRequired
character | enemy | armed bind
archetypeOptional
sword | claws | heavy | brawler | puppet
slotsOptional
Subset of idle walk run attack1-3 hit death dodge + extras
nameOptional
Library name
gripforge_retarget

Convert a clip from skeleton A onto skeleton B. Saves kind=animation.

source_idRequired
GLB with clips
target_idRequired
Character to drive
clipOptional
Clip name (default first)

Dedicated servers10

gripforge_server_list

List dedicated game servers in the workspace. Same Core API as the Server dashboard. 0 extra credits.

No specific parameters documented for this tool.

gripforge_server_get

Read one server, instance, engine/networking and integration status.

idRequired
srv_…
gripforge_server_create

Create a Unity/FishNet or Godot/ENet (or custom Docker) server record. Does not start until deploy.

nameRequired
Display name
engineOptional
unity | unreal | godot | custom
networkingOptional
fishnet | ngo | mirror | custom
maxPlayersOptional
1–200
demoOptional
Local Docker demo process
gripforge_server_deploy

Start a Docker instance for the server. Mutating.

idRequired
srv_…
gripforge_server_start

Start an existing instance. Mutating.

idRequired
srv_…
gripforge_server_stop

Stop the instance. Mutating.

idRequired
srv_…
gripforge_server_restart

Restart the instance. Mutating.

idRequired
srv_…
gripforge_server_logs

Runtime stdout/stderr (Docker logs). Not stored in SQL.

idRequired
srv_…
tailOptional
Line count, default 200
gripforge_server_metrics

CPU, memory, network counters from the runtime provider.

idRequired
srv_…
gripforge_server_delete

HIGH IMPACT. Owner only. Requires confirm=true.

idRequired
srv_…
confirmRequired
Must be true

Server & match5

gripforge_match_kit

Listen-server match contract: party size, teams, maps, ranked flag, join-by-IP. Write match.json + autoload GfMatch on top of GfNet. GripForge does not host a queue. 0 credits.

promptRequired
e.g. tactical 5v5, deathmatch, ranked 5v5
gripforge_net_kit

Godot 4 multiplayer (ENet): GfNet autoload host/join/spawn with server-side hit validation, gf_round.gd for the round + bomb, MultiplayerSpawner/Synchronizer wiring. 0 credits.

promptRequired
e.g. tactical 5v5, deathmatch, fps
gripforge_performance

Diagnose stutter from measured frame pacing, CPU/GPU work, render counters and network delivery. Reads the latest capture in your workspace (10-minute lifetime, lost on server restart), or analyzes an explicit report without storing it. Returns evidence and recommendations; does not modify or automatically repair a game. Available on the hosted MCP; 0 credits.

kit_idOptional
Kit/library id; omitted selects the latest workspace capture
reportOptional
Optional {game, version, viewport:{width,height}, samples:[{fps, frameMs, p95Ms, cpuMs, submitMs, gpuMs, drawCalls, triangles, networkMs, snapshotAgeMs}]}; 1–120 samples. Omit to read an instrumented kit.
gripforge_menu_kit

Main menu (host/join/quit) + lobby listing connected peers where only the host starts + in-game HUD reading replicated state. Pairs with net_kit. 0 credits.

promptRequired
e.g. tactical, minimal
gripforge_bot_kit

Navmesh bots (patrol/hunt/shoot) as server-owned player scenes so spawner/synchronizer/net-kit damage apply unchanged. 0 credits.

promptRequired
difficulty: easy, normal, hard

Scene, HUD copy, loading15

gripforge_scene_kit

Locker props for a game look plus a suggested layout (metres, Y-up). Empty slots → generate that dressing prop.

promptRequired
e.g. stylish gothic action
gripforge_light_kit

Moon / sun / candle lights + fog + Three.js snippet for a game style, optionally in a rendering look (toon, realistic…). 0 credits. Pair with scene_kit.

promptRequired
e.g. stylish gothic action
lookOptional
Rendering look, separate from the game style: stylized | painted | toon | anime | realistic | lowpoly | pixel (old values read as aliases). Omit for the style default.
gripforge_font

Google-font CSS + exact rank strings (stylish action: Cinzel, D–SSS); a look may set the title font. Put letters in HTML — do not rasterize. 0 credits.

promptRequired
e.g. stylish gothic action
lookOptional
Rendering look, separate from the game style: stylized | painted | toon | anime | realistic | lowpoly | pixel (old values read as aliases). Omit for the style default.
gripforge_input_kit

FPS InputMap: move_forward/back/left/right bound to WASD AND arrow keys. Write res://gripforge/input.json, autoload GfInput. Optional third_person returns the shared character-facing function used by Éclat Royale, plus a Three.js example: face movement, retain heading at rest, face look direction when aiming/firing/building. Camera and imported model transforms stay independent. Orientation helper only; existing input mapping, physics and network authority stay with your controller. 0 credits.

promptRequired
e.g. fps or third person
third_personOptional
boolean, default false. Returns third_person.source_js (export updateCharacterFacing) and usage_three. Optional persistent fourth argument { velocity, targetYaw } adds bounded turn acceleration and braking. World-space movement, -Z forward, radians, dt in seconds.
gripforge_joystick_kit

Ready-to-integrate touch/mouse controls for Unreal, Godot, Unity and Three.js. Returns complete source files and setup instructions: movement stick, optional camera stick, continuous holding, radial deadzone and independent fingers. Release/cancel/focus loss resets input. Feeds your existing pawn or movement motor; preserves physics and gamepad bindings. Agent writes the returned files and verifies in the target engine. 0 credits.

targetRequired
unreal | godot | unity | threejs | all
layoutOptional
dual (default) or move
deadzoneOptional
0–0.5, default 0.15; radial and rescaled
radiusOptional
32–160 logical pixels, default 72
accentOptional
Hex RGB color, default #ff681f
gripforge_viewmodel_kit

CS-style first-person arms + gun under Camera3D/Hold. Write viewmodel.json, gf_viewmodel.gd, clip shader. Mixamo T-pose palms down. Gun is a sibling under Hold, not the world-body hand bone. 0 credits.

promptRequired
e.g. fps or tactical bomb defusal
gripforge_navmesh

Walkable XZ AABB + pillar holes for a scene_kit room. JSON clamp, not a baked navmesh. 0 credits.

promptRequired
e.g. stylish gothic action
gripforge_loading_page

Loading overlay for Three / Godot / Unity / Unreal. Title is text. Overlay 0 credits. Pass character_id to generate a 16:9 cinematic still of that Library character (1 credit, no letters in the image).

promptRequired
e.g. stylish gothic action
character_idOptional
lib_… character / enemy / bind — generate background still (1 credit)
lookOptional
Rendering look, separate from the game style: stylized | painted | toon | anime | realistic | lowpoly | pixel (old values read as aliases). The still is drawn in this look; omit for the style default.
gripforge_map_plan

FPS/bomb map. Interprets the overhead as a 3D compound: hollow rooms, corniche, A plat + pit, arches/windows, vaulted tunnels, sidewalks. Preview https://gripforge.ai/map-plan?prompt=bomb%20defusal. Pair with gripforge_map_props + gripforge_map_wires. 0 credits. Not a dungeon — use gripforge_level.

promptRequired
e.g. tactical bomb defusal, two sites
gripforge_map_refs

Reference stills of a known map the user names (A, B, mid, catwalk, tunnels, spawn). HTTPS links of their owner. Reference only — do not rehost, do not send to Meshy. live=1 HEAD-checks. 0 credits.

promptRequired
e.g. bomb defusal
liveOptional
HEAD-check URLs
gripforge_map_props

Callout props for an FPS map (A/B crates, mid/long/B doors, palms, barrels, cars, cover boxes). Matches locker when tagged. Empty slot → generate that prop. Pair with gripforge_map_plan. 0 credits.

promptRequired
e.g. tactical bomb defusal
gripforge_map_wires

Sagging electrical cables: spans with two anchors (metres) + sag + strands. Not a Meshy mesh — GfMap tessellates cylinders. Typical spans: spawn yard, catwalk, mid, A site. Pair with gripforge_map_plan. 0 credits.

promptRequired
e.g. tactical bomb defusal
gripforge_map_look

Reproduce a still without copying pixels: camera (pos/target/fov) + volume/prop/wire ids. shot=shot21a (A site). Official URL is a LINK only — never rehost, never Meshy image-to-3d. 0 credits.

promptRequired
e.g. bomb defusal
shotOptional
shot21a | a-site | shot1a | catwalk
gripforge_map_reconstruct

Hierarchical reconstruction: official stills (LINK, classified folders) → MapGraph → greybox (floors/walls/ramps/arches, no props) → zone parts → camera match → dress (original tileable materials + map_props + map_wires). A known map stays its owner’s IP — greybox benchmark, not a commercial clone. Never Meshy a screenshot, never BSP/VPK. Greybox /map-plan?prompt=bomb%20defusal&greybox=1 — dressed /map-plan?prompt=bomb%20defusal. 0 credits.

promptRequired
e.g. Reconstruct map: desert bomb-defusal map with two sites
stageOptional
collect | graph | greybox | zone | validate | capture | dress | all
zoneOptional
LONG_A | A_SITE | CATWALK | T_SPAWN | …
gripforge_level

Plan a playable level from a prompt (0 credits): rooms in metres, connections, critical path, shortcuts, spawns. Same seed → same level. Pair with scene_kit for dressing.

promptRequired
e.g. gothic castle dungeon, 3 combat rooms, one boss
seedOptional
Same seed → same layout
combat_roomsOptional
Number of combat rooms
floorsOptional
Number of floors
optional_branchesOptional
Optional side rooms

Textures & shaders4

gripforge_texture_prep

Prep a game texture: optional seamless blend + faithful lanczos upscale (1×/2×/4×, max 1024 or 2048). Pattern preserved — not a generator. Writes the PNG into out_dir (npm) and returns the Library URL. 0 credits.

path / image_url / texture_idRequired
Local PNG/JPG/WebP (npm), https URL (hosted), or Library id
seamlessOptional
50% wrap + seam blend (default true)
scaleOptional
1 | 2 | 4
sizeOptional
1024 | 2048
out_dirOptional
Write the PNG here (npm). Hosted returns the URL only.
nameOptional
Library / file name
gripforge_make_seamless

Turn an image into a tileable texture: 50% wrap + seam cross-fade. Pattern preserved. Hosted MCP. 0 credits.

image_url / texture_idRequired
https URL or Library texture id
sizeOptional
Force power-of-two side: 512, 1024, 2048
bandOptional
Blend band as a fraction of the side (default 0.08)
nameOptional
Library name
gripforge_shaders

List the authorized shader catalog mirrored by GripForge. { id, name, engines: godot|unity|three }. Search aliases like slash_reveal. Free.

qOptional
Search id / name / alias
typeOptional
canvas_item | spatial | sky | particles | fog
limit / offsetOptional
Pagination (default 50)
gripforge_shader_pull

Pull a shader into the open repo (npm writes out_dir; hosted returns file contents). Returns a Godot ShaderMaterial / Unity Material / Three ShaderMaterial assign snippet. v1 pull is free (no credit).

idRequired
Slug or alias (slash_reveal)
engineRequired
godot | unity | three
out_dirRequired
Folder to write into (npm). Hosted: suggested path only.

Preview1

gripforge_render

Server PNG preview of a Library GLB (agent can see without a browser).

idRequired
lib_…
width / heightOptional
PNG size

Admin VFX3

gripforge_vfx_generate

Admin only. Text or reference image to an editable animated VFX specification. Preview is free. Pass the returned parameters, emitters and generation to gripforge_vfx to save/export (1 credit).

presetOptional
slash-trail | slash-steel | slash-fire | slash-ice | slash-nature; supply alone for a deterministic preset without AI
promptOptional
Up to 500 characters; optional with an image
visual_styleOptional
Rendering look of the effect: stylized (default) | painted | toon | anime | realistic | lowpoly | pixel
lookOptional
Rendering look, separate from the game style: stylized | painted | toon | anime | realistic | lowpoly | pixel (old values read as aliases). Same as visual_style.
image_dataOptional
PNG/JPEG/WebP base64 data URI, up to 8 MB
image_idOptional
Owned Library image id, instead of image_data
gripforge_vfx

Admin only. Generate + export 3D slash/thrust/spin VFX on a Library bind, or a world-space fire meteor. Additive PNG, vfx.json + snippets. Refused for non-admin keys.

attach_idOptional
Library bind (not required for meteor)
promptOptional
Fills type/style/color/emitters when omitted
typeOptional
slash | thrust | spin | meteor | beam | swing | claw | charge | shield
styleOptional
energy | metal | magic
lookOptional
beam: toon | solid
colorOptional
Hex color
durationOptional
Seconds (default 0.25)
widthOptional
Ribbon width in metres
out_dirOptional
Write vfx.glb + additive.png + snippets (npm)
gripforge_vfx_preview

Admin only. Evaluate the VFX timeline at time t (t=0 empty). No credits.

bindRequired
Attach bind.json object
tOptional
Seconds (default 0)
typeOptional
Same types as gripforge_vfx
durationOptional
Seconds
See the currently deployed tool catalog
04

Keep track of usage

Estimate an operation before starting a paid generation.

Same workspace, same assets

Your account and selected workspace determine access and usage. The agent can read existing assets and request generation estimates with gripforge_generation_quote.

AI and generation

GripForge AI and paid generations share the active AI subscription limit. When that allowance is exhausted, new generations use available asset credits. Native Codex and Claude Code model usage stays with their provider.

Check your usage in the terminal
gripforge usage
05

A few useful details

Where does the result go?

Created assets and scenes are saved in the authorized workspace. Tools return asset IDs and, where available, Studio links so you can review and edit the result.

Can the hosted MCP edit my local files?

The hosted server cannot directly access your disk. Your local agent can edit project files and download returned assets with its own permissions. Use the npm integration for tools that explicitly require local files or installed engines.

Do I need Blender?

Only for operations that use a local Blender worker. It prepares assets; the final result should still be reviewed in the target Studio or game engine.

How do I switch agents or resume?

Return to your terminal and run gripforge switch to choose another agent, gripforge resume to resume a session, or gripforge jobs to inspect generation jobs.