Model Context Protocol

GripForge MCP

Claude Code en premier : copie la commande ou le JSON, ta clé workspace est déjà dedans si tu es connecté. Même pipeline que le Studio / la Library. HTTP hébergé https://gripforge.ai/mcp est toujours à jour ; npm @gripforgeai/mcp@0.1.6 écrit les fichiers dans le repo.

1 · Install

Copie un des deux blocs, colle-le dans un terminal à la racine du projet, puis relance Claude Code. La clé est celle du workspace (même casier que la Library).

1 · Commande

Terminal, dans le projet.

claude mcp add gripforge -s local -e GRIPFORGE_API_KEY=gf_... -- npx -y @gripforgeai/mcp

2 · JSON

Fichier .mcp.json à la racine du projet (versionnable — ne commite pas la clé).

{
  "mcpServers": {
    "gripforge": {
      "command": "npx",
      "args": ["-y", "@gripforgeai/mcp"],
      "env": { "GRIPFORGE_API_KEY": "gf_..." }
    }
  }
}

Toutes les tools (recommandé)

npm @gripforgeai/mcp@0.1.6 (stdio, écrit les fichiers). Hosted HTTP : même catalogue, zéro install.

claude mcp add --transport http gripforge https://gripforge.ai/mcp --header "x-api-key: gf_..." -s local

Vérifie avec claude mcp list — les outils apparaissent comme mcp__gripforge__*.

Ta clé gf_... est sur ton compte.

2 · Tools

Catalogue hébergé complet. gripforge_hud, hud_bar, cape et make_seamless sont sur le MCP HTTP ; le package npm couvre le reste et écrit out_dir.

Look & locker

gripforge_style_kit

Resolve "Devil May Cry like" / "genshin" to the locker kit already tagged with that game (characters, enemies, weapons, props). Call this before generating.

  • promptrequirede.g. devil may cry like

gripforge_library_list

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

  • kindoptionalcharacter | enemy | weapon | prop | texture | bind | vfx | animation | audio
  • qoptionalSearch name
  • styleoptionalGame look (devil-may-cry, dmc, genshin)

gripforge_library_get

Get one Library item and its signed file URL.

  • idrequiredlib_…

gripforge_library_push

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

  • path / file_urlrequiredLocal file (npm) or https URL (hosted)
  • kindrequiredcharacter | enemy | weapon | prop | texture | bind | vfx | animation | audio
  • nameoptionalDisplay name

gripforge_library_pull

Sync: write the item into the open repo (npm / Claude Code). Hosted endpoint returns a signed URL only. Also pulls VFX sidecars (tex0..png/json).

  • idrequiredlib_…
  • out_diroptionalDefault ./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.

  • idrequiredlib_…
  • styleoptionaldevil-may-cry, genshin…
  • tagsoptionalReplace tag list

gripforge_audio_kit

Locker audio for a game look: SFX (sfx_*) and music loops (music_*), grouped, with file URLs. npm out_dir downloads everything. 0 credits.

  • promptoptionalGame look (omit for everything)
  • out_diroptionalDownload files here (npm)

Generate

gripforge_generate_character

CREATE a new game-ready mesh (T-pose, auto-rigged) and save it to Library. If the look may already be in the locker, call style_kit first. Put "enemy" in the prompt (or kind=enemy) to save as kind=enemy. 10 credits; 2–8 minutes.

  • promptrequiredDescription. "Devil May Cry like enemy" → tagged devil-may-cry, kind=enemy
  • provideroptionaltripo | meshy (default tripo)
  • nameoptionalLibrary item name
  • kindoptionalcharacter | enemy

gripforge_boss

