Server data from the Official MCP Registry
Create and modify GB Studio projects with MCP tools for scenes, actors, assets, and validation.
Create and modify GB Studio projects with MCP tools for scenes, actors, assets, and validation.
Valid MCP server (4 strong, 6 medium validity signals). 4 known CVEs in dependencies (0 critical, 2 high severity) Package registry verified. Imported from the Official MCP Registry.
10 files analyzed · 5 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: CLAUDE_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-eoinjordan-gbstudio-claude-mcp": {
"env": {
"CLAUDE_API_KEY": "your-claude-api-key-here"
},
"args": [
"-y",
"gbstudio-claude-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
Prompt to build out a template for your students, kids, or yourself to extend.
Install: npm install -g gbstudio-claude-mcp
Start server: gbstudio-claude-mcp
Connect Claude Desktop (see TUTORIAL.md)
Prompt Claude: "Review and test my application logic"
That’s it. Claude will reivew, extend or even generate a playable game template you can iterate on with students in GB Studio.
After 14 years teaching kids programming, electronics, 3D printing, and game development, I’ve learned this: the best educational tools don’t just make things easier. They make learning a rewarding activity. GB Studio is one of those tools. It’s a visual game builder that gives you a Game Boy development, putting real creative power in the hands of students, educators, and hobbyists to build for physical hardware. When we combine GB Studio with education on what is possible to do with large language models (LLMs), we bring a postitive view to students on how they can integrate with rather than rely on them as a crutch.
“Vibe coding” isn’t just a buzzword. It’s a paradigm shift. It’s programming stripped of syntactic gatekeeping, where creators focus on flow, logic, and ideas instead of memorizing semicolons. Tools like Scratch, App Inventor, and GB Studio embody this philosophy: they eliminate barriers and recenter programming around what actually matters: creativity and problem-solving.
For kids, vibe coding is a what they are growing up with. It will let them focus on the “why” and “how” of programming without drowning in syntax. This isn’t just helpful. It’s important for students to get to think in systems, design, and logic but are shut out by traditional coding’s steep learning curve.
Large language models like ChatGPT have sparked fierce debate in education, and for good reason. Used carelessly, they become cheating tools that replaces thinking with copy-pasa mindset. But used with purpos, they can become scaffolding that accelerates real learning. The difference isn’t the tool. It’s how we wield it.
Games can be built from scratch too but they wont be AAA class so measure your expectations lol
Create a Pong clone for the original Game Boy. Two paddles, a ball, and a score counter. The player controls the left paddle, the right paddle is AI-controlled. Use simple monochrome graphics and authentic GB sound effects. Generate all scenes, actors, and assets for a playable Pong game.
Build a Pac-Man style maze game for Game Boy Color. The player navigates a maze, collects pellets, and avoids ghosts. Include at least one maze layout, four ghosts with basic AI, and colorful graphics. Generate all scenes, actors, and assets needed for a playable demo.
Design a Mario Bros inspired platformer for Game Boy Color. The player can run, jump, and stomp on enemies. Include three levels, power-ups, coins, and a flagpole at the end of each level. Use bright palettes and catchy background music. Generate all scenes, actors, and assets for a classic platformer experience.
Create a vertical scrolling space shooter for the original Game Boy. The player controls a spaceship, shoots enemies, and dodges obstacles. Include multiple enemy types, power-ups, and a boss fight. Use classic GB graphics and chiptune sound effects. Generate all scenes, actors, and assets for a playable shooter.
This is a TypeScript server for manipulating GB Studio projects using the Model Context Protocol (MCP). It provides endpoints for project discovery, validation, and creation of game assets.
Install globally with npm:
npm install -g gbstudio-claude-mcp
For local development, store API keys and configuration in a .env file at the project root. This keeps secrets out of source control and matches the pattern used in GitHub Actions.
.env file in the project root:
CLAUDE_API_KEY=your-claude-api-key-here
# Add other keys as needed
.env if you use [dotenv]..env files are gitignored by default.Never commit your .env file to source control.
Start the server:
gbstudio-claude-mcp
The server runs on http://localhost:3000 by default.
Configure your MCP client (e.g., Claude Desktop) to connect to this server. For full setup and troubleshooting, see the tutorial linked at the end of this document.
See the TUTORIAL.md for a complete, step-by-step guide to building a GB Studio game with this server, including screenshots and troubleshooting tips for both Windows and Linux/macOS.
This package supports the Model Context Protocol (MCP). You can run the server in MCP stdio mode for use with Claude Desktop and other MCP clients:
npm run build:mcp
node build/mcp.js
The MCP stdio server proxies to the local REST API on http://localhost:3000, so start the REST server first. To use a different port, set GBSTUDIO_API_URL (full URL) or GBSTUDIO_API_PORT (port number):
gbstudio-claude-mcp
Or add this to your MCP client configuration:
{
"mcpServers": {
"gbstudio-mcp": {
"command": "node",
"args": ["/absolute/path/to/build/mcp.js"]
}
}
}
Clawdbot and Moltbot discover tools via AgentSkills-compatible SKILL.md files. This repo ships one at:
skills/gbstudio-mcp/SKILL.mdCompatibility depends on transport:
node build/mcp.js will work.To enable the skill in Moltbot, add an entry like this:
{
"skills": {
"load": {
"extraDirs": [
"~/.clawdbot/skills"
],
"watch": true,
"watchDebounceMs": 250
},
"entries": {
"gbstudio-mcp": {
"enabled": true,
"env": {}
}
}
}
}
git clone https://github.com/eoinjordan/gb-studio-agent.git
cd gb-studio-agent
npm install
npm run dev
npm test
GET /health — Returns { status: "ok" } for health checks.GET /claude-key — Returns { present: true } if CLAUDE_API_KEY is set in the environment, else { present: false } with 404.POST /find_project — Finds the first .gbsproj file starting from a given directory.
{ startPath: string }{ projectPath: string } or 404 if not found.POST /inventory — Lists scenes, actors, triggers, and assets from a GB Studio project root.
{ projectRoot: string }{ scenes, actors, triggers, assets } or 404/400 on error.POST /validate — Validates the structure of a GB Studio project (checks for a valid .gbsproj file and required fields).
{ projectRoot: string }{ valid: true, message: string, scenes: number } if valid, or 400/404 with an error message if invalid or missing required fields.projectRoot is missing or .gbsproj is invalid/missing required fieldsprojectRoot does not exist or no .gbsproj file foundPOST /scene/create — Adds a new scene to the specified GB Studio project.
{ projectRoot: string, scene: object }{ success: true, scene } on success, or 400/404/500 with an error message.POST /actor/create — Creates a new actor in the specified scene.
{ projectRoot: string, sceneId: string, actor: object }{ success: true, actor } on success, or 400/404/500 with an error message.POST /background/create — Creates a new background in the project.
{ projectRoot: string, background: object }{ success: true, background } on success, or 400/404/500 with an error message.POST /sprite/create — Creates a new sprite in the project.
{ projectRoot: string, sprite: object }{ success: true, sprite } on success, or 400/404/500 with an error message.POST /music/create — Creates a new music track in the project.
{ projectRoot: string, music: object }{ success: true, music } on success, or 400/404/500 with an error message.POST /sound/create — Creates a new sound effect in the project.
{ projectRoot: string, sound: object }{ success: true, sound } on success, or 400/404/500 with an error message.POST /tileset/create — Creates a new tileset in the project.
{ projectRoot: string, tileset: object }{ success: true, tileset } on success, or 400/404/500 with an error message.POST /trigger/create — Creates a new trigger in the specified scene.
{ projectRoot: string, sceneId: string, trigger: object }{ success: true, trigger } on success, or 400/404/500 with an error message.POST /variable/create — Creates a new variable in the project.
{ projectRoot: string, variable: object }{ success: true, variable } on success, or 400/404/500 with an error message.POST /script/create — Creates a new script in the project.
{ projectRoot: string, script: object }{ success: true, script } on success, or 400/404/500 with an error message.POST /palette/create — Creates a new palette in the project.
{ projectRoot: string, palette: object }{ success: true, palette } on success, or 400/404/500 with an error message.POST /font/create — Creates a new font in the project.
{ projectRoot: string, font: object }{ success: true, font } on success, or 400/404/500 with an error message.POST /emote/create — Creates a new emote in the project.
{ projectRoot: string, emote: object }{ success: true, emote } on success, or 400/404/500 with an error message.POST /avatar/create — Creates a new avatar in the project.
{ projectRoot: string, avatar: object }{ success: true, avatar } on success, or 400/404/500 with an error message.POST /constant/create — Creates a new constant in the project.
{ projectRoot: string, constant: object }{ success: true, constant } on success, or 400/404/500 with an error message.POST /prefab/actor/create — Creates a new actor prefab in the project.
{ projectRoot: string, actorPrefab: object }{ success: true, actorPrefab } on success, or 400/404/500 with an error message.POST /prefab/trigger/create — Creates a new trigger prefab in the project.
{ projectRoot: string, triggerPrefab: object }{ success: true, triggerPrefab } on success, or 400/404/500 with an error message.POST /settings/update — Updates project settings.
{ projectRoot: string, settings: object }{ success: true, settings } on success, or 400/404/500 with an error message.POST /metadata/update — Updates project metadata.
{ projectRoot: string, metadata: object }{ success: true, metadata } on success, or 400/404/500 with an error message.POST /engine-field-value/create — Creates a new engine field value in the project.
{ projectRoot: string, engineFieldValue: object }{ success: true, engineFieldValue } on success, or 400/404/500 with an error message.POST /claude/key — Sets the Claude API key in the environment.
{ key: string }{ success: true } on success, or 400 with an error message.To build a GB Studio game using this MCP server with Claude:
/find_project to locate an existing .gbsproj file or start from a directory./validate to ensure the project is valid./inventory to list current scenes, actors, triggers, assets./scene/create to add new scenes./actor/create to add actors to scenes.Note: All endpoints are now fully functional.
See TUTORIAL.md for detailed sample prompts and full end-to-end workflows for different game genres.
All endpoints are covered by Jest tests in the tests/ directory. Run npm test to validate all functionality. Tests use real sample projects.
To publish a new version:
npm run build
npm login --auth-type=legacy
npm publish --access public
See npm publishing docs for more info.
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.