Your 2D game creation toolkit,
inside your AI workflow.
Connect an AI agent to Spritulus to have AI agents create games, sprites and other assets, then review, create and refine them together.
VS Code
MCP: Add Server
Claude Code
Native MCP support
Copilot CLI
GitHub Copilot
Get started
Connect in minutes
Add Spritulus as an HTTP MCP server. When your client asks for the server address, use this endpoint:
https://www.spritulus.com/api/mcp
No API key needed. Sign in through the browser and approve access when prompted.
Or use a server config
Most MCP clients accept a configuration like this:
{
"mcpServers": {
"spritulus": {
"type": "http",
"url": "https://www.spritulus.com/api/mcp"
}
}
}Choose your client
GitHub Copilot CLI
Run /mcp add, or add the config above to ~/.copilot/mcp-config.json.
VS Code
Run MCP: Add Server from the Command Palette, choose HTTP, then enter the endpoint.
Claude Code
Run this command to connect:
claude mcp add --transport http spritulus https://www.spritulus.com/api/mcp
Signing in and permissions
No API key is needed. The first time your client connects, it opens a browser window where you sign in to Spritulus and approve access. Your agent then acts as you: it sees the same content you can see and owns whatever it creates.
spritulus:readLets the agent list and read content.
spritulus:writeAlso lets it create and update content.
Create and update tools only appear for connections with write access. If your agent can't see them, sign out of the server in your client and connect again to approve write access.
Clients that don't request a scope get read and write access. The approval page always shows which permissions you are granting.
How Spritulus content fits together
- Templates define a kind of asset (sprite, environment, tileset, or nine-slice), its size, default colors, and animations.
- Part classes are the slots in a template, such as hair, forearm, background, or foreground. Each has a render position; higher numbers are drawn behind lower ones.
- Styles group parts within a part class.
- Parts are the options for a part class. Every part belongs to one style, and an asset uses one part for every part class in its template. Empty parts, usually named "none", hide a slot.
- Pieces are the reusable SVG building blocks. A piece added to a part appears only in that part; a piece added to a style appears in every part in that style.
Editing a style or a shared piece changes every part that uses it, so agents are told to create a new part or style when only one asset should change.
Tools
Read tools are available with either scope.
Games & scenes
| list_games | List games visible to you. |
| get_game | Get a game with its scenes, characters, elements, and tilesets. |
| list_scenes | List scenes in a game. |
| get_scene | Get a scene by ID. |
| get_game_options | Get the built-in scene styles, element types, scene action configs, and dialogue styles, optionally limited to one category. Use it to pick valid scene styles and element types. |
Sprites & assets
| list_sprites | List sprites, optionally filtered by template or part. |
| get_sprite | Get a sprite and its parts. |
| get_default_sprite | Get the default sprite for a template, the usual starting point for a new sprite. |
| list_environments / get_environment | Browse environments. |
| get_default_environment | Get the default environment for a template. Environments can be browsed but not created through MCP. |
| list_tilesets / get_tileset | Browse tilesets and their parts. |
| get_default_tileset | Get the default tileset for a template, including its parts. |
| list_nineslices / get_nineslice | Browse nine-slices and their parts. |
| get_default_nineslice | Get the default nine-slice for a template, including its parts. |
| list_animations / get_animation | Browse animations, including frames and exclusions. |
Building blocks
| list_templates / get_template | Browse templates (filter by type with searchType), including their part classes and animations. |
| list_part_classes / get_part_class | Browse part classes and their styles. |
| list_styles / get_style | Browse styles, their parts, and shared pieces. |
| list_parts / get_part | Browse parts, their pieces, and style. |
| list_pieces / get_piece | Browse reusable SVG pieces, including their SVG. |
Write tools require the spritulus:write scope. Update tools take an ID and only the fields you want to change.
Create & update
| create_game / update_game | Create a game and its first scene from a scene style, environment, and optional player sprite, tileset, elements, and button nine-slice; or edit game details and the game's dialogue styles. |
| create_scene / update_scene | Add a scene to a game, or edit its objective, controls, health, timing, and scene actions (dialogue, menus, and event rules). |
| create_sprite / update_sprite | Create a sprite from a template with one part per part class, or edit its name, colors, hitboxes, animations, and parts. Results include a thumbnail_url PNG preview. |
| create_nineslice / update_nineslice | Create a nine-slice from a template's default parts, then edit its parts, colors, and border sizes. |
| create_tileset / update_tileset | Create a tileset from a template's default parts, then edit its parts, colors, and boundaries. |
| create_template / update_template | Create or edit a template. |
| create_animation / update_animation | Create or edit an animation and its frames. |
| create_part_class / update_part_class | Create or edit a part class. A default style and part are created with a new part class. |
| create_style / update_style | Create or edit a style and its shared pieces. |
| create_part / update_part | Create or edit a part and its part-specific pieces. |
| create_piece / update_piece | Create or edit a reusable SVG piece, optionally attaching it to a part or style when created. |