Playable boss kit: stats, phases, attacks bound to anim-pack slots, arena, Three / Godot / Unity / Unreal snippets. 0 credits. Reuses a locker enemy. Pass character_id to bind a mesh. generate=true forges a NEW kind=enemy (10 credits). Then animate + hitbox.

  • promptrequirede.g. devil may cry like phantom boss
  • roleoptionalmini | mid | final (inferred from the prompt)
  • character_idoptionallib_… enemy / character / bind — 0 credits
  • generateoptionalForge a new enemy mesh (10 credits). Skip if locker already has one.
  • nameoptionalBoss display name
  • provideroptionaltripo | meshy (generate only)
  • out_diroptionalWrite 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 / pathrequiredhttps image (hosted) or local path (npm)
  • clothesoptionaloutfit | base (grey athletic sportswear)
  • capeoptionalRemove flowing cape/train only; keep sleeved jacket (default true, outfit only)
  • notesoptionalExtra direction
  • nameoptionalLibrary name

gripforge_hud

Survivor HUD kit: hud.json + cartoon PNGs + Godot .tscn + Three / Unity / Unreal snippets. Hosted MCP. 1 credit.

  • presetoptionalsurvivor (default)
  • health_typeoptionalhearts | bar
  • health_maxoptional1–20 (default 5)
  • health_styleoptionalBuilt-in skin, or custom:<slug> from hud_bar
  • currenciesoptionaldefault ["gem","mushroom","drop"]
  • minimapoptionaldefault false
  • portraitoptionaldefault true

gripforge_hud_bar

Forge an original themed health-bar frame+fill PNG pair (genre/materials, not a specific game). Hosted MCP. 2 credits.

  • themerequirede.g. gothic demon-hunter, baroque metal
  • colorsoptionalFill gradient [light, mid, dark] hex
  • nameoptionalSlug for Library items

gripforge_cape

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

  • character_id / character_urlrequiredRigged character
  • cape_id / cape_urlrequiredCape mesh
  • columnsoptionalBone columns (default 3)
  • rowsoptionalRows below anchor (default 5)
  • saveoptionalSave attached_cape.glb to Library (default true)

Attach & combat

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_idrequiredCharacter mesh, Library id, or armed bind (attach_id) as the character
  • prop_path / prop_url / prop_idrequiredProp mesh — local path, https URL, or Library id
  • prop_id_2 / prop_path_2 / prop_url_2optionalSecond held item (off-hand) attached after the first
  • styleoptionalmelee | gun | shield | staff
  • handoptionalright | left
  • height_ratiooptionalProp size as fraction of body height
  • fistoptionalFist closing amount, 0 open → 1 closed
  • export_glboptionalBake character + fist + prop into attached.glb (mitten rigs)
  • out_diroptionalWrite 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_idrequiredLibrary character id
  • setsrequired{ "sword": [{prop_id}], "guns": [{prop_id, hand, style}, …] }
  • default / default_setoptionalSet visible by default (first set otherwise)
  • archetypeoptionalsword | claws | heavy | brawler | puppet
  • animateoptionalAlso retarget the standard clip pack (default true)
  • nameoptionalLibrary name
  • out_diroptionalWrite 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_idrequiredcharacter | 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_idoptionalcharacter | enemy
  • attach_idoptionalarmed bind
  • idoptionalloadout / bind / character

gripforge_formats

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

Animation

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_idrequiredcharacter | enemy | armed bind
  • archetypeoptionalsword | claws | heavy | brawler | puppet
  • slotsoptionalSubset of idle walk run attack1-3 hit death dodge + extras
  • nameoptionalLibrary name

gripforge_retarget

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

  • source_idrequiredGLB with clips
  • target_idrequiredCharacter to drive
  • clipoptionalClip name (default first)

Scene, HUD copy, loading

gripforge_scene_kit

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

  • promptrequirede.g. devil may cry like

gripforge_light_kit

Moon / sun / candle lights + fog + Three.js snippet for a game look. 0 credits. Pair with scene_kit.

  • promptrequirede.g. devil may cry like

gripforge_font

Google-font CSS + exact rank strings (DMC: Cinzel, D–SSS). Put letters in HTML — do not rasterize. 0 credits.

  • promptrequirede.g. devil may cry like

