GameForge MCP (gameforge-mcp)
The 100% Open-Source Federated Game-Dev MCP Hub & AI Asset Consistency Compiler (v3.0.1)
Today's AI game-development workflow breaks in two places:
- Fragmented Tool Bloat: Connecting separate MCP servers for Unity, Godot, Unreal, Blender, and Aseprite dumps 150+ uncoordinated tool schemas (~30k+ tokens per turn) into your LLM while none of those servers share camera angles, pixels-per-unit (PPU), or color palettes.
- Visual & Physics Drift: Pure 2D diffusion mutates armor across 8 directions, mixes
35.264°true isometric with26.565°2:1 pixel-dimetric ground planes, leaves semi-transparent alpha fringes, jitters foot pivots by 3–5px per frame, and produces static sprites with no normal maps, VFX, audio, or UI.
GameForge MCP (v3.0.0) solves both in one zero-dependency GitHub MCP Hub:
- Federated Child-MCP Multiplexer: Houses
unity-mcp,godot-mcp,unreal-mcp,blender-mcp,aseprite-mcp,adobe-creative-mcp, and any custom stdio/HTTP MCP behind onemcp_config.jsonentry—spawning child MCPs lazily on demand (0 MBidle RAM) and automatically injecting locked SQLite Style & Scale Vault parameters (camera_pitch_deg,PPU,foot_pivot,.gplpalette). - Full-Stack Deterministic Compiler: Ships a pure-JS RFC-2083 Binary PNG Codec, CIE
L*a*b*Palette Quantizer, Tangent Normal-Map Stitcher, 20-Bone Animated Blender Rig, 60fps 2DSkeleton2D/Spine Cutout Rig, Pitch-Locked Combat VFX + GPU Shaders, 16-bit 44.1kHz PCM.wavAudio Synthesizer, and Nine-Slice (NinePatchRect) Game UI Builder—all with 0 external npm packages.
Live v3.0.0 Output Showcase (Compiled in <1s with 0 NPM Dependencies)
Every asset in ./examples/valkyrie-25d-showcase/ was generated in a single tool call (gameforge_build_complete_character_slice):
8-Dir × 6-Frame 2.5D Albedo Atlas (0px Foot Jitter) |
Paired Camera-Space Tangent Normal Atlas ([0..1] RGB) |
|---|---|
![]() |
![]() |
60fps Skeleton2D / Spine Cutout Parts |
Tapered Crescent Slash VFX + 30° Pitch-Locked Runic Aura |
Palette-Locked Nine-Slice RPG UI |
|---|---|---|
![]() |
![]() ![]() |
![]() |
Canonical 47-Tile Blob Auto-Tile Bitmask Template (sanctuary_blob47_template_mask.png)

