construct-factory
Generates Construct 3 games programmatically by reading/writing project folder files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@construct-factoryCreate a new Construct 3 game with a player sprite and a platform object."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
construct-factory
A factory for generating Construct 3 games programmatically, exposed to Claude (or any MCP client) as an MCP server.
Construct 3 has no public remote-editor API. The automation surface this project targets is the project-folder save format: a Construct 3 project saved as a folder of JSON files (project.c3proj + layouts/, eventSheets/, objectTypes/, …). We read/write those files directly — no browser required. The human only opens the folder in Construct 3 to preview/export/publish.
Layout
packages/
c3-format/ Read/write/validate the .c3proj project-folder format (the schema layer)
c3-builder/ High-level authoring API: createGame, addLayout, addObject, addEvent, …
mcp-server/ Thin MCP server exposing c3-builder operations as tools
factory-core/ Shared genre templates + scaffolds (the "factory" layer)
games/ One folder per generated game
reference/ Real Construct 3 project folders used to reverse-engineer the schema
verify/ Validation harness (does the output parse / round-trip cleanly?)Related MCP server: @gbs-toolkit/mcp-server
Templates
Two kinds:
Builder templates (
blank,hello-text) — assembled from scratch viac3-builderagainst the reverse-engineeredschema.js.Clone templates — stamped out by a full-fidelity folder clone of a verified real project in
reference/, so every byte (images, animations, particles, effects, timelines, event logic) is preserved and guaranteed to open in Construct:kenney-platformer— Kenney's CC0 tile platformer (Player + Platform behavior, Tilemap, coins, enemies).cave-boy— Scirra's Cave Bridge template (animated player, parallax vegetation, particles, area lighting, Tween/Timeline).
generateGame({ rootDir: "games", name: "Cave Boy Adventure", template: "cave-boy" });The format layer round-trips these real projects losslessly (read → write to a new folder is byte-identical, verified in verify/).
Building from scratch
The c3-builder API also assembles projects without a reference. Sprites emit
real PNG files per animation frame (pass images, or get a generated solid
placeholder) and link them through imageSpriteId, so built-from-scratch
sprites actually render:
const g = Game.create({ rootDir: "games", name: "Scratch Platformer" });
g.addLayout({ name: "Level1", makeFirst: true });
g.addSprite({ name: "Player", width: 24, height: 24, originY: 1,
animName: "Walk", isLooping: true, behaviors: ["Platform", "solid"],
images: ["player-walk-000.png", "player-walk-001.png"] });
g.placeInstance({ layout: "Level1", object: "Player", x: 100, y: 200 });
await g.save();Editing a cloned project
list_level, move_instance, duplicate_instance, list_assets and
replace_image customize a cloned reference game by editing its real instance
JSON and swapping art — no schema guesswork.
⚠️ Status
The hand-written field shapes in packages/c3-format/src/schema.js are
reverse-engineered; sprites, animations, behaviors and instances are verified
against the reference/ projects, but exotic features (effects, families,
timelines, particles) are only guaranteed via the clone path, which copies
ground truth verbatim. When in doubt, clone.
Quick start
npm install
npm run smoke # generate a tiny game into games/ and round-trip it
npm run verify # validate a project folder
npm run mcp # start the MCP server on stdioWiring into Claude Code
claude mcp add construct-factory -- node /Users/zubeidhendricks/construct-factory/packages/mcp-server/src/index.jsThis server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZubeidHendricks/construct-factory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server