gripforge_navmesh

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

  • promptrequirede.g. devil may cry like

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).

  • promptrequirede.g. devil may cry like
  • character_idoptionallib_… character / enemy / bind — generate background still (1 credit)

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.

  • promptrequirede.g. gothic castle dungeon, 3 combat rooms, one boss
  • seedoptionalSame seed → same layout
  • combat_roomsoptionalNumber of combat rooms
  • floorsoptionalNumber of floors
  • optional_branchesoptionalOptional side rooms

Textures & shaders

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_idrequiredLocal PNG/JPG/WebP (npm), https URL (hosted), or Library id
  • seamlessoptional50% wrap + seam blend (default true)
  • scaleoptional1 | 2 | 4
  • sizeoptional1024 | 2048
  • out_diroptionalWrite the PNG here (npm). Hosted returns the URL only.
  • nameoptionalLibrary / 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_idrequiredhttps URL or Library texture id
  • sizeoptionalForce power-of-two side: 512, 1024, 2048
  • bandoptionalBlend band as a fraction of the side (default 0.08)
  • nameoptionalLibrary name

gripforge_shaders

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

  • qoptionalSearch id / name / alias
  • typeoptionalcanvas_item | spatial | sky | particles | fog
  • limit / offsetoptionalPagination (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).

  • idrequiredSlug or alias (slash_reveal)
  • enginerequiredgodot | unity | three
  • out_dirrequiredFolder to write into (npm). Hosted: suggested path only.

Preview

gripforge_render

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

  • idrequiredlib_…
  • width / heightoptionalPNG size

Admin VFX

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_idoptionalLibrary bind (not required for meteor)
  • promptoptionalFills type/style/color/emitters when omitted
  • typeoptionalslash | thrust | spin | meteor | beam | swing | claw | charge | shield
  • styleoptionalenergy | metal | magic
  • lookoptionalbeam: toon | solid
  • coloroptionalHex color
  • durationoptionalSeconds (default 0.25)
  • widthoptionalRibbon width in metres
  • out_diroptionalWrite vfx.glb + additive.png + snippets (npm)

gripforge_vfx_preview

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

  • bindrequiredAttach bind.json object
  • toptionalSeconds (default 0)
  • typeoptionalSame types as gripforge_vfx
  • durationoptionalSeconds

3 · Crédits

1 crédit = 1 attache réussie via l'API (POST /api/v1/attach avec X-API-Key) ou via MCP (GRIPFORGE_API_KEY / x-api-key). gripforge_loadout = 1 crédit par prop. Autres coûts : generate_character / boss generate 10 · hud / cape / concept_correct / loading still 1 · hud_bar 2. Overlay loading, scene/light/font/navmesh, animate, boss kit, rest_pose, hitbox, texture_prep, make_seamless, shaders list + pull v1 : 0 crédit.

Quota mensuel : Free 15 attaches Studio + 3 essais API/MCP · Indie 100 · Studio 500. Quota épuisé → 402. Essai Free API/MCP épuisé → 403. Le Studio (prévisualisation) est gratuit au-delà de l'API. Sans clé, l'API tourne en mode local non compté. gripforge_vfx est admin-only.

# consulter son solde
curl -H "X-API-Key: gf_..." https://gripforge.ai/api/v1/credits
→ { plan, used, limit, remaining, period }

# catalogue tools
curl https://gripforge.ai/api/v1/mcp

4 · Example

gripforge_style_kit
  prompt: devil may cry like

gripforge_loadout
  character_id: lib_…
  sets:
    sword: [{ prop_id: lib_…, style: melee }]
    guns:  [{ prop_id: lib_…, hand: left, style: gun },
            { prop_id: lib_…, hand: right, style: gun }]

gripforge_loading_page
  prompt: devil may cry like
  character_id: lib_…

gripforge_boss
  prompt: devil may cry like phantom boss
  role: mid

5 · Also available