- Interactive 2.5D Torchlight, VFX & WebAudio Studio: Open
examples/valkyrie-25d-showcase/atlases/aegis_paladin_preview_studio.htmldirectly in any browser to orbit a live 60fps point light across the normal-mapped Valkyrie, toggle Paper-Doll sword/cape layers with automatic North/South Z-swaps, and trigger the Crescent Slash VFX + Hit-Flash + 16-bit PCM.wavSword/Impact SFX.
Zero-Clone GitHub Direct Config (With npx Stale-Cache Bypass & Offline last_sha Persistence)
Requires Node.js >= 22.5.0. You do not need to clone this repository locally to use it—call it directly from GitHub in ~/.gemini/config/mcp_config.json (Antigravity 2.0), claude_desktop_config.json, or .cursor/mcp.json.
Standard npx github:owner/repo caches the first commit forever under ~/.npm/_npx (and github:owner/repo#sha hits npm 10's GitFetcher Arborist bug). The one-liner below enriches macOS/Windows GUI PATH, resolves the live 40-char commit SHA via git ls-remote (2.5s timeout, 80 bytes), persists last_sha for offline airplane mode, and streams codeload.github.com/.../tar.gz/<SHA>—giving instant <50ms warm cache hits when unchanged, automatic fresh pulls the moment a new commit lands on main, and 100% offline cache hits:
{
"mcpServers": {
"gameforge-mcp": {
"command": "node",
"args": [
"-e",
"const cp=require('child_process'),fs=require('fs'),os=require('os'),p=require('path');const w=process.platform==='win32',d=w?';':':';process.env.PATH=[p.dirname(process.execPath),'/usr/local/bin','/opt/homebrew/bin',p.join(os.homedir(),'.local','bin'),process.env.PATH].filter(Boolean).join(d);const sf=p.join(os.tmpdir(),'gameforge_last_sha'),hf=p.join(os.homedir(),'.gameforge-mcp','last_sha');let last='';try{last=fs.readFileSync(hf,'utf8').trim()}catch{try{last=fs.readFileSync(sf,'utf8').trim()}catch{}}let sha='';try{sha=cp.execSync('git ls-remote https://github.com/Andrew012410/gameforge-mcp.git refs/heads/main',{timeout:2500,stdio:['ignore','pipe','ignore'],env:process.env}).toString().split(/\\s+/)[0]||''}catch{}if(sha){try{fs.mkdirSync(p.dirname(hf),{recursive:true});fs.writeFileSync(hf,sha)}catch{try{fs.writeFileSync(sf,sha)}catch{}}}const ref=sha||last||'heads/main';const flags=['-y'];if(!sha||(last&&sha===last))flags.push('--prefer-offline');flags.push('--package','https://codeload.github.com/Andrew012410/gameforge-mcp/tar.gz/'+ref,'gameforge-mcp');cp.spawn(w?'npx.cmd':'npx',flags,{stdio:'inherit',shell:w,env:{...process.env,NODE_NO_WARNINGS:'1'}}).on('exit',c=>process.exit(c??0))"
],
"env": {
"PATH": "/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin",
"NODE_NO_WARNINGS": "1"
}
}
}
}
Local Development & Test Suite
git clone https://github.com/Andrew012410/gameforge-mcp.git
cd gameforge-mcp
# Print the zero-stale-cache GitHub mcp_config.json snippet
node --no-warnings ./bin/gameforge-mcp.mjs --print-config
# Run the 33-tool 7-Dimension 10/10 Adversarial Crucible
npm test
7 Built-In Studio Camera & Genre Presets
| Preset ID | Inspired By | Camera Pitch | Directions | Tile Grid | Core Technique |
|---|---|---|---|---|---|
ragnarok_25d_dimetric |
Ragnarok Online | 30.0° Ortho |
8 (45°) |
128×64 |
3D World + 8-dir layered Paper-Doll sprites with per-angle Z-order swaps |
tos_25d_ortho3d |
Tree of Savior | 38.0° Ortho |
8 / 360° | 256×128 |
Live rigged 3D low/mid-poly meshes with hand-painted unlit/toon + inverted-hull outlines |
diablo_25d_isometric |
Diablo II: Resurrected | 26.565° (atan(0.5)) |
16 (22.5°) |
128×64 (2:1) |
Exact 2:1 pixel-dimetric 16-angle pre-rendered sprites + contact shadows + normal maps |
true_isometric_tactics |
FF Tactics / Tactics Ogre | 35.264° (atan(1/√2)) |
4 (90°) |
64×32 |
True CAD isometric grid elevation tactics |
hd2d_diorama |
Octopath Traveler | 28.0° Hybrid |
8 (45°) |
32×32 |
3D PBR tilt-shift diorama world + point-filtered pixel billboards lit by 3D lights |
deadcells_3d_to_2d |
Dead Cells | 0.0° Side Ortho |
2 (L/R) |
32×32 |
Blender filter_size=0.01px zero-AA render + tangent-space Normal Maps for dynamic 2D lights |
pixel_platformer_2d |
Celeste / Hollow Knight | 0.0° Side Ortho |
2 (L/R) |
32×32 |
Crisp 2D sprites / Skeleton2D cutout rigs + coyote-time physics + 47-tile Blob auto-tiles |
The 33 Studio Tools Across 10 Wings
Wing A — SQLite Style Vault, Scale Trigonometry & Paper-Doll Math (src/wings/vault-wing.mjs)
gameforge_init_project— Locks camera projection, pitch, PPU, tile diamond ratio, sun vector, and asset folders.gameforge_lock_style_bible— Generates hue-shifted 5-step color ramps,.gplGIMP/LibreSprite palettes, and safe ComfyUI denoise bounds.gameforge_register_character— Computes foreshortened orthographic pixel height (height_m × cos(pitch) × PPU), canonical seed, and bone sockets.gameforge_compute_paperdoll_zorder— Solves 8/16-direction Z-priority draw order for modular gear (body,head,hair,weapon_r,offhand_l,cape_wings_back).gameforge_define_combat_framedata— Stores animation FPS,startup/active/recoverycombat windows, hitstop ms, and AABB hitboxes.
Wing B — Self-Adapting ComfyUI Turnaround, Style Lock & FluxGym LoRA (src/wings/comfy-wing.mjs)
gameforge_introspect_comfyui— LiveGET /object_infodetector for split FLUX (UNETLoader), checkpoints, ControlNet, IP-Adapter, BiRefNet/RMBG, and VHS nodes.gameforge_generate_turnaround_workflow— Builds/submits split-FLUX or merged-checkpoint + BiRefNet 4-view orthographic turnaround graphs.gameforge_generate_consistent_sprites_workflow— Multi-pass ControlNet (Depth + Lineart) + IP-Adapter + clamped denoise + BiRefNet sprite workflow.gameforge_generate_lora_dataset_plan— Generates FluxGym / Kohya.tomlconfigs and captioned manifests for character/world Micro-LoRAs.
Wing C — Open-Source 3D (TRELLIS.2 / Hunyuan3D / TripoSR), 20-Bone Rigging & Ortho Baker (src/wings/blender-wing.mjs)
gameforge_generate_3d_from_sheet— Self-hosted Python runners for TRELLIS.2, Hunyuan3D 2.1, and MIT TripoSR + UniRig.gameforge_blender_rig_and_sockets— Blender 4.xbpy20-bone game rig, Mixamo.fbxretargeter, 6 procedural animation clips, Paper-Doll sockets, and Tree of Savior outlines.gameforge_blender_ortho_turntable_bake— Renders 8/16-direction Beauty, Depth, Freestyle 1px Lineart,[0..1]Tangent Normal Map, and projectedsockets_per_frame.json.
Wing D — Native RFC-2083 PNG Codec, CIELAB Quantizer & LibreSprite (src/wings/sprite-wing.mjs)
gameforge_synthesize_procedural_frames— Pure-JS 3D capsule 2.5D character, normal-map, and modular Paper-Doll gear synthesizer.gameforge_compile_sprite_atlas— Strips semi-transparent fringes, quantizes in CIEL*a*b*, injects 1px outlines, locks0pxfoot-pivot jitter, and stitches paired Albedo + Normal sheets.gameforge_libresprite_cleanup_script— Lua CLI batch script + native pure-Node fallback.
Wing E — Worlds, 47-Tile Auto-Tiles & Procedural PBR (src/wings/world-wing.mjs)
gameforge_generate_tileset_spec— Computes canonical 47-tile Blob & 16-tile Wang bitmasks, renders pixel-exact.pngmasks, and exports LDtk JSON + Material Maker PBR specs.
Wing F — Pre-Sliced Multi-Engine Exporters, 10-Point Pixel QA & Studio Codex (src/wings/engine-wing.mjs)
gameforge_export_godot_package— Exports Godot 4.tscn, pre-slicedAtlasTextureSpriteFrames.tres, Normal-LitCanvasTexture, and GDScript controllers.gameforge_export_unity_package— Exports Unity C#AssetPostprocessor(SpriteMetaData[]+_NormalMap),ObjectReferenceKeyframe[].anim+BlendTree+.prefabbuilder, and Y-Sort/Hitstop scripts.gameforge_export_unreal_package— Exports UE5 Python scripts importing Albedo + Normal PNGs and generating directionalPaperFlipbookassets.gameforge_audit_asset_consistency— 10-Point Technical Art & Binary Pixel QA Gate (0–100).gameforge_discover_ecosystem— Live probe for BlenderMCP, Blender CLI, ComfyUI, TRELLIS/UniRig, Godot 4, LibreSprite, and Ollama.gameforge_query_codex— Instant search across the built-in Technical Art & Game Engine Studio Codex.
Wing G — Interactive HTML5 Torchlight/VFX/WAV Studio & One-Shot Compiler (src/wings/preview-wing.mjs)
gameforge_generate_interactive_preview— Compiles<char>_preview_studio.htmlwith 60fps per-pixel Normal-Map Torchlight, Paper-Doll Z-swaps, Runic Aura + Slash VFX flipbooks, and embedded 16-bit WAV SFX.gameforge_build_complete_character_slice— Runs the complete 16-stage 2.5D/2D studio slice end-to-end in one tool call.
Wing H — Federated Child-MCP Multiplexer Hub & GitHub Cache-Bypass (src/wings/hub-wing.mjs)
gameforge_hub_list_mcps— Lists all built-in (unity-mcp,godot-mcp,unreal-mcp,blender-mcp,aseprite-mcp,adobe-creative-mcp) + custom SQLite child MCPs and active session states.gameforge_hub_register_mcp— Registers or overrides any stdio or Streamable-HTTP child MCP inside GameForge's SQLite Vault.gameforge_hub_discover_tools— Lazily connects to a child MCP on demand to inspect its livetools/listschema without upfront context bloat.gameforge_hub_call_mcp— Proxies tool calls to any housed child MCP over JSONL stdio,Content-Lengthstdio, or HTTP JSON-RPC/SSE while attaching locked SQLite Vault style/scale metadata.gameforge_sync_github_updates— Resolves the live GitHubHEADSHA, scrubs stale~/.npm/_npxcaches, and outputs the zero-stale-cachemcp_config.jsonsnippet.
Wing I — 60fps 2D Cutout Skeletal Rigging & Pitch-Locked Combat VFX/Shaders (src/wings/rig2d-vfx-wing.mjs)
gameforge_build_2d_cutout_rig— Compiles an isolated limb PNG atlas, Godot 4Skeleton2D + Bone2D.tscnwith 60fpsidle_breathe&slash_attacktracks, and Spine 4 compatible JSON.gameforge_generate_vfx_and_shaders— Renders taperedslash_arc,hit_spark, and camera-pitch foreshortenedaoe_circlePNG flipbooks plus Godot.gdshaderand Unity URP Hit-Flash/Dissolve shaders.
Wing J — Pure-JS 16-bit PCM WAV Game Audio & Nine-Slice UI Kit (src/wings/audio-ui-wing.mjs)
gameforge_synthesize_sfx_pack— Synthesizes 6 deterministic 44.1kHz 16-bit.wavcombat/foley cues (footstep_stone,sword_swing,hit_impact,spell_cast,jump,ui_confirm) + pitch-randomized GodotAudioStreamRandomizer& UnityGameForgeSfxPlayer.cs.gameforge_generate_ui_nineslice_kit— Renders palette-locked Nine-Slice UI.pngframes and compiles GodotGameForgeHUD.tscn(NinePatchRect+ 6-slot Paper-Doll grid) and Unity UI Toolkit.uss+spriteBorderimporters.
License
MIT © GameForge Open-Source Contributors.





