PluginWorld
Ga

gameforge-mcp

MCP

Enables MCP-capable coding agents to act as a deterministic technical art director and multi-engine pipeline builder, locking AI-generated 2D/2.5D game assets to consistent camera angles, palettes, rigs, atlases, and exports across Blender, ComfyUI, UniRig, LibreSprite, Godot 4, Unity, and Unreal Engine 5.

@Andrew012410 · v3.0.1 · MIT License · updated today

SECURITY

B

SCORE

68

STARS

▲ 0

PLUG IN

git clone https://github.com/Andrew012410/gameforge-mcp.git

See the README to configure this MCP server

README

GameForge MCP (gameforge-mcp)

The 100% Open-Source Federated Game-Dev MCP Hub & AI Asset Consistency Compiler (v3.0.1)

License: MIT Version: 3.0.1 Node.js >= 22.5 Zero Dependencies MCP Tools: 33 Adversarial QA: 10.0/10

Today's AI game-development workflow breaks in two places:

  1. 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.
  2. Visual & Physics Drift: Pure 2D diffusion mutates armor across 8 directions, mixes 35.264° true isometric with 26.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 one mcp_config.json entry—spawning child MCPs lazily on demand (0 MB idle RAM) and automatically injecting locked SQLite Style & Scale Vault parameters (camera_pitch_deg, PPU, foot_pivot, .gpl palette).
  • 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 2D Skeleton2D/Spine Cutout Rig, Pitch-Locked Combat VFX + GPU Shaders, 16-bit 44.1kHz PCM .wav Audio 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)
Valkyrie 2.5D Albedo Atlas Valkyrie 2.5D Normal Map Atlas
60fps Skeleton2D / Spine Cutout Parts Tapered Crescent Slash VFX + 30° Pitch-Locked Runic Aura Palette-Locked Nine-Slice RPG UI
2D Cutout Parts Crescent Slash VFX
30-Deg Foreshortened Runic Circle
Nine-Slice RPG Panel

Canonical 47-Tile Blob Auto-Tile Bitmask Template (sanctuary_blob47_template_mask.png)

47-Tile Blob Auto-Tile Mask

  • Interactive 2.5D Torchlight, VFX & WebAudio Studio: Open examples/valkyrie-25d-showcase/atlases/aegis_paladin_preview_studio.html directly 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 .wav Sword/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)

  1. gameforge_init_project — Locks camera projection, pitch, PPU, tile diamond ratio, sun vector, and asset folders.
  2. gameforge_lock_style_bible — Generates hue-shifted 5-step color ramps, .gpl GIMP/LibreSprite palettes, and safe ComfyUI denoise bounds.
  3. gameforge_register_character — Computes foreshortened orthographic pixel height (height_m × cos(pitch) × PPU), canonical seed, and bone sockets.
  4. 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).
  5. gameforge_define_combat_framedata — Stores animation FPS, startup/active/recovery combat windows, hitstop ms, and AABB hitboxes.

Wing B — Self-Adapting ComfyUI Turnaround, Style Lock & FluxGym LoRA (src/wings/comfy-wing.mjs)

  1. gameforge_introspect_comfyui — Live GET /object_info detector for split FLUX (UNETLoader), checkpoints, ControlNet, IP-Adapter, BiRefNet/RMBG, and VHS nodes.
  2. gameforge_generate_turnaround_workflow — Builds/submits split-FLUX or merged-checkpoint + BiRefNet 4-view orthographic turnaround graphs.
  3. gameforge_generate_consistent_sprites_workflow — Multi-pass ControlNet (Depth + Lineart) + IP-Adapter + clamped denoise + BiRefNet sprite workflow.
  4. gameforge_generate_lora_dataset_plan — Generates FluxGym / Kohya .toml configs 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)

  1. gameforge_generate_3d_from_sheet — Self-hosted Python runners for TRELLIS.2, Hunyuan3D 2.1, and MIT TripoSR + UniRig.
  2. gameforge_blender_rig_and_sockets — Blender 4.x bpy 20-bone game rig, Mixamo .fbx retargeter, 6 procedural animation clips, Paper-Doll sockets, and Tree of Savior outlines.
  3. gameforge_blender_ortho_turntable_bake — Renders 8/16-direction Beauty, Depth, Freestyle 1px Lineart, [0..1] Tangent Normal Map, and projected sockets_per_frame.json.

Wing D — Native RFC-2083 PNG Codec, CIELAB Quantizer & LibreSprite (src/wings/sprite-wing.mjs)

  1. gameforge_synthesize_procedural_frames — Pure-JS 3D capsule 2.5D character, normal-map, and modular Paper-Doll gear synthesizer.
  2. gameforge_compile_sprite_atlas — Strips semi-transparent fringes, quantizes in CIE L*a*b*, injects 1px outlines, locks 0px foot-pivot jitter, and stitches paired Albedo + Normal sheets.
  3. 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)

  1. gameforge_generate_tileset_spec — Computes canonical 47-tile Blob & 16-tile Wang bitmasks, renders pixel-exact .png masks, 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)

  1. gameforge_export_godot_package — Exports Godot 4 .tscn, pre-sliced AtlasTexture SpriteFrames .tres, Normal-Lit CanvasTexture, and GDScript controllers.
  2. gameforge_export_unity_package — Exports Unity C# AssetPostprocessor (SpriteMetaData[] + _NormalMap), ObjectReferenceKeyframe[] .anim + BlendTree + .prefab builder, and Y-Sort/Hitstop scripts.
  3. gameforge_export_unreal_package — Exports UE5 Python scripts importing Albedo + Normal PNGs and generating directional PaperFlipbook assets.
  4. gameforge_audit_asset_consistency — 10-Point Technical Art & Binary Pixel QA Gate (0–100).
  5. gameforge_discover_ecosystem — Live probe for BlenderMCP, Blender CLI, ComfyUI, TRELLIS/UniRig, Godot 4, LibreSprite, and Ollama.
  6. 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)

  1. gameforge_generate_interactive_preview — Compiles <char>_preview_studio.html with 60fps per-pixel Normal-Map Torchlight, Paper-Doll Z-swaps, Runic Aura + Slash VFX flipbooks, and embedded 16-bit WAV SFX.
  2. 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)

  1. 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.
  2. gameforge_hub_register_mcp — Registers or overrides any stdio or Streamable-HTTP child MCP inside GameForge's SQLite Vault.
  3. gameforge_hub_discover_tools — Lazily connects to a child MCP on demand to inspect its live tools/list schema without upfront context bloat.
  4. gameforge_hub_call_mcp — Proxies tool calls to any housed child MCP over JSONL stdio, Content-Length stdio, or HTTP JSON-RPC/SSE while attaching locked SQLite Vault style/scale metadata.
  5. gameforge_sync_github_updates — Resolves the live GitHub HEAD SHA, scrubs stale ~/.npm/_npx caches, and outputs the zero-stale-cache mcp_config.json snippet.

Wing I — 60fps 2D Cutout Skeletal Rigging & Pitch-Locked Combat VFX/Shaders (src/wings/rig2d-vfx-wing.mjs)

  1. gameforge_build_2d_cutout_rig — Compiles an isolated limb PNG atlas, Godot 4 Skeleton2D + Bone2D .tscn with 60fps idle_breathe & slash_attack tracks, and Spine 4 compatible JSON.
  2. gameforge_generate_vfx_and_shaders — Renders tapered slash_arc, hit_spark, and camera-pitch foreshortened aoe_circle PNG flipbooks plus Godot .gdshader and 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)

  1. gameforge_synthesize_sfx_pack — Synthesizes 6 deterministic 44.1kHz 16-bit .wav combat/foley cues (footstep_stone, sword_swing, hit_impact, spell_cast, jump, ui_confirm) + pitch-randomized Godot AudioStreamRandomizer & Unity GameForgeSfxPlayer.cs.
  2. gameforge_generate_ui_nineslice_kit — Renders palette-locked Nine-Slice UI .png frames and compiles Godot GameForgeHUD.tscn (NinePatchRect + 6-slot Paper-Doll grid) and Unity UI Toolkit .uss + spriteBorder importers.

License

MIT © GameForge Open-Source Contributors.

SIMILAR PLUGINS